Exportar uma chave do AWS CloudHSM usando o KMU
Use o comando wrapKey no key_mgmt_util do AWS CloudHSM para exportar uma cópia criptografada de uma chave simétrica ou privada do módulo de segurança de hardware (HSM) para um arquivo. Ao executar wrapKey, você especifica a chave a ser exportada, uma chave no HSM para criptografar (encapsular) a chave que deseja exportar e o arquivo de saída.
O comando wrapKey grava a chave criptografada em um arquivo que você especifica, mas não remove a chave do HSM ou impede que você a use em operações de criptografia. É possível exportar a mesma chave várias vezes.
Somente o proprietário de uma chave, ou seja, o usuário CU que a criou, pode exportá-la. Os usuários que compartilham a chave podem usá-la em operações de criptografia, mas não podem exportá-la.
Para importar a chave criptografada novamente no HSM, use unWrapKey. Para exportar uma chave de texto simples de um HSM, use exSymKey ou exportPrivateKey conforme apropriado. O comando aesWrapUnwrap não pode descriptografar (desencapsular) chaves encapsuladas por wrapKey.
Antes de executar um comando key_mgmt_util, você deve iniciar key_mgmt_util e fazer login no HSM como um usuário de criptografia (CU).
Sintaxe
wrapKey -h wrapKey -k<exported-key-handle>-w<wrapping-key-handle>-out<output-file>[-m<wrapping-mechanism>] [-aad<additional authenticated data filename>] [-t<hash-type>] [-noheader] [-i<wrapping IV>] [-iv_file<IV file>] [-tag_size<num_tag_bytes>>]
Exemplo
Esse comando exporta uma chave simétrica Triple DES (3DES) de 192 bits (identificador de chave 7). Ele usa uma chave AES de 256 bits no HSM (identificador de chave 14) para encapsular a chave 7. Em seguida, ele grava a chave 3DES criptografada no arquivo 3DES-encrypted.key.
A saída mostra que a chave 7 (3DES) foi encapsulada e gravada com sucesso no arquivo especificado. A chave criptografada tem 307 bytes de comprimento.
Command:wrapKey -k 7 -w 14 -out 3DES-encrypted.key -m 4Key Wrapped. Wrapped Key written to file "3DES-encrypted.key length 307 Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS
Parâmetros
- -h
-
Exibe a ajuda referente ao comando.
Obrigatório: Sim
- -k
-
O identificador da chave que você deseja exportar. Digite o identificador da uma chave simétrica ou particular de sua propriedade. Para encontrar os identificadores de chave, use o comando findKey.
Para verificar se uma chave pode ser exportada, use o comando getAttribute para obter o valor do atributo
OBJ_ATTR_EXTRACTABLE, que é representado pela constante354. Para obter ajuda sobre a interpretação dos principais atributos, consulte Referência de atributo de chaves do AWS CloudHSM para KMU.Você pode exportar apenas as chaves que você possui. Para encontrar o proprietário de uma chave, use o comando getKeyInfo.
Obrigatório: Sim
- -w
-
Especifica a chave de empacotamento. Insira o identificador de uma chave AES ou chave RSA no HSM. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando findKey.
Para criar uma chave de encapsulamento, use gensymKey para gerar uma chave AES (tipo 31) ou genRSAKeypair para gerar um par de chaves RSA (tipo 0). Se você estiver usando um par de chaves RSA, certifique-se de encapsular a chave com uma das chaves e desencapsular com a outra. Para determinar se uma chave pode ser usada como uma chave de empacotamento, use getAttribute para obter o valor do atributo
OBJ_ATTR_WRAP, que é representado pela constante262.Obrigatório: Sim
- -out
-
O caminho e o nome do arquivo de saída. Quando o comando é bem-sucedido, esse arquivo contém uma cópia criptografada da chave exportada. Se o arquivo já existir, o comando o sobrescreverá sem aviso prévio.
Obrigatório: Sim
- -m
-
O valor que representa o mecanismo de encapsulamento. O CloudHSM é compatível com os seguintes mecanismos:
Mecanismo Valor AES_KEY_WRAP_PAD_PKCS54 NIST_AES_WRAP_NO_PAD5 NIST_AES_WRAP_PAD6 RSA_AES7 RSA_OAEP(para obter o tamanho máximo dos dados, consulte a observação mais adiante nesta seção)8 AES_GCM10 CLOUDHSM_AES_GCM11 RSA_PKCS(para obter o tamanho máximo dos dados, consulte a observação mais adiante nesta seção). Consulte a nota 1 abaixo para ver uma mudança futura.12 Obrigatório: Sim
nota
Ao usar o mecanismo de encapsulamento
RSA_OAEP, o tamanho máximo da chave que você pode encapsular é determinado pelo módulo da chave RSA e pelo comprimento do hash especificado como: tamanho máximo da chave = (modulusLengthInBytes-2* hashLengthInBytes-2).Ao usar o mecanismo de encapsulamento RSA_PKCS, o tamanho máximo da chave que você pode encapsular é determinado pelo módulo da chave RSA especificados como: tamanho máximo da chave = (modulusLengthInBytes -11).
- -t
-
O valor que representa o algoritmo hash. O CloudHSM é compatível com os seguintes algoritmos:
Algoritmo hash Valor SHA12 SHA2563 SHA3844 SHA5125 SHA224(válido paraRSA_AES e RSA_OAEPmecanismos)6 Obrigatório: Não
- -aad
O nome do arquivo que contém
AAD.nota
Válido apenas para os mecanismos
AES_GCMeCLOUDHSM_AES_GCM.Obrigatório: Não
- -noheader
-
Omite o cabeçalho que especifica os atributos de chave específicos do CloudHSM. Use este parâmetro somente se desejar desencapsular a chave com ferramentas fora da key_mgmt_util.
Obrigatório: Não
- -i
O vetor de inicialização (IV) (valor hexadecimal).
nota
Válido somente quando passado com o parâmetro
-noheaderpara mecanismosCLOUDHSM_AES_KEY_WRAPeNIST_AES_WRAP.Obrigatório: Não
- -iv_file
O arquivo no qual você deseja gravar o valor IV obtido em resposta.
nota
Válido somente quando passado com o parâmetro
-noheaderpara o mecanismoAES_GCM.Obrigatório: Não
- -tag_size
O tamanho da tag a ser salva junto com o blob encapsulado.
nota
Válido somente quando passado com o parâmetro
-noheaderpara mecanismosAES_GCMeCLOUDHSM_AES_GCM. O tamanho mínimo da tag é oito.Obrigatório: Não
[1] De acordo com a orientação do NIST, isso não é permitido em clusters no modo FIPS após 2023. Para clusters no modo não FIPS, isso ainda é permitido após 2023. Para mais detalhes, consulte Conformidade com o FIPS 140: suspensão do mecanismo de 2024.