View a markdown version of this page

Exportar claves - AWS Payment Cryptography

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.

Exportar claves

Exporte claves simétricas

importante

Asegúrese de tener la versión más reciente de AWS CLI antes de empezar. Para actualizar, consulte Instalación de AWS CLI.

Exporte claves mediante técnicas asimétricas () TR-34

TR-34 usa criptografía asimétrica RSA para cifrar y firmar claves simétricas para su intercambio. El cifrado protege la confidencialidad, mientras que la firma garantiza la integridad. Al exportar las claves, la criptografía de AWS pagos actúa como el host de distribución de claves (KDH) y el sistema de destino se convierte en el dispositivo receptor de claves (KRD).

nota

Si su HSM admite la TR-34 exportación pero no la TR-34 importación, le recomendamos que primero establezca una KEK compartida entre su HSM y Payment Cryptography. AWS TR-34 A continuación, puede utilizarla TR-31 para transferir las claves restantes.

  1. Inicializa el proceso de exportación

    Ejecute get-parameters-for-export para generar un par de claves para la exportación de claves. Usamos este par de claves para firmar la TR-34 carga útil. En TR-34 terminología, este es el certificado de firma de KDH. Los certificados son de corta duración y solo son válidos durante el período especificado en. ParametersValidUntilTimestamp

    nota

    Todos los certificados están codificados en base64.

    ejemplo
    $ aws payment-cryptography get-parameters-for-export \ --signing-key-algorithm RSA_2048 \ --key-material-type TR34_KEY_BLOCK
    { "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS....", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" }
  2. Importe el AWS Certificado de criptografía de pago a su sistema de recepción

    Importe la cadena de certificados del paso 1 a su sistema receptor.

  3. Configure los certificados de su sistema receptor

    Para proteger la carga útil transmitida, la parte emisora (KDH) la cifra. Su sistema receptor (normalmente su HSM o el HSM de su socio) necesita generar una clave pública y crear un certificado de clave pública. X.509 Puedes usarlo AWS Private CA para generar certificados, pero puedes usar cualquier autoridad de certificación.

    Una vez que tenga el certificado, importe el certificado raíz a AWS Payment Cryptography mediante el ImportKey comando. Establezca KeyMaterialType en RootCertificatePublicKey y KeyUsageType en TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.

    Lo utilizamos TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE KeyUsageType porque es la clave raíz que firma el certificado hoja. No necesitas importar los certificados modelo a AWS Payment Cryptography; puedes pasarlos en línea.

    nota

    Si ya importó el certificado raíz, omita este paso. Para los certificados intermedios, utiliceTrustedCertificatePublicKey.

  4. Exporte su clave

    Llama a la ExportKey API con el KeyMaterialType valor establecido enTR34_KEY_BLOCK. Debe proporcionar:

    • El keyARN de la CA raíz del paso 3 como CertificateAuthorityPublicKeyIdentifier

    • El certificado hoja del paso 3 como WrappingKeyCertificate

    • El keyARN (o alias) de la clave que desea exportar como --export-key-identifier

    • El token de exportación del paso 1

    ejemplo
    $ aws payment-cryptography export-key \ --export-key-identifier "example-export-key" \ --key-material '{"Tr34KeyBlock": { \ "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/4kd6xud22e64wcbk", \ "ExportToken": "export-token-au7pvkbsq4mbup6i", \ "KeyBlockFormat": "X9_TR34_2012", \ "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFXZ0F3SUJBZ0lSQ..."} \ }'
    { "WrappedKey": { "KeyMaterial": "308205A106092A864886F70D010702A08205923082058...", "WrappedKeyMaterialFormat": "TR34_KEY_BLOCK" } }

Exporte las claves mediante técnicas asimétricas (ECDH)

AWS Proceso de importación de claves de cifrado de claves de criptografía de pagos mediante ECDH

Elliptic Curve Diffie-Hellman (ECDH) utiliza la criptografía asimétrica ECC para establecer una clave compartida entre dos partes sin necesidad de intercambiar claves previamente. Las claves ECDH son efímeras, por lo que Payment Cryptography no las almacena. AWS En este proceso, se obtiene una única vez mediante el KBPK/KEK ECDH. Esa clave derivada se usa inmediatamente para empaquetar la clave que desea transferir, que puede ser otra clave KBPK, BDK, IPEK u otros tipos de clave.

Al exportar, la criptografía de AWS pagos se denomina Parte U (iniciador) y el sistema receptor se denomina Parte V (Respondedor).

nota

El ECDH se puede utilizar para intercambiar cualquier tipo de clave simétrica, pero es el único método que se puede utilizar para transferir AES-256 claves si aún no se ha establecido una KEK.

  1. Genere un par de claves ECC

    Llame create-key para crear un par de claves ECC para este proceso. Esta API genera un par de claves para la importación o exportación de claves. En el momento de la creación, especifique qué tipo de claves se pueden derivar con esta clave ECC. Cuando utilice el ECDH para intercambiar (empaquetar) otras claves, utilice un valor de. TR31_K1_KEY_BLOCK_PROTECTION_KEY

    nota

    Si bien el ECDH de bajo nivel genera una clave derivada que se puede usar para cualquier propósito, la criptografía de AWS pagos limita la reutilización accidental de una clave para varios propósitos al permitir que una clave solo se use para un único tipo de clave derivada.

    $ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=ECC_NIST_P256,KeyUsage=TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT,KeyClass=ASYMMETRIC_KEY_PAIR,KeyModesOfUse='{DeriveKey=true}' --derive-key-usage "TR31_K1_KEY_BLOCK_PROTECTION_KEY"
    { "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "KeyAttributes": { "KeyUsage": "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "KeyClass": "ASYMMETRIC_KEY_PAIR", "KeyAlgorithm": "ECC_NIST_P256", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": true, "NoRestrictions": false } }, "KeyCheckValue": "2432827F", "KeyCheckValueAlgorithm": "CMAC", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2025-03-28T22:03:41.087000-07:00", "UsageStartTimestamp": "2025-03-28T22:03:41.068000-07:00" } }
  2. Obtenga un certificado de clave pública

    Llame get-public-key-certificate para recibir la clave pública en forma de X.509 certificado firmado por la autoridad emisora de certificados de su cuenta que sea específico para la criptografía de AWS pagos en una región específica.

    ejemplo
    $ aws payment-cryptography get-public-key-certificate \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv
    { "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }
  3. Instala el certificado público en el sistema de contraparte (Parte V)

    Con muchos HSM, es necesario instalar, cargar o confiar en el certificado público generado en el paso 1 para establecer las claves. Esto puede incluir toda la cadena de certificados o solo el certificado raíz, según el HSM. Consulte la documentación del HSM para obtener instrucciones específicas.

  4. Genere un par de claves ECC en el sistema fuente y proporcione una cadena de certificados a AWS Payment Cryptography

    En el ECDH, cada parte genera un par de claves y acuerda una clave común. Para que la criptografía de AWS pagos obtenga la clave, necesita la clave pública de la contraparte en formato de clave X.509 pública.

    Al transferir claves desde un HSM, cree un par de claves en ese HSM. En el caso de los HSM que admiten bloques de claves, el encabezado de la clave tendrá un aspecto similar al. D0144K3EX00E0000 Al crear el certificado, normalmente se genera una CSR en el HSM y, a continuación, el HSM, un tercero o un servicio similar AWS Private CA puede generar el certificado.

    Para cargar el certificado raíz en AWS Payment Cryptography, utilice el importKey comando con KeyMaterialType de y de. RootCertificatePublicKey KeyUsageType TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE

    Para los certificados intermedios, utilice el importKey comando con KeyMaterialType de TrustedCertificatePublicKey y KeyUsageType deTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Repita este proceso para varios certificados intermedios. Utilice el último certificado importado KeyArn de la cadena como entrada para los siguientes comandos de exportación.

    nota

    No importe el certificado hoja. Introdúzcalo directamente durante el comando de exportación.

  5. Derive la clave y exporta la clave de AWS Payment Cryptography

    Al exportar, el servicio obtiene una clave mediante el ECDH y, a continuación, la utiliza inmediatamente como KBPK para empaquetar la clave que se va a utilizar para la exportación. TR-31 La clave que se va a exportar puede ser cualquier clave TDES o AES sujeta a combinaciones TR-31 válidas, siempre que la clave de ajuste sea al menos tan segura como la clave que se va a exportar.

    $ aws payment-cryptography export-key \ --export-key-identifier arn:aws:payment-cryptography:us-west-2:529027455495:key/e3a65davqhbpjm4h \ --key-material='{ "DiffieHellmanTr31KeyBlock": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5", "DerivationData": { "SharedInformation": "ADEF567890" }, "DeriveKeyAlgorithm": "AES_256", "KeyDerivationFunction": "NIST_SP800", "KeyDerivationHashAlgorithm": "SHA_256", "PrivateKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FUR..." } }'
    { "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "D0112K1TB00E00007012724C0FAAF64DA50E2FF4F9A94DF50441143294E0E995DB2171554223EAA56D078C4CFCB1C112B33BBF05597EE700", "KeyCheckValue": "E421AD", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }
  6. Obtenga una clave única utilizando el ECDH en el HSM de la Parte V

    Muchos HSM y sistemas relacionados admiten el establecimiento de claves mediante el ECDH. Especifique la clave pública del paso 1 como clave pública y la clave del paso 3 como clave privada. Para conocer las opciones permitidas, como los métodos de derivación, consulta la guía de la API.

    nota

    Los parámetros de derivación, como el tipo de hash, deben coincidir exactamente en ambos lados. De lo contrario, generará una clave diferente.

  7. Importar la clave al sistema de destino

    Por último, importe la clave de AWS Payment Cryptography mediante TR-31 comandos estándar. Especifique la clave derivada del ECDH como KBPK y utilice el bloque de TR-31 claves que se exportó anteriormente desde AWS Payment Cryptography.

Exporte las claves mediante técnicas asimétricas (RSA Wrap)

Si TR-34 no está disponible, puedes usar RSA wrap/unwrap para el intercambio de claves. Del mismo modo TR-34, este método utiliza la criptografía asimétrica RSA para cifrar las claves simétricas. Sin embargo, RSA Wrap no incluye:

  • Firma de payload por parte de la parte remitente

  • Bloques clave que mantienen la integridad de los metadatos clave durante el transporte

nota

Puede usar el formato RSA para exportar los TDES y AES-128 las claves.

  1. Cree una clave y un certificado RSA en su sistema receptor

    Cree o identifique una clave RSA para recibir la clave empaquetada. Exigimos que las claves estén en formato X.509 de certificado. Asegúrese de que el certificado esté firmado por un certificado raíz que pueda importar a AWS Payment Cryptography.

  2. Importe el certificado público raíz a AWS Payment Cryptography

    import-keyUtilícelo con la --key-material opción de importar el certificado

    $ aws payment-cryptography import-key \ --key-material='{"RootCertificatePublicKey": { \ "KeyAttributes": { \ "KeyAlgorithm": "RSA_4096", \ "KeyClass": "PUBLIC_KEY", \ "KeyModesOfUse": {"Verify": true}, \ "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRV..."} \ }'
    { "Key": { "CreateTimestamp": "2023-09-14T10:50:32.365000-07:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/nsq2i3mbg6sn775f", "KeyAttributes": { "KeyAlgorithm": "RSA_4096", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-09-14T10:50:32.365000-07:00" } }
  3. Exporta tu clave

    Dígale a AWS Payment Cryptography que exporte su clave utilizando su certificado modelo. Tienes que especificar:

    • El ARN del certificado raíz que importó en el paso 2

    • El certificado hoja para la exportación

    • La clave simétrica para exportar

    El resultado es una versión codificada en forma binaria (cifrada) de la clave simétrica envuelta (cifrada).

    ejemplo Ejemplo: exportar una clave
    $ cat export-key.json
    { "ExportKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyMaterial": { "KeyCryptogram": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDEXAMPLE...", "WrappingSpec": "RSA_OAEP_SHA_256" } } }
    $ aws payment-cryptography export-key \ --cli-input-json file://export-key.json
    { "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } }
  4. Importe la clave a su sistema receptor

    Muchos HSM y sistemas relacionados admiten la importación de claves mediante RSA Unwrap (incluida la criptografía de AWS pagos). Al importar, especifique:

    • La clave pública del paso 1 como certificado de cifrado

    • El formato como RSA

    • Modo de relleno como PKCS #1 v2.2 OAEP (con SHA 256)

    nota

    Generamos la clave envuelta en formato HexBinary. Es posible que necesite convertir el formato si su sistema requiere una representación binaria diferente, como base64.

Exporte claves simétricas mediante una clave de intercambio de claves preestablecida () TR-31

Cuando se intercambian varias claves o se admite la rotación de claves, los socios suelen intercambiar primero una clave de cifrado de claves (KEK) inicial. Puedes intercambiar la KEK por la criptografía de AWS pagos, utilizando técnicas como TR-34 oIntercambio de claves físicas. Tras establecer una KEK, puede utilizarla para transportar las claves siguientes, incluidas otras KEK. Admitimos este intercambio de claves mediante ANSI TR-31, que es ampliamente compatible con los proveedores de HSM.

  1. Configure su clave de cifrado de claves (KEK)

    Asegúrese de que ya ha intercambiado su KEK y de que tiene el KeyARN (o KeyAlias) disponible.

  2. Crea tu clave en AWS Payment Cryptography

    Crea tu clave si aún no existe. Como alternativa, puede crear la clave en el otro sistema y usar el comando de importación.

  3. Exporte su clave desde AWS Payment Cryptography

    Al exportar en TR-31 formato, especifique la clave que desea exportar y la clave de ajuste que va a utilizar.

    ejemplo Ejemplo: exportar una clave con el bloque de teclas TR31
    $ aws payment-cryptography export-key \ --key-material='{"Tr31KeyBlock": \ { "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza" }}' \ --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
    { "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
  4. Importe la clave a su sistema

    Utilice la implementación de la clave de importación de su sistema para importar la clave.

Exporte las claves iniciales de DUKPT () IPEK/IK

Al usar DUKPT, puede generar una única clave de derivación base (BDK) para una flota de terminales. Los terminales no tienen acceso directo al BDK. En su lugar, cada terminal recibe una clave de terminal inicial única, conocida como IPEK o clave inicial (IK). Cada IPEK se deriva del BDK mediante un número clave de serie (KSN) único.

La estructura de KSN varía según el tipo de cifrado:

  • Para TDES: el KSN de 10 bytes incluye:

    • 24 bits para el ID del conjunto de claves

    • 19 bits para el ID del terminal

    • 21 bits para el contador de transacciones

  • Para AES: el KSN de 12 bytes incluye:

    • 32 bits para el ID BDK

    • 32 bits para el identificador de derivación (ID)

    • 32 bits para el contador de transacciones

Proporcionamos un mecanismo para generar y exportar estas claves iniciales. Puede exportar las claves generadas mediante métodos de TR-31 empaquetado TR-34 RSA o mediante el método RSA. Ten en cuenta que las claves IPEK no se conservan y no se pueden usar para operaciones posteriores con la criptografía de pagos. AWS

No aplicamos la división entre las dos primeras partes de la KSN. Si quieres almacenar el identificador de derivación con el BDK, puedes usar etiquetas. AWS

nota

La parte del contador del KSN (32 bits para AES DUKPT) no se usa para la derivación. IPEK/IK Por ejemplo, las entradas 12345678901234560001 y 12345678901234569999 generarán el mismo IPEK.

$ aws payment-cryptography export-key \ --key-material='{"Tr31KeyBlock": { \ "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}} ' \ --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --export-attributes 'ExportDukptInitialKey={KeySerialNumber=12345678901234560001}'
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "B0096B1TX00S000038A8A06588B9011F0D5EEF1CCAECFA6962647A89195B7A98BDA65DDE7C57FEA507559AF2A5D601D1", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }

Especifique los encabezados de los bloques clave para la exportación

Puede modificar o añadir la información de los bloques clave al exportar en formato ASC o en formato TR-31 . TR-34 En la siguiente tabla se describe el formato del bloque TR-31 clave y los elementos que se pueden modificar durante la exportación.

Atributo de bloque clave Finalidad ¿Se puede modificar durante la exportación? Notas

ID de versión.

Define el método utilizado para proteger el material clave. La norma incluye:

  • Versiones A y C (variante clave, obsoleta)

  • Versión B (derivación mediante TDES)

  • Versión D (derivación de claves mediante AES)

No

Usamos la versión B para las claves de empaquetado con TDES y la versión D para las claves de empaquetado con AES. Solo admitimos las versiones A y C para las operaciones de importación.

Longitud del bloque clave

Especifica la longitud del mensaje restante

No

Calculamos este valor automáticamente. Es posible que la longitud parezca incorrecta antes de descifrar la carga útil, ya que podemos añadir un relleno de teclas según lo exija la especificación.

Uso de claves

Define los propósitos permitidos para la clave, como:

  • C0 (verificación de la tarjeta)

  • B0 (clave de derivación básica)

No

Algoritmo

Especifica el algoritmo de la clave subyacente. Apoyamos:

  • (MAREAS)

  • (HHMAC)

  • (UN AS)

No

Exportamos este valor tal cual.

Uso de claves

Define las operaciones permitidas, como:

  • Generar y verificar (C)

  • Encrypt/Decrypt/Wrap/Unwrap (B)

Sí*

Versión clave

Indica el número de versión de la clave replacement/rotation. El valor predeterminado es 00 si no se especifica.

Sí, se puede añadir

Exportabilidad clave

Controla si la clave se puede exportar:

  • N: Sin exportabilidad

  • E - Exportar según X9.24 (bloques clave)

  • S: Exporta en formatos de bloque de teclas o sin bloques de teclas

Sí*

Bloques de teclas opcionales

Sí, se puede añadir

Los bloques de claves opcionales son name/value pares enlazados criptográficamente a la clave. Por ejemplo, el KeySet ID de las claves DUKPT. Calculamos automáticamente el número de bloques, la longitud de cada bloque y el bloque de relleno (PB) en función de los datos name/value introducidos por el par.

*Al modificar los valores, el nuevo valor debe ser más restrictivo que el valor actual en la criptografía de AWS pagos. Por ejemplo:

  • Si el modo de uso clave actual es Generate=True, Verify=True, puedes cambiarlo a Generate=True, Verify=False

  • Si la clave ya está configurada como no exportable, no puedes cambiarla a exportable

Al exportar claves, aplicamos automáticamente los valores actuales de la clave que se está exportando. Sin embargo, es posible que desees modificar o añadir esos valores antes de enviarlos al sistema receptor. Estos son algunos escenarios comunes:

  • Al exportar una clave a un terminal de pago, defina su exportabilidad de tal Not Exportable manera que los terminales normalmente solo importan claves y no deberían exportarlas.

  • Cuando necesites pasar los metadatos de la clave asociada al sistema receptor, usa encabezados TR-31 opcionales para vincular criptográficamente los metadatos a la clave en lugar de crear una carga personalizada.

  • Defina la versión de la clave utilizando el KeyVersion campo para realizar un seguimiento de la rotación de las claves.

TR-31/X9.143 define encabezados comunes, pero puede usar otros encabezados siempre que cumplan con los parámetros de criptografía de AWS pagos y su sistema receptor pueda aceptarlos. Para obtener más información sobre los encabezados de los bloques clave durante la exportación, consulte los encabezados de los bloques clave en la guía de la API.

Este es un ejemplo de exportación de una clave BDK (por ejemplo, a un KIF) con estas especificaciones:

  • Versión clave: 02

  • KeyExportability: NO EXPORTABLE

  • KeySetID: 00ABCDEFAB (00 indica la clave TDES, ABCDEFABCD es la clave inicial)

Como no especificamos los modos de uso clave, esta clave hereda el modo de uso de arn:aws:payment-cryptography:us-east- 2:111122223333: (= true). key/5rplquuwozodpwsp DeriveKey

nota

Incluso si estableces la exportabilidad como No exportable en este ejemplo, el KIF aún puede: KIF

  • Derivar claves como las que se utilizan en IPEK/IK DUKPT

  • Exporte estas claves derivadas para instalarlas en los dispositivos

Esto está permitido específicamente por las normas.

$ aws payment-cryptography export-key \ --key-material='{"Tr31KeyBlock": { \ "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", \ "KeyBlockHeaders": { \ "KeyModesOfUse": { \ "Derive": true}, \ "KeyExportability": "NON_EXPORTABLE", \ "KeyVersion": "02", \ "OptionalBlocks": { \ "BI": "00ABCDEFABCD"}}} \ }' \ --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "EXAMPLE_KEY_MATERIAL_TR31", "KeyCheckValue": "A4C9B3", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }

Encabezados comunes

X9.143 define ciertos encabezados para casos de uso comunes. Con la excepción del encabezado HM (HMAC Hash), AWS Payment Cryptography no analiza ni utiliza estos encabezados.

Nombre del encabezado Finalidad Validación típica Notas

BI

Identificador de clave de derivación base para DUKPT

2 caracteres hexadecimales (00 para TDES, 11 para AES), 10 caracteres hexadecimales para TDES KSI u 8 caracteres hexadecimales para BDK ID (AES DUKPT).

Contiene el (ID de BDK, para AES DUKPT) o el identificador del conjunto de claves (KSI, para TDES DUKPT). Se puede usar para intercambiar el ID de BDK o el KSI, pero no es necesario intercambiar los demás datos contenidos en los bloques IK y KS. Normalmente, el BI se utiliza cuando se transmite a un KIF, mientras que el IK o el KS se utilizan cuando se inyectan en el propio terminal.

HM

Especifica el tipo de hash para las operaciones de HMAC

  • 10 — SHA-1

  • 20 — SHA-224

  • 21 — SHA-256

  • 22 — SHA-384

  • 23 — SHA-512

  • 24 — SHA-512/224

  • 25 — SHA-512/256

  • 30 — SHA3-224

  • 31 — SHA3-256

  • 32 — SHA3-384

  • 33 — SHA3-512

  • 40 — SHAKE128

  • 41 — SHAKE256

El servicio rellena automáticamente este campo al exportar y lo analizará al importarlo. Los tipos de hash que no admite el servicio, como SHAKE128, se pueden importar, pero es posible que no se puedan utilizar para funciones criptográficas.

IK

Número de serie clave inicial para AES DUKPT

16 caracteres hexadecimales

Este valor se usa para crear una instancia del uso de la clave DUKPT inicial en el dispositivo receptor e identifica la clave inicial derivada de un BDK. Este campo normalmente contiene los datos de derivación, pero no el contador. Utilice KS para TDES DUKPT.

ES

Número de serie clave inicial para TDES DUKPT

20 caracteres hexadecimales

Este valor se usa para crear una instancia del uso de la clave DUKPT inicial en el dispositivo receptor e identifica la clave inicial derivada de un BDK. Este campo normalmente contiene los datos de derivación más un valor de contador reducido a cero. Utilice IK para AES DUKPT.

KP

Valor de verificación clave del KBPK KBPK

Dos caracteres hexadecimales representan el método KCV (00 para el X9.24 método y 01 para el método CMAC). Seguido del valor KCV, que normalmente es de 6 caracteres hexadecimales. Por ejemplo, 010FA329 representa el KCV de 0FA329 calculado con el método 01 (CMAC).

Calculado de acuerdo con el X9.24-1-2017 anexo A de la ANSI; el KCV se utiliza para la validación de claves, no como un mecanismo de integridad.

PB

Bloque de acolchado

caracteres ASCII imprimibles aleatorios

El servicio rellena automáticamente este campo al exportar para garantizar que los encabezados opcionales sean múltiplos de la longitud del bloque de cifrado

Exporte claves asimétricas (RSA)

Para exportar una clave pública en forma de certificado, utilice el get-public-key-certificate comando. Este comando devuelve:

  • El certificado

  • El certificado raíz

Ambos certificados están codificados en base64.

nota

Esta operación no es indempotente: las llamadas posteriores pueden generar certificados diferentes incluso cuando se utilice la misma clave subyacente.

ejemplo
$ aws payment-cryptography get-public-key-certificate \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }