무작위 핀과 연결된 PVV를 생성한 다음 값을 확인합니다. - AWS 결제 암호화

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

무작위 핀과 연결된 PVV를 생성한 다음 값을 확인합니다.

키(들) 생성

무작위 핀과 PVV를 생성하려면 PVV를 생성하기 위한 핀 확인 키(PVK)와 핀 암호화를 위한 핀 암호화 키라는 두 개의 키가 필요합니다. 핀 자체는 서비스 내에서 무작위로 안전하게 생성되며 두 키와 암호화 방식으로 관련이 없습니다.

PGK는 PVV 알고리즘 자체를 기반으로 하는 알고리즘 TDES_2KEY의 키여야 합니다. PEK는 TDES_2KEY, TDES_3KEY 또는 AES_128일 수 있습니다. 이 경우 PEK는 시스템 내에서 내부적으로 사용하기 위한 것이므로 AES_128이 좋습니다. PEK가 다른 시스템(예: 카드 네트워크, 인수자, ATMs)과의 교환에 사용되거나 마이그레이션의 일부로 이동 중인 경우 TDES_2KEY가 호환성을 위해 더 적절한 선택일 수 있습니다.

PEK 생성

$ aws payment-cryptography create-key \ --exportable --key-attributes KeyAlgorithm=AES_128,KeyUsage=TR31_P0_PIN_ENCRYPTION_KEY,\ KeyClass=SYMMETRIC_KEY,\ KeyModesOfUse='{Encrypt=true,Decrypt=true,Wrap=true,Unwrap=true}' --tags='[{"Key":"CARD_BIN","Value":"12345678"}]'

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

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/ivi5ksfsuplneuyt", "KeyAttributes": { "KeyUsage": "TR31_P0_PIN_ENCRYPTION_KEY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "AES_128", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": true, "Sign": false, "Verify": true, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "7CC9E2", "KeyCheckValueAlgorithm": "CMAC", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00", "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00" } }

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

PVK 생성

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

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

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

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

무작위 핀 생성, PVV 생성, 암호화된 PIN 및 PVV 반환

이 예제에서는 출력이 암호화된 (PinData.PinBlock) 및 PIN block (pinData.VerificationValue)가 되는 새로운 PVV (무작위) 4자리 핀을 생성합니다.PinData.PinBlock) pinData.VerificationValue). 키 입력은 PAN, Pin Verification Key(핀 생성 키라고도 함), Pin Encryption KeyPIN 블록 형식입니다.

이 명령을 사용하려면 키가 유형이어야 합니다TR31_V2_VISA_PIN_VERIFICATION_KEY.

$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2::key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2::key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes VisaPin={PinVerificationKeyIndex=1}
{ "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2::key/37y2tsl45p5zjbh2", "GenerationKeyCheckValue": "7F2363", "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2::key/ivi5ksfsuplneuyt", "EncryptionKeyCheckValue": "7CC9E2", "EncryptedPinBlock": "AC17DC148BDA645E", "PinData": { "VerificationValue": "5507" } }

PVV 메서드를 사용하여 암호화된 PIN 검증

이 예시에서는 지정된 PAN의 PIN을 검증해 보겠습니다. PIN은 일반적으로 카드 소지자 또는 사용자가 검증을 위해 제공하며 파일의 값과 비교됩니다(카드 소지자의 입력은 터미널 또는 기타 업스트림 공급자의 암호화된 값으로 제공됨). 이 입력을 검증하기 위해 런타임 시 다음 값 - 암호화된 핀, 입력 핀을 암호화하는 데 사용되는 키(종종 IWK라고 함), 확인할 PAN 값( PVV 또는 )도 제공됩니다PIN offset.

AWS Payment Cryptography가 핀을 검증할 수 있는 경우 http/200이 반환됩니다. 핀이 검증되지 않은 경우 http/400을 반환합니다.

$ aws payment-cryptography-data verify-pin-data --verification-key-identifier arn:aws:payment-cryptography:us-east-2::key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2::key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=5507}" --encrypted-pin-block AC17DC148BDA645E
{ "VerificationKeyArn": "arn:aws:payment-cryptography:us-east-2::key/37y2tsl45p5zjbh2", "VerificationKeyCheckValue": "7F2363", "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2::key/ivi5ksfsuplneuyt", "EncryptionKeyCheckValue": "7CC9E2", }