Genera e verifica un MAC EMV - AWS Crittografia dei pagamenti

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Genera e verifica un MAC EMV

EMV MAC è un MAC che utilizza l'input di una chiave derivata EMV e quindi esegue un MAC ISO9797 -3 (Retail) sui dati risultanti. EMV MAC viene in genere utilizzato per inviare comandi a una scheda EMV, ad esempio per sbloccare gli script.

Nota

AWS La crittografia dei pagamenti non convalida il contenuto dello script. Consultate il manuale dello schema o della carta per i dettagli sui comandi specifici da includere.

Per ulteriori informazioni, MacAlgorithmEmvconsulta la guida alle API.

Crea la chiave

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

La risposta richiama i parametri della richiesta, tra cui un ARN per le chiamate successive e un 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" } }

Prendi nota di KeyArn ciò che rappresenta la chiave, ad esempio arn:aws:payment-cryptography:us-east-2: :key/pw3s6nl62t5ushfk. Ne hai bisogno nel passaggio successivo.

Genera un MAC EMV

Il flusso tipico prevede che un processo di backend generi uno script EMV (ad esempio card unblock), lo firmi utilizzando questo comando (che ricava una chiave monouso specifica per una scheda particolare) e quindi restituisca il MAC. Quindi il comando + MAC viene inviato alla scheda da applicare. L'invio del comando alla carta non rientra nell'ambito della crittografia dei AWS pagamenti.

Nota

Questo comando è destinato ai comandi quando non vengono inviati dati crittografati (come il PIN). EMV Encrypt può essere combinato con questo comando per aggiungere dati crittografati allo script dell'emittente prima di richiamare questo comando

Dati dei messaggi

I dati del messaggio includono l'intestazione e il comando APDU. Sebbene ciò possa variare in base all'implementazione, questo esempio è l'intestazione APDU per unblock (84 24 00 00 08), seguita da ATC (0007) e quindi ARQC della transazione precedente (999E57FD0F47CACE). Il servizio non convalida il contenuto di questo campo.

Modalità di derivazione della chiave di sessione

Questo campo definisce come viene generata la chiave di sessione. EMV_COMMON_SESSION_KEY viene generalmente utilizzato per le nuove implementazioni, mentre è possibile utilizzare anche EMV2 000 | AMEX | MASTERCARD_SESSION_KEY | VISA.

MajorKeyDerivationMode

EMV definisce la modalità A, B o C. La modalità A è la più comune e la crittografia dei pagamenti attualmente supporta la modalità A o la modalità B. AWS

PADELLA

Il numero di conto, generalmente disponibile nel campo del chip 5A o ISO8583 nel campo 2, ma può anche essere recuperato dal sistema della carta.

PSN

Il numero di sequenza della carta. Se non viene utilizzato, immettere 00.

SessionKeyDerivationValue

Si tratta dei dati di derivazione per sessione. Può essere l'ultimo ARQC (ApplicationCryptogram) dal campo 9F26 o l'ultimo ATC da 9F36 a seconda dello schema di derivazione.

Padding

Il padding viene applicato automaticamente e utilizza il metodo di riempimento 9797-1 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" }