Générer un 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.

Générer un MAC

L'API Generate MAC est utilisée pour authentifier les données relatives aux cartes, telles que le suivi des données provenant d'une bande magnétique de carte, en utilisant des clés cryptographiques connues pour générer un code d'authentification de message (MAC) pour la validation des données entre les parties émettrices et réceptrices. Les données utilisées pour générer le MAC incluent des données de message, une clé de cryptage MAC secrète et un algorithme MAC pour générer une valeur MAC unique pour la transmission. Le destinataire du MAC utilisera les mêmes données de message MAC, la même clé de chiffrement MAC et le même algorithme pour reproduire une autre valeur MAC à des fins de comparaison et d'authentification des données. Même si un caractère du message change ou si la clé MAC utilisée pour la vérification n'est pas identique, la valeur MAC obtenue est différente. L'API prend en charge les clés de chiffrement MAC ISO 9797-1 Algorithme 1 et ISO 9797-1 Algorithme 3 MAC (utilisant une clé MAC statique et une clé DUKPT dérivée), HMAC et EMV MAC pour cette opération.

La valeur d'entrée pour message-data doit être des données HexBinary.

Pour plus d'informations sur toutes les options de cette API, consultez GenerateMacet VerifyMac.

Le paramètre optionnel mac-length vous permet de tronquer la valeur de sortie (bien que cela puisse également être fait dans votre code). Une longueur de 8 correspond à 8 octets ou 16 caractères hexadécimaux.

Les clés MAC peuvent être créées avec AWS Payment Cryptography en appelant CreateKeyou importées en appelant ImportKey.

Note

Les algorithmes CMAC et HMAC ne nécessitent pas de rembourrage. Tous les autres nécessitent que les données soient complétées en fonction de la taille de bloc de l'algorithme, qui est un multiple de 8 octets (16 caractères hexadécimaux) pour le TDES et de 16 octets (32 caractères hexadécimaux) pour l'AES.

Générer un HMAC

Dans cet exemple, nous allons générer 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 réglée sur TR31_M7_HMAC_KEY et KeyModesOfUse surGenerate. La longueur de hachage (par exemple 256) est définie lors de la création de la clé et ne peut pas être modifiée.

Le paramètre optionnel mac-length réduira le MAC de sortie, bien que cela puisse également être effectué en dehors du service. Cette valeur est en octets, donc une valeur de 16 suppose une chaîne hexadécimale de 32 caractères.

Exemple
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm=HMAC
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "2976E7", "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C" }

Générer un MAC à l'aide de l'algorithme ISO 9797-1 3

Dans cet exemple, nous allons générer un MAC à l'aide de l'algorithme ISO 9797-1 3 (Retail MAC) pour l'authentification des données de carte. La clé doit être KeyUsage réglée sur TR31_M3_ISO_9797_3_MAC_KEY et KeyModesOfUse surGenerate.

Exemple
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes="Algorithm=ISO9797_ALGORITHM3"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "KeyCheckValue": "2976EA", "Mac": "A8F7A73DAF87B6D0" }

Générer un MAC à l'aide de CMAC

Le CMAC est le plus souvent utilisé lorsque les touches sont en AES, mais il prend également en charge le TDES. Dans cet exemple, nous allons générer un MAC à l'aide du CMAC (algorithme ISO 9797-1 5) pour l'authentification des données de carte à l'aide d'une clé AES. La clé doit être KeyUsage réglée sur TR31_M6_ISO_9797_5_CMAC_KEY et KeyModesOfUse surGenerate.

Exemple
$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm="CMAC"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "C1EB8F", "Mac": "1F8C36E63F91E4E93DF7842BF5E2E5F7" }

Générer un MAC à l'aide de DUKPT CMAC

Dans cet exemple, nous allons générer un MAC à l'aide de DUKPT (Derived Unique Key Per Transaction) avec 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).

Exemple
$ aws payment-cryptography-data generate-mac --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" --generation-attributes="DukptCmac={KeySerialNumber="932A6E954ABB32DD00000001",Direction=BIDIRECTIONAL}"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "C1EB8F" }