Encapsulamento de chaves AES AWS CloudHSM - 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á.

Encapsulamento de chaves AES AWS CloudHSM

Este tópico descreve as opções de empacotamento de chaves AES. AWS CloudHSM O encapsulamento de chaves AES usa uma chave AES (a chave de encapsulamento) para encapsular outra chave de qualquer tipo (a chave de destino). O encapsulamento de chaves é usado para proteger chaves armazenadas ou para transmitir chaves por redes não seguras.

Algoritmos compatíveis

AWS CloudHSM oferece três opções para empacotamento de chaves AES, cada uma com base em como a chave de destino é preenchida antes de ser embalada. O preenchimento é feito automaticamente, de acordo com o algoritmo usado, quando você chama o encapsulamento de chaves. A tabela a seguir lista os algoritmos compatíveis e os detalhes associados para ajudar você a escolher um mecanismo de encapsulamento apropriado para seu aplicativo.

Algoritmo de encapsulamento de chave AES Especificação  Tipos de chave de destino compatíveis Esquema de preenchimento AWS CloudHSM Disponibilidade do cliente
Encapsulamento de chaves AES com preenchimento de zeros RFC 5649 e SP 800 - 38F Todos Adiciona zeros após bits de chave, se necessário, para bloquear o alinhamento SDK 3.1 e posterior
Encapsulamento de chaves AES sem preenchimento RFC 3394 e SP 800 - 38F Chaves com alinhamento bloqueado, como AES e 3DES Nenhum SDK 3.1 e posterior
Encapsulamento de chaves AES com preenchimento PKCS #5 Nenhum Todos

Pelo menos 8 bytes são adicionados de acordo com o esquema de preenchimento PKCS #5 para bloquear o alinhamento

Todos

Para saber como usar os algoritmos de encapsulamento de chaves AES da tabela anterior no aplicativo, consulte Usar o encapsulamento de chaves AES no AWS CloudHSM.

Noções básicas sobre vetores de inicialização no encapsulamento de chaves AES

Antes de encapsular, o CloudHSM anexa um vetor de inicialização (IV) à chave de destino para a integridade dos dados. Cada algoritmo de encapsulamento de chaves tem restrições específicas sobre o tipo de IV permitido. Para configurar o IV AWS CloudHSM, você tem duas opções:

  • Implícito: defina o IV como NULL e o CloudHSM usará o valor padrão desse algoritmo para operações de encapsulamento e desencapsulamento (recomendado)

  • Explícito: defina o IV transmitindo o valor padrão do IV para a função de encapsulamento de chaves

Importante

É necessário entender o IV que você está usando no aplicativo. Para desencapsular a chave, é necessário fornecer o mesmo IV usado para encapsular a chave. Se você usar um IV implícito para encapsular, use um IV implícito para desencapsular. Com um IV implícito, o CloudHSM usará o valor padrão para desencapsular.

A tabela a seguir descreve valores permitidos para IVs, que o algoritmo de desencapsulamento especifica.

Algoritmo de encapsulamento de chave AES IV implícito IV explícito
Encapsulamento de chaves AES com preenchimento de zeros Obrigatório

Valor padrão: (IV calculado internamente com base na especificação)

Não permitido
Encapsulamento de chaves AES sem preenchimento Permitido (recomendado)

Valor padrão: 0xA6A6A6A6A6A6A6A6

Permitido

Apenas este valor aceito: 0xA6A6A6A6A6A6A6A6

Encapsulamento de chaves AES com preenchimento PKCS #5 Permitido (recomendado)

Valor padrão: 0xA6A6A6A6A6A6A6A6

Permitido

Apenas este valor aceito: 0xA6A6A6A6A6A6A6A6

Usando o encapsulamento de teclas AES AWS CloudHSM

Encapsule e desencapsule as chaves da seguinte maneira:

  • Na biblioteca PCKS #11, selecione o mecanismo apropriado para as funções C_WrapKey e C_UnWrapKey, conforme mostrado na tabela a seguir.

  • Na provedor JCE, selecione a combinação apropriada de algoritmo, modo e preenchimento, implementando os métodos de criptografia Cipher.WRAP_MODE e Cipher.UNWRAP_MODE, conforme mostrado na tabela a seguir.

  • Na CLI do CloudHSM, escolha o algoritmo apropriado na lista envoltório de chaves de algoritmos chave: desembrulhar compatíveis, conforme mostrado na tabela a seguir.

  • Em key_mgmt_util (KMU), use os comandos wrapKey e unWrapKey com valores m apropriados, conforme mostrado na tabela a seguir.

Algoritmo de encapsulamento de chave AES Mecanismo PKCS #11 Método Java Subcomando CLI do CloudHSM Argumento do utilitário de gerenciamento de chaves (KMU)
Encapsulamento de chaves AES com preenchimento de zeros
  • CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD (mecanismo definido pelo fornecedor)

AESWrap/ECB/ZeroPadding aes-zero-pad m = 6
Encapsulamento de chaves AES sem preenchimento
  • CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD (mecanismo definido pelo fornecedor)

AESWrap/ECB/NoPadding aes-no-pad m = 5
Encapsulamento de chaves AES com preenchimento PKCS #5
  • CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD (mecanismo definido pelo fornecedor)

AESWrap/ECB/PKCS5Padding aes-pkcs5-pad m = 4