Visa-spezifische Funktionen - AWS Kryptografie im Zahlungsverkehr

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.

Visa-spezifische Funktionen

ARQC -/ CVN18CVN22

CVN18 und CVN22 nutzen die CSK-Methode der Schlüsselableitung. Die genauen Transaktionsdaten variieren zwischen diesen beiden Methoden. Einzelheiten zur Erstellung des Transaktionsdatenfeldes finden Sie in der Schemadokumentation.

ARQC - CVN10

CVN10 ist eine ältere Visa-Methode für EMV-Transaktionen, die die Ableitung pro Kartenschlüssel anstelle der Sitzungsableitung (pro Transaktion) verwendet und außerdem eine andere Nutzlast verwendet. Für weitere Informationen zum Inhalt der Payload wenden Sie sich bitte an das System.

Schlüssel erstellen

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN10"},{"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/pw3s6nl62t5ushfk", "KeyAttributes": { "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS", "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" } }

Notieren Sie sich den Wert, der den Schlüssel darstelltKeyArn, zum Beispiel arn:aws:payment-cryptography:us-east - 2:111122223333:key/pw3s6nl62t5ushfk. Das benötigen Sie im nächsten Schritt.

Validieren Sie den ARQC

Beispiel

In diesem Beispiel validieren wir einen mit Visa generierten ARQC. CVN10

Wenn AWS Payment Cryptography den ARQC validieren kann, wird ein http/200 zurückgegeben. Wenn der ARQC nicht validiert wird, gibt er eine http/400-Antwort zurück.

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

3DS CAV V7

Für Visa Secure (3DS) -Transaktionen wird vom Access Control Server (ACS) des Ausstellers ein CAVV (Cardholder Authentication Verification Value) generiert. Der CAVV ist ein Nachweis dafür, dass die Authentifizierung des Karteninhabers stattgefunden hat. Er ist für jede Authentifizierungstransaktion eindeutig und wird vom Acquirer in der Autorisierungsnachricht angegeben. CAVV v7 bindet zusätzliche Daten über die Transaktion an die Genehmigung, darunter Elemente wie den Namen des Händlers, den Kaufbetrag und das Kaufdatum. Auf diese Weise handelt es sich praktisch um einen kryptografischen Hash der Transaktions-Payload.

Kryptografisch verwendet CAVV V7 den CVV-Algorithmus, aber die Eingaben waren allesamt changed/repurposed. Please consult appropriate third party/Visa Dokumentationen darüber, wie die Eingaben erzeugt werden, um eine CAVV V7-Nutzlast zu generieren.

Erstellen Sie den Schlüssel

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CAVV-V7"},{"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/dnaeyrjgdjjtw6dk", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_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": "F3FB13", "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 den Wert, der den Schlüssel darstelltKeyArn, zum Beispiel arn:aws:payment-cryptography:us-east - 2:111122223333:key/dnaeyrjgdjjtw6dk. Das benötigen Sie im nächsten Schritt.

Generieren Sie ein CAVV V7

Beispiel

In diesem Beispiel werden wir ein CAVV V7 für eine bestimmte Transaktion mit Eingaben generieren, wie in den Spezifikationen angegeben. Beachten Sie, dass bei diesem Algorithmus Felder wiederverwendet/wiederverwendet werden können. Es sollte also nicht davon ausgegangen werden, dass die Feldbezeichnungen mit den Eingaben übereinstimmen.

Alle verfügbaren Parameter finden Sie unter CardVerificationValue1 im API-Referenzhandbuch.

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk", "KeyCheckValue": "F3FB13", "ValidationData": "491" }

Validieren Sie CAVV V7

Beispiel

Bei der Validierung handelt es sich bei den Eingaben um CVK, die berechneten Eingabewerte und das CAVV, das während der Transaktion zur Validierung bereitgestellt wurde.

Alle verfügbaren Parameter finden Sie unter CardVerificationValue1 im API-Referenzhandbuch.

Anmerkung

CAVV ist kein vom Benutzer eingegebener Wert (like CVV2), sondern wird vom Emittenten ACS berechnet. Es sollte geprüft werden, ob der Wert immer validiert werden sollte, wenn er angegeben wird.

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431} --validation-data 491
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk", "KeyCheckValue": "F3FB13", "ValidationData": "491" }

dCVV (Wert für die dynamische Kartenverifizierung) - CVN17

dCVV (dynamic Card Verification Value) ist ein visaspezifisches dynamisches Kryptogramm, das für kontaktlose EMV-Transaktionen verwendet wird. Es ist als Early EMV bekannt und bietet erhöhte Sicherheit, indem es für jede Transaktion einen eindeutigen Bestätigungswert generiert. Das DCvV verwendet Eingaben wie die primäre Kontonummer (PAN), die PAN-Sequenznummer (PSN), den Application Transaction Counter (ATC), eine unvorhersehbare Zahl und Trackdaten. Es wird immer noch an einigen Stellen verwendet, wurde aber größtenteils durch andere Algorithmen wie ersetzt. CVN18

Alle verfügbaren Parameter finden Sie DynamicCardVerificationValueim API-Referenzhandbuch.

Schlüssel erstellen

$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"DCVV"},{"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/mw7dn3qxvkfh8ztc", "KeyAttributes": { "KeyUsage": "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS", "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": "A8E4D2", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2025-02-02T11:45:30.648000-08:00", "UsageStartTimestamp": "2025-02-02T11:45:30.626000-08:00" } }

Notieren Sie sich den Wert, der den Schlüssel darstelltKeyArn, zum Beispiel arn:aws:payment-cryptography:us-east - 2:111122223333:key/mw7dn3qxvkfh8ztc. Das benötigen Sie im nächsten Schritt.

Generieren Sie ein DCvV

Beispiel

In diesem Beispiel werden wir einen dCVV für eine kontaktlose EMV-Transaktion generieren. Zu den Eingaben gehören die PAN, die PAN-Sequenznummer, der Anwendungstransaktionszähler, eine unvorhersehbare Zahl und Trackdaten.

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \ --primary-account-number=5111112627662122 \ --generation-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}' \ --validation-data-length 5
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc", "KeyCheckValue": "A8E4D2", "ValidationData": "36667" }

DCvV validieren

Beispiel

In diesem Beispiel validieren wir einen DCvV, der während einer Transaktion bereitgestellt wurde. Dieselben Eingaben, die für die Generierung verwendet wurden, müssen für die Validierung bereitgestellt werden.

Wenn AWS Payment Cryptography validiert werden kann, wird ein http/200 zurückgegeben. Wenn der Wert nicht validiert wird, wird eine http/400-Antwort zurückgegeben.

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \ --primary-account-number=5111112627662122 \ --validation-data=36667 \ --verification-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc", "KeyCheckValue": "A8E4D2" }