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

genSymKey

El comando genSymKey en la herramienta key_mgmt_util genera una clave simétrica en los HSM. Puede especificar el tipo y el tamaño de la clave, asignar un ID y una etiqueta, y compartir la clave con otros usuarios de HSM. También puede crear claves que no se pueden extraer y claves que caducan al finalizar la sesión. Cuando el comando se ejecuta correctamente, devuelve un identificador de clave que el HSM asigna a la clave. Puede utilizar el identificador de clave para identificar la clave 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).

Sintaxis

genSymKey -h genSymKey -t <key-type> -s <key-size> -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 estos ejemplos, se muestra cómo se utiliza genSymKey para crear claves simétricas en los HSM.

sugerencia

Para usar las claves que crea con estos ejemplos para las operaciones de HMAC, debe establecer OBJ_ATTR_SIGN y OBJ_ATTR_VERIFY como TRUE después de generar la clave. Para establecer estos valores, utilice setAttribute en la Utilidad de administración de CloudHSM (CMU). Para obtener más información, consultesetAttribute.

ejemplo Generación de una clave AES

Este comando crea una clave AES de 256 bits con una etiqueta aes256. El resultado muestra que el identificador de clave de la clave nueva es 6.

Command: genSymKey -t 31 -s 32 -l aes256 Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 6 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
ejemplo : creación de una clave de sesión

Este comando crea una clave AES de 192 bits no extraíble que es válida únicamente en la sesión actual. Puede que desee crear una clave como esta para encapsular (y, a continuación, desencapsular inmediatamente) una clave que se está exportando.

Command: genSymKey -t 31 -s 24 -l tmpAES -id wrap01 -nex -sess
ejemplo : regreso rápido

Este comando crea una clave de 512 bytes genéricos con una etiqueta IT_test_key. El comando no espera a que la clave se sincronice en todos los HSM en el clúster. En su lugar, regresa tan pronto como se crea la clave en cualquier HSM (-min_srv 1) o en 1 segundo (-timeout 1), el periodo que sea más corto. Si la clave no se sincroniza con el número mínimo especificado de HSM antes de que venza el tiempo de espera, no se genera. Es posible que desee utilizar un comando como este en un script que crea numerosas claves, como el bucle for del siguiente ejemplo.

Command: genSymKey -t 16 -s 512 -l IT_test_key -min_srv 1 -timeout 1 $ for i in {1..30}; do /opt/cloudhsm/bin/key_mgmt_util singlecmd loginHSM -u CU -s example_user -p example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1; done;
ejemplo : creación de una clave genérica autorizada mediante cuórum

Este comando crea una clave secreta genérica de 2048 bits con la etiqueta generic-mV2. El comando utiliza el parámetro -u para compartir la clave con otro CU, el usuario 6. Utiliza el parámetro -m_value para solicitar un cuórum de al menos dos aprobaciones para cualquier operación criptográfica que utilice la clave. El comando también utiliza el parámetro -attest para verificar la integridad del firmware en el que se genera la clave.

El resultado muestra que el comando generó una clave con identificador de clave 9 y que se ha superado la comprobación de declaración del firmware del clúster.

Command: genSymKey -t 16 -s 2048 -l generic-mV2 -m_value 2 -u 6 -attest Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 9 Attestation Check : [PASS] Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
ejemplo :creación y examen de una clave

Este comando crea una clave Triple DES con una etiqueta 3DES_shared y un ID de IT-02. La clave la pueden utilizar el usuario actual y los usuarios 4 y 5. Se produce un error en el comando si el ID no es único en el clúster o si el usuario actual es el usuario 4 o el usuario 5.

El resultado muestra que la clave nueva tiene el identificador de clave 7.

Command: genSymKey -t 21 -s 24 -l 3DES_shared -id IT-02 -u 4,5 Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 7 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Para verificar que la clave 3DES nueva es propiedad del usuario actual y se comparte con los usuarios 4 y 5, utilice getKeyInfo. El comando utiliza el identificador que se asignó a la clave nueva (Key Handle: 7).

El resultado confirma que la clave es propiedad del usuario 3 y se comparte con los usuarios 4 y 5.

Command: getKeyInfo -k 7 Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS Owned by user 3 also, shared to following 2 user(s): 4, 5

Para confirmar el resto de las propiedades de la clave, utilice getAttribute. El primer comando utiliza getAttribute para obtener todos los atributos (-a 512) del identificador de clave 7 (-o 7). Los escribe en el archivo attr_7. El segundo comando utiliza cat para obtener el contenido del archivo attr_7.

Este comando confirma que la clave 7 es una clave simétrica de 192 bits (OBJ_ATTR_VALUE_LEN 0x00000018 o 24 bytes) 3DES (OBJ_ATTR_KEY_TYPE 0x15) (OBJ_ATTR_CLASS 0x04) con una etiqueta 3DES_shared (OBJ_ATTR_LABEL 3DES_shared) y un ID IT_02 (OBJ_ATTR_ID IT-02). La clave es persistente (OBJ_ATTR_TOKEN 0x01) y extraíble (OBJ_ATTR_EXTRACTABLE 0x01) y se puede utilizar para el cifrado, el descifrado y el encapsulado.

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.

Para obtener ayuda para interpretar los atributos de clave, consulte la Referencia de los atributos de claves.

Command: getAttribute -o 7 -a 512 -out attr_7 got all attributes of size 444 attr cnt 17 Attributes dumped into attr_7 file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS $ cat attr_7 OBJ_ATTR_CLASS 0x04 OBJ_ATTR_KEY_TYPE 0x15 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x01 OBJ_ATTR_DECRYPT 0x01 OBJ_ATTR_WRAP 0x00 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x00 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL 3DES_shared OBJ_ATTR_ID IT-02 OBJ_ATTR_VALUE_LEN 0x00000018 OBJ_ATTR_KCV 0x59a46e
sugerencia

Para usar las claves que crea con estos ejemplos para las operaciones de HMAC, debe establecer OBJ_ATTR_SIGN y OBJ_ATTR_VERIFY como TRUE después de generar la clave. Para establecer estos valores, utilice setAttribute en CMU. Para obtener más información, consultesetAttribute.

Parámetros

-h

Muestra ayuda para el comando.

Obligatorio: sí

-t

Especifica el tipo de clave simétrica. Escriba la constante que representa el tipo de clave. Por ejemplo, para crear una clave AES, escriba -t 31.

Valores válidos:

  • 16: GENERIC_SECRET. Una clave secreta genérica es una matriz de bytes que no se ajusta a ningún estándar en particular, como, por ejemplo, los requisitos de una clave AES.

  • 18: RC4. Las claves RC4 no son válidas en los HSM en modo FIPS

  • 21: Triple DES (3DES). 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 que no estén en modo FIPS, se seguirá permitiendo después de 2023. Para obtener más información, consulte Cumplimiento de la normativa FIPS 140: anulación de mecanismo 2024.

  • 31: AES

Obligatorio: sí

-s

Especifica el tamaño de la clave en bytes. Por ejemplo, para crear una clave de 192 bits, escriba 24.

Valores válidos para cada tipo de clave:

  • AES: 16 (128 bits), 24 (192 bits), 32 (256 bits)

  • 3DES: 24 (192 bits)

  • Secreta genérica: <3584 (28672 bits)

Obligatorio: sí

-l

Especifica una etiqueta definida por el usuario para la clave. Tipo de cadena.

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í

-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

-id

Especifica un identificador definido por el usuario para la clave. Escriba una cadena que sea única en el clúster. El valor predeterminado es una cadena vacía.

Predeterminado: sin valor de ID.

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

-m_value

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

Este parámetro establece un requisito de autenticación de quórum para la clave. El valor predeterminado, 0, deshabilita la característica de autenticación de cuórum para la clave. Cuando la autenticación de quórum está activada, el número especificado de usuarios debe firmar un token para aprobar las operaciones criptográficas que utilizan la clave, y las operaciones que comparten o dejan de compartir la clave.

Para encontrar la clave m_value de una clave, utilice. 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

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

-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

-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

-u

Comparte la clave con los usuarios especificados. Este parámetro concede permiso a otros usuarios de criptografía (CU) de HSM para usar esta clave en operaciones criptográficas.

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.

Predeterminado: solo el usuario actual puede utilizar la clave.

Obligatorio: no

Temas relacionados de