Cifrar y descifrar un archivo de AWS CloudHSM con la KMU
Use el comando aesWrapUnwrap en key_mgmt_util del AWS CloudHSM para cifrar o descifrar el contenido de un archivo en el disco. Este comando está diseñado para encapsular y desencapsular claves de cifrado, pero se puede utilizar en cualquier archivo que contenga menos de 4 KB (4096 bytes) de datos.
aesWrapUnwrap utiliza el encapsulado de claves AES
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
aesWrapUnwrap -h aesWrapUnwrap -m
<wrap-unwrap mode>
-f<file-to-wrap-unwrap>
-w<wrapping-key-handle>
[-i<wrapping-IV>
] [-out<output-file>
]
Ejemplos
En estos ejemplos, se muestra cómo se utiliza aesWrapUnwrap para cifrar y descifrar una clave de cifrado en un archivo.
ejemplo : encapsulamiento de una clave de cifrado
Este comando utiliza aesWrapUnwrap para encapsular una clave simétrica triple DES que se ha exportado desde el HSM sin cifrar hasta el archivo 3DES.key
. Puede utilizar un comando similar para encapsular toda clave que esté guardada en un archivo.
El comando utiliza el parámetro -m
con un valor de 1
para indicar el modo de encapsulamiento. Utiliza el parámetro -w
para especificar una clave AES en el HSM (indicador de clave 6
) como clave de encapsulamiento. Escribe la clave encapsulada obtenida en el archivo 3DES.key.wrapped
.
La salida muestra que el comando se ha ejecutado correctamente y que la operación ha utilizado el IV predeterminado, que es el preferido.
Command:
aesWrapUnwrap -f 3DES.key -w 6 -m 1 -out 3DES.key.wrapped
Warning: IV (-i) is missing. 0xA6A6A6A6A6A6A6A6 is considered as default IV result data: 49 49 E2 D0 11 C1 97 22 17 43 BD E3 4E F4 12 75 8D C1 34 CF 26 10 3A 8D 6D 0A 7B D5 D3 E8 4D C2 79 09 08 61 94 68 51 B7 result written to file 3DES.key.wrapped Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
ejemplo : desencapsulamiento de una clave de cifrado
En este ejemplo, se muestra cómo se utiliza aesWrapUnwrap para desencapsular (descifrar) una clave encapsulada (cifrada) en un archivo. Puede que le interese realizar una operación de este tipo antes de importar una clave al HSM. Por ejemplo, si intenta utilizar el comando imSymKey para importar una clave cifrada, este devuelve un error, ya que la clave cifrada no tiene el formato necesario para una clave sin cifrar de ese tipo.
El comando desencapsula la clave del archivo 3DES.key.wrapped
y escribe el texto sin cifrar en el archivo 3DES.key.unwrapped
. El comando utiliza el parámetro -m
con un valor de 0
para indicar el modo de desencapsulamiento. Utiliza el parámetro -w
para especificar una clave AES en el HSM (indicador de clave 6
) como clave de encapsulamiento. Escribe la clave encapsulada obtenida en el archivo 3DES.key.unwrapped
.
Command:
aesWrapUnwrap -m 0 -f 3DES.key.wrapped -w 6 -out 3DES.key.unwrapped
Warning: IV (-i) is missing. 0xA6A6A6A6A6A6A6A6 is considered as default IV result data: 14 90 D7 AD D6 E4 F5 FA A1 95 6F 24 89 79 F3 EE 37 21 E6 54 1F 3B 8D 62 result written to file 3DES.key.unwrapped Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS
Parámetros
- -h
-
Muestra ayuda para el comando.
Obligatorio: sí
- -m
-
Especifica el modo. Para encapsular (cifrar) el contenido del archivo, escriba
1
; para desencapsular (descifrar) el contenido del archivo, escriba0
.Obligatorio: sí
- -f
-
Especifica el archivo que se va a encapsular. Especifique un archivo que contenga menos de 4 KB (4096 bytes) de datos. Esta operación está diseñada para encapsular y desencapsular claves de cifrado.
Obligatorio: sí
- -w
-
Especifica la clave de encapsulamiento. Introduzca el identificador de clave de una clave AES en el HSM. Este parámetro es obligatorio. Para buscar identificadores de clave, use el comando findKey.
Para crear una clave de encapsulamiento, use genSymKey para generar una clave AES (tipo 31).
Obligatorio: sí
- -i
-
Especifica un valor inicial alternativo (IV) para el algoritmo. Utilice el valor predeterminado a menos que tenga una condición especial que requiera una alternativa.
Predeterminado:
0xA6A6A6A6A6A6A6A6
. El valor predeterminado se define en la especificación de algoritmo de encapsulamiento de claves AES. Requerido: no
- -out
-
Especifica un nombre alternativo para el archivo de salida que contiene la clave encapsulada o desencapsulada. El valor predeterminado es
wrapped_key
(para operaciones de encapsulamiento) yunwrapped_key
(para operaciones de desencapsulamiento) en el directorio local.Si el archivo existe, el comando aesWrapUnwrap lo sobrescribe sin ningún tipo de advertencia. Si se produce un error en el comando, aesWrapUnwrap crea un archivo de salida sin contenido.
Valor predeterminado: para el encapsulamiento:
wrapped_key
. Para el desencapsulamiento:unwrapped_key
.Requerido: no