Importar claves - 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.

Importar claves

importante

Algunos ejemplos pueden requerir la última versión de la AWS CLI V2. Antes de empezar, asegúrese de haber actualizado a la última versión.

Importar claves simétricas

Importar claves utilizando técnicas asimétricas (TR-34)

AWS Proceso de importación de la clave de cifrado de la clave de criptografía de pago

Descripción general: El TR-34 utiliza criptografía RSA asimétrica para cifrar las claves simétricas para su intercambio, así como para garantizar el origen de los datos (firma). Esto garantiza tanto la confidencialidad (encriptación) como la integridad (firma) de la clave envuelta.

Si desea importar sus propias claves, consulte el proyecto de ejemplo en Github. Para obtener instrucciones sobre cómo importar o exportar claves de otras plataformas, consulte la guía del usuario de dichas plataformas.

1. Llamar al comando de importación inicializar

Llamar a get-parameters-for-import para inicializar el proceso de importación. Esto API generará un par de claves para importarlas, firmará la clave y devolverá el certificado y la raíz del certificado. En última instancia, la clave que se vaya a exportar deberá cifrarse utilizando esta clave. En la terminología del TR-34, esto se conoce como certificado. KRD Tenga en cuenta que estos certificados son de corta duración y sólo están pensados para este propósito.

2. Instalar el certificado público en el sistema fuente de claves

HSMsEn muchos casos, es posible que necesite instalar, cargar o confiar en el certificado público generado en el paso 1 para poder exportar las claves que lo utilizan.

3. Genere una clave pública y proporcione la raíz del certificado a Payment Cryptography AWS

Para garantizar la integridad de la carga útil transmitida, la firma la parte remitente (conocida como host de distribución de claves oKDH). La parte remitente querrá generar una clave pública para este fin y, a continuación, crear un certificado de clave pública (X509) que pueda devolverse a AWS Payment Cryptography. AWS Private CA es una opción para generar certificados, pero no hay restricciones en cuanto a la autoridad de certificación utilizada.

Una vez que tenga el certificado, querrá cargar el certificado raíz en AWS Payment Cryptography mediante el importKey comando and KeyMaterialType of ROOT_PUBLIC_KEY_CERTIFICATE y KeyUsageType ofTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE.

4. Exportar la clave desde el sistema fuente

Muchos sistemas HSMs y otros relacionados admiten la posibilidad de exportar claves mediante la norma TR-34. Deberá especificar la clave pública del paso 1 como certificado KRD (de cifrado) y la clave del paso 3 como certificado KDH (de firma). Para realizar la importación a AWS Payment Cryptography, tendrá que especificar que el formato sea el TR-34.2012 sin CMS dos pases, que también se denomina formato TR-34 Diebold.

5. Llamar a la clave de importación

Como último paso, llamarás al con un de. importKey API KeyMaterialType TR34_KEY_BLOCK certificate-authority-public-key-identifierSerá la clave ARN de la CA raíz importada en el paso 3, key-material estará empaquetada con el material clave del paso 4 y signing-key-certificate será el certificado hoja del paso 3. También deberá proporcionar el token de importación del paso 1.

6. Utilizar la clave importada para operaciones criptográficas o importaciones posteriores

Si el importado KeyUsage era TR31 _K0_ _ KEY ENCRYPTION _KEY, entonces esta clave se puede usar para importaciones de claves posteriores utilizando el TR-31. Si el tipo de clave era de cualquier otro tipo (como TR31 _D0_ _ _ SYMMETRIC DATA ENCRYPTION _KEY), entonces la clave se puede usar directamente para operaciones criptográficas.

Importe claves mediante técnicas asimétricas (Unwrap) RSA

Descripción general: La criptografía AWS de pagos admite el empaquetado y RSA desempaquetado para el intercambio de claves cuando el TR-34 no es factible. Al igual que en el TR-34, esta técnica utiliza criptografía asimétrica para cifrar claves simétricas para su RSA intercambio. Sin embargo, a diferencia del TR-34, este método no tiene la carga firmada por la parte que lo envía. Además, esta técnica de RSA empaquetado no mantiene la integridad de los metadatos clave durante la transferencia al no incluir los bloques clave.

nota

RSAwrap se puede utilizar para importar o exportar TDES y AES -128 claves.

1. Llamar al comando de importación inicializar

Llame get-parameters-for-import para iniciar el proceso de importación con un tipo de KEY material clave, _. CRYPTOGRAM WrappingKeyAlgorithm puede ser RSA _2048 al intercambiar claves. TDES RSASe pueden usar _3072 o RSA _4096 al intercambiar o -128 llaves. TDES AES Esto API generará un par de claves para importarlas, firmará la clave con una raíz de certificado y devolverá tanto el certificado como la raíz del certificado. En última instancia, la clave que se vaya a exportar deberá cifrarse utilizando esta clave. Tenga en cuenta que estos certificados son de corta duración y sólo están pensados para este propósito.

$ aws payment-cryptography get-parameters-for-import --key-material-type KEY_CRYPTOGRAM --wrapping-key-algorithm RSA_4096
{ "ImportToken": "import-token-bwxli6ocftypneu5", "ParametersValidUntilTimestamp": 1698245002.065, "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....", "WrappingKeyAlgorithm": "RSA_4096" }
2. Instalar el certificado público en el sistema fuente de claves

HSMsEn muchos casos, es posible que necesite instalar, cargar o confiar en el certificado público (o en su raíz) generado en el paso 1 para poder exportar las claves que lo utilizan.

3. Exportar la clave desde el sistema fuente

Muchos sistemas HSMs y otros relacionados admiten la posibilidad de exportar claves mediante empaquetado. RSA Deberá especificar la clave pública del paso 1 como el certificado (de cifrado) (WrappingKeyCertificate). Si necesitas la cadena de confianza, la encontrarás en el campo WrappingKeyCertificateChain de respuesta del paso #1. Cuando exporte la clave desde su sitioHSM, querrá especificar el formato: Padding Mode = PKCS #1 v2.2 OAEP (con SHA 256 o SHA 512). RSA

4. Llamar a la clave de importación

Como último paso, llamarás al importKey API con un KeyMaterialType de. KeyMaterial Necesitarás el token de importación del paso 1 y el key-material (material clave envuelto) del paso 3. Deberá proporcionar los parámetros clave (como el uso de claves), ya que RSA Wrap no utiliza bloques clave.

$ cat import-key-cryptogram.json { "KeyMaterial": { "KeyCryptogram": { "Exportable": true, "ImportToken": "import-token-bwxli6ocftypneu5", "KeyAttributes": { "KeyAlgorithm": "AES_128", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": true, "DeriveKey": false, "Encrypt": true, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": true, "Verify": false, "Wrap": true }, "KeyUsage": "TR31_K0_KEY_ENCRYPTION_KEY" }, "WrappedKeyCryptogram": "18874746731....", "WrappingSpec": "RSA_OAEP_SHA_256" } } }
$ aws payment-cryptography import-key --cli-input-json file://import-key-cryptogram.json
{ "Key": { "KeyOrigin": "EXTERNAL", "Exportable": true, "KeyCheckValue": "DA1ACF", "UsageStartTimestamp": 1697643478.92, "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "CreateTimestamp": 1697643478.92, "KeyState": "CREATE_COMPLETE", "KeyAttributes": { "KeyAlgorithm": "AES_128", "KeyModesOfUse": { "Encrypt": true, "Unwrap": true, "Verify": false, "DeriveKey": false, "Decrypt": true, "NoRestrictions": false, "Sign": false, "Wrap": true, "Generate": false }, "KeyUsage": "TR31_K0_KEY_ENCRYPTION_KEY", "KeyClass": "SYMMETRIC_KEY" }, "KeyCheckValueAlgorithm": "CMAC" } }
5. Utilizar la clave importada para operaciones criptográficas o importaciones posteriores

Si la clave importada KeyUsage fue TR31 _K0_ _ KEY ENCRYPTION _KEY, entonces esta clave se puede usar para importaciones de claves posteriores utilizando TR-31. Si el tipo de clave era de cualquier otro tipo (como TR31 _D0_ _ _ SYMMETRIC DATA ENCRYPTION _KEY), entonces la clave se puede usar directamente para operaciones criptográficas.

Importar claves simétricas utilizando una clave de intercambio preestablecida (TR-31)

AWS Proceso de importación de claves simétricas de criptografía de pagos

Cuando los socios intercambian varias claves (o para permitir la rotación de claves), lo habitual es intercambiar primero una clave de cifrado inicial (KEK) mediante técnicas como componentes de clave en papel o, en el caso de la criptografía de AWS pagos, mediante el TR-34.

Una KEK vez establecida a, puede utilizar esta clave para transportar las siguientes claves (incluidas otras). KEKs AWS La criptografía de pagos admite este tipo de intercambio de claves mediante el uso del ANSI TR-31, que es ampliamente utilizado y respaldado por los vendedores. HSM

1. Importar clave: clave de cifrado () KEK

Se supone que ya has importado la tuya KEK y que tienes la clave ARN (okeyAlias) a tu disposición.

2. Crear la clave en la plataforma de origen

Si la clave aún no existe, cree la clave en la plataforma de origen. A la inversa, puede crear la clave en AWS Payment Cryptography y utilizar el comando export en su lugar.

3. Exportar la clave desde la plataforma de origen

Al exportar, asegúrese de que especifica el formato de exportación como TR-31. La plataforma fuente también le preguntará por la clave a exportar y la clave de encriptación a utilizar.

4. Importa a AWS Payment Cryptography

Al ejecutar el importKey comando, WrappingKeyIdentifier debe ser la clave ARN (o alias) de su clave de cifrado y WrappedKeyBlock debe ser el resultado de la plataforma de origen.

$ aws payment-cryptography import-key \ --key-material="Tr31KeyBlock={WrappingKeyIdentifier="arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",\ WrappedKeyBlock="D0112B0AX00E00002E0A3D58252CB67564853373D1EBCC1E23B2ADE7B15E967CC27B85D5999EF58E11662991FF5EB1381E987D744334B99D"}"
{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "KeyAttributes": { "KeyUsage": "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY", "KeyClass": "SYMMETRIC_KEY", "KeyAlgorithm": "AES_128", "KeyModesOfUse": { "Encrypt": true, "Decrypt": true, "Wrap": true, "Unwrap": true, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": false, "NoRestrictions": false } }, "KeyCheckValue": "0A3674", "KeyCheckValueAlgorithm": "CMAC", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "EXTERNAL", "CreateTimestamp": "2023-06-02T07:38:14.913000-07:00", "UsageStartTimestamp": "2023-06-02T07:38:14.857000-07:00" } }

Importación de claves asimétricas (RSA)

Importación de RSA claves públicas

AWS La criptografía de pagos admite la importación de RSA claves públicas en forma de certificados X.509. Para importar un certificado, deberá importar primero su certificado raíz. Todos los certificados deben estar vigentes en el momento de la importación. El certificado debe estar en PEM formato y codificado en base64.

1. Importe el certificado raíz a la criptografía AWS de pagos
$ aws payment-cryptography import-key \ --key-material='{"RootCertificatePublicKey":{"KeyAttributes":{"KeyAlgorithm":"RSA_2048", \ "KeyClass":"PUBLIC_KEY", "KeyModesOfUse":{"Verify": true},"KeyUsage":"TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \ "PublicKeyCertificate":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURKVENDQWcyZ0F3SUJBZ0lCWkRBTkJna3Foa2lHOXcwQkFR..."}}'
{ "Key": { "CreateTimestamp": "2023-08-08T18:52:01.023000+00:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", "KeyAttributes": { "KeyAlgorithm": "RSA_2048", "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-08-08T18:52:01.023000+00:00" } }
2. Importe un certificado de clave pública a la criptografía AWS de pagos

Ahora puede importar una clave pública. Existen dos opciones para importar claves públicas. TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE puede utilizarse si el propósito de la clave es verificar firmas (por ejemplo, al importar utilizando TR-34). TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION puede utilizarse cuando se encriptan datos destinados a ser utilizados con otro sistema.

$ aws payment-cryptography import-key \ --key-material='{"TrustedCertificatePublicKey":{"CertificateAuthorityPublicKeyIdentifier":"arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", \ "KeyAttributes":{"KeyAlgorithm":"RSA_2048","KeyClass":"PUBLIC_KEY","KeyModesOfUse":{"Verify":true},"KeyUsage":"TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"},\ "PublicKeyCertificate":"LS0tLS1CRUdJTiB..."}}'
{ "Key": { "CreateTimestamp": "2023-08-08T18:55:46.815000+00:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/4kd6xud22e64wcbk", "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-08-08T18:55:46.815000+00:00" } }