EMV MAC 생성 및 확인 - AWS 결제 암호화

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

EMV MAC 생성 및 확인

EMV MAC은 EMV 파생 키의 입력을 사용한 다음 결과 데이터에 대해 ISO9797-3(소매) MAC을 수행하는 MAC입니다. EMV MAC은 일반적으로 스크립트 차단 해제와 같은 명령을 EMV 카드에 전송하는 데 사용됩니다.

참고

AWS Payment Cryptography는 스크립트의 내용을 검증하지 않습니다. 포함할 특정 명령에 대한 자세한 내용은 스키마 또는 카드 설명서를 참조하세요.

자세한 내용은 API 가이드의 MacAlgorithmEmv를 참조하세요.

키 생성

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E2_EMV_MKEY_INTEGRITY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"Key":"CARD_BIN","Value":"12345678"}]'

응답은 후속 호출을 위한 ARN과 키 검사 값(KCV)을 포함한 요청 파라미터를 다시 반영합니다.

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk", "KeyAttributes": { "KeyUsage": "TR31_E2_EMV_MKEY_INTEGRITY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "TDES_2KEY", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": true, "NoRestrictions": false } }, "KeyCheckValue": "08D7B4", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2024-03-07T06:41:46.648000-07:00", "UsageStartTimestamp": "2024-03-07T06:41:46.626000-07:00" } }

arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk와 같이 키를 KeyArn 나타내는를 기록해 둡니다. 다음 단계에서 이 작업을 수행합니다.

EMV MAC 생성

일반적인 흐름은 백엔드 프로세스가 EMV 스크립트(예: 카드 차단 해제)를 생성하고,이 명령(특정 카드 하나에 특정한 일회성 키를 생성함)을 사용하여 서명한 다음 MAC를 반환하는 것입니다. 그런 다음 명령 + MAC가 카드에 전송되어 적용됩니다. 카드에 명령을 보내는 것은 AWS Payment Cryptography 범위를 벗어납니다.

참고

이 명령은 암호화된 데이터(예: PIN)가 전송되지 않는 명령을 위한 것입니다. 이 명령을 호출하기 전에 EMV 암호화를이 명령과 결합하여 암호화된 데이터를 발급자 스크립트에 추가할 수 있습니다.

메시지 데이터

메시지 데이터에는 APDU 헤더와 명령이 포함됩니다. 구현에 따라 다를 수 있지만이 예제는 차단 해제를 위한 APDU 헤더(84 24 00 00 08) 다음에 ATC(0007)가 오는 다음 이전 트랜잭션의 ARQC(999E57FD0F47CACE)입니다. 서비스는이 필드의 내용을 검증하지 않습니다.

세션 키 파생 모드

이 필드는 세션 키 생성 방법을 정의합니다. EMV_COMMON_SESSION_KEY는 일반적으로 새 구현에 사용되는 반면, EMV2000 | AMEX | MASTERCARD_SESSION_KEY | VISA도 사용할 수 있습니다.

MajorKeyDerivationMode

EMV 정의 모드 A, B 또는 C. 모드 A가 가장 일반적이며 AWS Payment Cryptography는 현재 모드 A 또는 모드 B를 지원합니다.

PAN

일반적으로 칩 필드 5A 또는 ISO8583 필드 2에서 사용할 수 있지만 카드 시스템에서 검색할 수도 있는 계정 번호입니다.

PSN

카드 시퀀스 번호입니다. 사용하지 않는 경우 00을 입력합니다.

SessionKeyDerivationValue

세션별 파생 데이터입니다. 파생 체계에 따라 필드 9F26의 마지막 ARQC(ApplicationCryptogram) 또는 9F36의 마지막 ATC일 수 있습니다.

패딩

패딩은 자동으로 적용되며 ISO/IEC 9797-1 패딩 방법 2를 사용합니다.

$ aws payment-cryptography-data generate-mac --message-data 84240000080007999E57FD0F47CACE --key-identifier arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk --message-data 8424000008999E57FD0F47CACE0007 --generation-attributes EmvMac="{MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber='00',PrimaryAccountNumber='2235521304123282',SessionKeyDerivationMode=EMV_COMMON_SESSION_KEY,SessionKeyDerivationValue={ApplicationCryptogram='999E57FD0F47CACE'}}"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk", "KeyCheckValue": "08D7B4", "Mac":"5652EEDF83EA0D84" }