Generar un par de claves DSA de AWS CloudHSM con la KMU
Use el comando genDSAKeyPair de la herramienta key_mgmt_util del AWS CloudHSM para generar un par de claves de algoritmo de firma digital
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
genDSAKeyPair -h genDSAKeyPair -m
<modulus length>
-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 genDSAKeyPair para crear un par de claves de DSA.
ejemplo : creación de un par de claves de DSA
Este comando crea un par de claves de DSA con una etiqueta DSA
. La salida muestra que el identificador de clave de la clave pública es 19
, mientras que el identificador de la clave privada es 21
.
Command:
genDSAKeyPair -m 2048 -l DSA
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 19 private key handle: 21 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
ejemplo : creación de un par de claves de DSA solo para la sesión
Este comando crea un par de claves de DSA que es válido únicamente en la sesión actual. El comando asigna el ID exclusivo DSA_temp_pair
además de la etiqueta obligatoria (que no es exclusiva). Es posible que le interese crear un par de claves de este tipo para firmar y verificar un token de una sola sesión. La salida muestra que el identificador de clave de la clave pública es 12
, mientras que el identificador de la clave privada es 14
.
Command:
genDSAKeyPair -m 2048 -l DSA-temp -id DSA_temp_pair -sess
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 12 private key handle: 14 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Para confirmar que el par de claves exista únicamente en la sesión, utilice el parámetro -sess
de findKey con el valor 1
(true).
Command:
findKey -sess 1
Total number of keys present 2 number of keys matched from start index 0::1 12, 14 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
ejemplo : creación de un par de claves de DSA no extraíbles y compartidas
Este comando crea un par de claves de DSA. La clave privada se comparte con otros tres usuarios y no se puede exportar desde el HSM. Cualquier usuario puede utilizar las claves públicas y estas siempre se pueden extraer.
Command:
genDSAKeyPair -m 2048 -l DSA -id DSA_shared_pair -nex -u 3,5,6
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 11 private key handle: 19 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
ejemplo : creación de un par de claves controladas mediante cuórum
Este comando crea un par de claves de DSA con la etiqueta DSA-mV2
. El comando utiliza el parámetro -u
para compartir la clave privada con los usuarios 4 y 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 privada. El comando también utiliza el parámetro -attest
para verificar la integridad del firmware en el que se genera el par de claves.
La salida muestra que el comando genera una clave pública con el identificador de clave 12
y una clave privada con el identificador de clave 17
y que la comprobación de declaración del firmware del clúster ha pasado.
Command:
genDSAKeyPair -m 2048 -l DSA-mV2 -m_value 2 -u 4,6 -attest
Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 12 private key handle: 17 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
Este comando utiliza getKeyInfo en la clave privada (identificador de clave 17
). La salida confirma que la clave es propiedad del usuario actual (usuario 3) y que se comparte con los usuarios 4 y 6 (y nadie más). La salida también muestra que la autenticación de cuórum está habilitada y que el cuórum es de dos.
Command:
getKeyInfo -k 17
Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS Owned by user 3 also, shared to following 2 user(s): 4 6 2 Users need to approve to use/manage this key
Parámetros
- -h
-
Muestra ayuda para el comando.
Obligatorio: sí
- -m
-
Especifica la longitud del módulo en bits. El único valor válido es
2048
.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
a8
.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 requisitom_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