인증 요청(ARQC) 암호화 확인 - AWS 결제 암호화

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

인증 요청(ARQC) 암호화 확인

인증 요청 암호화 API는 ARQC를 확인하는 데 사용됩니다. ARQC 생성은 AWS 결제 암호화의 범위를 벗어나며 일반적으로 거래 승인 기간 동안 EMV 칩 카드 (또는 모바일 지갑과 같은 디지털 카드) 에서 수행됩니다. ARQC는 각 트랜잭션마다 고유하며 카드의 유효성을 암호화하여 보여주고 트랜잭션 데이터가 현재(예상) 트랜잭션과 정확히 일치하는지 확인하는 데 사용합니다.

AWS 결제 암호화는 EMV 4.4 Book 2 및 Visa 및 Mastercard에서 사용하는 기타 체계에 정의된 값을 포함하여 ARQC를 검증하고 선택적 ARPC 값을 생성하는 다양한 옵션을 제공합니다. 사용 가능한 모든 옵션의 전체 목록은 API 가이드의 섹션을 참조하십시오. VerifyCardValidationData

ARQC 암호화에는 일반적으로 다음과 같은 입력이 필요합니다 (구현에 따라 다를 수 있음).

  • PAN - 필드에 지정됩니다. PrimaryAccountNumber

  • PAN 시퀀스 번호 (PSN) - 필드에 PanSequenceNumber 지정됨

  • CSK (공통 세션 키) 와 같은 키 도출 방법 - 에 지정됨 SessionKeyDerivationAttributes

  • 마스터 키 파생 모드 (예: EMV 옵션 A) - 에 지정됨 MajorKeyDerivationMode

  • 거래 데이터 - 금액 및 날짜와 같은 다양한 거래, 터미널 및 카드 데이터의 문자열 - 필드에 지정됨 TransactionData

  • 발급자 마스터 키 - 개별 거래를 보호하는 데 사용되는 암호 (AC) 키를 도출하는 데 사용되며 필드에 지정된 마스터 키 KeyIdentifier

트랜잭션 데이터 구축

트랜잭션 데이터 필드의 정확한 내용 (및 순서) 은 구현 및 네트워크 체계에 따라 다르지만 최소 권장 필드 (및 연결 순서) 는 EMV 4.4 Book 2 섹션 8.1.1 - 데이터 선택에 정의되어 있습니다. 처음 세 필드가 금액(17.00), 기타 금액(0.00), 구매 국가인 경우 트랜잭션 데이터는 다음과 같이 시작됩니다.

  • 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" }