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 verificable, 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 puede 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:
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.
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.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.
Equivalencia de fuerza de la clave
La solidez de seguridad de los tamaños de clave privada depende del algoritmo utilizado. En la siguiente tabla, se destaca qué tamaños de clave proporcionan una seguridad aproximadamente equivalente:
| Fuerza de la clave | Equivalente de RSA | Equivalente de ECDSA |
|---|---|---|
| 112 bits | RSA-2048 | - |
| 128 bits | RSA-3072 | P-256 |
| 156 bits | RSA-4096 | - |
| 192 bits | - | P-384 |
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 clave es su CryptoKeyPurpose configurado en Cloud KMS:
- Claves de firma de AC: Requieren una clave con el
CryptoKeyPurposedeASYMMETRIC_SIGN. Estas claves realizan operaciones de firma digital para emitir certificados. - Claves de encriptación de datos en reposo: Requieren una clave con el
CryptoKeyPurposedeENCRYPT_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 los configuras cuando creas la clave.
El Servicio de CA también admite la encriptación de datos en reposo para recursos como los grupos de AC, que configuras 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 enus-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.
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.
Cómo elegir claves de certificado de entidad final
Cuando solicitas un certificado de entidad final del Servicio de CA, proporcionas una clave pública en la solicitud de firma de certificado (CSR). Los certificados de entidad final autentican clientes y servidores, establecen sesiones de TLS o firman código. Debido a que los certificados de entidad final tienen diferentes restricciones de rendimiento y compatibilidad que las claves de la autoridad certificadora (AC), debes elegir un algoritmo de clave adecuado.
Ten en cuenta los siguientes factores cuando elijas un algoritmo de clave asimétrica para tus certificados de entidad final:
- Compatibilidad con clientes y servidores:
- Algoritmos RSA: Proporcionan la compatibilidad más amplia con los sistemas heredados. Usa RSA-2048 o RSA-3072 para certificados de entidad final estándar.
- Algoritmos ECDSA: Proporcionan una seguridad equivalente a RSA en tamaños de clave mucho más pequeños, lo que mejora el rendimiento de la conexión. Usa ECDSA P-256 o P-384 para la infraestructura moderna.
- Período de existencia del certificado y solidez de la clave:
- Certificados de corta duración: Los certificados válidos por días o meses pueden usar de forma segura RSA-2048 o ECDSA P-256.
- Certificados de larga duración: Para los certificados válidos por varios años, usa RSA-3072 o ECDSA P-384 para mantener la solidez criptográfica a lo largo del tiempo.
¿Qué sigue?
- Obtén información para crear una AC raíz.
- Obtén información para crear una AC subordinada.
- Obtén información sobre Cloud KMS: Propósitos y algoritmos de claves.
- Obtén información sobre Cloud KMS: Firmas digitales.
- Obtén información para configurar buckets de almacenamiento.