Vérifiez le MAC - AWS Cryptographie des paiements

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Vérifiez le MAC

L'API Verify MAC est utilisée pour vérifier le MAC (code d'authentification des messages) pour l'authentification des données liées à la carte. Il doit utiliser la même clé de chiffrement que celle utilisée lors de la génération du MAC pour reproduire la valeur MAC à des fins d'authentification. La clé de chiffrement MAC peut être créée avec AWS Payment Cryptography en appelant CreateKeyou importée par appel ImportKey. L'API prend en charge les clés de chiffrement DUKPT MAC, HMAC et EMV MAC pour cette opération.

Si la valeur est vérifiée, le paramètre de réponse MacDataVerificationSuccessful sera renvoyéHttp/200, sinon Http/400 avec un message l'indiquantMac verification failed.

Vérifiez HMAC

Dans cet exemple, nous allons vérifier un code HMAC (Hash-Based Message Authentication Code) pour l'authentification des données de carte à l'aide de l'algorithme HMAC HMAC_SHA256 et de la clé de cryptage HMAC. La clé doit être KeyUsage définie sur TR31_M7_HMAC_KEY et KeyModesOfUse Verify définie sur true.

Exemple
$ aws payment-cryptography-data verify-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ --mac ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C \ --verification-attributes Algorithm=HMAC_SHA256
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "2976E7" }

Vérifiez le MAC à l'aide de DUKPT CMAC

Dans cet exemple, nous allons vérifier un MAC à l'aide du DUKPT (Derived Unique Key Per Transaction) avec le CMAC pour l'authentification des données de carte. La clé doit être KeyUsage définie sur TR31_B0_BASE_DERIVATION_KEY et KeyModesOfUse DeriveKey définie sur true. Les clés DUKPT dérivent une clé unique pour chaque transaction à l'aide d'une clé de dérivation de base (BDK) et d'un numéro de série de clé (KSN). La valeur de DukptKeyVariant doit correspondre entre l'expéditeur et le destinataire. REQUEST est généralement utilisé d'un terminal à l'autre, VERIFY d'un backend à un autre et BIDIRECTIONAL lorsqu'une seule touche est utilisée dans les deux sens.

Exemple
$ aws payment-cryptography-data verify-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ --mac D8E804EE74BF1D909A2C01C0BDE8EF34 \ --verification-attributes DukptCmac='{"KeySerialNumber":"932A6E954ABB32DD00000001","DukptKeyVariant":"BIDIRECTIONAL"}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "C1EB8F" }