Como formatar chaves para importação

O Cloud KMS permite importar chaves de criptografia fornecidas pelo usuário. Este tópico descreve como formatar corretamente suas chaves, para que possam ser importadas pelo Cloud KMS.

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.

Como formatar chaves simétricas

Para chaves com a finalidade ENCRYPT_DECRYPT, o material da chave a ser encapsulada precisa ter 32 bytes de dados binários. As chaves não podem ser codificadas no formato hexadecimal ou base64.

O comando file pode ajudar você a verificar se a chave é composta por dados binários:

file /path/to/unwrapped-symmetric-key

A saída do comando file deve ser data. Se for algo diferente (por exemplo, ASCII text), inspecione o conteúdo do arquivo para garantir que ele não esteja codificado em hexadecimal ou base64. Use um decodificador hexadecimal ou base64 para converter sua chave no formato binário.

O comando wc pode ajudar a verificar se a chave não encapsulada tem o comprimento correto:

wc -c /path/to/unwrapped-symmetric-key

A saída do comando wc deve ser 32.

Como formatar chaves assimétricas

Para chaves com a finalidade ASYMMETRIC_DECRYPT e ASYMMETRIC_SIGN, o material da chave precisa ser formatado em PKCS #8 e codificado em DER. Os comandos a seguir podem ajudar a determinar se o material da chave está formatado corretamente.

Para começar, use o comando file para testar o conteúdo da chave não encapsulada:

file /path/to/unwrapped-asymmetric-key

Em seguida, siga as instruções com base na saída do comando file:

  • Se a saída sugerir que a chave está codificada em PEM (por exemplo, se a saída do comando file for PEM RSA private key), consulte Como converter do PEM.

  • Se a saída do comando file for ASCII text, é provável que esteja codificada em PEM. Inspecione manualmente o conteúdo do arquivo para ter certeza. Se o arquivo começar com uma linha parecida com --BEGIN XXX PRIVATE KEY-- e for seguido por dados base64, consulte Como converter do PEM.

  • Se a saída do comando file é data, provavelmente ele está codificado em DER. Há vários formatos de codificação DER específicos de chaves privadas RSA e EC, além de variantes criptografadas para chaves formatadas como PKCS #8. A conversão do DER garantirá que a chave seja formatada corretamente e esteja segura para execução, mesmo que ela já esteja formatada corretamente.

Como converter do PEM

Use o OpenSSL para converter de vários formatos de chave privada PEM para o PKCS #8 codificado em DER exigido pelo Cloud KMS usando este comando:

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

Esse comando converterá as chaves PEM corretamente com os cabeçalhos EC PRIVATE KEY, RSA PRIVATE KEY e PRIVATE KEY.

Como converter do DER

Use o OpenSSL para converter de vários formatos de chave privada DER para o PKCS #8 exigido pelo Cloud KMS usando este comando:

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

Esse comando converterá corretamente as chaves codificadas em DER no formato RSA PKCS #1, no formato de chave privada da curva elíptica, bem como em chaves PKCS #8 criptografadas. Se a chave já estiver no formato adequado, ela simplesmente emitirá uma cópia da sua chave atual.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud KMS