Desencapsular uma chave com o RSA-OAEP usando a CLI do CloudHSM
Use o comando key unwrap rsa-oaep na CLI do CloudHSM para desencapsular uma chave de carga útil usando a chave privada RSA e o mecanismo de desencapsulamento RSA-OAEP
.
As chaves desencapsuladas podem ser usadas da mesma forma que as chaves geradas pelo AWS CloudHSM. Para indicar que elas não foram geradas localmente, o atributo local
é definido como false
.
Para usar o comando key unwrap rsa-oaep, você deve ter a chave privada RSA da chave de encapsulamento pública RSA em seu cluster do AWS CloudHSM e seu atributo unwrap
deve estar definido como true
.
Tipo de usuário
Os seguintes tipos de usuários podem executar este comando.
-
Usuários de criptografia (CUs)
Requisitos
-
Para executar esse comando, você deve estar registrado como um CU.
Sintaxe
aws-cloudhsm >
help key unwrap rsa-oaep
Usage: key unwrap rsa-oaep [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
Exemplos
Esses exemplos mostram como usar o comando key unwrap rsa-oaep usando a chave privada RSA com o valor do atributo unwrap
definido como true
.
exemplo Exemplo: desencapsular uma chave de carga útil dos dados da chave encapsulada codificada em Base64
aws-cloudhsm >
key unwrap rsa-oaep --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-example-key --hash-function sha256 --mgf mgf1-sha256 --data OjJe4msobPLz9TuSAdULEu17T5rMDWtSlLyBSkLbaZnYzzpdrhsbGLbwZJCtB/jGkDNdB4qyTAOQwEpggGf6v+Yx6JcesNeKKNU8XZal/YBoHC8noTGUSDI2qr+u2tDc84NPv6d+F2KOONXsSxMhmxzzNG/gzTVIJhOuy/B1yHjGP4mOXoDZf5+7f5M1CjxBmz4Vva/wrWHGCSG0yOaWblEvOiHAIt3UBdyKmU+/My4xjfJv7WGGu3DFUUIZ06TihRtKQhUYU1M9u6NPf9riJJfHsk6QCuSZ9yWThDT9as6i7e3htnyDhIhGWaoK8JU855cN/YNKAUqkNpC4FPL3iw==
{ "data": { "key": { "key-reference": "0x00000000001808e9", "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 } } } }
exemplo Exemplo: desencapsular uma chave de carga útil fornecida por meio de um caminho de dados
aws-cloudhsm >
key unwrap rsa-oaep --key-type-class aes --label aes-unwrapped --filter attr.label=rsa-private-example-key --hash-function sha256 --mgf mgf1-sha256 --data-path payload-key.pem
{ "error_code": 0, "data": { "key": { "key-reference": "0x00000000001808e9", "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>
-
O ID do cluster em que essa operação será executada.
Obrigatório: se vários clusters tiverem sido configurados.
<FILTER>
-
Referência de chave (por exemplo,
key-reference=0xabc
) ou lista separada por espaços contendo atributos de chave na forma deattr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
para selecionar uma chave para ser usada no desencapsulamento.Obrigatório: Sim
<DATA_PATH>
-
Caminho para o arquivo binário que contém os dados da chave encapsulada.
Obrigatório: sim (a menos que seja fornecido por meio de dados codificados em Base64)
<DATA>
-
Dados de chaves encapsuladas codificados em Base64.
Obrigatório: sim (a menos que seja fornecido por meio do caminho de dados)
<ATTRIBUTES>
-
Lista separada por espaço contendo atributos de chaves na forma de
KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
para a chave encapsulada.Obrigatório: Não
<KEY_TYPE_CLASS>
-
Tipo de chave e classe da chave encapsulada [valores possíveis:
aes
,des3
,ec-private
,generic-secret
,rsa-private
].Obrigatório: Sim
<HASH_FUNCTION>
-
Especifica a função hash.
Valores válidos:
sha1
sha224
sha256
sha384
sha512
Obrigatório: Sim
<MGF>
-
Especifica a função de geração da máscara.
nota
A função hash da função de geração de máscara deve corresponder à função hash do mecanismo de assinatura.
Valores válidos:
mgf1-sha1
mgf1-sha224
mgf1-sha256
mgf1-sha384
mgf1-sha512
Obrigatório: Sim
<LABEL>
-
Rótulo da chave desencapsulada.
Obrigatório: Sim
<SESSION>
-
Cria uma chave de sessão que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.
Obrigatório: Não