Importación de claves

En este tema se ofrece información conceptual sobre cómo importar claves a Cloud Key Management Service como nuevas versiones de claves. Para obtener instrucciones detalladas, consulta Importar una versión de clave.

Introducción

Puede que estés utilizando claves criptográficas que hayas creado on-premise o en un sistema de gestión de claves externo. Si migras una aplicación a Google Cloud o añades compatibilidad criptográfica a una aplicación Google Cloud , puedes importar las claves correspondientes a Cloud KMS.

  • Puedes importarlas como claves de Cloud HSM o como claves de software en Cloud KMS.
  • El material de la clave se envolverá para protegerlo durante el tránsito. Puedes usar la CLI de Google Cloud para envolver la clave automáticamente o envolverla manualmente.
  • Google Cloud solo tiene acceso a la clave de envoltorio en el ámbito de la tarea de importación. En el caso de las claves de Cloud HSM, la clave de encapsulado nunca reside fuera de Cloud HSM.

En este tema se ofrecen detalles sobre las limitaciones y los requisitos para importar claves, así como una descripción general de cómo funciona la importación de claves.

Limitaciones y requisitos

Consulta estas secciones para verificar que tus claves se pueden importar a Cloud KMS.

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.

Para verificar y volver a dar formato a tu clave para importarla, consulta Dar formato a las claves para importarlas.

Niveles de protección admitidos

Puedes importar una clave en una clave de Cloud KMS o en una clave de Cloud HSM. Para ello, define el nivel de protección de la clave como SOFTWARE o HSM. Las claves de Cloud HSM conllevan costes adicionales. No puedes importar claves de Cloud External Key Manager.

Tamaños de clave de envoltorio admitidos

Cuando creas una tarea de importación, puedes controlar el tamaño de la clave de envoltorio que se usa para proteger tu clave en tránsito a Google Cloud . Para ello, debes definir el método de importación de la tarea de importación. El tamaño predeterminado de la clave de envoltorio es 3072. Si tienes requisitos específicos, puedes configurar el trabajo de importación para que use una clave de 4096 bits.

Puedes consultar más información sobre los algoritmos que se usan para el encapsulado de claves o sobre cómo configurar una tarea de importación.

Cómo funciona la importación de claves

En esta sección se muestra lo que ocurre cuando importas una clave. Algunas partes del flujo son diferentes si usas el envoltorio automático o si envuelves la clave manualmente. Se recomienda usar la envoltura automática. Para obtener instrucciones específicas, consulta Importar una versión de una clave. Para obtener instrucciones específicas sobre cómo encapsular manualmente tu clave antes de importarla, consulta Encapsular una clave con OpenSSL en Linux.

En el siguiente diagrama se muestra el proceso de importación de claves mediante el encapsulado automático de claves. Las fases que se muestran en el diagrama se describen en esta sección.

Flujo de importación, descrito en esta sección

  1. Prepárate para importar claves.

    1. Primero, crea un conjunto de claves y una clave de destino que, con el tiempo, contendrá la tarea de importación y el material de clave importado. En este punto, la clave de destino no contiene ninguna versión de la clave.

    2. A continuación, crea una tarea de importación. El trabajo de importación define el conjunto de claves y la clave de destino del material de clave importado. La tarea de importación también define el método de importación, que es el algoritmo que se usa para crear la clave de encapsulado que protege el material de la clave durante las solicitudes de importación.

      • La clave pública se usa para encapsular la clave que se va a importar en el cliente.
      • La clave privada se almacena en Google Cloud y se utiliza para desencapsular la clave cuando llega al proyecto de Google Cloud .

      Esta separación impide que Google pueda desencapsular el material de la clave fuera del ámbito de la tarea de importación.

    3. La clave debe envolverse de forma criptográfica antes de transmitirla a Google. La mayoría de los usuarios pueden usar la CLI de gcloud para envolver, transmitir e importar la clave automáticamente, tal como se describe en el paso siguiente. Si tienes que envolver la clave manualmente para cumplir requisitos legales o normativos, puedes hacerlo en este momento. Para encapsular la clave manualmente en el sistema local, sigue estos pasos:

      1. Configura OpenSSL.
      2. Descarga la clave de envoltorio asociada a la tarea de importación una vez por cada tarea de importación.
      3. Una vez por clave, define varias variables de entorno y envuelve la clave.
  2. Durante un máximo de tres días, hasta que caduque la tarea de importación, puedes usarla para enviar solicitudes de importación e importar una o varias claves. Durante una solicitud de importación:

    1. Si la clave no se ha encapsulado manualmente, la CLI de Google Cloud descarga la clave pública del trabajo de importación desde Google Cloud al sistema local y, a continuación, usa la clave pública junto con una clave privada asociada al cliente para encapsular el material de la clave local.
    2. El material de la clave encapsulada se transmite al proyecto Google Cloud.
    3. El material de la clave se desencapsula con la clave privada de la tarea de importación y se inserta como una nueva versión de la clave de destino en el conjunto de claves de destino. Esta es una operación atómica.
    4. En el caso de las claves simétricas, debes definir la versión de clave importada como versión de clave principal.

Una vez que se haya completado correctamente la solicitud de importación, podrá usar la versión de la clave importada para proteger los datos en Google Cloud.

Siguientes pasos