Encapsulamento de chaves

A proteção de chaves é o processo de encriptação de uma chave através de outra chave para a armazenar ou transmitir em segurança através de um canal não fidedigno. A união de chaves pode basear-se na criptografia simétrica ou assimétrica, consoante o contexto.

No Cloud Key Management Service, a união de chaves é usada para importar com segurança chaves criptográficas fornecidas pelo utilizador. A importação de chaves requer uma tarefa de importação, e cada tarefa de importação tem um método de importação que especifica o protocolo de encapsulamento de chaves a usar.

O Cloud KMS espera formatos específicos para o material de chaves importado. Antes de o material da chave ser envolvido para importação, pode ter de o converter para o formato esperado pelo Cloud KMS. Formatar chaves para importação contém detalhes dos formatos necessários e fornece instruções sobre como pode converter as suas chaves para o formato necessário, se necessário.

Assim que o material da chave estiver formatado corretamente, a Google Cloud CLI pode aplicar automaticamente o wrapper ao material da chave antes de o transmitir de forma segura para o Cloud KMS. Para obter detalhes, consulte o artigo Importar uma chave. Em alternativa, pode encapsular manualmente as chaves através dos protocolos criptográficos adequados. O artigo Encapsular uma chave com o OpenSSL no Linux oferece um exemplo de como o pode fazer.

Métodos de importação

O Cloud KMS oferece os seguintes métodos de importação:

Método de importação Tipo de chave de tarefa de importação Algoritmo de encapsulamento de chaves
RSA_OAEP_3072_SHA1_AES_256 RSA de 3072 bits RSAES-OAEP com SHA-1 + AES-KWP
RSA_OAEP_4096_SHA1_AES_256 RSA de 4096 bits RSAES-OAEP com SHA-1 + AES-KWP
RSA_OAEP_3072_SHA256_AES_256 (recomendado) RSA de 3072 bits RSAES-OAEP com SHA-256 + AES-KWP
RSA_OAEP_4096_SHA256_AES_256 RSA de 4096 bits RSAES-OAEP com SHA-256 + AES-KWP
RSA_OAEP_3072_SHA256 RSA de 3072 bits RSAES-OAEP com SHA-256
RSA_OAEP_4096_SHA256 RSA de 4096 bits RSAES-OAEP com SHA-256

Algoritmos de encapsulamento de chaves

Os métodos de importação fornecidos pelo Cloud KMS correspondem aos seguintes algoritmos de encapsulamento de chaves:

RSAES-OAEP com SHA-1/SHA-256 + AES-KWP

Este algoritmo de envolvimento de chaves é um esquema de encriptação híbrido que consiste numa operação de envolvimento de chaves assimétricas e numa operação de envolvimento de chaves simétricas:

  1. A chave pública da tarefa de importação é usada para encriptar uma chave AES-256 de utilização única. A encriptação é realizada através de RSAES-OAEP e MGF-1, juntamente com o algoritmo de resumo especificado pelo método de importação. A chave AES-256 de utilização única é gerada no momento em que a união é realizada.
  2. A chave AES-256 de utilização única do passo 1 é usada para encriptar o material da chave de destino através da Encriptação de chaves AES com preenchimento.

O material da chave envolvido para importação é uma matriz de bytes única que consiste nos resultados do passo 1, seguida dos resultados do passo 2. Por outras palavras, os resultados dos passos 1 e 2 são concatenados para formar o material da chave envolvida.

Este algoritmo é igual ao algoritmo de envolvimento de chaves PKCS #11 CKM_RSA_AES_KEY_WRAP. Se estiver a importar uma chave de um HSM e o seu HSM suportar este algoritmo, pode usá-lo diretamente. Em alternativa, os passos 1 e 2 acima podem ser realizados com os mecanismos PKCS #11 CKM_RSA_PKCS_OAEP e CKM_AES_KEY_WRAP_PAD, respetivamente.

Se o seu HSM de origem (ou outro fornecedor de chaves, se não estiver a usar o HSM) não suportar o mecanismo de encapsulamento de chaves RSA AES, tem de encapsular manualmente o material da chave usando a chave pública da tarefa de importação. Para ver um exemplo de como o fazer através do OpenSSL, consulte o artigo Como encapsular uma chave através do OpenSSL no Linux.

RSAES-OAEP com SHA-256

Esta é uma operação de envolvimento de chaves assimétricas que usa a chave pública da tarefa de importação com RSAES-OAEP, usando MGF-1 e o algoritmo de resumo SHA-256, para encriptar diretamente o material da chave de destino. Baseia-se no mecanismo PKCS #11 RSA OAEP CKM_RSA_PKCS_OAEP. As limitações de tamanho associadas a este método de importação tornam-no inadequado para importar chaves privadas RSA.