

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# MAC の検証
<a name="verify-mac"></a>

MAC (メッセージ認証コード) を検証するための MAC (メッセージ認証コード) の検証には MAC (MAC) API が使用されます。認証用の MAC 値を再生成するには、MAC の生成時に使用したのと同じ暗号キーを使用する必要があります。MAC 暗号化キーは、[CreateKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html) を呼び出して AWS Payment Cryptography で作成することも、[ImportKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html) を呼び出してインポートすることもできます。API は、このオペレーションで DUKPT MAC、HMAC、および EMV MAC 暗号化キーをサポートします。

値が検証されると、レスポンスパラメータ `MacDataVerificationSuccessful` は `Http/200` を返し、検証されなかった場合は、`Http/400` を返すと共に、`Mac verification failed` を示すメッセージを表示します。

**Topics**
+ [HMAC の検証](#verify-mac-hmac)
+ [DUKPT CMAC を使用して MAC を検証する](#verify-mac-dukpt-cmac)

## HMAC の検証
<a name="verify-mac-hmac"></a>

この例では、HMAC `HMAC_SHA256` アルゴリズムと HMAC 暗号化キーを使用してカードデータ認証用の HMAC (ハッシュベースのメッセージ認証コード) を検証します。キーは KeyUsage を に設定`TR31_M7_HMAC_KEY`し、KeyModesOfUse を true `Verify`に設定する必要があります。

**Example**  

```
$ aws payment-cryptography-data verify-mac \ 
     --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ 
     --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ 
     --mac ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C \ 
     --verification-attributes Algorithm=HMAC_SHA256
```

```
       
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
    "KeyCheckValue": "2976E7"
}
```

## DUKPT CMAC を使用して MAC を検証する
<a name="verify-mac-dukpt-cmac"></a>

この例では、カードデータ認証に DUKPT (トランザクションあたりの派生一意キー) と CMAC を使用して MAC を検証します。キーは KeyUsage を に設定`TR31_B0_BASE_DERIVATION_KEY`し、KeyModesOfUse を true `DeriveKey`に設定する必要があります。DUKPT キーは、基本派生キー (BDK) とキーシリアル番号 (KSN) を使用して、トランザクションごとに一意のキーを取得します。DukptKeyVariant の値は、送信者と受信者の間で一致する必要があります。REQUEST は通常、ターミナルからバックエンド、バックエンドからターミナルへの VERIFY、および 1 つのキーを両方向に使用する場合の「IRECTIONAL」に使用されます。

**Example**  

```
$ aws payment-cryptography-data verify-mac \ 
     --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ 
     --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ 
     --mac D8E804EE74BF1D909A2C01C0BDE8EF34 \ 
     --verification-attributes DukptCmac='{"KeySerialNumber":"932A6E954ABB32DD00000001","DukptKeyVariant":"BIDIRECTIONAL"}'
```

```
       
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "C1EB8F"
}
```