En este tema, se describe cómo formatear tus claves para que Cloud KMS pueda importarlas como versiones de claves nuevas.
El formato correcto para tu material de clave varía según si el material de clave se importa a una clave simétrica o asimétrica. Para obtener más información sobre la diferencia entre las claves asimétricas y las asimétricas, consulta Algoritmos y propósitos de clave.
Formatos de claves compatibles
Las claves simétricas para la encriptación deben ser de 16 bytes (solo para la encriptación simétrica sin procesar) o de 32 bytes de datos binarios, y no deben estar codificadas. Si tu clave está codificada en hexadecimal o en base64, debes decodificarla antes de intentar importarla.
Las claves simétricas para firmar (claves MAC) deben tener una longitud igual a la longitud de salida de la función de hash criptográfica que se usa (por ejemplo, las claves HMAC-SHA256 deben tener una longitud de 32 bytes) y no se deben codificar. Si tu clave está codificada en hexadecimal o en base64, debes decodificarla antes de intentar importarla.
Las claves asimétricas para encriptación o firma deben estar en formato PKCS #8 y deben estar codificadas en DER. El formato PCKS #8 se define en RFC 5208. La codificación DER se define en 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 después de la creación de la clave. En estos casos, la clave no se puede importar a Cloud KMS.
Verifica una clave simétrica
Usa el comando wc
para verificar la longitud de una clave simétrica.
wc -c /path/to/unwrapped-key
No puedes importar una clave de encriptación 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 de hash criptográfica que se usa (por ejemplo, las claves HMAC-SHA256 deben tener una longitud de 32 bytes).
Usa el comando file
para verificar el formato de una clave.
file /path/to/unwrapped-key
Si el resultado es
data
, la clave está en el formato correcto para ser importada.Si el resultado es
ASCII text
, usa el comandocat
para mostrar el contenido del archivo.Si es una cadena de letras y números que termina en un signo
=
, es posible que esté codificada en base64. Usa el comandobase64
(Base64.exe
en Windows) para decodificarlo. El siguiente es un ejemplo de una clave codificada en Base64:THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
Si contiene una o más líneas de números hexadecimales, es posible que esté codificado en hexadecimal. Usa el comando
xxd
(o el comandoFormat-Hex
de PowerShell en Windows) para decodificarlo. El siguiente es un ejemplo de una clave con codificación 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 algún otro texto, es posible que no sea una clave simétrica válida.
Cómo formatear claves asimétricas
Se pueden importar claves asimétricas que usen cualquiera de los algoritmos compatibles. En la práctica, es difícil determinar de forma retroactiva el algoritmo que se usó para crear una clave asimétrica. Por esa razón, te recomendamos que ejecutes los siguientes comandos en cada clave asimétrica antes de intentar importarla a Cloud KMS.
Usa el comando
file
para verificar el formato de una clave.file /path/to/unwrapped-key
Si el resultado es
PEM
, la clave está en formato PEM. Si esASCII text
, es probable que esté en formato PEM. En cualquier caso, ejecuta el siguiente comando para convertirlo al formato PCKS#8 DER: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 es posible que no esté en formato PKCS #8. Ejecuta el siguiente comando para asegurarte de que la clave esté en el formato correcto. El comando no tiene efecto si la clave ya tiene el formato correcto. En ese caso, puedes usar el comandodiff
para verificar que el archivo de entrada y salida sean idénticos.openssl pkcs8 -topk8 -nocrypt -inform DER -outform DER \ -in /path/to/asymmetric-key-der \ -out /path/to/formatted-key
Soluciona problemas
Si ejecutas los comandos anteriores y crees que la clave tiene un formato adecuado, pero la importación aún falla, comprueba si hay errores en la consola de Google Cloud y, luego, consulta Solución de problemas de importaciones con errores.
¿Qué sigue?
- Continúa con Importa una versión de clave.
- Obtén información sobre la importación de claves.