Genere y verifique un MAC EMV - 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.

Genere y verifique un MAC EMV

EMV MAC es un MAC que utiliza la entrada de una clave derivada de EMV y, a continuación, realiza un MAC ISO9797 -3 (minorista) sobre los datos resultantes. El EMV MAC se utiliza normalmente para enviar comandos a una tarjeta EMV, por ejemplo, para desbloquear scripts.

nota

AWS La criptografía de pagos no valida el contenido del script. Consulte el manual de su esquema o tarjeta para obtener detalles sobre los comandos específicos que debe incluir.

Para obtener más información, consulta MacAlgorithmEmvla guía de la API.

Crea la clave

$ 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 respuesta refleja los parámetros de la solicitud, incluyendo un ARN para las llamadas posteriores y un valor de verificación clave (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" } }

Tome nota de lo KeyArn que representa la clave, por ejemplo arn:aws:payment-cryptography:us-east-2: :key/pw3s6nl62t5ushfk. Lo necesitará en el siguiente paso.

Genere un EMV MAC

Lo habitual es que un proceso interno genere un script EMV (por ejemplo, para desbloquear una tarjeta), lo firme con este comando (que obtiene una clave de un solo uso específica para una tarjeta en particular) y, a continuación, devuelva el MAC. A continuación, se envía el comando + MAC a la tarjeta que se va a aplicar. Enviar el comando a la tarjeta está fuera del ámbito de la criptografía de AWS pagos.

nota

Este comando está diseñado para comandos en los que no se envían datos cifrados (como el PIN). EMV Encrypt se puede combinar con este comando para añadir datos cifrados al script del emisor antes de ejecutar este comando

Datos del mensaje

Los datos del mensaje incluyen el encabezado y el comando de la APDU. Si bien esto puede variar según la implementación, en este ejemplo se utiliza el encabezado APDU para desbloquear (84 24 00 00 08), seguido del ATC (0007) y, a continuación, del ARQC de la transacción anterior (999E57FD0F47CACE). El servicio no valida el contenido de este campo.

Modo de derivación de claves de sesión

Este campo define cómo se genera la clave de sesión. Por lo general, se usa EMV_COMMON_SESSION_KEY para las nuevas implementaciones, mientras que EMV2 000 | AMEX | MASTERCARD_SESSION_KEY | VISA también se puede usar.

MajorKeyDerivationMode

EMV define el modo A, B o C. El modo A es el más común y la criptografía de pagos actualmente es compatible con el modo A o el modo B. AWS

PAN

El número de cuenta, normalmente disponible en el campo de chip 5A o en ISO8583 el campo 2, pero también se puede recuperar del sistema de tarjetas.

PSN

El número de secuencia de la tarjeta. Si no se utiliza, introduzca 00.

SessionKeyDerivationValue

Estos son los datos de derivación por sesión. Puede ser el último ARQC (ApplicationCryptogram) del campo 9F26 o el último ATC del 9F36, según el esquema de derivación.

Rellenado

El relleno se aplica automáticamente y utiliza el método 2 de relleno 9797-1. 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" }