Exportar uma chave privada do AWS CloudHSM usando o KMU
Use o comando exportPrivateKey no key_mgmt_util do AWS CloudHSM para exportar uma chave privada assimétrica de um módulo de segurança de hardware (HSM) para um arquivo. O HSM não permite a exportação direta de chaves em texto não criptografado. O comando agrupa a chave privada usando uma chave de agrupamento AES que você especifica, descriptografa os bytes agrupados e copia a chave privada de texto não criptografado em um arquivo.
O comando exportPrivateKey não remove a chave do HSM nem altera os atributos de chave ou impede que você use a chave em outras operações criptográficas. É possível exportar a mesma chave várias vezes.
Você só pode exportar chaves privadas que têm o atributo OBJ_ATTR_EXTRACTABLE
com o valor 1
. Você deve especificar uma chave de agrupamento AES que tenha atributos de valor 1
OBJ_ATTR_WRAP
e OBJ_ATTR_DECRYPT
. Para encontrar os atributos de uma chave, use o comando getAttribute.
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
exportPrivateKey -h exportPrivateKey -k
<private-key-handle
-w<wrapping-key-handle>
-out<key-file>
[-m<wrapping-mechanism>
] [-wk<wrapping-key-file>
]
Exemplos
Este exemplo mostra como usar exportPrivateKey para exportar uma chave privada de um HSM.
exemplo : Export a Private Key
Esse comando exporta uma chave privada com o identificador 15
usando uma chave de encapsulamento com o identificador 16
para um arquivo PEM chamado exportKey.pem
. Quando o comando é bem-sucedido, exportPrivateKey retorna uma mensagem de êxito.
Command:
exportPrivateKey -k 15 -w 16 -out exportKey.pem
Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS PEM formatted private key is written to exportKey.pem
Parâmetros
Esse comando usa os seguintes parâmetros.
-h
-
Exibe a ajuda da linha de comando para o comando.
Obrigatório: Sim
-k
-
Especifica o identificador de chave da chave privada a ser exportada.
Obrigatório: Sim
-w
-
Especifica o identificador de chave da chave de encapsulamento. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando findKey.
Para determinar se uma chave pode ser usada como uma chave de encapsulamento, use getAttribute para obter o valor do atributo
OBJ_ATTR_WRAP
(262). Para criar uma chave de encapsulamento, use genSymKey a fim de criar uma chave AES (digite 31).Se você usar o parâmetro
-wk
para especificar uma chave de desencapsulamento externa, a chave de encapsulamento-w
será usada para encapsular, mas não para desencapsular, a chave durante a exportação.Obrigatório: Sim
-out
-
Especifica o nome do arquivo no qual a chave privada exportada será gravada.
Obrigatório: Sim
-m
-
Especifica o mecanismo de encapsulamento com o qual encapsular a chave privada que está sendo exportada. O único valor válido é
4
, que representaNIST_AES_WRAP mechanism.
Padrão: 4 (
NIST_AES_WRAP
)Obrigatório: Não
-wk
-
Especifica a chave a ser usada para desencapsular a chave que está sendo exportada. Insira o caminho e o nome de um arquivo que contém uma chave AES de texto simples.
Durante a inclusão desse parâmetro. exportPrivateKey usa a chave no arquivo
-w
para encapsular a chave que está sendo exportada e usa a chave especificada no parâmetro-wk
para desencapsulá-la.Padrão: use a chave de encapsulamento especificada no parâmetro
-w
para encapsular e desencapsular.Obrigatório: Não