Usar a autenticação de quorum para oficiais de criptografia - AWS CloudHSM

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar a autenticação de quorum para oficiais de criptografia

Um oficial de criptografia (CO) no HSM pode configurar a autenticação de quorum para as seguintes operações no HSM:

  • Criar usuários do HSM

  • Excluir usuários do HSM

  • Alterar a senha de outro usuário do HSM

Depois que o HSM é configurado para autenticação de quorum, os COs não podem executar as operações de gerenciamento de usuários HSM por conta própria. O exemplo a seguir mostra a saída quando um CO tenta criar um novo usuário no HSM. O comando falha com um erro RET_MXN_AUTH_FAILED, o que indica que a autenticação de quorum falhou.

aws-cloudhsm>createUser CU user1 password *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Creating User user1(CU) on 2 nodes createUser failed: RET_MXN_AUTH_FAILED creating user on server 0(10.0.2.14) failed Retry/Ignore/Abort?(R/I/A):A

Para realizar uma operação de gerenciamento de usuários do HSM, um CO deve completar as seguintes tarefas:

Se você ainda não configurou o HSM para autenticação de quorum para COs, faça isso agora. Para ter mais informações, consulte Configuração pela primeira vez.

Obter um token de quorum

Primeiro, o CO deve usar a ferramenta da linha de comando cloudhsm_mgmt_util para solicitar um token de quorum.

Para obter um token de quorum
  1. Use o comando a seguir para iniciar a ferramenta de linha de comando cloudhsm_mgmt_util.

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  2. Use o comando loginHSM para fazer login nos HSMs como CO. Para ter mais informações, consulte Gerenciar usuários do HSM com o CloudHSM Management Utility (CMU).

  3. Use o comando getToken para obter um token de quorum. Para obter mais informações, consulte o exemplo a seguir ou use o comando help getToken.

exemplo – Obter um token de quorum

Este exemplo obtém um token de quorum para o CO com o nome de usuário officer1 e salva o token em um arquivo chamado officer1.token. Para usar o exemplo de comando, substitua esses valores por seus próprios:

  • officer1: o nome do CO que está recebendo o token. Este deve ser o mesmo CO que está conectado ao HSM e executando esse comando.

  • officer1.token: o nome do arquivo a ser usado para armazenar o token de quorum.

No comando a seguir, 3 identifica o serviço para o qual você pode usar o token que você está recebendo. Nesse caso, o token é para operações de gerenciamento de usuários do HSM (serviço 3). Para ter mais informações, consulte Definir o valor mínimo do quorum no HSM.

aws-cloudhsm>getToken 3 officer1 officer1.token getToken success on server 0(10.0.2.14) Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 getToken success on server 1(10.0.1.4) Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1

Obter assinaturas dos COs de aprovação

Um CO que tenha um token de quorum deve obter o token aprovado por outros COs. Para darem sua aprovação, os outros COs usam suas chaves de assinatura para assinar criptograficamente o token. Eles fazem isso fora do HSM.

Existem muitas maneiras diferentes de assinar o token. O exemplo a seguir mostra como fazer isso com o OpenSSL. Para usar uma ferramenta de assinatura diferente, certifique-se de que essa ferramenta use a chave privada (chave de assinatura) do CO para assinar um resumo SHA-256 do token.

exemplo – Obter assinaturas dos COs de aprovação

Neste exemplo, o CO que possui o token (officer1) precisa de pelo menos duas aprovações. Os comandos do exemplo a seguir mostram como dois COs podem usar o OpenSSL para assinar criptograficamente o token.

No primeiro comando, officer1 assina o seu próprio token. Para usar os seguintes comandos de exemplo, substitua esses valores por seus próprios:

  • officer1.key e officer2.key: o nome do arquivo que contém a chave de assinatura do CO.

  • officer1.token.sig1 and officer1.token.sig2: o nome do arquivo a ser usado para armazenar a assinatura. Certifique-se de salvar cada assinatura em um arquivo diferente.

  • officer1.token: o nome do arquivo que contém o token que o CO está assinando.

$ openssl dgst -sha256 -sign officer1.key -out officer1.token.sig1 officer1.token Enter pass phrase for officer1.key:

No comando a seguir, officer2 assina o mesmo token.

$ openssl dgst -sha256 -sign officer2.key -out officer1.token.sig2 officer1.token Enter pass phrase for officer2.key:

Aprovar o token assinado no HSM

Depois que um CO receber o número mínimo de aprovações (assinaturas) de outros COs, ele deverá aprovar o token assinado no HSM.

Para aprovar o token assinado no HSM
  1. Crie um arquivo de aprovação de token. Para obter mais informações, veja o exemplo a seguir.

  2. Use o comando a seguir para iniciar a ferramenta de linha de comando cloudhsm_mgmt_util.

    $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
  3. Use o comando loginHSM para fazer login nos HSMs como CO. Para ter mais informações, consulte Gerenciar usuários do HSM com o CloudHSM Management Utility (CMU).

  4. Use o comando approveToken para aprovar o token assinado, passando o arquivo de aprovação de token. Para obter mais informações, veja o exemplo a seguir.

exemplo Crie um arquivo de aprovação de token e aprove o token assinado no HSM

O arquivo de aprovação de token é um arquivo de texto em um formato específico exigido pelo HSM. O arquivo contém informações sobre o token, seus aprovadores e as assinaturas dos aprovadores. O seguinte mostra um exemplo de arquivo de aprovação de token.

# For "Multi Token File Path", type the path to the file that contains # the token. You can type the same value for "Token File Path", but # that's not required. The "Token File Path" line is required in any # case, regardless of whether you type a value. Multi Token File Path = officer1.token; Token File Path = ; # Total number of approvals Number of Approvals = 2; # Approver 1 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer1; Approval File = officer1.token.sig1; # Approver 2 # Type the approver's type, name, and the path to the file that # contains the approver's signature. Approver Type = 2; # 2 for CO, 1 for CU Approver Name = officer2; Approval File = officer1.token.sig2;

Depois de criar o arquivo de aprovação de token, o CO usa a ferramenta da linha de comando cloudhsm_mgmt_util para fazer login no HSM. O CO usa o comando approveToken para aprovar o token, como mostrado no exemplo a seguir. Substitua approval.txt pelo nome do arquivo de aprovação de token.

aws-cloudhsm>approveToken approval.txt approveToken success on server 0(10.0.2.14) approveToken success on server 1(10.0.1.4)

Quando esse comando é bem-sucedido, o HSM aprovou o token de quorum. Para verificar o status de um token, use o comando listTokens, conforme mostrado no exemplo a seguir. A saída do comando mostra que o token possui o número necessário de aprovações.

O tempo de validade de token indica quanto tempo o token é garantido para persistir no HSM. Mesmo após o período de validade do token (zero segundos), você ainda pode usá-lo.

aws-cloudhsm>listTokens ===================== Server 0(10.0.2.14) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:1 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 ===================== Server 1(10.0.1.4) ===================== -------- Token - 0 ---------- Token: Id:1 Service:3 Node:0 Key Handle:0 User:officer1 Token Validity: 506 sec Required num of approvers : 2 Current num of approvals : 2 Approver-0: officer1 Approver-1: officer2 Num of tokens = 1 listTokens success

Usar o token para operações de gerenciamento

Depois de um CO ter um token com o número necessário de aprovações, como mostrado na seção anterior, ele pode executar uma das seguintes operações de gerenciamento de usuários do HSM:

  • Criar um usuário do HSM com o comando createUser

  • Excluir um usuário do HSM com o comando deleteUser

  • Alterar a senha de um usuário diferente do HSM com o comando changePswd

Para obter mais informações sobre como usar esses comandos, consulte Gerenciamento de usuários de HSM.

O CO pode usar o token para apenas uma operação. Quando essa operação for bem-sucedida, o token não será mais válido. Para fazer outra operação de gerenciamento de usuários do HSM, o CO deve obter um novo token de quorum, obter novas assinaturas dos aprovadores e aprovar o novo token no HSM.

nota

O token MofN só é válido enquanto sua sessão de login atual estiver aberta. Se você fizer log out do cloudhsm_mgmt_util ou se a conexão de rede for desconectada, o token não será mais válido. Da mesma forma, um token autorizado só pode ser usado em cloudhsm_mgmt_util. Ele não pode ser usado para autenticação em um aplicativo diferente.

No comando do exemplo a seguir, o CO cria um novo usuário no HSM.

aws-cloudhsm>createUser CU user1 password *************************CAUTION******************************** This is a CRITICAL operation, should be done on all nodes in the cluster. AWS does NOT synchronize these changes automatically with the nodes on which this operation is not executed or failed, please ensure this operation is executed on all nodes in the cluster. **************************************************************** Do you want to continue(y/n)?y Creating User user1(CU) on 2 nodes

Depois que o comando anterior for bem-sucedido, um comando listUsers subsequente mostrará o novo usuário.

aws-cloudhsm>listUsers Users on server 0(10.0.2.14): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NO Users on server 1(10.0.1.4): Number of users found:8 User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CO officer1 YES 0 NO 4 CO officer2 YES 0 NO 5 CO officer3 YES 0 NO 6 CO officer4 YES 0 NO 7 CO officer5 YES 0 NO 8 CU user1 NO 0 NO

Se o CO tentar executar outra operação de gerenciamento de usuário HSM, ele falhará com um erro de autenticação de quorum, como mostrado no exemplo a seguir.

aws-cloudhsm>deleteUser CU user1 Deleting user user1(CU) on 2 nodes deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 0(10.0.2.14) Retry/rollBack/Ignore?(R/B/I):I deleteUser failed: RET_MXN_AUTH_FAILED deleteUser failed on server 1(10.0.1.4) Retry/rollBack/Ignore?(R/B/I):I

O comando listTokens mostra que o CO não possui tokens aprovados, como mostrado no exemplo a seguir. Para realizar outra operação de gerenciamento de usuários do HSM, o CO deve obter um novo token de quorum, obter novas assinaturas dos aprovadores e aprovar o novo token no HSM.

aws-cloudhsm>listTokens ===================== Server 0(10.0.2.14) ===================== Num of tokens = 0 ===================== Server 1(10.0.1.4) ===================== Num of tokens = 0 listTokens success