기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
무작위 핀과 연결된 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 Key 및 PIN 블록 형식입니다.
이 명령을 사용하려면 키가 유형이어야 합니다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", }