Este tópico descreve como formatar as chaves para que possam ser importadas pelo Cloud KMS como novas versões.
O formato correto para o material da chave varia de acordo com o tipo de importação: chave simétrica ou assimétrica. Para mais informações sobre a diferença entre essas chaves, consulte Finalidades de chaves e algoritmos.
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.
Como verificar uma chave simétrica
Use o comando wc
para verificar o comprimento de uma chave simétrica.
wc -c /path/to/unwrapped-key
Você não pode importar uma chave de criptografia simétrica com um comprimento diferente de 32.
As chaves de assinatura simétricas (chaves MAC) precisam ter um comprimento igual ao comprimento de saída da função de hash criptográfica sendo usada, por exemplo, as chaves HMAC-SHA256 precisam ter um comprimento de 32 bytes.
Use o comando file
para verificar o formato de uma chave.
file /path/to/unwrapped-key
Se a saída for
data
, a chave estará no formato correto a ser importado.Se o resultado for
ASCII text
, use o comandocat
para exibir o conteúdo do arquivo.Se for uma string de letras e números terminando em um sinal
=
, pode ser codificada em base64. Use o comandobase64
(Base64.exe
no Windows) para decodificá-la. Veja a seguir um exemplo de chave codificada em base64:THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
Se ela contiver uma ou mais linhas de números hexadecimais, poderá ser codificada em hexadecimal. Use o comando
xxd
(ou o comandoFormat-Hex
do PowerShell no Windows) para decodificá-la. Confira a seguir um exemplo de 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 ela contiver qualquer outro texto, talvez não seja uma chave simétrica válida.
Como formatar chaves assimétricas
Chaves assimétricas que usam qualquer um dos algoritmos compatíveis podem ser importadas. Na prática, é difícil determinar retroativamente o algoritmo usado para criar uma chave assimétrica. Por esse motivo, recomendamos que você execute os seguintes comandos em cada chave assimétrica antes de tentar importá-la para o Cloud KMS.
Use o comando
file
para verificar o formato de uma chave.file /path/to/unwrapped-key
Se a saída for
PEM
, a chave estará no formato PEM. Se forASCII text
, provavelmente está no formato PEM. Em ambos os casos, execute o seguinte comando para convertê-lo no formato PCKS#8 DER: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
, provavelmente a chave estará no formato DER, mas talvez não esteja no formato PKCS #8. Execute o seguinte comando para garantir que a chave esteja no formato correto. O comando não terá efeito se a chave já estiver no formato correto. Nesse caso, use o comandodiff
para verificar se os arquivos de entrada e 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
Solução de problemas
Se você executar os comandos acima e achar que a chave está em um formato adequado, mas a importação ainda falhar, verifique se há erros no console do Google Cloud e consulte Solução de problemas de importações falhas.
A seguir
- Continue para Importar uma versão de chave
- Saiba mais sobre a importação de chaves