Configura una clave de firma de AC

Una autoridad certificadora (AC) en Certificate Authority Service (Servicio de CA) requiere una clave criptográfica para firmar los certificados que emite. Esta clave de firma establece la confianza para tu infraestructura de clave pública (PKI).

En este documento, se describen las estrategias de administración de claves que puedes elegir para tu clave de firma de AC y cómo configurarla. Puedes elegir una Google-owned and managed key para una administración simplificada con una configuración mínima o una clave administrada por el cliente para un control más directo sobre el ciclo de vida y las propiedades de la clave.

Usa una Google-owned and managed key

Cuando usas una Google-owned and managed key, eliges el algoritmo criptográfico y el tamaño de la clave. El Servicio de CA crea y administra el ciclo de vida de una clave dedicada de Cloud Key Management Service en un proyecto administrado por Google.

Revisa los algoritmos de clave de firma admitidos

Cloud KMS admite dos familias de algoritmos para operaciones de firma asimétrica adecuadas para las AC: RSA y ECDSA.

RSA

Los esquemas de firma basados en RSA ofrecen una amplia compatibilidad. Usa RSA si necesitas compatibilidad con sistemas heredados. Cloud KMS ofrece variantes RSA_SIGN_PSS y RSA_SIGN_PKCS1. Para obtener más información, consulta RFC 8017.

RSA-PSS es el esquema de firma más reciente y seguro, y se recomienda para la mayoría de las implementaciones nuevas. RSA_SIGN_PKCS1 se proporciona para la compatibilidad con sistemas anteriores que aún no admiten PSS.

ECDSA

Las claves de curva elíptica proporcionan una seguridad similar a RSA con tamaños de clave más pequeños. Cloud KMS admite EC_SIGN_P256 y EC_SIGN_P384. A menudo, se prefiere ECDSA por su rendimiento y eficiencia en los sistemas modernos.

Cadenas mixtas

El uso de diferentes familias de algoritmos dentro de la misma cadena de certificados puede causar problemas en algunos sistemas. Para mitigar posibles problemas, te recomendamos que tengas cadenas separadas para RSA y ECDSA.

Revisa los tamaños de clave admitidos

Aunque los tamaños de clave más grandes dentro de la misma familia proporcionan una mayor solidez de seguridad, estas claves también hacen que se almacenen y transmitan más datos a través de la red. Además, las operaciones de encriptación y firma a veces pueden tardar más con tamaños de clave más grandes, aunque la diferencia podría ser imperceptible.

Para las claves de mayor duración, como las asociadas con AC raíz o subordinadas de larga duración, puedes usar tamaños de clave con mayor solidez de seguridad que otras claves. Por ejemplo, puedes usar una clave RSA de 4096 bits para una AC raíz y claves RSA de 2048 bits para AC subordinadas con períodos de existencia más cortos.

Elige un algoritmo de firma para tu clave de AC

Ten en cuenta los siguientes pasos cuando elijas un algoritmo de firma para tu clave de AC:

  1. Elige una familia de algoritmos.

    Si creas una AC subordinada que se encadena a una AC raíz existente, usa la misma familia que la raíz.

    Si creas una AC raíz nueva, pero necesitas trabajar con sistemas heredados que no admiten ECDSA, usa uno de los algoritmos de firma RSA.

    De lo contrario, si ninguna de estas condiciones se aplica a ti, te recomendamos que uses uno de los algoritmos de firma de curva elíptica.

  2. Solo RSA: Elige un algoritmo de firma.

    Si esperas trabajar con bibliotecas o frameworks heredados que no admiten PSS, usa uno de los algoritmos RSA_SIGN_PKCS1.

    De lo contrario, usa uno de los algoritmos RSA_SIGN_PSS.

  3. Elige un tamaño de clave.

    Para una AC raíz nueva o una AC subordinada que se espera que tenga un período de existencia del orden de años, te recomendamos que uses el tamaño de clave más grande que esté disponible para esa familia de algoritmos.

    • Para RSA, el tamaño de clave más grande admitido es de 4096 bits.
    • Para ECDSA, el tamaño de clave más grande admitido es de 384 bits.

    Para las AC subordinadas con un período de existencia más corto, puedes usar tamaños de clave más pequeños, como 2048 bits para RSA o 256 bits para ECDSA.

Usa una clave administrada por el cliente

Puedes configurar tu AC para que use una clave de firma asimétrica nueva o existente administrada en tu propio proyecto de Cloud KMS. Esta opción proporciona control directo sobre el ciclo de vida, los permisos y las propiedades de la clave. Cloud KMS define el algoritmo y el tamaño de la clave. Cuando configuras y creas tu AC, seleccionas la versión de clave existente, en lugar de los parámetros del algoritmo.

Diferencia las claves de firma de una clave de encriptación

Usar una clave de Cloud Key Management Service como clave de firma de AC es diferente de usar una o más claves de Cloud KMS para la encriptación de datos en reposo. La distinción principal entre estos dos tipos de claves es su CryptoKeyPurpose configurado en Cloud KMS:

  • Claves de firma de AC: Requieren una clave con el CryptoKeyPurpose de ASYMMETRIC_SIGN. Estas claves realizan operaciones de firma digital para emitir certificados.
  • Claves de encriptación de datos en reposo: Requieren una clave con el CryptoKeyPurpose de ENCRYPT_DECRYPT. Estas claves encriptan y desencriptan datos. Las claves de encriptación de datos en reposo también se conocen como claves de encriptación administradas por el cliente (CMEK).

No puedes usar una sola clave de Cloud KMS para la firma y la encriptación de datos en reposo. Estos propósitos son mutuamente excluyentes y se configuran en la creación de claves.

El Servicio de CA también admite la encriptación de datos en reposo para recursos como los grupos de AC, que se configuran por separado con claves con el propósito ENCRYPT_DECRYPT. Para obtener más información, consulta Crea un grupo de AC.

Antes de comenzar

Asegúrate de que se cumplan los siguientes requisitos:

  • La clave debe estar en tu proyecto de Cloud KMS. Consulta Crea claves.
  • El propósito de la clave debe ser ASYMMETRIC_SIGN.

  • El algoritmo de la clave debe ser un algoritmo de firma asimétrica admitido.

  • La clave debe estar en la misma ubicación que tu grupo de AC. Por ejemplo, si tu grupo de AC está en us-central1, la clave de Cloud KMS también debe estar en us-central1. Para obtener información sobre las ubicaciones de Cloud KMS, consulta Ubicaciones de Cloud KMS.

  • La versión de clave que planeas usar debe estar habilitada.

Roles obligatorios

Para asegurarte de que la cuenta de servicio tenga los permisos necesarios para usar la clave administrada por el cliente para las operaciones de firma, pídele a tu administrador que le otorgue a la cuenta de servicio el rol de IAM de Firmante/Verificador de CryptoKey de Cloud Key Management Service (roles/cloudkms.signerVerifier) en la clave de Cloud Key Management Service.

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Es posible que tu administrador también pueda otorgar estos permisos a la cuenta de servicio con roles personalizados o con otros roles predefinidos.

Obtén el ID de recurso de la versión de clave

Cuando creas la AC, debes proporcionar el ID de recurso completo de la CryptoKeyVersion específica de Cloud KMS. Copia esta cadena para usarla en el proceso de creación de la AC.

El formato de ID de recurso requerido es el siguiente:

projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KMS_KEY/cryptoKeyVersions/VERSION

Reemplaza lo siguiente:

  • KMS_PROJECT_ID: Es el ID del proyecto que contiene tu clave de KMS.
  • LOCATION: Es la ubicación de la clave de KMS. Debe ser la misma ubicación que tu grupo de AC.
  • KEY_RING: Es el nombre del llavero de claves de KMS.
  • KMS_KEY: Es el nombre de la clave de KMS.
  • VERSION: Es la versión de la clave de KMS.

Para obtener más información, consulta Obtén un ID de recurso de Cloud KMS. Usa este ID cuando crees una autoridad certificadora.

¿Qué sigue?