Generar un par de claves ECC de AWS CloudHSM con la KMU - AWS CloudHSM

Generar un par de claves ECC de AWS CloudHSM con la KMU

Use el comando genECCKeyPair de la herramienta key_mgmt_util del AWS CloudHSM para generar un par de claves de criptografía de curva elíptica (ECC) en sus módulos de seguridad de hardware (HSM). Cuando ejecute el comando genECCKeyPair, debe especificar el identificador de curva elíptica y una etiqueta para el par de claves. También puede compartir la clave privada con otros usuarios de CU, crear claves no extraíbles, claves controladas mediante cuórum y claves que caduquen cuando finalice la sesión. Cuando el comando se ejecuta correctamente, devuelve identificadores de clave que el HSM asigna a las claves ECC públicas y privadas. Puede utilizar estos identificadores de clave para identificar las claves ante otros comandos.

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).

sugerencia

Para buscar los atributos de una clave que haya creado, como tipo, longitud, etiqueta e ID, use getAttribute. Para buscar las claves de un usuario concreto, utilice getKeyInfo. Para buscar claves en función de sus valores de atributo, use findKey.

Sintaxis

genECCKeyPair -h genECCKeyPair -i <EC curve id> -l <label> [-id <key ID>] [-min_srv <minimum number of servers>] [-m_value <0..8>] [-nex] [-sess] [-timeout <number of seconds> ] [-u <user-ids>] [-attest]

Ejemplos

En los siguientes ejemplos, se muestra cómo se utiliza genECCKeyPair para crear un par de claves ECC en los HSM.

ejemplo : crear y examinar un par de claves ECC

Este comando utiliza una curva elíptica NID_secp384r1 y una etiqueta ecc14 para crear un par de claves ECC. El resultado muestra que el identificador de clave de la clave privada es 262177, mientras que el identificador de clave de la clave pública es 262179. La etiqueta se aplica a las clave privada y pública.

Command: genECCKeyPair -i 14 -l ecc14 Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 262179 private key handle: 262177 Cluster Error Status Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Después de generar la clave, puede examinar sus atributos. Utilice getAttribute para escribir todos los atributos (representados por la constante 512) de la nueva clave privada de ECC en el archivo attr_262177.

Command: getAttribute -o 262177 -a 512 -out attr_262177 got all attributes of size 529 attr cnt 19 Attributes dumped into attr_262177 Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

A continuación, utilice el comando cat para ver el contenido del archivo de atributos attr_262177. El resultado muestra que la clave es una clave privada de curva elíptica que puede usarse para firmar, pero no para cifrar, descifrar, encapsular, desencapsular o verificar. La clave es persistente y exportable.

$ cat attr_262177 OBJ_ATTR_CLASS 0x03 OBJ_ATTR_KEY_TYPE 0x03 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x00 OBJ_ATTR_DECRYPT 0x00 OBJ_ATTR_WRAP 0x00 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x01 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL ecc2 OBJ_ATTR_ID OBJ_ATTR_VALUE_LEN 0x0000008a OBJ_ATTR_KCV 0xbbb32a OBJ_ATTR_MODULUS 044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5 OBJ_ATTR_MODULUS_BITS 0x0000019f
ejemplo Uso de una curva de EEC no válida

Este comando intenta crear un par de claves ECC utilizando una curva NID_X9_62_prime192v1. Debido a que esta curva elíptica no es válida para los HSM de modo FIPS-mode HSM, el comando produce un error. El mensaje informa que un servidor en el clúster no está disponible, pero esto no suele indicar un problema con los HSM en el clúster.

Command: genECCKeyPair -i 1 -l ecc1 Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies Cluster Error Status Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable

Parámetros

-h

Muestra ayuda para el comando.

Obligatorio: sí

-i

Especifica el identificador de la curva elíptica. Escriba un identificador.

Valores válidos:

  • 2: NID_X9_62_prime256v1

  • 14: NID_secp384r1

  • 16: NID_secp256k1

Obligatorio: sí

-l

Especifica una etiqueta definida por el usuario para el par de claves. Tipo de cadena. Se aplica la misma etiqueta a las dos claves del par. El tamaño máximo permitido para label es de 127 caracteres.

Puede utilizar cualquier frase que le ayude a identificar la clave. La etiqueta no tiene por qué ser única, por lo que puede usarla para agrupar y clasificar las claves.

Obligatorio: sí

-id

Especifica un identificador definido por el usuario para el par de claves. Escriba una cadena que sea única en el clúster. El valor predeterminado es una cadena vacía. La ID que especifique se aplicará a las dos claves del par.

Predeterminado: sin valor de ID.

Requerido: 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 cada clave con cada 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

Requerido: no

-m_value

Especifica el número de usuarios que deben aprobar cualquier operación criptográfica que utilice la clave importada en el par. Escriba un valor de 0 a 8.

Este parámetro establece un requisito de autenticación de cuórum para la clave privada. El valor predeterminado, 0, deshabilita la característica de autenticación de cuórum para la clave. Cuando la autenticación de cuórum esté habilitada, el número especificado de usuarios deberá firmar un token para aprobar las operaciones criptográficas que empleen clave privada y las operaciones de compartir o dejar de compartir la clave privada.

Para encontrar el m_value de una clave, use getKeyInfo.

Este parámetro solo es válido cuando el parámetro -u del comando comparte la clave con suficientes usuarios para satisfacer el requisito m_value.

Predeterminado: 0

Requerido: no

-nex

Hace que la clave privada no se pueda extraer. La clave privada que se genera no se podrá exportar desde el HSM. Las claves públicas siempre se pueden extraer.

Predeterminado: tanto las claves públicas como las privadas del par de claves se pueden extraer.

Requerido: no

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

Requerido: 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.

Requerido: no

-u

Comparte la clave privada del par con los usuarios especificados. Este parámetro concede permiso a otros usuarios de criptografía (CU) del HSM para usar esta clave privada en operaciones criptográficas. Cualquier usuario puede utilizar las claves públicas sin necesidad de compartirlas.

Escriba una lista separada por comas de los ID de usuario de HSM, como -u 5,6. No incluya el ID de usuario de HSM del usuario actual. Para buscar los ID de usuario de HSM de los CU del HSM, utilice listUsers. Para compartir o dejar de compartir una clave existente, utilice shareKey en cloudhsm_mgmt_util.

Valor predeterminado: solo el usuario actual puede utilizar la clave privada.

Requerido: 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.

Requerido: no

Temas relacionados de