

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# MAC 검증
<a name="verify-mac"></a>

MAC API가 카드 관련 데이터 인증을 위한 MAC(메시지 인증 코드)를 확인하는 데 사용되는지 검증합니다. 인증을 위한 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`를 반환하고, 그렇지 않으면 `Mac verification failed`를 나타내는 메시지와 함께 `Http/400`를 반환합니다.

**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>

이 예제에서는 카드 데이터 인증을 위해 CMAC와 함께 DUKPT(트랜잭션당 파생된 고유 키)를 사용하여 MAC를 확인합니다. 키는 KeyUsage를 로 설정하고 `TR31_B0_BASE_DERIVATION_KEY` KeyModesOfUse를 true로 `DeriveKey` 설정해야 합니다. DUKPT 키는 기본 파생 키(BDK)와 키 일련 번호(KSN)를 사용하여 각 트랜잭션에 대해 고유한 키를 파생합니다. DukptKeyVariant의 값은 발신자와 수신자 간에 일치해야 합니다. REQUEST는 일반적으로 터미널에서 백엔드로, 백엔드에서 터미널로, 그리고 단일 키를 양방향으로 사용할 때 양방향으로 사용됩니다.

**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"
}
```