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.
Cómo empezar con la criptografía AWS de pagos
Para empezar con la criptografía de AWS pagos, primero querrá crear claves y, después, utilizarlas en diversas operaciones criptográficas. El siguiente tutorial proporciona un caso de uso sencillo para generar una clave que se utilizará para CVV2 generar/verificar valores. Para probar otros ejemplos y explorar los patrones de implementación en AWS, visite el siguiente taller de criptografía de AWS pagos
En este tutorial, se explica cómo crear una clave única y cómo realizar operaciones criptográficas con ella. Después, borra la clave si ya no la desea, completando el ciclo de vida de la clave.
aviso
Los ejemplos de esta guía del usuario pueden utilizar valores de muestra. Recomendamos encarecidamente no utilizar valores de muestra en un entorno de producción, como los números de serie clave.
Temas
Requisitos previos
Antes de comenzar, asegúrese de que:
-
Tiene permiso para acceder al servicio. Para obtener más información, consulte Políticas de IAM.
-
Ha instalado AWS CLI. También puede utilizar AWS SDKs
o acceder AWS APIsa la criptografía de AWS pagos, pero en las instrucciones de este tutorial se utiliza la AWS CLI.
Paso 1: crear una clave
El primer paso es crear una clave. Para este tutorial, debe crear una clave CVK 3DES de doble longitud (2KEY TDES) para generar y verificar los valores CVV/. CVV2
$
aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}'
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:111122223333:key/tqv5yij6wtxx64pi", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "TDES_2KEY", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": true, "Sign": false, "Verify": true, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "CADDA1", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00", "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00" } }
Tome nota de KeyArn
que representa la clave, por ejemplo, arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi. Lo necesitará en el siguiente paso.
Paso 2: Genere un valor con la clave CVV2
En este paso, generas una CVV2 para una fecha de caducidad determinada PAN
utilizando la clave del paso 1.
$
aws payment-cryptography-data generate-card-validation-data \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --primary-account-number=171234567890123 \ --generation-attributes CardVerificationValue2={CardExpiryDate=0123}
{ "CardDataGenerationKeyCheckValue": "CADDA1", "CardDataGenerationKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "CardDataType": "CARD_VERIFICATION_VALUE_2", "CardDataValue": "144" }
Tome nota de cardDataValue
, en este caso el número de tres dígitos 144. Lo necesitará en el siguiente paso.
Paso 3: verificar el valor generado en el paso 2
En este ejemplo, validas el dato CVV2 del paso 2 con la clave que creaste en el paso 1.
Ejecute el siguiente comando para validar el CVV2.
$
aws payment-cryptography-data verify-card-validation-data \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --primary-account-number=171234567890123 \ --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \ --validation-data 144
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "CADDA1" }
El servicio devuelve una respuesta HTTP de 200 para indicar que ha validado la CVV2.
Paso 4: realizar una prueba negativa
En este paso, se crea una prueba negativa en la que no CVV2 es correcta ni se valida. Intenta validar un error CVV2 con la clave que creaste en el paso 1. Se trata de una operación esperada, por ejemplo, si el titular de la tarjeta ha introducido un error CVV2 al finalizar la compra.
$
aws payment-cryptography-data verify-card-validation-data \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --primary-account-number=171234567890123 \ --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \ --validation-data 999
Card validation data verification failed.
El servicio devuelve una respuesta HTTP de 400 con el mensaje “Fallo en la verificación de los datos de validación de la tarjeta” y el motivo INVALID_VALIDATION_DATA.
Paso 5: eliminación (opcional)
Ahora puede eliminar la clave que creó en el paso 1. Para minimizar los cambios irrecuperables, el periodo de eliminación de claves predeterminado es de siete de días.
$
aws payment-cryptography delete-key \ --key-identifier=arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi
{ "Key": { "CreateTimestamp": "2022-10-27T08:27:51.795000-07:00", "DeletePendingTimestamp": "2022-11-03T13:37:12.114000-07:00", "Enabled": true, "Exportable": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyAttributes": { "KeyAlgorithm": "TDES_3KEY", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": true, "DeriveKey": false, "Encrypt": true, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": true, "Verify": false, "Wrap": true }, "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" }, "KeyCheckValue": "CADDA1", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "KeyState": "DELETE_PENDING", "UsageStartTimestamp": "2022-10-27T08:27:51.753000-07:00" } }
Tome nota de dos campos en la salida. El deletePendingTimestamp
se fija por defecto para los siete días posteriores. El KeyState está establecido en DELETE_PENDING
. Puede cancelar esta eliminación en cualquier momento antes de la hora de eliminación programada llamando al restore-key
.