Paso 2: descargar la clave pública de encapsulamiento y el token de importación - AWS Key Management Service

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.

Paso 2: descargar la clave pública de encapsulamiento y el token de importación

Después de crear una AWS KMS key sin material de claves, descargue una clave pública de encapsulamiento y un token de importación de dicha clave KMS mediante la consola de AWS KMS o la API GetParametersForImport. La clave pública de encapsulamiento y el token de importación son un conjunto indivisible que deben usarse juntos.

Utilizará la clave pública de encapsulamiento para cifrar el material de claves para su transferencia. Antes de descargar un par de claves de encapsulamiento RSA, seleccione la longitud (especificación de clave) del par de claves de encapsulamiento RSA y el algoritmo de encapsulamiento que utilizará para cifrar el material de claves importado para su transferencia en el paso 3. AWS KMS también admite las especificaciones de claves de encapsulamiento SM2 (solo en las regiones de China).

Cada conjunto de claves públicas de encapsulamiento y token de importación es válido durante 24 horas. Si no los utiliza para importar material de claves en un plazo de 24 horas después de descargarlos, debe descargar un nuevo conjunto. Puede descargar nuevos conjuntos de claves públicas de encapsulamiento y tokens de importación en cualquier momento. Esto le permite cambiar la longitud de la clave de encapsulamiento RSA (“especificación de clave”) o sustituir un conjunto perdido.

También puede descargar un conjunto de claves públicas de encapsulamiento y un conjunto de tokens de importación para volver a importar el mismo material de claves en una clave de KMS. Puede hacerlo para establecer o cambiar el tiempo de vencimiento del material de claves o para restaurar el material de claves vencidas o eliminadas. Debe descargar y volver a cifrar el material de claves cada vez que lo importe a AWS KMS.

Uso de la clave pública de encapsulamiento

La descarga incluye una clave pública que es única para su Cuenta de AWS, también llamada clave pública de encapsulamiento.

Antes de importar material de claves, debe cifrar el material de claves con la clave pública de encapsulamiento y, a continuación, cargar el material de claves cifrado en AWS KMS. Cuando AWS KMS recibe el material de claves cifrado, lo descifra con la clave privada correspondiente y, a continuación, lo vuelve a cifrar con una clave simétrica AES, todo ello dentro de un módulo de seguridad de hardware (HSM) de AWS KMS.

Uso del token de importación

La descarga incluye un token de importación que contiene metadatos para garantizar que el material de claves se importa correctamente. Al cargar el material de claves cifrado en AWS KMS, debe cargar el mismo token de importación que ha descargado en este paso.

Selección de una especificación de clave pública de encapsulamiento

Para proteger su material de claves durante la importación, deberá cifrarlo con la clave pública de encapsulamiento que descargó de AWS KMS y un algoritmo de encapsulamiento admitido. Debe seleccionar una especificación de claves antes de descargar la clave pública de encapsulamiento y el token de importación. Todos los pares de claves de encapsulamiento se generan en módulos de seguridad de hardware (HSM) de AWS KMS. La clave privada nunca sale del HSM en texto sin formato.

Especificaciones de claves de encapsulamiento RSA

La especificación de clave de la clave pública de encapsulamiento determina la longitud de las claves del par de claves RSA que protege el material de la clave durante su transferencia a AWS KMS. En general, se recomienda utilizar la clave pública de encapsulamiento más larga que resulte práctica. Ofrecemos varias especificaciones de encapsulamiento de claves públicas para admitir una variedad de HSM y administradores de claves.

AWS KMS admite las siguientes especificaciones de clave para las claves de encapsulamiento RSA que se utilizan para importar material de claves de todo tipo, excepto en los casos que se indican.

  • RSA_4096 (preferido)

  • RSA_3072

  • RSA_2048

    nota

    NO se admite la siguiente combinación: material de claves ECC_NIST_P521, la especificación de clave pública de encapsulamiento RSA_2048 y un algoritmo de encapsulamiento RSAES_OAEP_SHA_*.

    No se puede encapsular directamente el material de claves ECC_NIST_P521 con una clave pública de encapsulamiento RSA_2048. Utilice una clave de encapsulamiento más grande o un algoritmo de encapsulamiento RSA_AES_KEY_WRAP_SHA_*.

Especificación de claves de encapsulamiento SM2 (solo en las regiones de China)

AWS KMS admite las siguientes especificaciones de clave para las claves de encapsulamiento SM2 que se utilizan para importar material de claves asimétricas.

  • SM2

Seleccionar un algoritmo de encapsulamiento

Para proteger su material de claves durante la importación, deberá cifrarlo con la clave pública de encapsulamiento descargada y un algoritmo de encapsulamiento admitido.

AWS KMS admite varios algoritmos de encapsulamiento RSA estándar y un algoritmo de encapsulamiento híbrido de dos pasos. En general, se recomienda utilizar el algoritmo de encapsulamiento más seguro que sea compatible con el material de claves y la especificación de clave de encapsulamiento importados. Normalmente, se elige un algoritmo admitido por el módulo de seguridad de hardware (HSM) o el sistema de administración de claves que protege el material de claves.

En la siguiente tabla se muestran los algoritmos de encapsulamiento compatibles con cada tipo de material de claves y clave de KMS. Los algoritmos se muestran en el orden de preferencia.

Material de claves Algoritmo y especificaciones de encapsulamiento compatibles
Clave de cifrado simétrica

Clave AES de 256 bits

Clave SM4 de 128 bits (solo en las regiones de China)

Algoritmos de encapsulamiento:

RSAES_OAEP_SHA_256

RSAES_OAEP_SHA_1

Algoritmos de encapsulamiento obsoletos:

RSAES_PKCS1_V1

nota

A partir del 10 de octubre de 2023, AWS KMS no es compatible con el algoritmo de encapsulamiento RSAES_PKCS1_V1_5.

Especificaciones de claves de encapsulamiento:

RSA_2048

RSA_3072

RSA_4096

Clave privada RSA asimétrica
Algoritmos de encapsulamiento:

RSA_AES_KEY_WRAP_SHA_256

RSA_AES_KEY_WRAP_SHA_1

SM2PKE (solo en regiones de China)

Especificaciones de claves de encapsulamiento:

RSA_2048

RSA_3072

RSA_4096

SM2 (solo en regiones de China)

Clave privada de curva elíptica asimétrica (ECC)

No puede utilizar los algoritmos de encapsulamiento RSAES_OAEP_SHA_* con la especificación de clave de encapsulamiento RSA_2048 para encapsular el material de claves ECC_NIST_P521.

Algoritmos de encapsulamiento:

RSA_AES_KEY_WRAP_SHA_256

RSA_AES_KEY_WRAP_SHA_1

RSAES_OAEP_SHA_256

RSAES_OAEP_SHA_1

SM2PKE (solo en regiones de China)

Especificaciones de claves de encapsulamiento:

RSA_2048

RSA_3072

RSA_4096

SM2 (solo en regiones de China)

Clave privada SM2 asimétrica (solo en las regiones de China)
Algoritmos de encapsulamiento:

RSAES_OAEP_SHA_256

RSAES_OAEP_SHA_1

SM2PKE (solo en regiones de China)

Especificaciones de claves de encapsulamiento:

RSA_2048

RSA_3072

RSA_4096

SM2 (solo en regiones de China)

Clave HMAC
Algoritmos de encapsulamiento:

RSAES_OAEP_SHA_256

RSAES_OAEP_SHA_1

Especificaciones de claves de encapsulamiento:

RSA_2048

RSA_3072

RSA_4096

nota

Los algoritmos de encapsulamiento RSA_AES_KEY_WRAP_SHA_256 y RSA_AES_KEY_WRAP_SHA_1 no se admiten en las regiones de China.

  • RSA_AES_KEY_WRAP_SHA_256: un algoritmo de encapsulamiento híbrido de dos pasos que combina el cifrado del material de claves con una clave simétrica AES que el usuario genere con el cifrado posterior de la clave simétrica AES con la clave de encapsulamiento pública RSA descargada y el algoritmo de encapsulamiento RSAES_OAEP_SHA_256.

    Se necesita un algoritmo de encapsulamiento RSA_AES_KEY_WRAP_SHA_* para encapsular el material de claves privadas RSA, excepto en las regiones de China, donde se debe usar el algoritmo de encapsulamiento SM2PKE.

  • RSA_AES_KEY_WRAP_SHA_1: un algoritmo de encapsulamiento híbrido de dos pasos que combina el cifrado del material de claves con una clave simétrica AES que el usuario genere con el cifrado posterior de la clave simétrica AES con la clave de encapsulamiento pública RSA descargada y el algoritmo de encapsulamiento RSAES_OAEP_SHA_1.

    Se necesita un algoritmo de encapsulamiento RSA_AES_KEY_WRAP_SHA_* para encapsular el material de claves privadas RSA, excepto en las regiones de China, donde se debe usar el algoritmo de encapsulamiento SM2PKE.

  • RSAES_OAEP_SHA_256: algoritmo de cifrado RSA con relleno óptimo de cifrado asimétrico (OAEP) con la función hash SHA-256.

  • RSAES_OAEP_SHA_1: algoritmo de cifrado RSA con relleno óptimo de cifrado asimétrico (OAEP) con la función hash SHA-1.

  • RSAES_PKCS1_V1_5 (en desuso desde el 10 de octubre de 2023, AWS KMS no admite el algoritmo de encapsulamiento RSAES_PKCS1_V1_5): el algoritmo de cifrado RSA con el formato de relleno definido en la versión 1.5 de PKCS #1.

  • SM2PKE (solo en las regiones de China): un algoritmo de cifrado basado en curvas elípticas definido por OSCCA en GM/T 0003.4-2012.

Descarga de la clave pública de encapsulamiento y el token de importación (consola)

Puede usar la consola de AWS KMS para descargar la clave pública de encapsulamiento y el token de importación.

  1. Si acaba de completar los pasos para crear una clave KMS sin material de claves y se encuentra en la página Download wrapping key and import token (Descargar la clave de encapsulamiento y el token de importación), pase a Paso 9.

  2. Inicie sesión en la AWS Management Console y abra la consola AWS Key Management Service (AWS KMS) en https://console.aws.amazon.com/kms.

  3. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superior derecha de la página.

  4. En el panel de navegación, elija Claves administradas por el cliente.

    sugerencia

    Solo puede importar el material de claves a una clave de KMS con un Origen de Externo (importar material de claves). Esto indica que la clave KMS se ha creado sin material de claves. Para agregar la columna Origin (Origen) a la tabla, en la esquina superior derecha de la página, elija el icono de configuración ( Gear or cog icon representing settings or configuration options. ). Active Origin (Origen) y, a continuación, elija Confirm (Confirmar).

  5. Elija el alias o el ID de clave de la clave KMS que está pendiente de importación.

  6. Elija la pestaña Cryptographic configuration (Configuración criptográfica) y vea sus valores. Las pestañas están debajo de la sección General configuration (Configuración general).

    Solo se puede importar material de claves a claves de KMS con un Origen de Externo (importar material de claves). Para obtener información acerca de cómo crear claves KMS con material de claves importado, consulte Importación de material clave para AWS KMS llaves.

  7. Elija la pestaña Material de claves y, a continuación, seleccione Importar material de claves.

    La pestaña Material de claves aparece solo para las claves de KMS con un Origen de Externo (importar material de claves).

  8. En Seleccionar especificación de la clave de encapsulamiento, elija la configuración de su clave de KMS. Después de crear esta clave, no puede cambiar las especificaciones de clave.

  9. En Select wrapping algorithm, elija la opción que usará para cifrar el material de claves. Para obtener más información acerca de estas opciones, consulte Seleccionar un algoritmo de encapsulamiento.

  10. Elija Descargar clave de encapsulamiento y token de importación y, a continuación, guarde el archivo.

    Si dispone de la opción Next (Siguiente) para continuar con el proceso ahora, elija Next (Siguiente). Para continuar más adelante, elija Cancel (Cancelar).

  11. Descomprima el archivo .zip que ha guardado en el paso anterior (Import_Parameters_<key_id>_<timestamp>).

    La carpeta contiene los siguientes archivos:

    • Una clave pública de encapsulamiento en un archivo llamado WrappingPublicKey.bin.

    • Un token de importación en un archivo llamado ImportToken.bin.

    • Un archivo de texto denominado README.txt. Este archivo contiene información sobre la clave pública de encapsulamiento, el algoritmo de encapsulamiento que se usará para cifrar el material de claves y la fecha y hora en que vencen la clave pública de encapsulamiento y el token de importación.

  12. Para continuar el proceso, consulte cifrar el material de claves.

Descarga de la clave pública de encapsulamiento y el token de importación (API de AWS KMS)

Puede usar la API GetParametersForImport para descargar la clave pública y el token de importación. Especifique la clave de KMS que se asociará al material de claves importado. Esta clave de KMS debe tener un valor para Origin de EXTERNAL.

En este ejemplo se especifica el algoritmo de encapsulamiento RSA_AES_KEY_WRAP_SHA_256, la especificación de clave pública de encapsulamiento RSA_3072 y un ID de clave de ejemplo. Sustituya estos valores de ejemplo por valores válidos para la descarga. En el ID de la clave puede usar el ID de la clave o el ARN de la clave, pero no puede usar un nombre de alias ni un ARN de alias en esta operación.

$ aws kms get-parameters-for-import \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-algorithm RSA_AES_KEY_WRAP_SHA_256 \ --wrapping-key-spec RSA_3072

Si el comando se ejecuta correctamente, verá un resultado parecido al siguiente:

{ "ParametersValidTo": 1568290320.0, "PublicKey": "public key (base64 encoded)", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "ImportToken": "import token (base64 encoded)" }

Para preparar los datos para el siguiente paso, base64 decodifica la clave pública e importa el token y guarda los valores decodificados en los archivos.

Para decodificar en base64 la clave pública y el token de importación:

  1. Copie los datos codificados en base64 de la clave pública (representados por la clave pública [codificada en base64] en el resultado de ejemplo), péguelos en un archivo nuevo y, a continuación, guarde el archivo. Póngale al archivo un nombre descriptivo, como por ejemplo PublicKey.b64.

  2. Utilice OpenSSL para decodificar en base64 el contenido del archivo y guarde los datos descodificados en un nuevo archivo. El siguiente ejemplo descodifica los datos del archivo que ha guardado en el paso anterior (PublicKey.b64) y guarda el resultado en un nuevo archivo denominado WrappingPublicKey.bin.

    $ openssl enc -d -base64 -A -in PublicKey.b64 -out WrappingPublicKey.bin
  3. Copie el token importado codificado en base64 (representado por el token de importación [codificado en base64] en el resultado de ejemplo), péguelo en un archivo nuevo y, a continuación, guarde el archivo. Asigne un nombre descriptivo al archivo, por ejemplo, importtoken.b64.

  4. Utilice OpenSSL para decodificar en base64 el contenido del archivo y guarde los datos descodificados en un nuevo archivo. El siguiente ejemplo descodifica los datos del archivo que ha guardado en el paso anterior (ImportToken.b64) y guarda el resultado en un nuevo archivo denominado ImportToken.bin.

    $ openssl enc -d -base64 -A -in importtoken.b64 -out ImportToken.bin

Continúe en Paso 3: Cifrar el material de claves.