unWrapKey - AWS CloudHSM

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.

unWrapKey

El comando unWrapKey de la herramienta key_mgmt_util importa una clave privada o simétrica encapsulada (cifrada) de un archivo en el HSM. Está diseñado para importar claves de cifrado encapsuladas con el comando wrapKey de key_mgmt_util, pero también se puede utilizar para desencapsular claves encapsuladas con otras herramientas. Sin embargo, en esas situaciones, le recomendamos que utilice las bibliotecas de software de PKCS #11 o JCE para desencapsular la clave.

Las claves importadas funcionan igual que las generadas por. AWS CloudHSM Sin embargo, el valor del atributo OBJ_ATTR_LOCAL es cero, lo que indica que no se han generado localmente.

Después de importar una clave, asegúrese de marcar o eliminar el archivo de claves. Este comando no le impide importar el mismo material de claves varias veces. Los resultados, es decir, varias claves con diferentes identificadores de clave y el mismo material de claves, dificulta el seguimiento del uso del material relacionado con las claves e impide que supere sus límites criptográficos.

Antes de ejecutar cualquier comando de key_mgmt_util, debe iniciar key_mgmt_util e lniciar sesión en el HSM como usuario de criptografía (CU).

Sintaxis

unWrapKey -h unWrapKey -f <key-file-name> -w <wrapping-key-handle> [-sess] [-min_srv <minimum-number-of-HSMs>] [-timeout <number-of-seconds>] [-aad <additional authenticated data filename>] [-tag_size <tag size>] [-iv_file <IV file>] [-attest] [-m <wrapping-mechanism>] [-t <hash-type>] [-nex] [-u <user id list>] [-m_value <number of users needed for approval>] [-noheader] [-l <key-label>] [-id <key-id>] [-kt <key-type>] [-kc <key-class] [-i <unwrapping-IV>]

Ejemplo

Estos ejemplos muestran cómo utilizar unWrapKey para importar una clave encapsulada desde un archivo en los HSM. En el primer ejemplo, desencapsulamos una clave que se ha encapsulado con el comando key_mgmt_util de wrapKey y que, por lo tanto, tiene un encabezado. En el segundo ejemplo, desencapsulamos una clave que se ha encapsulado fuera de key_mgmt_util y que, por lo tanto, no tiene encabezado.

ejemplo : desencapsulamiento de una clave (con encabezado)

Este comando importa una copia de una clave simétrica 3DES en un HSM. La clave se desencapsula con una clave AES con la etiqueta 6, que es criptográficamente idéntica a la que se utilizó para encapsular la clave 3DES. El resultado muestra que la clave del archivo se ha desencapsulado e importado y que el identificador de la clave importada es 29.

Command: unWrapKey -f 3DES.key -w 6 -m 4 Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 29 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
ejemplo : desencapsulamiento de una clave (sin encabezado)

Este comando importa una copia de una clave simétrica 3DES en un HSM. La clave se desencapsula con una clave AES con la etiqueta 6, que es criptográficamente idéntica a la que se utilizó para encapsular la clave 3DES. Dado que esta clave 3DES no se encapsuló con key_mgmt_util, se especifica el parámetro noheader, junto con sus parámetros de acompañamiento necesarios: una etiqueta de clave (unwrapped3DES), una clase de clave (4) y un tipo de clave (21). El resultado muestra que la clave del archivo se ha desencapsulado e importado y que el identificador de la clave importada es 8.

Command: unWrapKey -f 3DES.key -w 6 -noheader -l unwrapped3DES -kc 4 -kt 21 -m 4 Cfm3CreateUnwrapTemplate2 returned: 0x00 : HSM Return: SUCCESS Cfm2UnWrapWithTemplate3 returned: 0x00 : HSM Return: SUCCESS Key Unwrapped. Key Handle: 8 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Parámetros

-h

Muestra ayuda para el comando.

Obligatorio: sí

-f

Especifica la ruta y el nombre del archivo que contiene la clave encapsulada.

Obligatorio: sí

-w

Especifica la clave de encapsulamiento. Introduzca el identificador de clave de una clave AES o RSA en el HSM. Este parámetro es obligatorio. Para buscar identificadores de clave, use el comando findKey.

Para crear una clave de empaquetado, utilice genSymKeypara generar una clave AES (tipo 31) o GenRSA KeyPair para generar un par de claves RSA (tipo 0). Si utiliza un par de claves RSA, asegúrese de encapsular la clave con una de las claves y desencapsularla con la otra. Para verificar si una clave se puede utilizar como clave de encapsulamiento, utilice getAttribute para obtener el valor del atributo OBJ_ATTR_WRAP, que se representa con la constante 262.

Obligatorio: sí

-sess

Crea una clave que solo existe en la sesión actual. La clave no se podrá recuperar una vez finalizada la sesión.

Utilice este parámetro cuando necesite una clave solo brevemente, por ejemplo, una clave de encapsulamiento que cifre y, a continuación, descifre rápidamente otra clave. No utilice una clave de sesión para cifrar los datos que pueda necesitar descifrar una vez finalizada la sesión.

Para cambiar una clave de sesión por una clave persistente (token), use setAttribute.

Predeterminado: la clave es persistente.

Obligatorio: no

-min_srv

Especifica el número mínimo de HSM en los que la clave importada se sincroniza antes de que caduque el valor del parámetro -timeout. Si la clave no está sincronizada con el número especificado de servidores en el tiempo asignado, no se creará.

AWS CloudHSM sincroniza automáticamente todas las claves con todos los HSM del clúster. Para acelerar el proceso, establezca el valor de min_srv en un número menor que el de HSM del clúster y establezca un valor bajo de tiempo de espera. Sin embargo, tenga en cuenta que puede que algunas solicitudes no generen ninguna clave.

Predeterminado: 1

Obligatorio: no

-timeout

Especifica cuánto tiempo (en segundos) espera el comando para que una clave se sincronice con el número de HSM especificado por el parámetro min_srv.

Este parámetro solo es válido cuando también se usa el parámetro min_srv en el comando.

Predeterminado: sin tiempo de espera predeterminado. El comando espera indefinidamente y solo vuelve a aparecer cuando la clave está sincronizada con el número mínimo de servidores.

Obligatorio: no

-attest

Ejecuta una comprobación de integridad que verifica que el firmware en el que se ejecuta el clúster no haya sufrido alguna manipulación.

Predeterminado: sin comprobación de certificación.

Obligatorio: no

-nex

Hace que la clave no se pueda extraer. La clave que se genera no se puede exportar desde el HSM.

Predeterminado: la clave se puede extraer.

Obligatorio: no

-m

Valor que representa el mecanismo de encapsulamiento. CloudHSM admite los siguientes mecanismos:

Mecanismo Valor
AES_KEY_WRAP_PAD_PKCS5 4
NIST_AES_WRAP_NO_PAD 5
NIST_AES_WRAP_PAD 6
RSA_AES 7
RSA_OAEP (para conocer el tamaño máximo de los datos, consulte la nota que se incluye más adelante en esta sección) 8
AES_GCM 10
CLOUDHSM_AES_GCM 11
RSA_PKCS (para conocer el tamaño máximo de los datos, consulte la nota que se incluye más adelante en esta sección). Consulte la nota 1 que aparece a continuación para ver los próximos cambios. 12

Obligatorio: sí

nota

Cuando se utiliza el mecanismo de RSA_OAEP empaquetado, el tamaño máximo de clave que se puede empaquetar viene determinado por el módulo de la clave RSA y la longitud del hash especificado de la siguiente manera: Tamaño máximo de clave = modulusLengthIn bytes- (hashLengthIn2* bytes) -2.

Cuando se utiliza el mecanismo de empaquetado RSA_PKCS, el tamaño máximo de clave que se puede empaquetar viene determinado por el módulo de la clave RSA de la siguiente manera: Tamaño máximo de clave = (bytes -11). modulusLengthIn

-t
Algoritmo hash Valor
SHA1 2
SHA256 3
SHA384 4
SHA512 5
SHA224 (válido para los mecanismos RSA_AES y RSA_OAEP) 6

Obligatorio: no

-noheader

Si va a desencapsular una clave que se ha encapsulado fuera de key_mgmt_util, debe especificar este parámetro y todos los demás parámetros asociados.

Obligatorio: no

nota

Si especifica este parámetro, también debe especificar los siguientes parámetros -noheader:

  • -l

    Especifica la etiqueta que se van a añadir a la clave desencapsulada.

    Obligatorio: sí

  • -kc

    Especifica la clase de la clave que se va a desencapsular. A continuación, se muestran los valores aceptables:

    3 = clave privada de un par de claves pública y privada

    4 = clave secreta (simétrica).

    Obligatorio: sí

  • -kt

    Especifica el tipo de clave que se va a desencapsular. A continuación, se muestran los valores aceptables:

    0 = RSA

    1 = DSA

    3 = ECC

    16 = GENERIC_SECRET

    21 = DES3

    31 = AES

    Obligatorio: sí

Si lo desea, también puede especificar los siguientes parámetros -noheader:

  • -id

    El ID que se van a añadir a la clave desencapsulada.

    Obligatorio: no

  • -i

    El vector de inicialización (IV) de desencapsulación que se va a utilizar.

    Obligatorio: no

[1] De acuerdo con las directrices del NIST, esto no está permitido para los clústeres en modo FIPS después de 2023. En el caso de los clústeres en modo no FIPS, se seguirá permitiendo después de 2023. Para obtener más información, consulte FIPS140 Cumplimiento: obsolescencia del mecanismo en 2024.

Temas relacionados de