Importação de chave

Neste tópico, abordamos informações conceituais sobre como importar chaves para o Cloud Key Management Service como novas versões de chave. Para instruções passo a passo, consulte Como importar uma versão de chave.

Introdução

Talvez você esteja usando chaves criptográficas existentes que foram criadas nas suas instalações ou em um sistema de gerenciamento de chaves externo. Se você migrar um aplicativo para o Google Cloud ou adicionar suporte criptográfico a um aplicativo existente do Google Cloud, poderá importar as chaves relevantes para o Cloud KMS.

  • É possível importar para chaves do Cloud HSM ou de software no Cloud KMS.
  • O material da chave é encapsulado para proteção em trânsito. É possível usar a Google Cloud CLI para encapsular a chave automaticamente ou envolvê-la manualmente.
  • O Google Cloud tem acesso à chave de encapsulamento apenas no escopo do job de importação. Para chaves do Cloud HSM, a chave de encapsulamento nunca reside fora do Cloud HSM.

Este tópico fornece detalhes sobre limitações e requisitos para a importação de chaves e fornece uma visão geral de como a importação de chave funciona.

Limitações e requisitos

Revise estas seções para verificar se as chaves podem ser importadas para as chaves do Cloud KMS ou do Cloud HSM.

Formatos de chave compatíveis

  • As chaves simétricas para criptografia precisam ter 16 bytes (somente para criptografia simétrica bruta) ou 32 bytes de dados binários e não podem ser codificadas. Se a chave for codificada em hexadecimal ou base64, será necessário decodificá-la antes de tentar importá-la.

  • Chaves simétricas para assinatura (chaves MAC) precisam ter um comprimento igual ao comprimento de saída da função hash criptográfica em uso. Por exemplo, as chaves HMAC-SHA256 precisam ter um comprimento de 32 bytes e não podem ser codificados. Se a chave for codificada em hexadecimal ou base64, será preciso decodificá-la antes de tentar importá-la.

  • As chaves assimétricas para criptografia ou assinatura precisam estar no formato PKCS #8 e ser codificadas em DER. O formato PCKS #8 é definido no RFC 5208 (em inglês). A codificação DER é definida em International Telecommunications Union X.680 (em inglês). As chaves assimétricas precisam usar uma das combinações de comprimento e algoritmo compatíveis com o Cloud KMS.

Alguns aspectos de uma chave, como o comprimento dela, não podem ser alterados após a chave ser criada. Nesses casos, a chave não pode ser importada para o Cloud KMS.

Para verificar e reformatar sua chave para importação, consulte Como formatar chaves para importação.

Níveis de proteção compatíveis

É possível importar uma chave para uma chave do Cloud KMS ou do Cloud HSM, definindo o nível de proteção da chave como SOFTWARE ou HSM. As chaves do Cloud HSM geram custos adicionais. Não é possível importar para uma chave do gerenciador de chaves externas do Cloud (uma chave com nível de proteção EXTERNAL).

Tamanhos de chave de encapsulamento compatíveis

Ao criar um job de importação, você pode controlar o tamanho da chave de encapsulamento usada para proteger sua chave em trânsito para o Google, configurando o método de importação. O tamanho padrão da chave de encapsulamento é 3072. Se você tiver requisitos específicos, poderá configurar o job de importação para usar uma chave de 4.096 bits.

Saiba mais sobre os algoritmos usados para encapsulamento de chaves ou sobre como configurar um job de importação.

Como funciona a importação de chaves

Esta seção ilustra o que acontece quando você importa uma chave. Algumas partes do fluxo serão diferentes se você usar o encapsulamento automático ou encapsular manualmente a chave. É recomendável usar o encapsulamento automático. Para instruções específicas, consulte Importar uma versão da chave. Para instruções específicas sobre como encapsular manualmente a chave antes da importação, consulte Como encapsular uma chave usando o OpenSSL no Linux.

O diagrama a seguir ilustra o processo de importação de chave usando o encapsulamento de chave automático. As fases mostradas no diagrama são descritas nesta seção.

Fluxo de importação, descrito nesta seção

  1. Prepare-se para importar chaves.

    1. Primeiro, crie um keyring e uma chave de destino que contenham o job de importação e o material da chave importada. Neste ponto, a chave de destino não contém versões de chave.

    2. Em seguida, crie um job de importação. O job de importação define o keyring e a chave de destino para o material da chave importada. O job de importação também define o método de importação, que é o algoritmo usado para criar a chave de encapsulamento que protege o material da chave durante solicitações de importação.

      • A chave pública é usada para unir a chave a ser importada no cliente.
      • A chave privada é armazenada no Google Cloud e é usada para desencapsular a chave depois que ela chega ao projeto do Google Cloud.

      Essa separação impede que o Google descompacte o material de chave fora do escopo do job de importação.

    3. A chave precisa ser encapsulada criptograficamente antes de transmiti-la ao Google. A maioria dos usuários pode usar a CLI gcloud para encapsular, transmitir e importar automaticamente a chave, conforme descrito na próxima etapa. Se você tiver requisitos de conformidade ou regulamentares para encapsular a chave manualmente, é possível fazer isso nesse momento. Para encapsular a chave manualmente no sistema local:

      1. Configure o OpenSSL.
      2. Uma vez por job de importação, faça o download da chave de encapsulamento associada à ele.
      3. Uma vez por chave, defina várias variáveis de ambiente e encapsule a chave.
  2. Por até três dias, até o job de importação expirar, é possível usá-lo para fazer solicitações de importação para importar uma ou mais chaves. Durante uma solicitação de importação:

    1. Se a chave não tiver sido encapsulada manualmente, a Google Cloud CLI fará o download da chave pública do job de importação do Google Cloud para o sistema local e, em seguida, usará a chave pública com uma chave privada associada ao cliente para encapsular o material da chave local.
    2. O material da chave encapsulada é transmitido para o projeto do Google Cloud.
    3. O material da chave é desencapsulado usando a chave privada do job de importação e é inserido como uma nova versão da chave de destino no keyring de destino. Essa é uma operação atômica.
    4. Para chaves simétricas, defina a versão da chave importada como a versão da chave primária.

Depois que a solicitação de importação for concluída com êxito, será possível usar a versão da chave importada para proteger os dados no Google Cloud.

A seguir