Dar formato a las claves para importarlas

En este tema se describe cómo dar formato a las claves para que Cloud KMS pueda importarlas como nuevas versiones de claves.

El formato correcto del material de la clave varía en función de si se importa en una clave simétrica o asimétrica. Para obtener más información sobre la diferencia entre las claves simétricas y asimétricas, consulta Usos y algoritmos de las claves.

Formatos de clave admitidos

  • Claves simétricas para el cifrado: Las claves simétricas importadas deben tener 16 bytes (solo para el cifrado simétrico sin formato) o 32 bytes de datos binarios, y no deben estar codificadas. Si tu clave está codificada en hexadecimal o en Base64, debes descodificarla antes de intentar importarla.
  • Claves simétricas para la firma (claves MAC): las claves de firma HMAC importadas deben tener una longitud igual a la longitud de salida de la función de hash criptográfica que se esté usando (por ejemplo, las claves HMAC-SHA256 deben tener una longitud de 32 bytes) y no deben estar codificadas. Si tu clave está codificada en hexadecimal o en Base64, debes descodificarla antes de intentar importarla.
  • Claves asimétricas para cifrado o firma: las claves asimétricas importadas deben tener el formato PKCS #8 y estar codificadas en DER. El formato PCKS #8 se define en RFC 5208. La codificación DER se define en la Unión Internacional de Telecomunicaciones X.680. Las claves asimétricas deben usar una de las combinaciones de longitud y algoritmo compatibles con Cloud KMS.

Algunos aspectos de una clave, como su longitud, no se pueden cambiar una vez que se ha creado. En estos casos, la clave no se puede importar a Cloud KMS.

Comprobar una clave simétrica

Usa el comando wc para comprobar la longitud de una clave simétrica.

wc -c /path/to/unwrapped-key
  • No puedes importar una clave de cifrado simétrica con una longitud distinta de 32.

  • Las claves de firma simétricas (claves MAC) deben tener una longitud igual a la longitud de salida de la función hash criptográfica que se esté usando (por ejemplo, las claves HMAC-SHA256 deben tener una longitud de 32 bytes).

Usa el comando file para comprobar el formato de una clave.

file /path/to/unwrapped-key
  • Si el resultado es data, la clave tiene el formato correcto para importarse.

  • Si la salida es ASCII text, usa el comando cat para mostrar el contenido del archivo.

    • Si se trata de una cadena de letras y números que termina con el signo =, es posible que esté codificada en base64. Usa el comando base64 (Base64.exe en Windows) para descodificarlo. A continuación, se muestra un ejemplo de una clave codificada en base64:

      THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
      
    • Si contiene una o varias líneas de números hexadecimales, es posible que esté codificado en hexadecimal. Usa el comando xxd (o el comando de PowerShell Format-Hex en Windows) para descodificarlo. A continuación, se muestra un ejemplo de una clave codificada en 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
      
    • Si contiene otro texto, es posible que no sea una clave simétrica válida.

Dar formato a las claves asimétricas

Se pueden importar claves asimétricas con cualquiera de los algoritmos admitidos. En la práctica, es difícil determinar retroactivamente el algoritmo utilizado para crear una clave asimétrica. Por este motivo, te recomendamos que ejecutes los siguientes comandos en cada clave asimétrica antes de intentar importarla en Cloud KMS.

  1. Usa el comando file para comprobar el formato de una clave.

    file /path/to/unwrapped-key
    
    • Si el resultado es PEM, la clave está en formato PEM. Si es ASCII text, probablemente esté en formato PEM. En cualquier caso, ejecuta el siguiente comando para convertirlo al formato DER de PCKS#8:

      openssl pkcs8 -topk8 -nocrypt -inform PEM -outform DER \
          -in /path/to/asymmetric-key-pem \
          -out /path/to/formatted-key
      
    • Si el resultado es data, es probable que la clave esté en formato DER, pero puede que no esté en formato PKCS #8. Ejecuta el siguiente comando para asegurarte de que la clave tiene el formato correcto. El comando no tiene ningún efecto si la clave ya tiene el formato correcto. En ese caso, puedes usar el comando diff para verificar que el archivo de entrada y el de salida son idénticos.

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

Solución de problemas

Si ejecutas los comandos anteriores y crees que la clave tiene el formato adecuado, pero la importación sigue fallando, comprueba si hay errores en la Google Cloud consola y, a continuación, consulta la sección Solucionar problemas de importaciones fallidas.

Siguientes pasos