Configura una clave de firma de la CA
Una autoridad certificadora (CA) en Certificate Authority Service (CA Service) 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 la clave de firma de la 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 bien puedes elegir una clave administrada por el cliente para tener un control más directo sobre el ciclo de vida y las propiedades de la clave.
Usa un Google-owned and managed key
Cuando usas un objeto 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 claves de firma compatibles
Cloud KMS admite dos familias de algoritmos para operaciones de firma asimétrica adecuadas para las CA: RSA y ECDSA.
RSA
Los esquemas de firma basados en RSA ofrecen una amplia compatibilidad. Usa RSA si necesitas admitir sistemas heredados. Cloud KMS ofrece variantes de 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 nuevo y con mayor seguridad 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 la de 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
Usar 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
Si bien los tamaños de clave más grandes dentro de la misma familia proporcionan una mayor 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.
En el caso de las claves de mayor duración, como las asociadas a las CA raíz o subordinadas de larga duración, puedes usar tamaños de clave con mayor seguridad que otras claves. Por ejemplo, puedes usar una clave RSA de 4096 bits para una CA raíz y claves RSA de 2048 bits para CA subordinadas con períodos de vigencia más cortos.
Elige un algoritmo de firma para la clave de la CA
Ten en cuenta los siguientes pasos cuando elijas un algoritmo de firma para la clave de tu CA:
Elige una familia de algoritmos.
Si creas una CA subordinada que se encadena a una CA raíz existente, usa la misma familia que la raíz.
Si creas una nueva CA raíz, 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 tu caso, 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 de
RSA_SIGN_PKCS1.De lo contrario, usa uno de los algoritmos
RSA_SIGN_PSS.Elige un tamaño de clave.
Para una nueva CA raíz o una CA subordinada que se espera que tenga una vida útil del orden de años, te recomendamos que uses el tamaño de clave más grande disponible para esa familia de algoritmos.
- En el caso de RSA, el tamaño de clave más grande admitido es de 4,096 bits.
- En el caso de ECDSA, el tamaño de clave más grande admitido es de 384 bits.
Para las CA subordinadas con una vida útil más corta, 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 CA, seleccionas la versión de clave existente, en lugar de los parámetros del algoritmo.
Diferencia entre las claves de firma y una clave de encriptación
Usar una clave de Cloud Key Management Service como clave de firma de la AC es diferente de usar una o más claves de Cloud KMS para la encriptación de datos en reposo. La principal diferencia entre estos dos tipos de claves es su CryptoKeyPurpose configurado en Cloud KMS:
- Claves de firma de la CA: 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 fines son mutuamente excluyentes y se configuran en el momento de la creación de la clave.
El servicio de CA también admite la encriptación de datos en reposo para recursos como los grupos de CA, 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 Cómo crear claves.
El propósito de la clave debe ser
ASYMMETRIC_SIGN.El algoritmo de la clave debe ser un algoritmo de firma asimétrica compatible.
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 en las operaciones de firma, pídele a tu administrador que le otorgue el rol de IAM de Firmante/Verificador de CryptoKey de Cloud Key Management Service (roles/cloudkms.signerVerifier) a la cuenta de servicio en la clave de Cloud Key Management Service.
Es posible que tu administrador también pueda otorgar a la cuenta de servicio los permisos necesarios a través de roles personalizados o de otros roles predefinidos.
Obtén el ID de recurso de la versión de clave
Cuando creas la CA, debes proporcionar el ID de recurso completo del CryptoKeyVersion específico de Cloud KMS. Copia esta cadena para usarla en el proceso de creación de la CA.
El formato del 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 CA.
- 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 de certificación.
¿Qué sigue?
- Obtén más información para crear una CA raíz.
- Obtén más información para crear una CA subordinada.
- Obtén información sobre Cloud KMS: Propósitos de clave y algoritmos.
- Obtén información sobre Cloud KMS: Firmas digitales.
- Obtén más información para configurar buckets de almacenamiento.