Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo ajuda você a solucionar problemas comuns e erros que você pode encontrar ao usar o serviço HSM na Nuvem do Azure.
Mensagens de erro comuns
As seções a seguir respondem a perguntas sobre erros comuns, incluindo erros relacionados a máquinas virtuais (VMs) e HSMs (módulos de segurança de hardware).
Por que estou recebendo a mensagem de erro "Erro de certificado: [falha na assinatura do certificado]" ao executar azcloudhsm_mgmt_util?
Esse erro pode ocorrer quando você executar estas etapas:
- Crie e inicialize sua implantação do Azure Cloud HSM de outra VM.
- Tente instalar o SDK do Cliente HSM na Nuvem e execute de outra VM que está ausente ou não tem o arquivo correto
PO.crtda VM de administrador da qual você inicializou.
Se você copiar o PO.crt arquivo da VM de administrador para sua nova VM e executar novamente azcloudhsm_mgmt_util, verá uma conexão bem-sucedida com o HSM.
Por que estou recebendo a mensagem de erro "INF: shutdown_ssl_socket: SSL_shutdown sent close_notify alert" ao executar azcloudhsm_client?
Esse erro pode ocorrer quando você executar estas etapas:
- Crie e inicialize sua implantação do Azure Cloud HSM de outra VM.
- Tente instalar o SDK do Cliente HSM na Nuvem e execute de outra VM que está ausente ou não tem o arquivo correto
PO.crtda VM de administrador da qual você inicializou.
Se você copiar o PO.crt arquivo da VM de administrador para sua nova VM e executar novamente azcloudhsm_client, verá uma conexão bem-sucedida com o HSM.
Por que estou recebendo a mensagem de erro "azcloudhsm_application.cfg não está presente"?
Para garantir a execução bem-sucedida do aplicativo, você deve atender a estas duas condições:
O
azcloudhsm_application.cfgarquivo está presente no mesmo diretório que seu aplicativo.azcloudhsm_clientA ferramenta está em execução. Seazcloudhsm_clientnão estiver ativo, você encontrará uma conexão de soquete com falha.Da mesma forma, a ausência do
azcloudhsm_application.cfgarquivo resulta em uma mensagem de erro. Dependendo do local de execução do aplicativo, talvez seja necessário copiar oazcloudhsm_application.cfgarquivo do diretório do SDK do HSM do Azure Cloud para o diretório no qual você está executando seu aplicativo.
Mecanismo OpenSSL para HSM de Nuvem do Azure
O mecanismo OpenSSL para HSM de Nuvem do Azure dá suporte ao Windows?
Não. O mecanismo OpenSSL para HSM de Nuvem do Azure dá suporte apenas ao Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8 e CBL Mariner 2).
Por que receber a mensagem de erro "o mecanismo 'azcloudhsm_openssl' inválido não pôde carregar a biblioteca compartilhada"?
A mensagem de erro sugere que a variável LD_LIBRARY_PATH de ambiente de pré-requisito não está configurada. Essa configuração é necessária. Defina a LD_LIBRARY_PATH variável de ambiente para o diretório em que o SDK do HSM na Nuvem do Azure está localizado.
Você deve atualizar suas variáveis de ambiente para refletir a versão correta do SDK executando este comando:
export LD_LIBRARY_PATH=/opt/azurecloudhsm/lib64/:$LD_LIBRARY_PATH
Por que estou recebendo a mensagem de erro "a variável de ambiente azcloudhsm_openssl_conf não está definida"?
A mensagem de erro sinaliza que a variável azcloudhsm_openssl_conf de ambiente de pré-requisito não está configurada. Defina a variável de ambiente azcloudhsm_openssl_conf para o caminho do arquivo azcloudhsm_openssl_dynamic.conf no diretório do SDK do HSM da Nuvem do Azure.
Você deve atualizar suas variáveis de ambiente para refletir a versão correta do SDK executando este comando:
export azcloudhsm_openssl_conf=/opt/azurecloudhsm/bin/azcloudhsm_openssl_dynamic.conf
Por que estou recebendo a mensagem de erro "variável de ambiente azcloudhsm_password não está definida"?
A mensagem de erro sugere que a variável azcloudhsm_password de ambiente de pré-requisito não está configurada. Defina a azcloudhsm_password variável de ambiente como o valor de cryptouser:password.
Você deve atualizar suas variáveis de ambiente para refletir o usuário e a senha de criptografia corretos:
export azcloudhsm_password="cu1:user1234"
Provedor JCE para o HSM da Nuvem Azure
As seções a seguir respondem a perguntas relacionadas à JCE (Extensão de Criptografia Java).
A integração do JCE com o Azure Cloud HSM dá suporte ao Windows?
Não. A integração do JCE com o Azure Cloud HSM dá suporte apenas ao Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8, CBL Mariner 2).
Por que estou recebendo a mensagem de erro "não foi possível encontrar credenciais para fazer logon no HSM"?
O erro indica um desafio em localizar ou autenticar as credenciais necessárias para entrar no HSM na nuvem. Quando você estiver usando os exemplos nesta documentação ou incorporando o provedor JCE para O HSM de Nuvem do Azure em seus aplicativos, é essencial entrar explicitamente com credenciais:
// Explicit Login with Credentials
LoginManager lm=LoginManager.getInstance();
lm.login("PARTITION_1","cu1","user1234");
// Logout of the HSM
lm.logout();
Por que estou recebendo a mensagem de erro "atributo com o valor 0 para esta operação? O atributo deve ser definido para KEK do Usuário"?
O erro indica que uma KEK (chave de criptografia de chave) gerada pelo usuário não foi criada e designada como extraível e wrap_with_trusted está definida como 1. Para obter as configurações apropriadas a serem usadas ao executar operações de importação de chave, encapsulamento de chave e desencapsagem de chave, consulte a seção sobre como criar um KEK gerado pelo usuário no guia de integração do JCE.
Por que estou recebendo a mensagem de erro "Erro de conexão do soquete Daemon, falha no logon da API"?
O erro indica um desafio em localizar ou autenticar as credenciais necessárias para entrar no HSM na nuvem. Quando você estiver usando os exemplos no guia de integração do JCE ou incorporando o provedor do Azure Cloud HSM JCE em seus aplicativos, é essencial entrar explicitamente com credenciais para garantir a conexão.
Biblioteca PKCS#11 para HSM em Nuvem da Azure
Por que estou recebendo a mensagem de erro "C_Login falhou com o código de erro: 0xa3"?
O 0xa3 erro indica uma falha de entrada. A falha pode estar relacionada ao formato do parâmetro PIN que você está passando ou o PIN (senha) pode estar incorreto.
O PIN deve ser fornecido no seguinte formato: char pPin[256] = "crypto_user:user123";. O pPin valor deve seguir a estrutura de <username>:<password>. Verifique se você está fornecendo o valor pPin neste formato, pois qualquer desvio pode resultar em falha nas credenciais.
Por que estou recebendo a mensagem de erro "C_Initialize() falhou com 00000005 (falha ao conectar o soquete)"?
Uma conexão de soquete com falha durante C_Initialize pode estar relacionada à ferramenta azcloudhsm_client não estar em execução no seu sistema. Para que seus aplicativos PKCS nº 11 sejam executados com êxito, azcloudhsm_client deve estar em execução. Você pode começar azcloudhsm_client executando um dos seguintes comandos em um terminal separado.
Linux (recomendado)
Se você instalou o SDK do HSM do Azure Cloud usando DEB ou RPM, o cliente não será configurado automaticamente para ser executado como um serviço. O SDK, durante a instalação, inclui um arquivo de unidade de serviço em /etc/systemd/system/azure-cloud-hsm.service. Para habilitar azcloudhsm_client a execução como um serviço, use o arquivo predefinido azure-cloud-hsm.service .
Recarregue a systemd configuração e habilite o serviço para garantir que ele esteja em execução contínua. Execute as seguintes etapas:
Abra uma janela de terminal e altere para o diretório
/etc/systemd/system, onde o arquivo da unidade de serviço do Cloud HSM está localizado.cd /etc/systemd/systemInicie e habilite o serviço cliente HSM na nuvem:
sudo systemctl start azure-cloud-hsm.service sudo systemctl enable azure-cloud-hsm.serviceVerifique o status do serviço cliente HSM na nuvem:
sudo systemctl status azure-cloud-hsm.serviceRecarregue a configuração
systemd:sudo systemctl daemon-reload sudo systemctl list-units --type=service --state=running
Linux (manual)
Inicie o daemon do cliente se ele não estiver em execução:
sudo ./azcloudhsm_client azcloudhsm_client.cfg
Você também pode optar por executar o daemon do cliente em segundo plano usando o comando a seguir. Ou você pode executar o daemon do cliente como um serviço para garantir que ele esteja sempre em execução.
sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &
Windows (recomendado)
Se você instalou o SDK do Azure Cloud HSM usando um pacote MSI, o cliente já está configurado para ser executado como um serviço. Se o cliente não estiver em execução, você poderá abrir Services.msc, clique com o botão direito do mouse no Serviço de Cliente do Microsoft Azure Cloud HSM e selecione Iniciar.
Windows (manual de instruções)
Inicie o daemon do cliente se ele não estiver em execução:
cd C:\Program Files\Microsoft Azure Cloud HSM Client SDK
.\azcloudhsm_client.exe .\azcloudhsm_resource.cfg
Como a biblioteca PKCS nº 11 para Linux sabe como localizar a configuração do cliente?
A biblioteca PKCS nº 11 sabe como localizar a configuração do cliente porque você deve ter uma cópia do certificado de proprietário da partição (PO.crt) no servidor de aplicativos que está executando seu aplicativo e usando a biblioteca PKCS nº 11. Além do certificado de proprietário da partição:
- Você precisa atualizar
/azcloudhsm_client/azcloudhsm_client.cfgno servidor de aplicativos que tem o SDK instalado para apontar para sua implantação do HSM na Nuvem do Azure (ou seja,hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net). - A
azcloudhsm_clientferramenta deve estar em execução no servidor de aplicativos que se conecta à implantação do Azure Cloud HSM. - Você deve especificar um PIN em seu aplicativo PKCS nº 11 usando a sintaxe
<username>:<password>. Esse PIN é usado para chamarC_Loginna sua implantação do HSM de Nuvem do Microsoft Azure. - Você deve incluir
pkcs11_headers/include/cryptoki.hepkcs11_headers/include/pkcs11t.hem seu aplicativo PKCS nº 11 para usar a biblioteca PKCS nº 11 para o Azure Cloud HSM.
Como a biblioteca PKCS nº 11 (azcloudhsm_pkcs11.dll) para Windows sabe como localizar a configuração do cliente?
O arquivo azcloudhsm_pkcs11.dll no Windows SDK do Azure Cloud HSM sabe localizar a configuração do cliente porque você deve ter uma cópia do seu certificado de proprietário de partição (PO.crt) no servidor de aplicação que executa seu aplicativo e usa a biblioteca PKCS#11. Além do certificado de proprietário da partição:
- Você precisa atualizar
/azcloudhsm_client/azcloudhsm_client.cfgno servidor de aplicativos que tem o SDK instalado para apontar para sua implantação do HSM na Nuvem do Azure (ou seja,hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net). - A
azcloudhsm_clientferramenta deve ser executada no servidor de aplicativos que se conecta à implantação do Azure Cloud HSM. - Você deve especificar um PIN em seu aplicativo PKCS nº 11 usando a sintaxe
<username>:<password>. Esse PIN é usado para chamarC_Loginna sua implantação do HSM de Nuvem do Microsoft Azure. - Você deve incluir
pkcs11_headers\include\cryptoki.hepkcs11_headers\include\pkcs11t.hem seu aplicativo PKCS nº 11 para usar a biblioteca PKCS nº 11 para o Azure Cloud HSM.
Por que recebo erros PKCS nº 11 ao tentar definir uma chave ou repositório de chaves?
Verifique se você tem o cliente HSM do Azure Cloud em execução (sudo ./azcloudhsm_client azcloudhsm_client.cfg). Um usuário incorreto, uma senha incorreta, um cliente de segurança líquida não em execução ou um cliente que não se conectou pode resultar no seguinte erro:
Error Message:ERROR at line 1:
ORA-28407: Hardware Security Module failed with PKCS#11 error
CKR_GENERAL_ERROR(5)
Como a biblioteca PKCS nº 11 (azcloudhsm_pkcs11.dll) se integra ao OpenSC?
Você deve usar os argumentos --sensitive e --private ao utilizar ferramentas de smart card de código aberto (OpenSC), porque os atributos confidenciais e privados não podem ser 0. Sem esses argumentos, as ferramentas OpenSC definem os atributos confidenciais e privados como 0. Esses atributos geram uma exceção, pois o HSM da Nuvem do Azure sempre impõe um comportamento confidencial e privado.
Aqui está um exemplo de encapsulamento AES (Advanced Encryption Standard):
pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keygen --key-type AES:32*
Aqui está um exemplo de criptografia de curva elíptica (ECC) P521:
pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keypairgen --key-type EC:prime256v1 --usage-sign
Descarregamento de SSL/TLS para o HSM de Nuvem do Microsoft Azure
As seções a seguir respondem a perguntas relacionadas ao descarregamento do processamento do protocolo SSL ou TLS.
O mecanismo OpenSSL para HSM de Nuvem do Azure dá suporte ao PKCS nº 11 para descarregamento de SSL/TLS?
Não. O mecanismo OpenSSL para HSM de Nuvem do Azure não dá suporte ao PKCS nº 11 para descarregamento de SSL/TLS. Os clientes que precisam de PKCS nº 11 para descarregamento de SSL/TLS devem usar a biblioteca de descarregamento TLS para HSM Gerenciado do Azure.
Por que estou recebendo a mensagem de erro "Falha ao conectar o soquete, LIQUIDSECURITY: erro de conexão do soquete do Daemon" ao executar azcloudhsm_util?
A mensagem de erro sugere que azcloudhsm_client não está em execução. Certifique-se de que azcloudhsm_client esteja em execução para que as ferramentas de HSM de Nuvem do Azure funcionem corretamente. Você pode começar azcloudhsm_client garantindo que ele esteja em execução como um serviço ou executando manualmente um dos seguintes comandos em um terminal separado.
Linux (recomendado)
Se você instalou o SDK do HSM do Azure Cloud usando DEB ou RPM, o cliente não será configurado automaticamente para ser executado como um serviço. O SDK, durante a instalação, inclui um arquivo de unidade de serviço em /etc/systemd/system/azure-cloud-hsm.service. Para habilitar azcloudhsm_client a execução como um serviço, use o arquivo predefinido azure-cloud-hsm.service .
Recarregue a systemd configuração e habilite o serviço para garantir que ele esteja em execução contínua. Execute as seguintes etapas:
Abra uma janela de terminal e altere o diretório para
/etc/systemd/system, onde o arquivo de unidade de serviço do Cloud HSM está localizado.cd /etc/systemd/systemInicie e habilite o serviço cliente HSM na nuvem:
sudo systemctl start azure-cloud-hsm.service sudo systemctl enable azure-cloud-hsm.serviceVerifique o status do serviço cliente HSM na nuvem:
sudo systemctl status azure-cloud-hsm.serviceRecarregue a configuração
systemd:sudo systemctl daemon-reload sudo systemctl list-units --type=service --state=running
Linux (manual)
Inicie o daemon do cliente se ele não estiver em execução:
sudo ./azcloudhsm_client azcloudhsm_client.cfg
Você também pode optar por executar o daemon do cliente em segundo plano usando o comando a seguir. Ou você pode executar o daemon do cliente como um serviço para garantir que ele esteja sempre em execução.
sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &
Por que estou recebendo a mensagem de erro "variável de ambiente azcloudhsm_password não está definida"?
A mensagem de erro sugere que a variável azcloudhsm_password de ambiente de pré-requisito não está configurada. Para resolver esse problema, defina a azcloudhsm_password variável de ambiente como o valor de cryptouser:password.
Atualize suas variáveis de ambiente para refletir o usuário e a senha de criptografia corretos:
export azcloudhsm_password="cu1:user1234"
Por que estou recebendo a mensagem de erro "Chave/Token não encontrado" ou "Identificador de chave/token inválido" ao tentar importar uma chave?
A mensagem de erro sugere que o identificador de chave de encapsulamento especificada (a ID do identificador da KEK) está incorreto. O parâmetro -f especifica o nome do arquivo que contém a chave a ser importada, enquanto -w especifica o identificador da chave de encapsulamento. Durante a criação de um KEK gerado pelo usuário, o valor -w deve ser a ID do identificador de chave do seu KEK gerado pelo usuário.
azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 importPrivateKey -l importTestKey -f key.pem -w 262150
Por que estou recebendo a mensagem de erro "/configure: error: C compiler cc not found" quando tento configurar as fontes NGINX?
A mensagem de erro sugere que você está perdendo um compilador C do sistema ao executar o configure comando. Dependendo da instalação, depois de executar os comandos a seguir, talvez você também precise instalar openssl libssl-dev e zlib1g zlib1g-dev. Esses itens são dependências.
Sistemas baseados em Red Hat (usando YUM)
sudo yum update
sudo yum groupinstall "Development Tools"
Sistemas baseados em Red Hat (usando DNF)
sudo dnf update
sudo dnf install "Development Tools"
Sistemas baseados em Ubuntu (usando o APT)
sudo apt update
sudo apt install build-essential
Por que estou recebendo a mensagem de erro "/configure: erro: os módulos SSL exigem a biblioteca OpenSSL"?
A mensagem de erro indica que a biblioteca OpenSSL é necessária para habilitar módulos SSL para NGINX. Para resolver esse problema, execute o seguinte comando e execute configure novamente:
sudo apt-get install libssl-dev
Por que estou recebendo a mensagem de erro "/configure: erro: o módulo http gzip requer a biblioteca zlib"?
A mensagem de erro indica que a biblioteca zlib é necessária para o módulo http gzip no NGINX. Para resolver esse problema, execute o seguinte comando e execute configure novamente:
sudo apt-get install zlib1g-dev
Por que estou recebendo a mensagem de erro "Erro de HSM: RET_USER_LOGIN_FAILURE"?
A mensagem de erro indica que o usuário especificado não existe em um ou mais nós em que você está tentando uma operação criptográfica. Embora o HSM de Nuvem do Azure opere com um cluster de três nós, a operação foi direcionada a um nó em que as credenciais falharam.
Nesses casos, um critical_err_info_ arquivo é gerado dentro do AzureCloudHSM-ClientSDK diretório. O arquivo mostra "Status: Erro HSM: esse usuário não existe".
Para atenuar esse erro, você precisa criar um usuário de criptografia (CU) replicado em todos os três nós de sua implantação do Módulo de Segurança de Hardware (HSM) na Nuvem do Azure. O exemplo a seguir mostra o início de azcloudhsm_mgmt_util e um administrador fazendo logon como usuário oficial de criptografia (CO). Em seguida, o exemplo cria um usuário cu1 com a função de uma CU.
sudo ./azcloudhsm_mgmt_util ./azcloudhsm_mgmt_util.cfg
loginHSM CO admin adminpassword
createUser CU cu1 user1234
logoutHSM
loginHSM CU cu1 user1234
Como posso exibir o conteúdo do arquivo CRT, CSR ou Chave que criei?
Para exibir o conteúdo do certificado (CRT), da CSR (solicitação de assinatura de certificado) ou do arquivo de chave que você criou no terminal, use este comando:
cat filename.key
Para exibir informações detalhadas sobre um certificado X.509 contido no arquivo PEM (Privacy Enhanced Mail), use o comando a seguir. Se o arquivo PEM contiver uma chave privada ou outros tipos de dados, talvez seja necessário ajustar o comando adequadamente.
openssl x509 -in filename.pem -text -noout
Para exibir informações detalhadas sobre uma CSR, use o comando a seguir. Essas informações incluem o assunto, a chave pública e todos os atributos incluídos na solicitação.
openssl req -in filename.csr -text -noout
Para exibir informações detalhadas sobre uma chave privada RSA (Rivest-Shamir-Adleman), use o comando a seguir. Essas informações incluem o módulo da chave, o expoente público e outros parâmetros.
openssl rsa -in filename.key -text -noout
Para exibir informações detalhadas sobre uma chave privada de curva elíptica (EC), use o comando a seguir. Ele exibe os parâmetros de curva, o valor da chave privada e outras informações relevantes.
openssl ec -in filename.key -text -noout
Como faço para gerar um par de chaves ED25519 no HSM de Nuvem do Azure para assinatura?
As chaves ED25519 são normalmente usadas para certificados autoassinados ou em processos de assinatura de certificado que usam diretamente a chave privada. Você pode gerar um par de chaves ED25519 usando azcloudhsm_util ou o mecanismo OpenSSL para o Azure Cloud HSM.
Importante
Não recomendamos usar openssl genpkey ou openssl ecparam. Usar openssl genpkey ou openssl ecparam com -engine azcloudhsm_openssl para gerar uma chave ED25519 ou ECCKeyPair não produz uma chave HSM. Em vez disso, ele gera uma chave de software. Se você precisar de ED25519 ou outros tipos de chave EC, deverá usar azcloudhsm_util para criar a chave dentro do HSM.
Openssl genpkey e openssl ecparam ambos são comandos OpenSSL para gerar chaves criptográficas, mas servem a diferentes finalidades e dão suporte a diferentes tipos de chave. Use openssl genpkey quando precisar gerar uma ampla gama de chaves criptográficas assimétricas, incluindo chaves RSA, DSA, ECDSA e ED25519. Use openssl ecparam especificamente para gerar chaves criptográficas de curva elíptica (ECDSA), como prime256v1, secp384r1 ou secp521r1.
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 28 -l labelED25519Test
Posso usar azcloudhsm_util para gerar chaves RSA e EC antes de usar o mecanismo Azure Cloud HSM OpenSSL para gerar uma CSR?
Sim. Você pode executar os comandos a seguir azcloudhsm_util para criar uma chave RSA ou EC e extrair a chave privada para um formato PEM falso. Substitua {PRIVATE_KEY_HANDLE} pelo identificador de chave privada da chave RSA ou EC que você criou.
O arquivo de metadados de chave privada no formato PEM não contém nenhum material de chave privada confidencial. Os metadados identificam a chave privada e somente o mecanismo OpenSSL para O HSM de Nuvem do Azure entende esse arquivo.
Use este comando para criar uma chave RSA:
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genRSAKeyPair -m 2048 -e 65537 -l labelRSATest
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl
Use este comando para criar uma chave EC:
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 2 -l labelECTest
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl
SQL Server EKM para HSM de Nuvem do Azure
As seções a seguir respondem a perguntas relacionadas ao recurso EKM (Gerenciamento extensível de chaves) no SQL Server.
Um provedor EKM do SQL Server para HSM de Nuvem do Azure dá suporte a chaves simétricas?
Não. O SQL Server não dá suporte a chaves simétricas para criptografia de dados transparente. Há suporte apenas para chaves assimétricas.
Um provedor EKM do SQL Server para HSM de Nuvem do Azure dá suporte ao SQL Server no Linux?
Não. Um provedor EKM do SQL Server para HSM de Nuvem do Azure dá suporte apenas ao Windows Server.
Um provedor EKM do SQL Server para HSM de Nuvem do Azure oferece suporte ao SQL Server em modelos SaaS/PaaS?
Não. O HSM de Nuvem do Azure é somente IaaS (infraestrutura como serviço). Os clientes de PaaS (software como serviço) ou paaS (plataforma como serviço) devem usar o HSM Gerenciado do Azure, que dá suporte à criptografia de dados transparente para o Banco de Dados SQL do Azure e a Instância Gerenciada de SQL do Azure.
Um provedor EKM do SQL Server para HSM de Nuvem do Azure dá suporte a várias entradas, credenciais e conexões?
Para um provedor EKM do SQL Server para HSM de Nuvem do Azure, as credenciais ou a conexão SQL é limitada e pode ter apenas uma única credencial atribuída.
Por que estou recebendo a mensagem de erro "Erro: não é possível inicializar o provedor criptográfico. Código de erro do provedor: 1. (Falha – Consultar o provedor EKM para obter detalhes)"?
Esse erro comum pode ocorrer quando você executa o pacote MSI para o Azure Cloud HSM depois de instalar o SQL Server. O erro desaparece quando você reinicia o SQL Server. Nesse ponto, ele seleciona as variáveis de ambiente e as configurações que você criou quando executou o pacote MSI para o HSM de Nuvem do Azure.
Integração do AD CS ao HSM de Nuvem do Azure
As seções a seguir respondem a perguntas relacionadas ao AD CS (Active Directory Certificate Services).
Por que recebo a mensagem de erro "Não é possível abrir o arquivo openssl-ca.cnf" quando estou tentando migrar um certificado de um Microsoft KSP usando o exemplo fornecido?
Esse erro geralmente ocorre quando o openssl-ca.cnf arquivo não existe, pois você está tentando migrar um certificado de um KSP (provedor de armazenamento de chaves). Você pode criar o arquivo por conta própria ou obtê-lo de outra fonte.
Posso usar meus próprios servidores de assinatura na minha rede corporativa que consome o Azure Cloud HSM como uma solução SaaS?
O HSM de Nuvem do Azure é somente IaaS. No entanto, você pode usar seus próprios servidores de assinatura em sua rede corporativa.
Você pode configurar uma conexão VPN de site a site ou de ponto a site a partir do gateway local de rede. Esse é o método mais comum e é adequado para a maioria dos casos de uso. Configure uma conexão VPN entre os servidores locais da rede corporativa e o local onde o HSM de Nuvem do Azure é implantado. Para obter mais informações, consulte Tutorial: Criar uma conexão VPN site a site no portal do Azure.
Você pode ter o AD CS para seus servidores de assinatura locais. O SDK deve estar em seu host local e o cliente deve estar acessível aos endereços IP privados em sua rede virtual do Azure. Os seguintes requisitos são aplicados:
- Você precisa executar
azcloudhsm_clientno mesmo computador em que o provedor de CNG (API de Criptografia: Próxima Geração) para HSM da Nuvem Azure existe. - A
azcloudhsm_clientferramenta deve ser capaz de se comunicar com os IPs privados da rede virtual do Azure.
Quando testamos o AD CS, geramos um par de chaves RSA e usamos o gerenciamento de certificados para assinar.
Os únicos métodos aceitos para assinar ou verificar são através de provedores de HSM na nuvem (por exemplo, azcloudhsm_util)?
Não. Nossa recomendação é usar o SDK do HSM do Azure Cloud e as interfaces (como PKCS#11, CNG, KSP, JCE e mecanismo OpenSSL) que ele fornece. Você também pode usar a Ferramenta de Sinal (signtool.exe) para operações de assinatura ou verificação.
O AD CS está configurado para usar o CNG ou um KSP para o Azure Cloud HSM.
Posso usar a assinatura/verificação do HSM na nuvem por meio de signtool.exe?
Sim. A Ferramenta de Assinatura vai automaticamente para a implantação do HSM de Nuvem. Não há necessidade de usar azcloudhsm_util. Incluímos azcloudhsm_util as instruções como uma forma de os clientes testarem e validarem rapidamente suas configurações do AD CS.
Posso usar certificados autoassinados com base no par de chaves no HSM de Nuvem para teste?
Sim. Você pode usar certificados autoassinados com base no par de chaves para fins de teste.
Há uma integração ou uma maneira de disponibilizar certificados por meio do repositório de certificados local do Windows?
Você pode usar a certreq.exe ferramenta para essa finalidade.
Quais algoritmos os provedores CNG e KSP para HSM na Nuvem do Azure suportam?
- Criptografia e descriptografia RSA
- Assinatura de RSA com algoritmos de hash SHA1, SHA256, SHA384, SHA512 e MD5
- Curvas ECC ECDSA_P256, ECDSA_P384 e ECDSA_P521
Como fazer para alterar ou gerenciar permissões de chave privada para usuários não administradores no Windows?
Quando você gera uma chave usando um KSP ou CNG para o Azure Cloud HSM, somente o administrador recebe acesso à chave privada. Você pode encontrar dificuldades para exibir informações de segurança ou modificar permissões por meio do Microsoft Management Console (MMC). Este comportamento é intencional.
Por padrão, quando você usa um KSP ou CNG, o acesso ao arquivo de chave privada para uma nova chave é restrito a SYSTEM e administradores. Se você precisar fornecer acesso a um usuário não administrador para um arquivo de chave privada específico, identifique o nome do arquivo para a chave privada e atribua permissões diretamente. As chaves privadas estão no diretório C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP nas chaves HSM do Windows para Nuvem.
O que azcloudhsm_ksp_import_key.exe faz?
Você pode usar azcloudhsm_ksp_import_key.exe para importar ou representar chaves assimétricas no Cloud HSM KSP.
Os algoritmos com suporte são RSA (2048 a 4096 em múltiplos de 256), ECDSA e ECDH. Para ECDSA e ECDH, as curvas com suporte são P256, P384 e P521. Depois que uma chave for importada ou representada no KSP do Cloud HSM, você deverá gerenciar a chave somente a partir do KSP do Cloud HSM.
Qual é a maneira recomendada de se conectar ao HSM de nuvem da rede corporativa (tarefas de operação/administrador)?
Você pode se conectar por meio de sua rede virtual. Use estas ferramentas:
- A
azcloudhsm_mgmt_utilferramenta executa operações (tarefas de administrador no HSM). Ele requer credenciais de PCO (oficial de criptografia de partição). - A ferramenta
azcloudhsm_client(daemon do cliente) se conecta por meio de credenciais de usuário de criptografia de partição (PCU).
A azcloudhsm_client ferramenta e seu aplicativo precisam ser executados na mesma VM dentro da rede virtual. O motivo é que o aplicativo se conecta ao processo do cliente por meio de RPC (chamada de procedimento remoto).
O serviço de HSM de Nuvem do Azure escuta nas portas 443 (requisições azcloudhsm_client), 444 (requisições azcloudhsm_mgmt_util) e 445 (comunicação entre servidores).
As portas front-end são 2224 e 2225 para o protocolo TCP sobre TLS. Essas portas são somente para clientes.