Ativando a segunda camada de autenticação para conexões EP11-Somente plano padrão

Para garantir o controle exclusivo sobre a execução de operações criptográficas, é possível usar a CLI do gerenciador de certificados Hyper Protect Crypto Services para ativar a segunda camada de autenticação para conexões EP11 (GREP11 ou API PKCS n° 11). Ao ativar essa função, você inclui uma camada extra de controle de acesso em cima do token de gerenciamento de acesso e de identidade (IAM) para os aplicativos EP11. Uma conexão TLS mútua é estabelecida para garantir que apenas os aplicativos EP11 com um certificado de cliente válido podem executar operações do EP11.

A segunda camada de autenticação para conexões EP11 é atualmente suportada apenas pelo Plano padrão Hyper Protect Crypto Services.

Melhores práticas de segurança e disponibilidade para ativar a autenticação TLS mútua

Com o TLS mútuo como uma segunda camada de autenticação para acessar o EP11, é necessário estar ciente das seguintes considerações de segurança e de disponibilidade:

  • Se for necessário evitar que determinadas pessoas acessem o EP11, separe os administradores de certificados dos usuários de serviço. Controle o acesso designando a função Certificate Manager apenas para as pessoas que gerenciam os certificados de cliente e designando a outros usuários de serviço as funções correspondentes para uso operacional. Para gerenciar o acesso do usuário, é necessário ter sido designado à função Administrador com acesso de gerenciamento de conta.
  • As APIs do EP11 não são acessíveis se você usa certificados de cliente inválidos ou usa chaves privadas indisponíveis para assinar certificados de cliente. Para assegurar a disponibilidade, designe mais de uma pessoa à função Certificate Manager como um backup. Os administradores de certificados precisam manter, de forma segura, suas chaves privadas exclusivas de administrador. Os administradores de certificado também precisam manter um backup de todos os certificados de cliente fora da instância do Hyper Protect Crypto Services, por exemplo, usando o IBM Cloud Secrets Manager. Sugere-se também monitorar a expiração dos certificados.

Antes de Iniciar

Antes de ser possível ativar a segunda camada de autenticação para conexões da API do GREP11 ou PKCS n° 11, certifique-se de concluir os pré-requisitos a seguir:

  1. Você está designado à função Certificate Manager IAM para executar as ações correspondentes. Para obter mais informações sobre designar funções do IAM, consulte Gerenciando o acesso do usuário e Gerenciando o acesso a recursos.

  2. Você tem um certificado de cliente preparado em sua estação de trabalho que é usado para a autenticação TLS. É sugerido usar o IBM Cloud Secrets Manager para gerenciar certificados SSL/TLS para seus aplicativos e serviços. Ele é sem custo e fornece armazenamento persistente para seus certificados.

  3. Instale a IBM Cloud CLI.

  4. Instale o plug-in da CLI do Certificate Manager mais recente com o comando a seguir:

    ibmcloud plugin install hpcs-cert-mgr
    
  5. Efetue login no IBM Cloud com a CLI. Se você tiver várias contas, selecione a conta com a qual sua instância de serviço foi criada. Certifique-se de fazer login na região e no grupo de recursos corretos no qual a instância de serviço está localizada com o comando a seguir:

    ibmcloud target -r <region> -g <resource_group>
    

Etapa 1: Configure a chave de assinatura do administrador

Para ativar a segunda camada de autenticação, é necessário primeiro configurar a chave de assinatura do administrador. A chave de assinatura é usada para você se conectar ao seu servidor do Certificate Manager de sua instância que processa os comandos da CLI do Certificate Manager.

  1. Gere o par de chaves de assinatura com o comando a seguir:

    ibmcloud hpcs-cert-mgr adminkey set --crn HPCS_CRN [--private]
    

    Substitua a variável HPCS_CRN pelo Cloud Resource Name (CRN) de sua instância Hyper Protect Crypto Services. É possível usar o comando ibmcloud resource service-instances --long para recuperar o CRN. O parâmetro --private é opcional. Se você utilizar esta opção, a URL do servidor do gerenciador de certificados aponta para o terminal privado e é necessário utilizar a rede privada para conectar sua instância de serviço.

    Após a execução desse comando, um par de chaves pública e privada é gerado e armazenado em sua estação de trabalho local. O caminho de arquivo padrão é /Users/<username>/.hpcs-cert-mgr-cfg/. Certifique-se de armazenar a chave de assinatura de forma segura, por exemplo com proteção por senha. A chave pública é transferida por upload automaticamente para o servidor do Certificate Manager de sua instância para verificação de assinatura.

    Se você deseja atualizar a sua chave de assinatura, é possível usar o comando ibmcloud hpcs-cert-mgr adminkey update para executar a ação. Para obter mais informações sobre o uso da CLI, consulte Hyper Protect Crypto Services referência da CLI do gerenciador de certificados.

  2. (Opcional) Verifique e confirme se a chave pública foi transferida por upload para o servidor com o comando a seguir:

    ibmcloud hpcs-cert-mgr adminkey get --crn HPCS_CRN [--private]
    

    Se este comando retornar o valor da chave pública, isso significa que você fez upload da chave pública com sucesso.

Etapa 2: configurar o certificado de autoridade de certificação do cliente para autenticação

Depois de configurar a chave de assinatura do administrador, é necessário fazer upload do certificado de autoridade de certificação(CA)A trusted third-party organization or company that issues the digital certificates. The certificate authority typically verifies the identity of the individuals who are granted the unique certificate. do cliente para o servidor do gerenciador do certificado da instância para autenticação do cliente TLS.

Depois de configurar o certificado de autoridade de certificação do cliente, você não poderá mais acessar os keystores EP11 e as chaves EP11 por meio da IU.

  1. (Opcional) Prepare certificados de autoridade de certificação e de cliente

    É possível gerar certificados de autoridade de certificação para a infraestrutura GREP11 usando o utilitário OpenSSL.

    Certifique-se de instalar o OpenSSL em uma estação de trabalho que possa ser usada para gerar os certificados. Conclua as etapas a seguir em sua estação de trabalho:

    1. Gere a chave de autoridade de certificação, executando o comando a seguir:
      openssl genrsa -out ca.key 2048
      
    2. Crie o certificado de autoridade de certificação, executando o comando a seguir:
      openssl req -new -x509 -key ca.key -days 730 -out ca.pem
      
    3. Crie a chave do cliente, executando o comando a seguir:
      openssl genrsa -out client-key.pem 2048
      
    4. Crie a solicitação de assinatura do certificado de cliente, executando o comando a seguir:
      openssl req -new -key client-key.pem -out client.csr
      
    5. Crie o certificado de cliente, executando o comando a seguir:
      openssl x509 -req -days 730 -in client.csr -CA ca.pem -CAcreateserial -CAkey ca.key -out client.pem
      
  2. Faça upload do certificado de autoridade de certificação do cliente para o servidor com o comando a seguir:

    Se o seu certificado de cliente for assinado por um certificado de autoridade de certificação intermediário em uma cadeia de certificados, será necessário fazer upload desse certificado de autoridade de certificação intermediário.

    ibmcloud hpcs-cert-mgr cert set --crn HPCS_CRN --admin-priv-key ADMIN_PRIV_KEY --cert-id CERT_ID --cert CERT_FILE [--private]
    

    Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.

    Tabela 1. Descreve as variáveis necessárias para fazer upload do certificado TLS
    Variável Descrição
    HPCS_CRN Obrigatório. O Cloud Resource Name (CRN) da sua instância Hyper Protect Crypto Services. É possível usar o comando ibmcloud resource service-instances --long para recuperar o CRN.
    ADMIN_PRIV_KEY Obrigatório. O caminho do arquivo de sua chave privada atual em sua estação de trabalho local que você gera ou atualiza na Etapa 1. A chave privada é utilizada para assinar esta ação de comando em direção ao servidor do gerenciador de certificados da sua instância.
    CERT_ID Obrigatório. O ID de sequência de caracteres que você deseja designar ao certificado de autoridade de certificação do cliente para fácil identificação.
    CERT_FILE Obrigatório. O caminho do arquivo do certificado de autoridade de certificação do cliente em sua estação de trabalho local.

    O parâmetro --private é opcional. Se você utilizar esta opção, a URL do servidor do gerenciador de certificados aponta para o terminal privado e é necessário utilizar a rede privada para conectar sua instância de serviço.

  3. (Opcional) Verifique e confirme se o certificado de autoridade de certificação do cliente foi transferido por upload para o servidor com o comando a seguir:

    ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRN [--private]
    

    Este comando lista todos os certificados de autoridade de certificação do cliente disponíveis que são gerenciados por você no servidor. Se a lista contiver o certificado transferido por upload anteriormente, isso significa que a ação foi concluída com êxito.

Etapa 3: Estabelecer conexões TLS mútuas para aplicativos do EP11

Após configurar a chave de assinatura do administrador e o certificado de autoridade de certificação do cliente, os usuários do EP11 podem estabelecer conexões TLS mútuas para aplicativos que utilizam a API do GREP11 ou do PKCS # 11. Antes que os usuários do EP11 possam fazer isso, eles precisam configurar os aplicativos do GREP11 ou do PKCS n° 11 com o certificado de cliente.

Para utilizar a API do GREP11 ou do PKCS n° 11, certifique-se de que os usuários do EP11 sejam designados as funções do IAM adequadas para executar operações do EP11. Para obter mais informações, consulte a guia APIs do HSM em Funções de acesso ao serviço do IAM.

  • Configurar aplicativos do GREP11

    Dependendo da linguagem de programação que você utiliza para o aplicativo do GREP11, o método de configuração varia com base no pacote gRPC correspondente. O seguinte fornece exemplos para Golang e JavaScript.

    • Snippet de código de exemplo do Golang

      cert, _ := tls.LoadX509KeyPair("client.pem", "client-key.pem")
      var callOpts = []grpc.DialOption{
        grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{Certificates: []tls.Certificate{cert}}))
      }
      

      O tls.Config{} precisa ser definido corretamente com base na Config estrutura de tipo É necessário configurar pelo menos o campo Certificates. Certifique-se de usar sua chave do cliente e seu certificado de cliente. Para o código de exemplo Golang completo, consulte O repositório GitHub de amostra para Golang.

    • Snippet de código de exemplo de JavaScript

      credentials.push(grpc.credentials.createSsl());
      

      É possível consultar a documentação do Módulo de Credenciais para obter informações detalhadas sobre funções e parâmetros. É necessário configurar os parâmetros private_key e cert_chain para a função createSsl(). Para o código de exemplo JavaScript completo, consulte O repositório GitHub de amostra para JavaScript.

  • Configurar aplicativos do PKCS n° 11

    O PKCS n° 11 manipula o TLS mútuo em seu arquivo de configuração. Atualize o campo tls de acordo com o exemplo a seguir:

    tls:
      enabled: true
      mutual: true
      cacert:
      certfile: "<client_certificate>"
      keyfile: "<client_certificate_private_key>"
    

    Substitua as variáveis no exemplo com base na tabela a seguir:

    Tabela 3. Descreve as variáveis necessárias para configurar aplicativos PKCS #11
    Variável Descrição
    client_certificate Obrigatório. O caminho de arquivo do certificado de cliente que é carregado para o servidor pelo administrador de certificados.
    client_certificate_private_key Obrigatório. O caminho de arquivo da chave privada do certificado de cliente que é usada para assinar o certificado.

Após a configuração, quando os aplicativos usam a API do GREP11 ou do PKCS n° 11 para executar operações criptográficas, uma conexão TLS mútua é estabelecida e o certificado de cliente é validado para a camada adicional de autenticação.

(Opcional) Desativando conexões TLS mútuas

Se você não precisar mais da segunda camada de autenticação, poderá desativar a função, excluindo todos os certificados de autoridade de certificação do cliente no servidor.

  1. Exclua um certificado de autoridade de certificação com o comando a seguir. Repita esta etapa para excluir todos os certificados disponíveis no servidor para desativar as conexões TLS de aplicativos EP11.

    ibmcloud hpcs-cert-mgr cert delete --crn HPCS_CRN --admin-priv-key ADMIN_PRIV_KEY --cert-id CERT_ID [--private]
    

    Substitua as variáveis na solicitação de exemplo de acordo com a tabela a seguir.

    Tabela 2. Descreve as variáveis necessárias para excluir certificados de autoridade de certificação
    Variável Descrição
    HPCS_CRN Obrigatório. O Cloud Resource Name (CRN) da sua instância Hyper Protect Crypto Services. É possível usar o comando ibmcloud resource service-instances --long para recuperar o CRN.
    ADMIN_PRIV_KEY Obrigatório. O caminho de arquivo de sua chave privada atual que está armazenada em sua estação de trabalho local. A chave privada é utilizada para assinar esta ação de comando em direção ao servidor do gerenciador de certificados da sua instância.
    CERT_ID Obrigatório. O ID de sequência de caracteres do certificado de autoridade de certificação que você deseja excluir. É possível primeiro usar o comando ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRN para listar todos os certificados, incluindo seus IDs.

    O parâmetro --private é opcional. Se você utilizar esta opção, a URL do servidor do gerenciador de certificados aponta para o terminal privado e é necessário utilizar a rede privada para conectar sua instância de serviço.

    Se vários administradores de certificados forem configurados para a sua instância de serviço, certifique-se de excluir todos os certificados de autoridade de certificação sob esses administradores.

    Se você excluir um certificado de autoridade de certificação do servidor do Certificate Manager, todos os aplicativos que usam os certificados de clientes emitidos por este certificado de autoridade de certificação não terão acesso à instância GREP11 por meio da conexão TLS mútua.

    Depois de excluir todos os certificados de autoridade de certificação do servidor do Certificate Manager, a autenticação TLS mútua para a instância GREP11 é desativada. Os aplicativos, portanto, não precisam de conexão TLS mútua para se conectar com a instância GREP11.

  2. (Opcional) Verifique e confirme se todos os certificados de autoridade de certificação foram excluídos com o comando a seguir:

    ibmcloud hpcs-cert-mgr cert list --crn HPCS_CRN [--private]
    

    Se nenhum certificado for retornado, significa que todos os certificados de sua instância de serviço foram excluídos.

  3. (Opcional) Atualize os aplicativos GREP11 ou PKCS #11 para excluir as configurações do certificado, de modo que os aplicativos não utilizem mais o certificado para conexões futuras da API.

O que vem a seguir