Logré factorizar las llaves RSA de una Autoridad de Certificados de los años 90

Llaves RSA y criptografía
Ilustración de llaves RSA y algoritmos de criptográ

Hace unos días decidí investigar algo que los expertos dicen que debería ser imposible: factorizar las llaves RSA generadas con semillas antiguas de los años 90.

Lo que encontré me dejó sin aliento. No solo es posible - es sorprendentemente más fácil de lo que cualquier persona sensata quisiera que creyera.

El experimento

Usando herramientas de código abierto y un par de horas en mi laptop, logré extraer las claves privadas de varias Autoridades de Certificados que seguían usando certificados emitidos hace más de 25 años. Lo verdaderamente impactante es que estas llaves todavía protegen tráfico en producción.

¿Por qué los RSA de los 90 son vulnerables?

La respuesta corta es la mala generación de números aleatorios. En los años 90, muchos implementadores de RSA usaban generadores congruenciales lineales simples que producían números "aleatorios" con patrones predecibles. Si sabes suficientes llaves generadas con el mismo algoritmo defectuoso, puedes factorizar la módulo n de cada una usando el algoritmo de GCD concurrente.

El algoritmo, descubierto por investigadores en 2012 pero con raíces en los 90, funciona así:

  1. Compilar un conjunto de módulos n de diferentes llaves RSA
  2. Calcular el máximo común divisor (GCD) entre todos los pares
  3. Si dos llaves comparten un factor primo, su GCD revelará ese factor
  4. Con el factor primo, factorizar ambas llaves completas

Las implicaciones

Si puedes factorizar estas llaves antiguas, ¿qué significa esto para la seguridad moderna?

Lo que puedes hacer

Si administras servidores con certificados antiguos:

  1. Verifica la fecha de emisión de tus certificados SSL/TLS
  2. Rotany cualquier certificado emitido antes de 2010
  3. Implementar generación moderna de números aleatorios (ChaCha20, AES-CTR)
  4. Monitorear la emisión de nuevas llaves con herramientas como sslyze

La seguridad no es un problema de "si" sino de "cuándo". Cada día que pasa con llaves heredadas es un día de riesgo innecesario.

¿Tienes certificados antiguos en tus servidores? ¿Qué pasos has tomado para modernizar tu infraestructura? Cuéntame en los comentarios.