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.
-
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.
ParametersValidUntilTimestampnota
Todos los certificados están codificados en base64.
ejemplo
$aws payment-cryptography get-parameters-for-export \--signing-key-algorithmRSA_2048 \--key-material-typeTR34_KEY_BLOCK{ "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS....", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" } -
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.
-
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
KeyMaterialTypeenRootCertificatePublicKeyyKeyUsageTypeenTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.Lo utilizamos
TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATUREKeyUsageTypeporque 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, utilice
TrustedCertificatePublicKey. -
Exporte su clave
Llama a la ExportKey API con el
KeyMaterialTypevalor 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)
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.
-
Genere un par de claves ECC
Llame
create-keypara 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_KEYnota
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" } } -
Obtenga un certificado de clave pública
Llame
get-public-key-certificatepara 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-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." } -
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.
-
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.
D0144K3EX00E0000Al 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
importKeycomando con KeyMaterialType de y de.RootCertificatePublicKeyKeyUsageTypeTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATUREPara los certificados intermedios, utilice el
importKeycomando con KeyMaterialType deTrustedCertificatePublicKeyy KeyUsageType deTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE. Repita este proceso para varios certificados intermedios. Utilice el último certificado importadoKeyArnde 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.
-
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" } } -
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.
-
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.
-
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.
-
Importe el certificado público raíz a AWS Payment Cryptography
import-keyUtilícelo con la
--key-materialopció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" } } -
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-jsonfile://export-key.json{ "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } } -
-
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.
-
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.
-
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.
-
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-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } } -
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-identifierarn: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:
|
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:
|
No |
|
Algoritmo |
Especifica el algoritmo de la clave subyacente. Apoyamos:
|
No |
Exportamos este valor tal cual. |
Uso de claves |
Define las operaciones permitidas, como:
|
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:
|
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 Exportablemanera 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
KeyVersioncampo 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
$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-identifierarn: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 |
|
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-identifierarn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }