

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

# 인증 요청(ARQC) 암호화 확인
<a name="data-operations.verifyauthrequestcryptogram"></a>

 인증 요청 암호화 API는 [ARQC](terminology.md#terms.arqc)를 확인하는 데 사용됩니다. ARQC 생성은 AWS Payment Cryptography의 범위를 벗어나며 일반적으로 트랜잭션 권한 부여 시간 동안 EMV Chip Card(또는 모바일 지갑과 같은 디지털에 상응하는 카드)에서 수행됩니다. ARQC는 각 트랜잭션마다 고유하며 카드의 유효성을 암호화하여 보여주고 트랜잭션 데이터가 현재(예상) 트랜잭션과 정확히 일치하는지 확인하는 데 사용합니다.

AWS Payment Cryptography는 ARQC를 검증하고 [EMV 4.4 Book 2](https://www.emvco.com/specifications/?post_id=80377) 및 Visa 및 Mastercard에서 사용하는 기타 체계에 정의된 값을 포함하여 선택적 ARPC 값을 생성하기 위한 다양한 옵션을 제공합니다. 사용 가능한 모든 옵션의 전체 목록은 [API 안내서](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyCardValidationData.html)의 VerifyCardValidationData 섹션을 참조하세요.

ARQC 암호에는 일반적으로 다음 입력이 필요합니다(구현에 따라 다를 수 있음).
+ [PAN](terminology.md#terms.pan) - PrimaryAccountNumber 필드에 지정됨
+ [PAN 시퀀스 번호(PSN)](terminology.md#terms.psn) - PanSequenceNumber 필드에 지정됨
+ 공통 세션 키(CSK)와 같은 키 파생 방법 - SessionKeyDerivationAttributes에 지정됨
+ 마스터 키 파생 모드(예: EMV 옵션 A) - MajorKeyDerivationMode에서 지정됨
+ 트랜잭션 데이터 - TransactionData 필드에 지정된 다양한 트랜잭션, 단말기 및 카드 데이터 문자열(예: 금액 및 날짜)
+ [발급자 마스터 키](terminology.md#terms.imk) - 개별 거래를 보호하는 데 사용되는 암호화(AC) 키를 파생하는 데 사용되며 KeyIdentifier 필드에 지정된 마스터 키입니다.

**Topics**
+ [트랜잭션 데이터 구축](#w2aac15c25c13)
+ [트랜잭션 데이터 패딩](#w2aac15c25c15)
+ [예제](#w2aac15c25c17)

## 트랜잭션 데이터 구축
<a name="w2aac15c25c13"></a>

트랜잭션 데이터 필드의 정확한 내용(및 순서)은 구현 및 네트워크 체계에 따라 다르지만 최소 권장 필드(및 연결 시퀀스)는 [EMV 4.4 Book 2 섹션 8.1.1 - 데이터 선택에 정의되어 있습니다](https://www.emvco.com/specifications/?post_id=80377). 처음 세 필드가 금액(17.00), 기타 금액(0.00), 구매 국가인 경우 트랜잭션 데이터는 다음과 같이 시작됩니다.
+ 000000001700 - 금액 - 12자리(소수점 두 자리 생략)
+ 000000000000 - 기타 금액 - 12자리(소수점 두 자리 생략)
+ 0124 - 4자리 국가 코드 
+  출력값 (부분) 트랜잭션 데이터 - 0000000017000000000000000124 

## 트랜잭션 데이터 패딩
<a name="w2aac15c25c15"></a>

서비스로 전송하기 전에 트랜잭션 데이터를 패딩해야 합니다. 대부분의 체계에서는 ISO 9797 메서드 2 패딩을 사용하며 16진수 문자열은 필드가 암호화 블록 크기의 배수가 될 때까지 16진수 80 다음에 00이 추가됩니다. TDES의 경우 8바이트 또는 16자, AES의 경우 16바이트 또는 32자입니다. 대안(메서드 1)은 흔하지는 않지만 00만 패딩 문자로 사용합니다.

### ISO 9797 메서드 1 패딩
<a name="w2aac15c25c15b5"></a>

 패딩 해제: 00000000170000000000000008400080008000084016051700000000093800000B03011203(74자 또는 37바이트) 

 패딩: 00000000170000000000000008400080008000084016051700000000093800000B03011203**000000**(80자 또는 40바이트) 

### ISO 9797 메서드 2 패딩
<a name="w2aac15c25c15b7"></a>

 패딩 해제: 00000000170000000000000008400080008000084016051700000000093800000B1F220103000000(80자 또는 40바이트) 

 패딩: 00000000170000000000000008400080008000084016051700000000093800000B1F220103000000**8000000000000000**(88자 또는 44바이트) 

## 예제
<a name="w2aac15c25c17"></a>

### Visa CVN10
<a name="w2aac15c25c17b3"></a>

**Example**  
이 예제에서는 Visa CVN10을 사용하여 생성된 ARQC를 검증합니다.  
 AWS Payment Cryptography가 ARQC를 검증할 수 있는 경우 http/200이 반환됩니다. ARCQ(Authorization Request Cryptogram)가 검증되지 않으면 http/400 응답을 반환합니다.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram D791093C8A921769 \
--key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
--major-key-derivation-mode EMV_OPTION_A \ 
--transaction-data 00000000170000000000000008400080008000084016051700000000093800000B03011203000000 \
--session-key-derivation-attributes='{"Visa":{"PanSequenceNumber":"01" \ 
,"PrimaryAccountNumber":"9137631040001422"}}'
```

```
{
  "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
  "KeyCheckValue": "08D7B4"
}
```

### Visa CVN18 및 Visa CVN22
<a name="w2aac15c25c17b5"></a>

**Example**  
이 예시에서는 Visa CVN18 또는 CVN22 를 사용하여 생성된 ARQC를 검증해 보겠습니다. CVN18 및 CVN22 간의 암호화 작업은 동일하지만 트랜잭션 데이터에 포함된 데이터는 다릅니다. CVN10과 비교하면 입력값이 같더라도 완전히 다른 암호가 생성됩니다.  
 AWS Payment Cryptography가 ARQC를 검증할 수 있는 경우 http/200이 반환됩니다. ARCQ가 검증되지 않으면 http/400을 반환합니다.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram \ 
--auth-request-cryptogram 61EDCC708B4C97B4
--key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \ 
--major-key-derivation-mode EMV_OPTION_A 
--transaction-data 00000000170000000000000008400080008000084016051700000000093800000B1F22010300000000000 \
00000000000000000000000000000000000000000008000000000000000
--session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", \
"PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}'
```

```
{
  "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
  "KeyCheckValue": "08D7B4"
}
```