Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Generieren Sie eine zufällige PIN und das zugehörige PVV und überprüfen Sie dann den Wert
Themen
Erstellen Sie den oder die Schlüssel
Um eine zufällige PIN und den PVV zu generieren, benötigen Sie zwei Schlüssel, einen Pin-Bestätigungsschlüssel (PVK) zum Generieren des PVV und einen Pin-Verschlüsselungsschlüssel zum Verschlüsseln des Pins. Die PIN selbst wird per Zufallsprinzip sicher innerhalb des Dienstes generiert und steht kryptografisch mit keinem der beiden Schlüssel in Beziehung.
Das PGK muss ein Schlüssel des Algorithmus TDES_2KEY sein, der auf dem PVV-Algorithmus selbst basiert. Ein PEK kann TDES_2KEY, TDES_3KEY oder AES_128 sein. In diesem Fall wäre AES_128 eine gute Wahl, da das PEK für den internen Gebrauch in Ihrem System vorgesehen ist. Wenn ein PEK für den Austausch mit anderen Systemen (z. B. Kartennetzwerken, Acquirern, Geldautomaten) verwendet wird oder im Rahmen einer Migration verschoben wird, ist TDES_2KEY aus Kompatibilitätsgründen möglicherweise die geeignetere Wahl.
Erstellen Sie das 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"}]'
Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).
{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333: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" } }
Notieren Sie sich das, was den Schlüssel darstelltKeyArn, zum Beispiel arn:aws:payment-cryptography:us-east- 2:111122223333:. key/ivi5ksfsuplneuyt Das brauchst du im nächsten Schritt.
Erstellen Sie das 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"}]'
Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).
{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333: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" } }
Notieren Sie sich das, was den Schlüssel darstelltKeyArn, zum Beispiel arn:aws:payment-cryptography:us-east- 2:111122223333:. key/ov6icy4ryas4zcza Das brauchst du im nächsten Schritt.
Generieren Sie eine zufällige PIN, generieren Sie PVV und geben Sie die verschlüsselte PIN und PVV zurück
Beispiel
In diesem Beispiel generieren wir einen neuen (zufälligen) 4-stelligen Pin, wobei die Ausgänge ein verschlüsselter PIN block (PinData.PinBlock) und ein PVV (PinData.VerificationValue) sind. Die wichtigsten Eingaben sind PAN das Pin Verification Key (auch als PIN-Generierungsschlüssel bekannt), das Pin Encryption Key und das PIN-Block PIN-Blockformat.
Für diesen Befehl muss der Schlüssel vom Typ A seinTR31_V2_VISA_PIN_VERIFICATION_KEY.
$aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333: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:111122223333:key/37y2tsl45p5zjbh2", "GenerationKeyCheckValue": "7F2363", "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt", "EncryptionKeyCheckValue": "7CC9E2", "EncryptedPinBlock": "AC17DC148BDA645E", "PinData": { "VerificationValue": "5507" } }
Validieren Sie die verschlüsselte PIN mit der PVV-Methode
Beispiel
In diesem Beispiel validieren wir eine PIN für eine bestimmte PAN. Die PIN wird in der Regel vom Karteninhaber oder Benutzer während der Transaktion zur Validierung bereitgestellt und mit dem hinterlegten Wert verglichen (die Eingabe des Karteninhabers wird als verschlüsselter Wert vom Terminal oder einem anderen Upstream-Anbieter bereitgestellt). Um diese Eingabe zu validieren, werden zur Laufzeit auch die folgenden Werte bereitgestellt: Der verschlüsselte Pin, der Schlüssel, der zum Verschlüsseln des Eingabe-Pins verwendet wird (oft als IWK bezeichnet), PAN und der Wert, mit dem verifiziert werden soll (entweder ein PVV oderPIN offset).
Wenn AWS Payment Cryptography die PIN validieren kann, wird eine http/200 zurückgegeben. Wenn die PIN nicht validiert wird, wird eine http/400 zurückgegeben.
$aws payment-cryptography-data verify-pin-data --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333: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:111122223333:key/37y2tsl45p5zjbh2", "VerificationKeyCheckValue": "7F2363", "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt", "EncryptionKeyCheckValue": "7CC9E2", }