Partilhar via


Solucionar problemas do Azure Cloud HSM

Este artigo ajuda você a solucionar problemas e erros comuns que você pode encontrar ao usar o serviço Azure Cloud HSM.

Mensagens de erro comuns

As seções a seguir respondem a perguntas sobre erros comuns, incluindo erros relacionados a máquinas virtuais (VMs) e módulos de segurança de hardware (HSMs).

Por que estou recebendo a mensagem de erro "Certificate ERROR: [Certificate signature failure]" ao executar azcloudhsm_mgmt_util?

Este erro pode ocorrer quando você executa estas etapas:

  1. Crie e inicialize sua implantação do Azure Cloud HSM a partir de outra VM.
  2. Tente instalar o SDK do Cliente do Cloud HSM e executar a partir de outra VM que esteja ausente ou não tenha o arquivo correto PO.crt da VM de administração a partir da qual você inicializou.

Se copiar o PO.crt arquivo da VM de administração para a nova VM e executar novamente o azcloudhsm_mgmt_util, deverá ver uma ligação bem-sucedida com o HSM.

Por que estou a receber a mensagem de erro "INF: shutdown_ssl_socket: SSL_shutdown enviou o alerta close_notify" ao executar azcloudhsm_client?

Este erro pode ocorrer quando você executa estas etapas:

  1. Crie e inicialize sua implantação do Azure Cloud HSM a partir de outra VM.
  2. Tente instalar o SDK do Cliente do Cloud HSM e executar a partir de outra VM que esteja ausente ou não tenha o arquivo correto PO.crt da VM de administração a partir da qual você inicializou.

Se copiar o ficheiro PO.crt da sua VM de administração para a nova VM e executar novamente azcloudhsm_client, deverá ver uma conexão bem-sucedida ao seu HSM.

Por que estou recebendo a mensagem de erro "azcloudhsm_application.cfg não está presente"?

Para garantir a execução bem-sucedida do seu pedido, deve cumprir estas duas condições:

  • O azcloudhsm_application.cfg arquivo está presente no mesmo diretório que seu aplicativo.

  • A azcloudhsm_client ferramenta está em execução. Se azcloudhsm_client não estiver ativo, você encontrará uma conexão de soquete com falha.

    Da mesma forma, a ausência do ficheiro resulta numa mensagem de erro. Dependendo do local de execução do seu aplicativo, talvez seja necessário copiar o azcloudhsm_application.cfg arquivo do diretório SDK do Azure Cloud HSM para o diretório onde você está executando seu aplicativo.

Mecanismo OpenSSL para Azure Cloud HSM

O mecanismo OpenSSL para Azure Cloud HSM oferece suporte ao Windows?

Não. O mecanismo OpenSSL para Azure Cloud HSM suporta Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8 e CBL Mariner 2) apenas.

Por que estou recebendo a mensagem de erro "mecanismo inválido 'azcloudhsm_openssl' 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. Esta configuração é necessária. Defina a variável de ambiente LD_LIBRARY_PATH para o diretório onde o SDK do Azure Cloud HSM 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 "variável de ambiente azcloudhsm_openssl_conf não está definida"?

A mensagem de erro sinaliza que a variável de ambiente de pré-requisito azcloudhsm_openssl_conf não está configurada. Defina a variável de ambiente azcloudhsm_openssl_conf para o caminho do seu ficheiro azcloudhsm_openssl_dynamic.conf no diretório SDK do Azure Cloud HSM.

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 com o valor de cryptouser:password.

Você deve atualizar suas variáveis de ambiente para refletir o usuário e a senha corretos da criptografia:

export azcloudhsm_password="cu1:user1234"

Provedor JCE para Azure Cloud HSM

As seções a seguir respondem a perguntas relacionadas ao Java Cryptography Extension (JCE).

A integração do JCE com o Azure Cloud HSM suporta Windows?

Não. A integração do JCE com o Azure Cloud HSM suporta Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8, CBL Mariner 2) apenas.

Por que estou recebendo a mensagem de erro "não foi possível encontrar credenciais para fazer login no HSM"?

O erro indica um desafio em localizar ou autenticar as credenciais necessárias para entrar no Cloud HSM. Quando você estiver usando os exemplos nesta documentação ou incorporando o provedor JCE para Azure Cloud HSM 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 valor 0 para esta operação? Atributo deve ser definido para User KEK"?

O erro indica que uma chave de criptografia de chave gerada pelo usuário (KEK) 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 quando você executa operações de importação de chave, encapsulamento de chaves e desempacotamento de chaves, consulte a seção sobre como criar um KEK gerado pelo usuário no guia de integração JCE.

Por que estou recebendo a mensagem de erro "Erro de conexão de soquete Daemon, falha no login da API"?

O erro indica um desafio em localizar ou autenticar as credenciais necessárias para entrar no Cloud HSM. Quando você estiver usando os exemplos no guia de integração JCE ou incorporando o provedor JCE do Azure Cloud HSM em seus aplicativos, é essencial entrar explicitamente com credenciais para garantir a conexão.

Biblioteca PKCS#11 para Azure Cloud HSM

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 início de sessão. 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 está a fornecer o valor pPin nesse formato, pois qualquer desvio pode resultar numa falha de início de sessão.

Por que estou recebendo a mensagem de erro "C_Initialize() falhou com 00000005 (Falha ao conectar o soquete)"?

Uma falha na conexão de socket durante C_Initialize pode estar relacionada ao fato de a ferramenta azcloudhsm_client não estar em execução no seu sistema. Para que seus aplicativos PKCS#11 sejam executados com êxito, azcloudhsm_client devem estar em execução. Você pode começar azcloudhsm_client executando um dos seguintes comandos em um terminal separado.

Se você instalou o SDK do Azure Cloud HSM 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 sendo executado continuamente. Execute as seguintes etapas:

  1. Abra uma janela do terminal e altere o diretório para /etc/systemd/system, onde o arquivo da unidade de serviço do Cloud HSM está localizado:

    cd /etc/systemd/system
    
  2. Inicie e habilite o serviço de cliente Cloud HSM:

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Verifique o status do serviço cliente Cloud HSM:

    sudo systemctl status azure-cloud-hsm.service
    
  4. Recarregue a systemd configuração:

    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 seguinte comando. Ou você pode executar o daemon cliente como um serviço para garantir que ele esteja sempre em execução.

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

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, poderá abrir Services.msc e clicar com o botão direito do mouse em Cliente do Serviço Microsoft Azure Cloud HSM e selecionar Iniciar.

Windows (manual)

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#11 para Linux sabe como encontrar a configuração do cliente?

A biblioteca PKCS#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#11. Além do certificado de proprietário da partição:

  • Você precisa atualizar /azcloudhsm_client/azcloudhsm_client.cfg no servidor de aplicativos que tem o SDK instalado para apontar para sua implantação do Azure Cloud HSM (ou seja, hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net).
  • A azcloudhsm_client ferramenta deve estar em execução no servidor de aplicativos que se conecta à sua implantação do Azure Cloud HSM.
  • Você deve especificar um PIN em seu aplicativo PKCS#11 usando a sintaxe <username>:<password>. Esse PIN é usado para chamar C_Login para a sua implantação do Azure Cloud HSM.
  • Você deve incluir pkcs11_headers/include/cryptoki.h e pkcs11_headers/include/pkcs11t.h em seu aplicativo PKCS#11 para usar a biblioteca PKCS#11 para Azure Cloud HSM.

Como a biblioteca PKCS#11 (azcloudhsm_pkcs11.dll) para Windows sabe como encontrar a configuração do cliente?

O arquivo azcloudhsm_pkcs11.dll no SDK do Windows do Azure Cloud HSM sabe localizar a configuração do cliente porque deve ter uma cópia do certificado de proprietário da partição (PO.crt) no servidor da aplicação que está a executar a sua aplicação e a usar a biblioteca PKCS#11. Além do certificado do proprietário da partição:

  • Você precisa atualizar /azcloudhsm_client/azcloudhsm_client.cfg no servidor de aplicativos que tem o SDK instalado para apontar para sua implantação do Azure Cloud HSM (ou seja, hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net).
  • A azcloudhsm_client ferramenta deve ser executada no servidor de aplicativos que se conecta à sua implantação do Azure Cloud HSM.
  • Você deve especificar um PIN em seu aplicativo PKCS#11 usando a sintaxe <username>:<password>. Este PIN é usado para chamar C_Login a sua implantação do Azure Cloud HSM.
  • Você deve incluir pkcs11_headers\include\cryptoki.h e pkcs11_headers\include\pkcs11t.h em seu aplicativo PKCS#11 para usar a biblioteca PKCS#11 para Azure Cloud HSM.

Por que recebo erros PKCS#11 quando tento definir uma chave ou armazenamento de chaves?

Certifique-se de ter o cliente Azure Cloud HSM em execução (sudo ./azcloudhsm_client azcloudhsm_client.cfg). Um usuário incorreto, uma senha incorreta, um cliente de segurança líquido não em execução ou um cliente que não consegue se conectar podem 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#11 (azcloudhsm_pkcs11.dll) se integra ao OpenSC?

Você deve usar os argumentos --sensitive e --private ao utilizar ferramentas de cartão inteligente 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 sensíveis e privados como 0. Esses atributos geram uma exceção, porque o Azure Cloud HSM 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 Azure Cloud HSM

As seções a seguir respondem a perguntas relacionadas ao descarregamento do processamento SSL (Secure Sockets Layer) ou TLS (Transport Layer Security).

O mecanismo OpenSSL para Azure Cloud HSM oferece suporte a PKCS#11 para descarregamento de SSL/TLS?

Não. O mecanismo OpenSSL para Azure Cloud HSM não oferece suporte a PKCS#11 para descarregamento de SSL/TLS. Os clientes que precisam de PKCS#11 para descarregamento de SSL/TLS devem usar a biblioteca de descarregamento de TLS para HSM gerenciado do Azure.

Por que estou recebendo a mensagem de erro "Falha ao conectar soquete, LIQUIDSECURITY: Erro de conexão de soquete 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 está em execução para que as ferramentas Azure Cloud HSM funcionem corretamente. Você pode começar azcloudhsm_client garantindo que ele esteja sendo executado como um serviço ou executando manualmente um dos seguintes comandos em um terminal separado.

Se você instalou o SDK do Azure Cloud HSM 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 sendo executado continuamente. Execute as seguintes etapas:

  1. Abra uma janela do terminal e altere o diretório para /etc/systemd/system, onde o arquivo da unidade de serviço do Cloud HSM está localizado:

    cd /etc/systemd/system
    
  2. Inicie e habilite o serviço de cliente Cloud HSM:

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Verifique o status do serviço cliente Cloud HSM:

    sudo systemctl status azure-cloud-hsm.service
    
  4. Recarregue a systemd configuração:

    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 seguinte comando. Ou você pode executar o daemon 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 para o valor de cryptouser:password.

Atualize as variáveis de ambiente para refletir o usuário e a senha corretos da criptografia:

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" quando tento importar uma chave?

A mensagem de erro sugere que o identificador de chave de encapsulamento especificado (o ID do identificador 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 de chave de encapsulamento. Durante a criação de um KEK gerado pelo usuário, o valor -w deve ser o ID do identificador de chave do seu ID 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á faltando um compilador C do seu sistema quando você executa o configure comando. Dependendo da instalação, depois de executar os seguintes comandos, talvez também seja necessário 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 no Ubuntu (usando APT)

sudo apt update  
sudo apt install build-essential 

Por que estou recebendo a mensagem de erro "/configure: error: SSL modules require the OpenSSL library"?

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, em seguida, execute configure novamente:

sudo apt-get install libssl-dev

Por que estou recebendo a mensagem de erro "/configure: error: the HTTP gzip module requires the zlib library"?

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, em seguida, execute configure novamente:

sudo apt-get install zlib1g-dev

Por que estou recebendo a mensagem de erro "Erro HSM: RET_USER_LOGIN_FAILURE"?

A mensagem de erro indica que o usuário especificado não existe em um ou mais nós onde você está tentando uma operação criptográfica. Embora o Azure Cloud HSM opere com um cluster de três nós, a operação foi direcionada para um nó onde a entrada falhou.

Nesses casos, um critical_err_info_ arquivo é gerado dentro do AzureCloudHSM-ClientSDK diretório. O arquivo mostra "Status: Erro HSM: Este usuário não existe".

Para atenuar este erro, é necessário criar um Utilizador de Criptografia (UC) que esteja replicado nos três nós da implementação do HSM do Azure Cloud. O exemplo a seguir mostra o início de azcloudhsm_mgmt_util e um administrador efetuando login como oficial de criptografia (CO). Em seguida, o exemplo cria um cu1 utilizador com a função de CU.

sudo ./azcloudhsm_mgmt_util ./azcloudhsm_mgmt_util.cfg
loginHSM CO admin adminpassword 
createUser CU cu1 user1234
logoutHSM
loginHSM CU cu1 user1234

Como faço para exibir o conteúdo do arquivo CRT, CSR ou chave que criei?

Para exibir o conteúdo do certificado (CRT), da solicitação de assinatura de certificado (CSR) 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 seguinte comando. Se o seu ficheiro PEM contiver uma chave privada ou outros tipos de dados, poderá ter de ajustar o comando em conformidade.

openssl x509 -in filename.pem -text -noout

Para exibir informações detalhadas sobre um CSR, use o seguinte comando. Essas informações incluem o assunto, a chave pública e quaisquer atributos incluídos na solicitação.

openssl req -in filename.csr -text -noout

Para exibir informações detalhadas sobre uma chave privada Rivest-Shamir-Adleman (RSA), use o seguinte comando. Essas informações incluem o módulo da chave, 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 seguinte comando. Ele exibe os parâmetros da curva, o valor da chave privada e outras informações relevantes.

openssl ec -in filename.key -text -noout

Como gero um par de chaves ED25519 no Azure Cloud HSM para assinatura?

ED25519 chaves são normalmente usadas para certificados autoassinados ou em processos de assinatura de certificados que usam diretamente a chave privada. Você pode gerar um par de chaves ED25519 usando azcloudhsm_util ou o mecanismo OpenSSL para Azure Cloud HSM.

Importante

Não recomendamos o uso de 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, gera uma chave de software. Se você precisar de ED25519 ou outros tipos de chave EC, você deve usar azcloudhsm_util para criar a chave dentro do HSM.

Openssl genpkey e openssl ecparam são ambos comandos OpenSSL para gerar chaves criptográficas, mas servem propósitos diferentes e suportam 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 OpenSSL do Azure Cloud HSM para gerar um CSR?

Sim. Pode executar os seguintes azcloudhsm_util comandos para criar uma chave RSA ou EC e, em seguida, 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 sensível. Os metadados identificam a chave privada e apenas o mecanismo OpenSSL para Azure Cloud HSM 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 Azure Cloud HSM

As seções a seguir respondem a perguntas relacionadas ao recurso Gerenciamento Extensível de Chaves (EKM) no SQL Server.

Um provedor de EKM do SQL Server para Azure Cloud HSM dá suporte a chaves simétricas?

Não. O SQL Server não oferece suporte a chaves simétricas para criptografia de dados transparente. Apenas chaves assimétricas são suportadas.

Um provedor de EKM do SQL Server para Azure Cloud HSM dá suporte ao SQL Server no Linux?

Não. Um provedor de EKM do SQL Server para Azure Cloud HSM dá suporte apenas ao Windows Server.

Um provedor de EKM do SQL Server para Azure Cloud HSM dá suporte ao SQL Server SaaS/PaaS?

Não. O Azure Cloud HSM é apenas infraestrutura como serviço (IaaS). Os clientes de software como serviço (SaaS) ou plataforma como serviço (PaaS) devem usar o Azure Managed HSM, que dá suporte à criptografia de dados transparente para o Banco de Dados SQL do Azure e a Instância Gerenciada SQL do Azure.

Um provedor de EKM do SQL Server para Azure Cloud HSM dá suporte a várias entradas, credenciais e conexões?

Para um fornecedor de EKM do SQL Server para Azure Cloud HSM, o sign-in ou a ligaçã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 de criptografia. Código de erro do provedor: 1. (Falha - Consulte o fornecedor de 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 Azure Cloud HSM.

Integração do AD CS com o Azure Cloud HSM

As seções a seguir respondem a perguntas relacionadas aos Serviços de Certificados do Ative Directory (AD CS).

Por que recebo a mensagem de erro "Não consigo 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 enquanto você está tentando migrar um certificado de um provedor de armazenamento de chaves (KSP). Você mesmo pode criar o arquivo 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 Azure Cloud HSM é apenas IaaS. No entanto, você pode usar seus próprios servidores de assinatura em sua rede corporativa.

Você pode configurar uma conexão VPN site a site ou ponto a site a partir do gateway de rede local. Este é o método mais comum, e é adequado para a maioria dos casos de uso. Configure uma conexão VPN entre os servidores locais da sua rede corporativa e o local onde o Azure Cloud HSM está 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. Aplicam-se os seguintes requisitos:

  • Você precisa executar azcloudhsm_client na mesma máquina em que existe o provedor de API de Criptografia: Próxima Geração (CNG) para o Azure Cloud HSM.
  • A azcloudhsm_client ferramenta 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, em seguida, usamos o gerenciamento de certificados para assinar.

Os únicos métodos de assinatura ou verificação aceites são através de fornecedores de HSM Cloud (como, por exemplo, azcloudhsm_util)?

Não. Nossa recomendação é usar o SDK do Azure Cloud HSM e as interfaces (como PKCS#11, CNG, KSP, JCE e mecanismo OpenSSL) que ele fornece. Você também pode usar a Ferramenta de Assinatura (signtool.exe) para operações de assinatura ou verificação.

O AD CS está configurado para usar CNG ou um KSP para Azure Cloud HSM.

Posso usar a assinatura/verificação do Cloud HSM via signtool.exe?

Sim. A Ferramenta de Assinatura acede automaticamente à sua configuração do Cloud HSM. Não há necessidade de usar azcloudhsm_util. Incluímos azcloudhsm_util nas instruções uma forma de os clientes testarem e validarem rapidamente as suas configurações do AD CS.

Posso usar certificados autoassinados com base no par de chaves no Cloud HSM para testes?

Sim. Você pode usar certificados autoassinados com base no par de chaves para fins de teste.

Existe uma integração ou uma maneira de disponibilizar certificados por meio do armazenamento de certificados local do Windows?

Você pode usar a certreq.exe ferramenta para este fim.

Quais algoritmos os provedores CNG e KSP para Azure Cloud HSM suportam?

  • Encriptação e desencriptação RSA
  • Assinatura RSA com algoritmos de hash SHA1, SHA256, SHA384, SHA512 e MD5
  • Curvas ECC ECDSA_P256, ECDSA_P384 e ECDSA_P521

Como faço para alterar ou gerenciar permissões de chave privada para usuários não administrativos no Windows?

Quando você gera uma chave usando um KSP ou CNG para o Azure Cloud HSM, somente o administrador recebe acesso à chave privada. Poderá encontrar dificuldades na visualização de informações de segurança ou na modificação de permissões através da Consola de Gestão da Microsoft (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 aos administradores. Se você precisar fornecer acesso a um usuário não administrativo 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 das chaves HSM do Windows for Cloud.

O que faz azcloudhsm_ksp_import_key.exe?

Você pode usar azcloudhsm_ksp_import_key.exe para importar ou representar chaves assimétricas no Cloud HSM KSP.

Os algoritmos suportados são RSA (2048 a 4096 em múltiplos de 256), ECDSA e ECDH. Para ECDSA e ECDH, as curvas suportadas são P256, P384 e P521. Depois que uma chave é importada ou representada no Cloud HSM KSP, você deve gerenciar a chave somente a partir do Cloud HSM KSP.

Você pode se conectar através de sua rede virtual. Utilize estas ferramentas:

  • A azcloudhsm_mgmt_util ferramenta executa operações (tarefas administrativas no HSM). Requer credenciais de oficial de criptografia de partição (PCO).
  • A azcloudhsm_client ferramenta (daemon 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 via chamada de procedimento remoto (RPC).

O serviço Azure Cloud HSM ouve nas portas 443 (azcloudhsm_client solicitações), 444 (azcloudhsm_mgmt_util solicitações) 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 apenas para clientes.