Generar MAC - AWS Criptografía de pagos

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Generar MAC

La API Generate MAC se utiliza para autenticar los datos relacionados con las tarjetas, como rastrear los datos de una banda magnética de tarjetas, mediante el uso de claves criptográficas conocidas para generar un MAC (código de autenticación de mensajes) para la validación de los datos entre las partes remitentes y receptoras. Los datos utilizados para generar el MAC incluyen los datos de los mensajes, la clave de cifrado MAC secreta y el algoritmo MAC para generar un valor MAC único para la transmisión. La parte receptora del MAC utiliza los mismos datos del mensaje MAC, la misma clave de cifrado MAC y el mismo algoritmo para reproducir otro valor MAC con fines de comparación y autenticación de datos. Aunque cambie un carácter del mensaje o la clave MAC utilizada para la verificación no sea idéntica, el valor MAC resultante será diferente. La API admite las claves de cifrado MAC HMAC y EMV MAC (que utilizan una clave MAC estática y una clave DUKPT derivada) del algoritmo 1 de la ISO 9797-1 y el algoritmo 3 de la ISO 9797-1.

El valor de entrada para message-data debe ser un dato hexBinary.

Para obtener más información sobre todas las opciones de esta API, consulte y. GenerateMacVerifyMac

El parámetro opcional mac-length te permite truncar el valor de salida (aunque esto también se puede hacer dentro del código). Una longitud de 8 se refiere a 8 bytes o 16 caracteres hexadecimales.

Las claves MAC se pueden crear con criptografía AWS de pago mediante una llamada CreateKeyo importarse mediante una llamada ImportKey.

nota

Los algoritmos CMAC y HMAC no requieren relleno. Todos los demás requieren que los datos se rellenen hasta el tamaño de bloque del algoritmo, que es múltiplos de 8 bytes (16 caracteres hexadecimales) para el TDES y 16 bytes (32 caracteres hexadecimales) para el AES.

Genera HMAC

En este ejemplo, generaremos un HMAC (código de autenticación de mensajes basado en hash) para la autenticación de los datos de la tarjeta mediante el algoritmo HMAC HMAC_SHA256 y la clave de cifrado HMAC. La clave debe estar KeyUsage configurada en TR31_M7_HMAC_KEY y KeyModesOfUse en. Generate La longitud del hash (por ejemplo, 256) se define cuando se crea la clave y no se puede modificar.

El parámetro opcional mac-length recortará el MAC de salida, aunque también se puede realizar fuera del servicio. Este valor está en bytes, por lo que un valor de 16 esperará una cadena hexadecimal de 32 de longitud.

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

Genere el MAC mediante el algoritmo ISO 9797-1 3

En este ejemplo, generaremos un MAC utilizando el algoritmo 3 de la norma ISO 9797-1 (MAC minorista) para la autenticación de los datos de las tarjetas. La clave debe estar KeyUsage configurada en TR31_M3_ISO_9797_3_MAC_KEY y KeyModesOfUse en. Generate

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

Genere MAC mediante CMAC

El CMAC se usa más comúnmente cuando las claves son AES, pero también es compatible con el TDES. En este ejemplo, generaremos un MAC mediante el CMAC (algoritmo 5 de la norma ISO 9797-1) para la autenticación de los datos de la tarjeta con una clave AES. La clave debe estar KeyUsage configurada en y en. TR31_M6_ISO_9797_5_CMAC_KEY KeyModesOfUse Generate

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

Genere MAC mediante DUKPT CMAC

En este ejemplo, generaremos una MAC utilizando la DUKPT (clave única derivada por transacción) con la CMAC para la autenticación de los datos de la tarjeta. La clave debe estar KeyUsage establecida TR31_B0_BASE_DERIVATION_KEY y establecida en KeyModesOfUse DeriveKey true. Las claves DUKPT obtienen una clave única para cada transacción mediante una clave de derivación básica (BDK) y un número de serie de la clave (KSN).

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