기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
인증 요청(ARQC) 암호화 확인
인증 요청 암호화 API는 ARQC를 확인하는 데 사용됩니다. ARQC 생성은 AWS 결제 암호화의 범위를 벗어나며 일반적으로 거래 승인 기간 동안 EMV 칩 카드 (또는 모바일 지갑과 같은 디지털 카드) 에서 수행됩니다. ARQC는 각 트랜잭션마다 고유하며 카드의 유효성을 암호화하여 보여주고 트랜잭션 데이터가 현재(예상) 트랜잭션과 정확히 일치하는지 확인하는 데 사용합니다.
AWS 결제 암호화는 EMV 4.4
ARQC 암호화에는 일반적으로 다음과 같은 입력이 필요합니다 (구현에 따라 다를 수 있음).
-
PAN - 필드에 지정됩니다. PrimaryAccountNumber
-
PAN 시퀀스 번호 (PSN) - 필드에 PanSequenceNumber 지정됨
-
CSK (공통 세션 키) 와 같은 키 도출 방법 - 에 지정됨 SessionKeyDerivationAttributes
-
마스터 키 파생 모드 (예: EMV 옵션 A) - 에 지정됨 MajorKeyDerivationMode
-
거래 데이터 - 금액 및 날짜와 같은 다양한 거래, 터미널 및 카드 데이터의 문자열 - 필드에 지정됨 TransactionData
-
발급자 마스터 키 - 개별 거래를 보호하는 데 사용되는 암호 (AC) 키를 도출하는 데 사용되며 필드에 지정된 마스터 키 KeyIdentifier
트랜잭션 데이터 구축
트랜잭션 데이터 필드의 정확한 내용 (및 순서) 은 구현 및 네트워크 체계에 따라 다르지만 최소 권장 필드 (및 연결 순서) 는 EMV 4.4
-
000000001700 - 금액 - 12자리(소수점 두 자리 생략)
-
000000000000 - 기타 금액 - 12자리(소수점 두 자리 생략)
-
0124 - 4자리 국가 코드
-
출력값 (부분) 트랜잭션 데이터 - 0000000017000000000000000124
트랜잭션 데이터 패딩
서비스로 전송하기 전에 트랜잭션 데이터를 패딩해야 합니다. 대부분의 체계에서는 ISO 9797 메서드 2 패딩을 사용하며 16진수 문자열은 필드가 암호화 블록 크기의 배수가 될 때까지 16진수 80 다음에 00이 추가됩니다. TDES의 경우 8바이트 또는 16자, AES의 경우 16바이트 또는 32자입니다. 대안(메서드 1)은 흔하지는 않지만 00만 패딩 문자로 사용합니다.
ISO 9797 메서드 1 패딩
패딩 해제: 00000000170000000000000008400080008000084016051700000000093800000B03011203(74자 또는 37바이트)
패딩: 00000000170000000000000008400080008000084016051700000000093800000B03011203000000(80자 또는 40바이트)
ISO 9797 메서드 2 패딩
패딩 해제: 00000000170000000000000008400080008000084016051700000000093800000B1F220103000000(80자 또는 40바이트)
패딩: 00000000170000000000000008400080008000084016051700000000093800000B1F2201030000008000000000000000(88자 또는 44바이트)
예제
Visa CVN10
이 예제에서는 Visa CVN10을 사용하여 생성된 ARQC를 검증합니다.
AWS 결제 암호화로 ARQC를 검증할 수 있는 경우 http/200이 반환됩니다. ARQC가 검증되지 않은 경우 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
이 예시에서는 Visa CVN18 또는 CVN22 를 사용하여 생성된 ARQC를 검증해 보겠습니다. CVN18 및 CVN22 간의 암호화 작업은 동일하지만 트랜잭션 데이터에 포함된 데이터는 다릅니다. CVN10과 비교하면 입력값이 같더라도 완전히 다른 암호가 생성됩니다.
AWS 결제 암호화로 ARQC를 검증할 수 있는 경우 http/200이 반환됩니다. ARQC가 검증되지 않은 경우 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" }