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 chaves. Para instruções detalhadas, 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 chaves de software no Cloud KMS.
  • O material da chave é encapsulado para proteção em trânsito. Use a Google Cloud CLI para encapsular a chave automaticamente ou faça o encapsulamento manualmente.
  • O Google Cloud tem acesso à chave de encapsulamento apenas dentro do 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 (apenas para criptografia simétrica bruta) ou 32 bytes de dados binários e não precisam ser codificadas. Se a chave tiver codificação hexadecimal ou codificada em base64, você precisará 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 tiver codificação hexadecimal ou codificada em base64, você precisará 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

Você pode importar uma chave para uma chave do Cloud KMS ou do Cloud HSM, definindo o nível de proteção da chave para SOFTWARE ou HSM. As chaves do Cloud HSM geram custos adicionais. Não é possível importar para uma chave do Cloud External Key Manager (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 de chave. Para instruções específicas sobre como encapsular manualmente sua 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 segmentação que vão conter o job de importação e o material da chave importada. Neste ponto, a chave de segmentação 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 descompactar a chave depois que ela chega ao projeto do Google Cloud.

      Essa separação impede que o Google descubra o material da 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, como descrito na próxima etapa. Se você tiver requisitos regulatórios ou de compliance para encapsular a chave manualmente, poderá 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é que o job de importação expire, você pode usá-lo para fazer solicitações de importação e 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 usará a chave pública, junto 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 principal.

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

A seguir