Importar chaves protegidas por HSM para o HSM Gerenciado (BYOK)
O HSM Gerenciado do Azure Key Vault dá suporte à importação de chaves geradas no HSM (módulo de segurança de hardware) local. As chaves nunca deixarão o limite de proteção do HSM. Esse cenário é, muitas vezes, conhecido como BYOK (Bring Your Own Key). O HSM gerenciado usa os adaptadores de HSM da Marvell LiquidSecurity (validados para FIPS 140-2 nível 3) para proteger as chaves.
Use as informações deste artigo para ajudar você a planejar, gerar e transferir as próprias chaves protegidas por HSM a serem usadas com o HSM Gerenciado.
Observação
Essa funcionalidade não está disponível para o Microsoft Azure operado pela 21Vianet. Esse método de importação está disponível somente para HSMs compatíveis.
Para obter mais informações e para obter um tutorial para começar a usar o HSM Gerenciado, confira O que é o HSM gerenciado?.
Visão geral
Eis uma visão geral do processo. As etapas específicas a serem concluídas serão descritas mais adiante neste artigo.
- No HSM Gerenciado, gere uma chave (chamada de KEK ou Chave de Troca de Chaves). A KEK precisa ser uma chave RSA-HSM que tenha apenas a operação de chave
import
. - Baixe a chave pública KEK como um arquivo .pem.
- Transfira a chave pública KEK para um computador offline que esteja conectado a um HSM local.
- No computador offline, use a ferramenta BYOK disponibilizada pelo fornecedor do HSM para criar um arquivo BYOK.
- A chave de destino é criptografada com uma KEK, que permanece criptografada até ser transferida para o HSM Gerenciado. Apenas a versão criptografada da chave sai do HSM local.
- Uma KEK gerada em um HSM Gerenciado não é exportável. Os HSMs impõem a regra de que não existe nenhuma versão clara de uma KEK fora de um HSM Gerenciado.
- A KEK precisa estar no mesmo HSM gerenciado em que a chave de destino será importada.
- Quando o arquivo BYOK é carregado para o HSM Gerenciado, um HSM Gerenciado do Key Vault usa a chave privada KEK para descriptografar o material de chave de destino e importá-lo como uma chave HSM. Essa operação ocorre inteiramente no HSM. A chave de destino sempre permanece no limite de proteção do HSM.
Pré-requisitos
Para usar comandos da CLI do Azure neste artigo, você deve ter os seguintes itens:
- Uma assinatura do Microsoft Azure. Se você não tiver uma, pode se inscrever e fazer uma avaliação gratuita.
- A CLI do Azure versão 2.12.0 ou posterior. Execute
az --version
para encontrar a versão. Se você precisar instalar ou atualizar, confira Instalar a CLI do Azure. - Um HSM gerenciado da lista de HSMs compatíveis na sua assinatura. Confira Início Rápido: Provisione e ative um HSM Gerenciado usando a CLI do Azure para provisionar e ativar um HSM Gerenciado.
Azure Cloud Shell
O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.
Para iniciar o Azure Cloud Shell:
Opção | Exemplo/Link |
---|---|
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. | |
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. | |
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. |
Para usar o Azure Cloud Shell:
Inicie o Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou o comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou o comando.
Para entrar no Azure usando a CLI, digite:
az login
Para saber mais sobre as opções de logon por meio da CLI, veja Entrar com a CLI do Azure
HSMs compatíveis
Nome do fornecedor | Tipo de fornecedor | Modelos de HSM compatíveis | Mais informações |
---|---|---|---|
Cryptomathic | ISV (Sistema de Gerenciamento de Chaves Empresariais) | Várias marcas e modelos de HSM, incluindo
|
|
Entrust | Fabricante, HSM como serviço |
|
Nova ferramenta BYOK nCipher e documentação |
Fortanix | Fabricante, HSM como serviço |
|
Como exportar chaves SDKMS para provedores de nuvem para BYOK – Azure Key Vault |
IBM | Fabricante | IBM 476x, CryptoExpress | IBM Enterprise Key Management Foundation |
Marvell | Fabricante | Todos os HSMs LiquidSecurity com
|
Ferramenta BYOK Marvell e documentação |
Securosys SA | Fabricante, HSM como serviço | Família HSM Primus, Securosys Clouds HSM | Ferramenta e documentação do Primus BYOK |
StorMagic | ISV (Sistema de Gerenciamento de Chaves Empresariais) | Várias marcas e modelos de HSM, incluindo
|
SvKMS e Azure Key Vault BYOK |
Thales | Fabricante |
|
Ferramenta BYOK Luna e documentação |
Utimaco | Fabricante, HSM como serviço |
Âncora u.trust, CryptoServer | Ferramenta BYOK e Guia de integração da Ultimaco |
Tipos de chave com suporte
Nome da chave | Tipo de chave | Tamanho/curva da chave | Origem | Descrição |
---|---|---|---|---|
KEK (Chave de Troca de Chaves) | RSA-HSM | 2\.048 bits 3\.072 bits 4\.096 bits |
HSM Gerenciado | Um par de chaves RSA compatível com HSM gerado no HSM Gerenciado |
Chave de destino | ||||
RSA-HSM | 2\.048 bits 3\.072 bits 4\.096 bits |
HSM do fornecedor | A chave a ser transferida para o HSM Gerenciado | |
EC-HSM | P-256 P-384 P-521 |
HSM do fornecedor | A chave a ser transferida para o HSM Gerenciado | |
Chave simétrica (oct-hsm) | 128 bits 192 bits 256 bits |
HSM do fornecedor | A chave a ser transferida para o HSM Gerenciado | |
Gerar e transferir sua chave para o HSM Gerenciado
Etapa 1: Gerar uma KEK
Uma KEK é uma chave RSA que é gerada em um HSM Gerenciado. A KEK é usada para criptografar a chave que você deseja importar (a chave de destino).
A KEK precisa ser:
- Uma chave RSA-HSM (2.048 bits, 3.072 bits ou 4.096 bits)
- Gerada no mesmo HSM Gerenciado em que você pretende importar a chave de destino
- Criada com operações de chave permitidas definidas como
import
Observação
A KEK precisa ter 'import' como a única operação de chave permitida. 'import' é mutuamente exclusiva em relação a todas as outras operações de chave.
Use o comando az keyvault key create para criar uma KEK que tenha operações de chave definidas como import
. Registre o identificador de chave (kid
) que é retornado do comando a seguir. (Você usará o valor kid
na Etapa 3.)
az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --hsm-name ContosoKeyVaultHSM
Etapa 2: Baixar a chave pública KEK
Use az keyvault key download para baixar a chave pública KEK para um arquivo .pem. A chave de destino que você importa é criptografada com a chave pública KEK.
az keyvault key download --name KEKforBYOK --hsm-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem
Transfira o arquivo KEKforBYOK.publickey.pem para o computador offline. Você precisará dele na próxima etapa.
Etapa 3: Gerar e preparar sua chave para transferência
Veja a documentação do fornecedor do HSM para baixar e instalar a ferramenta BYOK. Siga as instruções do fornecedor do HSM para gerar uma chave de destino e crie um pacote de transferência de chave (um arquivo BYOK). A ferramenta BYOK usará o kid
da Etapa 1 e o arquivo KEKforBYOK.publickey.pem que você baixou na Etapa 2 para gerar uma chave de destino criptografada em um arquivo BYOK.
Transfira o arquivo BYOK para o computador conectado.
Observação
Não há suporte para a importação de chaves RSA de 1.024 bits. Há suporte para a importação de chaves EC-HSM P256K.
Problema conhecido: Só há suporte para a importação de uma chave de destino RSA de 4 mil bits de HSMs do Luna no firmware 7.4.0 ou mais recente.
Etapa 4: transferir sua chave para o HSM Gerenciado
Para concluir a importação da chave, transfira o pacote de transferência de chave (um arquivo BYOK) do computador desconectado para o computador conectado à Internet. Use o comando az keyvault key import para carregar o arquivo BYOK para o HSM Gerenciado.
az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok
Se o upload for bem-sucedido, a CLI do Azure exibirá as propriedades da chave importada.
Próximas etapas
Agora você pode usar essa chave protegida por HSM no HSM Gerenciado. Para obter mais informações, confira esta comparação de preços e recursos.