O blog da AWS

Como habilitar um cluster do AWS CloudHSM na nuvem da AWS?

Por Omner Barajas, arquiteto de soluções especializado em segurança

 

O serviço AWS CloudHSM oferece Hardware Security Modules (HSM) na Nuvem AWS, que são dispositivos que processam operações criptográficas e fazem o armazenamento seguro de suas chaves criptográficas.

Algumas das tarefas que podem ser executadas ao usar um HSM no serviço AWS CloudHSM são:

  • Gerar, armazenar, importar, exportar e gerenciar chaves criptográficas, incluindo chaves simétricas e pares de chaves assimétricas.
  • Usar algoritmos simétricos e assimétricos para criptografar e descriptografar dados.
  • Usar funções de hash criptográfico para calcular resumos e códigos de autenticação de mensagens baseados em hash (HMAC).
  • Assinar dados criptograficamente (incluindo assinatura de código) e verificação de assinaturas.
  • Gerar dados aleatórios criptograficamente seguros.

Neste post, mostrarei as etapas necessárias para criar um cluster de HSMs e fazer sua ativação, o que o deixará pronto para gerar usuários e chaves criptográficas.

 

Preparação da infraestrutura

A arquitetura a seguir será usada como base para criar um cluster de HSMs em sub-redes privadas. Da mesma forma, ele será usado para executar uma instância no serviço Amazon EC2 que servirá como cliente, para que possamos nos conectar ao cluster.

 

Arquitetura base

 

Criando um cluster

Um cluster HSM é umagrupamento de HSMs individuais. O AWS CloudHSM sincroniza os HSMs em cada cluster para funcionar como uma unidade lógica.

Para criar um cluster HSM usando o console de gerenciamento da AWS, execute as seguintes etapas:

1. Abra a página de serviço AWS CloudHSM, escolha Criar cluster (Create cluster).

 

Imagem 1: Lista de clusters HSM disponíveis

 

2. Selecione as opções de configuração usando VPC e sub-redes privadas de acordo com a arquitetura exibida acima e clique em Avançar (Next). É necessário considerar que o serviço AWS CloudHSM pode não estar disponível em algumas Zonas de Disponibilidade (AZs) mesmo em uma região na qual o serviço é suportado.

 

Imagem 2: Etapa 1 da Configuração do Cluster HSM

 

3. Selecione o período de retenção de backups. Depois de terminar, clique em Avançar (Next).

 

Imagem 3: Etapa 2 da Configuração do Cluster HSM

 

4. Opcionalmente, é possível adicionar tags para identificar o cluster. Clique em Revisar (Review) quando terminar.

 

Imagem 4: Etapa 3 da Configuração do Cluster HSM

 

5. Um resumo das informações selecionadas aparecerá; é necessário revisá-las em detalhe, porque uma vez que o cluster é criado, não será possível alterar a VPC,fazer modificações nas sub-redes selecionadas ou adicionar novas sub-redes. Clique em Criar cluster (Create cluster).

 

Imagem 5: Etapa 4 da Configuração do Cluster HSM

 

Uma mensagem aparecerá indicando que o cluster está sendo criado e o estado em que ele se encontra. O cluster entrará em estado não inicializado (Uninitialized) quando o processo for concluído.

 

Imagem 6: Progresso da criação do cluster HSM

 

Ao criar um cluster, o AWS CloudHSM também cria um security group chamado CloudHSM-Cluster-ClusterID-SG. Esse security group contém uma regra TCP pré-configurada que permite comunicações de entrada e saída entre os membros deste security group nas portas 2223-2225. A regra permite que os HSMs no cluster se comuniquem entre si, portanto, não deve ser modificada.

 

Inicializando o cluster

Para inicializar o cluster do CloudHSM, você deve primeiro criar um HSM. Para isso, as seguintes etapas devem ser seguidas no console:

1. Selecione o cluster que acabou de ser criado nas etapas anteriores. Clique em Ações (Actions) e selecione a opção Inicializar (Initialize).

 

Imagem 7: Inicializando o cluster HSM

 

2. Selecione a sub-rede privada a ser usada e clique em Criar (Create).

 

Imagem 8: Selecionando a Zona de Disponibilidade (AZ)

 

O HSM será criado após alguns minutos.

 

Imagem 9: Criando seu primeiro HSM no cluster

 

3. A Solicitação de Assinatura de Certificado (CSR) deve ser baixada do cluster. Ela deve ser assinada posteriormente. Opcionalmente, podemos baixar os certificados do HSM que foram usados para gerar o CSR, o que possibilitará verificar sua autenticidade. Clique em Avançar (Next).

 

Imagem 10: Processo de CSR

 

4. A CSR deve ser assinada utilizando o seguinte procedimento:

    • Criar uma chave privada (key)
    • Use a chave privada para criar um certificado auto assinado (CRT)
    • Assine a CSR para o cluster (<cluster ID>_CustomerHSMCertificate.crt)

 

Os seguintes comandos devem ser considerados apenas para fins de demonstração e são recomendados para desenvolvimento e teste. Para um cluster de produção, a chave deve ser criada com segurança usando uma fonte de aleatoriedade confiável. Recomendamos que você use um HSM externo seguro que esteja offline ou equivalente e que armazene a chave com segurança.

 

Imagem 11: Exemplos dos comandos

 

5. Continue com a inicialização do cluster carregando os certificados que acabaram de ser gerados. Clique em Carregar e inicializar (Upload and initialize).

 

Imagem 12: Carga dos certificados

 

A inicialização do cluster levará alguns minutos.

 

Imagem 13: Informações do cluster

 

Criando um cliente

Para gerenciar um cluster do AWS CloudHSM, você precisa se comunicar com os HSMs. A maneira mais fácil de fazer isso é usar uma instância do Amazon EC2 na mesma VPC que o cluster, embora as conexões possam ser feitas de outras VPCs usando peering, usando VPN ou links dedicados por meio do AWS Direct Connect.

É necessário executar uma instância do Amazon EC2 com regras específicas de security groups,  permitindo a conectividade entre a instância e o cluster. Para configurar o software cliente, use as seguintes etapas:

1. Instale o cliente do AWS CloudHSM e as ferramentas de linha de comando.

 

Imagem 14: Download do cliente CloudHSM

 

Imagem 15: Instalação do cliente CloudHSM

 

2. Edite a configuração do cliente, usando o endereço IP do HSM disponível no console.

 

Imagem 16: Configuração do IP no cliente

 

3. É necessário copiar o certificado gerado na seção anterior (CustomerCA.CRT) para o mesmo caminho que os arquivos de configuração.

 

Imagem 17: Cópia do certificado

 

Ativando o cluster

Quando um cluster do AWS CloudHSM é ativado, seu status mudará de inicializado para ativo. Para ativar o cluster, faça login no HSM com as credenciais do usuário responsável pela criptografia pré-configurado (PRECO), que é um usuário temporário que só existe no primeiro HSM de um cluster do AWS CloudHSM e possui um nome de usuário e senha padrão. Ao alterar a senha, o usuário PRECO se torna um usuário responsável  por atividades de criptografia (Crypto Officer ou CO).

Depois de termos o cliente instalado e configurado de acordo com a seção anterior, prosseguimos com a ativação:

1. Estabeleça uma conexão com o HSM usando o seguinte comando. Se a conexão for bem-sucedida, uma mensagem semelhante à seguinte será exibida:

 

Imagem 18: Estabelecendo conexão com o HSM

 

2. Faça login com o usuário PRECO e altere sua senha. Você pode confirmar que o tipo de usuário PRECO mudou para CO.

 

Imagem 19: Login e trocas de senha do usuario PRECO

 

O cluster mudará para o estado Ativo após alguns minutos.

 

Imagem 20: Cluster ativo

 

Limpeza do ambiente

Quando você terminar de usar os recursos criados, é aconselhável excluí-los para evitar cobranças adicionais. Para excluir o cluster, primeiro você deve excluir todos os HSMs que ele contém.

 

Imagem 20: Lista dos HSMs no cluster

 

Um backup será criado automaticamente quando o HSM for excluído. O backup pode ser usado para gerar um novo cluster.

 

Imagem 21: Lista de Backups criados

 

Opinião

Quando o processo de ativação estiver concluído, o cluster estará pronto para gerar dispositivos HSMs adicionais, usuários ou chaves criptográficas para seus aplicativos.

Para começar a gerar e usar chaves no novo cluster, um usuário deve ser criado usando as ferramentas de linha de comando. Com os usuários do HSM configurados, é possível fazer login, criar e usar chaves com qualquer uma das seguintes opções:

  • Usar o utilitário de gerenciamento de chaves, uma ferramenta de linha de comando.
  • Criar um aplicativo C usando a ferramenta Biblioteca PKCS #11.
  • Criar um aplicativo Java usando o comando JCE Provider.
  • Usar o mecanismo dinâmico OpenSSL diretamente da linha de comando.
  • Usar o mecanismo dinâmico OpenSSL para baixar TLS com servidores web NGINX e Apache.
  • Usar provedores GNC e KSP para usar o AWS CloudHSM como Autoridade de Certificação (CA) do Microsoft Windows Server.
  • Usar provedores GNC e KSP para usar o AWS CloudHSM como uma ferramenta Microsoft Sign.
  • Usar os provedores GNC e KSP para baixar o TLS com o servidor web do Internet Information Server (IIS).

 

Este artigo foi traduzido do Blog da AWS em Espanhol.

 


Sobre o autor

Omner Barajas é um arquiteto de soluções especialista em segurança na AWS México.

 

 

 

 

Sobre os revisores

Daniel Garcia é arquiteto de soluções especialista em segurança na AWS Brasil.

 

 

 

 

 

Javier Huerta é Senior Solutions Architect especializado em Well-Architected para a América Latina.

 

 

 

 

Explore mais conteúdos sobre Segurança na página de Sessions On Demand.

Acesse >