Elegir un algoritmo de claves

Antes de crear una autoridad de certificación (CA), debes elegir un algoritmo de firma para la clave de Cloud Key Management Service de la CA. Certificate Authority Service permite crear ACs con claves de Cloud KMS preexistentes mediante cualquiera de los algoritmos de firma asimétricos admitidos o eligiendo un subconjunto más pequeño de esos algoritmos y haciendo que el servicio cree y gestione el ciclo de vida de la clave.

En esta página se mencionan los factores que debes tener en cuenta a la hora de decidir el algoritmo de firma de una CA.

Familias de algoritmos

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

RSA

Los esquemas de firma basados en RSA son compatibles con muchas plataformas debido a su antigüedad. Si necesitas admitir clientes que usen sistemas operativos, protocolos, firmware u otras pilas de tecnología antiguos, RSA es una opción habitual.

Cloud KMS ofrece dos variantes principales de algoritmos de firma RSA: RSA_SIGN_PSS y RSA_SIGN_PKCS1. Las variantes PSS usan el esquema de firma RSASSA-PSS descrito en la sección 8.1 del RFC 8017, que es más reciente y se considera más seguro. Las PKCS1variantes usan el esquema de firma PKCS#1 v1.5 anterior, que se describe en la sección 8.2 del RFC 8017.

Se recomienda que las jerarquías más recientes usen las variantes PSS si todas las aplicaciones que puedan usar esos certificados lo admiten. De lo contrario, las variantes PKCS1 son una opción más adecuada debido a su mayor compatibilidad.

ECDSA

Aunque las claves asimétricas basadas en curvas elípticas son relativamente más recientes que sus equivalentes RSA, se siguen admitiendo en muchas de las pilas de tecnología más comunes lanzadas en la última década. Son especialmente populares porque pueden alcanzar niveles de seguridad similares a los de las claves RSA con tamaños de clave más pequeños. Las aplicaciones que usan claves ECDSA almacenan y transmiten menos datos a través de la red.

Cloud KMS ofrece dos variantes principales de algoritmos de firma ECDSA: EC_SIGN_P256 y EC_SIGN_P384.

Cadenas mixtas

Una cadena mixta (o híbrida) es una cadena de certificados en la que uno o varios certificados usan familias de algoritmos de clave diferentes, como RSA en algunos certificados y ECDSA en otros. Algunas pilas tecnológicas tienen problemas para analizar cadenas de certificados mixtas y pueden mostrar errores inesperados en esos casos. Además, algunos sectores pueden tener requisitos de cumplimiento que exijan que una cadena de CAs use una sola familia de algoritmos.

Es habitual configurar una cadena de CA independiente para las claves ECDSA que para las claves RSA.

Tamaño de la clave

Aunque los tamaños de clave más grandes (dentro de la misma familia) proporcionan una mayor seguridad, también implican que se almacenen y transmitan más datos a través de la red. Además, las operaciones de cifrado y firma a veces pueden tardar más con tamaños de clave más grandes, aunque normalmente es demasiado poco como para notarlo.

Una práctica habitual es que las claves de mayor duración, como las asociadas a CAs raíz o subordinadas de larga duración, usen tamaños de clave con una seguridad mayor que otras claves.

Guía para tomar decisiones

Puede usar esta sencilla guía para elegir un algoritmo de firma adecuado para su clave de CA:

  1. Elegir una familia de algoritmos

    Si vas a crear una CA subordinada que se encadene a una CA raíz, usa la misma familia que la raíz.

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

    De lo contrario, usa uno de los algoritmos de firma de curva elíptica.

  2. (Solo RSA) Elige un algoritmo de firma

    Si tienes previsto trabajar con bibliotecas o frameworks antiguos que no admitan 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.

    En el caso de una CA raíz o una CA subordinada que vaya a tener una validez de varios 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áximo admitido es de 4096 bits.
    • En el caso de ECDSA, el tamaño de clave más grande admitido es de 384 bits.

    En el caso de las ACs subordinadas con un tiempo de validez más corto, es suficiente con usar tamaños de clave más pequeños, como 2048 bits para RSA o 256 bits para ECDSA.

Siguientes pasos