¿Qué longitud de clave RSA debo usar para mis certificados SSL?


95

Estoy en el proceso de crear un CSR y me pregunto cuál es posiblemente la mejor longitud para mi clave RSA.

Por supuesto, 384 probablemente sea demasiado débil y 16384 probablemente sea demasiado lento.

¿Existe un consenso sobre la longitud de la clave que se debe utilizar, según la duración del certificado?

Editar: Como la mayoría de la gente, quiero que mi clave sea razonablemente fuerte. No me preocupa que la NSA pueda romper mi llave en 2019. Solo quiero saber cuál es la mejor práctica cuando uno planea hacer negocios normales (por ejemplo, un sitio de comercio electrónico)

Respuestas:


102

A partir de 2020, las claves RSA deberían ser de 2048 bits.

1024 bits

  • Los certificados RSA de 1024 bits son obsoletos y los navegadores no los aceptan.
  • Firefox dejó de aceptar certificados RSA de 1024 bits en 2014.
  • Las autoridades de certificación dejaron de entregar certificados RSA de 1024 bits en 2014 o antes. Ver GlobalSign o Comodo aviso de .
  • Las claves de 1024 bits quedaron obsoletas porque se podían descifrar con un centro de datos pequeño (miles de CPU o cientos de GPU, tal vez en unos pocos meses). Puede parecer mucho, pero estaba al alcance de cualquier gran organización o gobierno.

2048 bits

  • Los certificados RSA de 2048 bits son actualmente la norma aceptada en uso.
  • Línea de base predeterminada entregada por CA y utilizada por software.
  • Eventualmente también se romperá. No sé cuándo, pero podría llevar décadas.
  • Duplicar el tamaño requiere muchos órdenes de magnitud más de potencia de cálculo para romper. Vea la pregunta de cuánto más fuerte es RSA 2048 en comparación con 1024 .

4096 bits

  • Los certificados RSA de 4096 bits son el siguiente paso
  • Ampliamente disponible y compatible. Todas las CA principales pueden proporcionar RSA de 2048 y 4096 bits, incluido vamos a cifrar .
  • El costo computacional no es lineal con el tamaño de la clave. 4096 no es dos veces más lento que 2048, es quizás 10 veces más lento de procesar. No actualice ciegamente los certificados a 4096 bits sin considerar el impacto en el rendimiento .
  • La "web" permanece en gran parte en certificados de 2048 bits porque no puede soportar el costo de hardware de 4096 bits. Considere grandes actores como Google, CloudFlare, NetFlix con un tráfico inmenso y una huella de hardware.

3072 bits

  • 3072 bits no es una cosa. Salte directamente a 4096 bits.
  • Es completamente posible hacer criptografía de 3072 bits, es solo que ningún software realmente lo implementa, admite y publicita oficialmente.
  • Históricamente, hubo un intento alrededor de 2010-2015 de lanzar 3072 para casos de uso donde el costo computacional adicional de 4096 no es ideal. Se desvaneció, pero todavía hay algunos artículos antiguos que difunden los méritos de 3072 (más rápido).

Extra

  • RSA se describió públicamente por primera vez en 1977 y sigue siendo fuerte casi 50 años después. Solo tiene que aumentar la cantidad de bits para mantenerse al día con computadoras más rápidas.
  • Existe otro método para la criptografía de clave pública basado en curvas elípticas, ver ECDSA (1992).
  • Existe una gran desconexión entre la capacidad de un usuario y la de un atacante. Un servidor web o un cliente móvil tienen una CPU (de bajo consumo). Un atacante puede tener un centro de datos completo, como referencia, un centro de datos de AWS recién construido aloja alrededor de 60000 servidores.
  • Es increíble que un solo dispositivo móvil pueda calcular algunas matemáticas en unos pocos segundos ... que millones de computadoras no podrían soñar con adivinar en toda su vida.

13
Las diferencias ("256 bits funcionarán para siempre" por un lado, y "1024 bits ya son una mierda" por otro) se deben a las diferencias entre los algoritmos simétricos y asimétricos , y los tipos de claves que se utilizan en cada uno. Con cualquier "nivel equivalente de seguridad" dado, verá números brutos muy diferentes para las longitudes de clave en simétrico versus asimétrico.
Ti Strga

1
A partir de septiembre de 2015, parece que la industria se ha movido para no aceptar CSR de menos de 2048 bits. Vea las respuestas a continuación y el artículo de soporte de Comodo
angularsen

2
@anjdreas, Si bien es cierto que 2048 es el mínimo , tendré mucho cuidado al citar los puntos de los artículos de CA.
Pacerier

El enlace de RSA Labs es un 404 ahora, por cierto
jocull

1
nota: reescribió completamente la respuesta después de 11 años, con recomendaciones y referencias actualizadas. Los comentarios anteriores aquí comentaban revisiones anteriores.
user5994461

12

Como muchos clientes requieren el cumplimiento de los estándares criptográficos del NIST, utilizo la guía de la Publicación especial 800‑57 del NIST, Recomendación para la administración de claves, Parte 1, §5.6. La mayoría de nuestras aplicaciones son adecuadas para 112 "bits" de seguridad, por lo que corresponde a triple-DES (o un pequeño aumento de hasta 128 bits AES) para cifrados simétricos y una clave de 2048 bits para RSA. Consulte la Tabla 2 para obtener una equivalencia aproximada.

Válido o no, poder referirlos a una publicación del NIST ayuda a los clientes a sentirse mejor acerca de la seguridad (si se molestan en preguntar).


El artículo mencionado en esta respuesta se revisa a la Recomendación para la gestión de claves: Parte 1: General (Revisión 3) . La revisión actual es de julio de 2012
AaA

Veo que la página del NIST ha sido eliminada y reemplazada con un mensaje: "Debido a la falta de fondos del gobierno, csrc.nist.gov y todas las actividades en línea asociadas no estarán disponibles hasta nuevo aviso".
wu-lee

Hay esta página que compara algunas recomendaciones de longitud de clave keylength.com/en/compare
wu-lee


7

El próximo agosto, Microsoft implementará un parche en el servidor 2003/2008, Win7 ect ... que requerirá el uso de una clave RSA mínima de 1024 bits. Por lo tanto, también podría comenzar a convertirlo en su estándar "mínimo indispensable".


6

Para los certificados SSL utilizados en sitios web, es importante tener en cuenta este texto del sitio web Thawte.com (al 22-07-2014):

Los estándares de la industria establecidos por el Foro de Autoridad de Certificación / Navegador (CA / B) requieren que los certificados emitidos después del 1 de enero de 2014 DEBEN tener una longitud de clave de al menos 2048 bits.


Mouais, Facebook todavía tiene 256 claves de longitud => b3.ms/XmWn0e1BMYOk
Thomas Decaux

Para aclarar que Facebook no usa RSA, usa ECDHE_ECDSA, por lo tanto, la longitud de la clave es más pequeña.
Michael

5

Necesitaba crear varios certificados SSL nuevos y no estaba satisfecho con las respuestas anteriores porque parecían vagas o anticuadas, así que investigué un poco. En pocas palabras, la respuesta seleccionada es correcta, use "claves de 2048 bits ... más no tiene sentido" .

Aumentar la longitud de bits a 4096 agrega una carga potencialmente significativa a su servidor (dependiendo de su carga existente) al tiempo que ofrece básicamente una actualización de seguridad insignificante

Si se encuentra en una situación en la que necesita más de una clave de 2048 bits, no necesita una longitud de bits más larga, necesita un nuevo algoritmo


1

Creo que 4096 está bien para RSA

Ver este enlace

El final de la firma SHA-1 no es nada nuevo, pero Google ha acelerado el proceso de Chrome. En las próximas semanas, debe verificar sus certificados SSL.

Esto puede ser de ayuda


1
¿Podría publicar algunos enlaces en inglés también, por favor? Mi alemán es bastante débil.
Wai Ha Lee

De juro, las claves RSA solo pueden tener una longitud de 1024, 2048 o 3072 bits (según PKCS # 1 2.2 y FIPS 186-4).
aprelev

Flame mostró que los atacantes atacarán el hash en lugar del módulo más grande. Si utiliza SHA-1, también puede utilizar un módulo de 1024 bits, ya que el hash y el módulo proporcionan una seguridad equivalente. El módulo de 1024 bits permitirá operaciones más rápidas que el módulo más grande de 4096.
jww

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.