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 und verifizieren Sie einen EMV-MAC
EMV MAC ist MAC, der die Eingabe eines von EMV abgeleiteten Schlüssels verwendet und dann anhand der resultierenden Daten einen ISO9797 -3-MAC-Wert (Retail) durchführt. EMV MAC wird in der Regel verwendet, um Befehle an eine EMV-Karte zu senden, z. B. Entsperrskripte.
Anmerkung
AWS Die Zahlungskryptografie validiert den Inhalt des Skripts nicht. Einzelheiten zu bestimmten Befehlen, die Sie hinzufügen sollten, finden Sie in Ihrem System oder im Kartenhandbuch.
Weitere Informationen finden Sie MacAlgorithmEmvim API-Leitfaden.
Erstellen Sie den Schlüssel
$
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"}]'
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::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" } }
Notieren Sie sich den Wert, der den Schlüssel darstelltKeyArn
, zum Beispiel arn:aws:payment-cryptography:us-east-2: :key/pw3s6nl62t5ushfk. Das brauchst du im nächsten Schritt.
Generieren Sie einen EMV-MAC
Der typische Ablauf besteht darin, dass ein Backend-Prozess ein EMV-Skript generiert (z. B. Card Unlock), es mit diesem Befehl signiert (der einen einmaligen Schlüssel ableitet, der für eine bestimmte Karte spezifisch ist) und dann den MAC zurückgibt. Anschließend wird der Befehl + MAC zur Anwendung an die Karte gesendet. Das Senden des Befehls an die Karte fällt nicht in den Anwendungsbereich der AWS Zahlungskryptografie.
Anmerkung
Dieser Befehl ist für Befehle vorgesehen, bei denen keine verschlüsselten Daten (z. B. PIN) gesendet werden. EMV Encrypt kann mit diesem Befehl kombiniert werden, um verschlüsselte Daten an das Aussteller-Skript anzuhängen, bevor dieser Befehl aufgerufen wird
- Nachrichtendaten
Zu den Nachrichtendaten gehören der APDU-Header und der Befehl. Dies kann zwar je nach Implementierung variieren, aber dieses Beispiel ist der APDU-Header für das Entsperren (84 24 00 00 08), gefolgt von ATC (0007) und dann ARQC der vorherigen Transaktion (999E57FD0F47CACE). Der Dienst validiert den Inhalt dieses Felds nicht.
- Modus zur Ableitung von Sitzungsschlüsseln
Dieses Feld definiert, wie der Sitzungsschlüssel generiert wird. EMV_COMMON_SESSION_KEY wird im Allgemeinen für die neuen Implementierungen verwendet, während EMV2 000 | AMEX | MASTERCARD_SESSION_KEY | VISA ebenfalls verwendet werden kann.
- MajorKeyDerivationMode
EMV definiert Modus A, B oder C. Modus A ist am gebräuchlichsten, und Zahlungskryptografie unterstützt derzeit Modus A oder Modus B. AWS
- PFANNE
Die Kontonummer, die normalerweise in Chipfeld 5A oder ISO8583 Feld 2 verfügbar ist, aber auch aus dem Kartensystem abgerufen werden kann.
- PSN
Die Kartensequenznummer. Falls nicht verwendet, geben Sie 00 ein.
- SessionKeyDerivationValue
Dies sind die Ableitungsdaten pro Sitzung. Je nach Ableitungsschema kann es sich entweder um den letzten ARQC (ApplicationCryptogram) aus Feld 9F26 oder um den letzten ATC aus 9F36 handeln.
- Padding
Die Polsterung wird automatisch angewendet und verwendet die 9797-1-Padding-Methode 2. ISO/IEC
$
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" }