Desempaquetar una clave con RSA-AES mediante la CLI de CloudHSM
Use el comando key unwrap rsa-aes en la CLI de CloudHSM para desempaquetar una clave de carga útil mediante la clave privada RSA y el mecanismo de desempaquetado RSA-AES
.
Las claves desempaquetadas se pueden usar de la misma manera que las claves generadas por AWS CloudHSM. Para indicar que no se generaron localmente, su atributo local
se establece en false
.
Para usar el comando key unwrap rsa-aes, debe tener la clave privada RSA de la clave pública RSA de su clúster de AWS CloudHSM y su atributo unwrap
debe estar establecido en true
.
Tipo de usuario
Los tipos de usuarios siguientes pueden ejecutar este comando.
-
Usuarios de criptografía (CU)
Requisitos
-
Para ejecutar este comando, debe iniciar sesión como CU.
Sintaxis
aws-cloudhsm >
help key unwrap rsa-aes
Usage: key unwrap rsa-aes [OPTIONS] --filter [
<FILTER>
...] --hash-function<HASH_FUNCTION>
--mgf<MGF>
--key-type-class<KEY_TYPE_CLASS>
--label<LABEL>
<--data-path<DATA_PATH>
|--data<DATA>
> Options: --cluster-id<CLUSTER_ID>
Unique Id to choose which of the clusters in the config file to run the operation against. If not provided, will fall back to the value provided when interactive mode was started, or error --filter [<FILTER>
...] Key reference (e.g. key-reference=0xabc) or space separated list of key attributes in the form of attr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE to select a key to unwrap with --data-path<DATA_PATH>
Path to the binary file containing the wrapped key data --data<DATA>
Base64 encoded wrapped key data --attributes [<UNWRAPPED_KEY_ATTRIBUTES>
...] Space separated list of key attributes in the form of KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE for the unwrapped key --hash-function<HASH_FUNCTION>
Hash algorithm [possible values: sha1, sha224, sha256, sha384, sha512] --mgf<MGF>
Mask Generation Function algorithm [possible values: mgf1-sha1, mgf1-sha224, mgf1-sha256, mgf1-sha384, mgf1-sha512] --key-type-class<KEY_TYPE_CLASS>
Key type and class of wrapped key [possible values: aes, des3, ec-private, generic-secret, rsa-private] --label<LABEL>
Label for the unwrapped key --session Creates a session key that exists only in the current session. The key cannot be recovered after the session ends -h, --help Print help
Ejemplo
En estos ejemplos, se muestra cómo usar el comando key unwrap rsa-aes mediante la clave privada RSA con el valor del atributo unwrap
establecido en true
.
ejemplo Ejemplo: desempaquete una clave de carga útil de los datos clave empaquetados y codificados en Base64
aws-cloudhsm >
key unwrap rsa-aes --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-key-example --hash-function sha256 --mgf mgf1-sha256 --data HrSE1DEyLjIeyGdPa9R+ebiqB5TIJGyamPker31ZebPwRA+NcerbAJO8DJ1lXPygZcI21vIFSZJuWMEiWpe1R9D/5WSYgxLVKex30xCFqebtEzxbKuv4DOmU4meSofqREYvtb3EoIKwjyxCMRQFgoyUCuP4y0f0eSv0k6rSJh4NuCsHptXZbtgNeRcR4botN7LlzkEIUcq4fVHaatCwd0J1QGKHKyRhkol+RL5WGXKe4nAboAkC5GO7veI5yHL1SaKlssSJtTL/CFpbSLsAFuYbv/NUCWwMY5mwyVTCSlw+HlgKK+5TH1MzBaSi8fpfyepLT8sHy2Q/VRl6ifb49p6m0KQFbRVvz/OWUd6l4d97BdgtaEz6ueg==
{ "error_code": 0, "data": { "key": { "key-reference": "0x00000000001808e2", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
ejemplo Ejemplo: desempaquete una clave de carga útil proporcionada a través de una ruta de datos
aws-cloudhsm >
key unwrap rsa-aes --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-key-example --hash-function sha256 --mgf mgf1-sha256 --data-path payload-key.pem
{ "error_code": 0, "data": { "key": { "key-reference": "0x00000000001808e2", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
Argumentos
<CLUSTER_ID>
-
El ID del clúster en el que se va a ejecutar esta operación.
Obligatorio: si se han configurado varios clústeres.
<FILTER>
-
Referencia de clave (por ejemplo,
key-reference=0xabc
) o lista de atributos clave separados por espacios en forma deattr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
para seleccionar una clave con la que se desempaquetará.Obligatorio: sí
<DATA_PATH>
-
Ruta al archivo binario que contiene los datos clave empaquetados.
Obligatorio: Sí (a menos que se proporcione mediantes datos codificados en Base64)
<DATA>
-
Datos clave empaquetados y codificados en Base64.
Obligatorio: Sí (a menos que se proporcione por la ruta de datos)
<ATTRIBUTES>
-
Lista de atributos clave separados por espacios en forma de
KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
para la clave empaquetada.Requerido: no
<KEY_TYPE_CLASS>
-
Tipo de clave y clase de clave empaquetada [valores posibles:
aes
,des3
,ec-private
,generic-secret
,rsa-private
].Obligatorio: sí
<HASH_FUNCTION>
-
Especifica la función hash.
Valores válidos:
sha1
sha224
sha256
sha384
sha512
Obligatorio: sí
<MGF>
-
Especifica la función de generación de máscaras.
nota
La función hash de la función de generación de máscaras debe coincidir con la función hash del mecanismo de firma.
Valores válidos:
mgf1-sha1
mgf1-sha224
mgf1-sha256
mgf1-sha384
mgf1-sha512
Obligatorio: sí
<LABEL>
-
Etiqueta para la clave desempaquetada.
Obligatorio: sí
<SESSION>
-
Crea una clave de sesión que solo existe en la sesión actual. La clave no se podrá recuperar una vez finalizada la sesión.
Requerido: no