Formatar chaves para importação

Este tópico descreve como formatar as chaves para que possam ser importadas pelo Cloud KMS como novas versões de chaves.

O formato correto do material da chave varia consoante o material da chave esteja a ser importado para uma chave simétrica ou para uma chave assimétrica. Para mais informações sobre a diferença entre chaves simétricas e assimétricas, consulte o artigo Finalidades e algoritmos das chaves.

Formatos de chaves suportados

  • Chaves simétricas para encriptação: As chaves simétricas importadas têm de ter 32 bytes de dados binários e não podem ser codificadas. Se a sua chave estiver codificada em hexadecimal ou Base64, tem de descodificá-la antes de tentar importá-la.
  • Chaves simétricas para assinatura (chaves MAC): as chaves de assinatura HMAC importadas têm de ter um comprimento igual ao comprimento de saída da função de hash criptográfico que está a ser usada (por exemplo, as chaves HMAC-SHA256 têm de ter um comprimento de 32 bytes) e não podem ser codificadas. Se a sua chave estiver codificada em hexadecimal ou codificada em base64, tem de descodificá-la antes de tentar importá-la.
  • Chaves assimétricas para encriptação ou assinatura: as chaves assimétricas importadas têm de estar no formato PKCS #8 e têm de ser codificadas em DER. O formato PCKS #8 está definido no RFC 5208. A codificação DER é definida na União Internacional das Telecomunicações X.680. As chaves assimétricas têm de usar uma das combinações de comprimento e algoritmo suportadas pelo Cloud KMS.

Alguns aspetos de uma chave, como o comprimento da chave, não podem ser alterados depois de a chave ser criada. Nestes casos, não é possível importar a chave para o Cloud KMS.

Verificar uma chave simétrica

Use o comando wc para verificar o comprimento de uma chave simétrica.

wc -c /path/to/unwrapped-key
  • Não pode importar uma chave de encriptação simétrica com um comprimento diferente de 32.

  • As chaves de assinatura simétricas (chaves MAC) têm de ter um comprimento igual ao comprimento de saída da função hash criptográfica que está a ser usada (por exemplo, as chaves HMAC-SHA256 têm de ter um comprimento de 32 bytes).

Use o comando file para verificar o formato de uma chave.

file /path/to/unwrapped-key
  • Se o resultado for data, a chave está no formato correto para ser importada.

  • Se o resultado for ASCII text, use o comando cat para apresentar o conteúdo do ficheiro.

    • Se for uma string de letras e números que termina com um sinal =, pode estar codificada em base64. Use o comando base64 (Base64.exe no Windows) para descodificar. Segue-se um exemplo de uma chave codificada em base64:

      THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
      
    • Se contiver uma ou mais linhas de números hexadecimais, pode estar codificado em hexadecimal. Use o comando xxd (ou o Format-Hex comando do PowerShell no Windows) para descodificá-lo. Segue-se um exemplo de uma chave codificada em hexadecimal:

      00000000: 4c7c c0ae 36ac b01f a088 a78d 793d 59af  L|..6.......y=Y.
      00000010: be0e 815d b8b7 e129 fb7e c473 aa23 0776  ...]...).~.s.#.v
      
    • Se contiver outro texto, pode não ser uma chave simétrica válida.

Formatar chaves assimétricas

Podem ser importadas chaves assimétricas que usem qualquer um dos algoritmos suportados. Na prática, é difícil determinar retroativamente o algoritmo usado para criar uma chave assimétrica. Por esse motivo, recomendamos que execute os seguintes comandos em cada chave assimétrica antes de tentar importá-la para o Cloud KMS.

  1. Use o comando file para verificar o formato de uma chave.

    file /path/to/unwrapped-key
    
    • Se o resultado for PEM, a chave está no formato PEM. Se for ASCII text, é provável que esteja no formato PEM. Em qualquer dos casos, execute o seguinte comando para o converter para o formato DER PCKS#8:

      openssl pkcs8 -topk8 -nocrypt -inform PEM -outform DER \
          -in /path/to/asymmetric-key-pem \
          -out /path/to/formatted-key
      
    • Se a saída for data, é provável que a chave esteja no formato DER, mas pode não estar no formato PKCS n.º 8. Execute o seguinte comando para garantir que a chave está no formato correto. O comando não tem efeito se a chave já estiver no formato correto. Nesse caso, pode usar o comando diff para verificar se o ficheiro de entrada e o ficheiro de saída são idênticos.

      openssl pkcs8 -topk8 -nocrypt -inform DER -outform DER \
          -in /path/to/asymmetric-key-der \
          -out /path/to/formatted-key
      

Resolução de problemas

Se executar os comandos acima e considerar que a chave está num formato adequado, mas a importação continua a falhar, verifique se existem erros na Trusted Cloud consola e, em seguida, consulte o artigo Resolução de problemas de importações com falhas.

O que se segue?