Saltar a contenido

LOGJAM Common Prime Vulnerability

Vulnerabilidad LOGJAM Common Prime

Descripción

Esta vulnerabilidad indica que el servidor utiliza números primos Diffie-Hellman ampliamente compartidos que permiten ataques precalculados eficientes, lo que permite a adversarios de estado-nación descifrar pasivamente grandes cantidades de tráfico en internet.

LOGJAM-common_primes ocurre cuando los servidores utilizan los mismos parámetros DH estándar (números primos) que se comparten en millones de instalaciones. Si bien el uso de números primos compartidos se consideraba seguro, el algoritmo de la criba del cuerpo de números (number field sieve) permite a los atacantes precalcular costosas tablas criptográficas una vez por número primo y, luego, descifrar rápidamente cualquier conexión que utilice ese primo.

Cómo funciona:

  1. El atacante identifica números primos DH ampliamente utilizados (por ej., parámetros predeterminados de Apache/OpenSSL).
  2. Realiza un preálculo costoso (semanas de tiempo de computación) para el número primo objetivo.
  3. Captura pasivamente intercambios de claves DH de cualquier servidor que utilice ese número primo.
  4. Utiliza las tablas precalculadas para descifrar conexiones individuales en minutos.
  5. Escala el ataque a través de millones de servidores que comparten el mismo número primo.

Requisitos:

  • El servidor utiliza números primos DH comunes/predeterminados (1024 bits o menos).
  • Recursos computacionales significativos para el preálculo inicial (~$100M para 1024 bits).
  • Capacidad de capturar tráfico de red de las conexiones objetivo.
  • No se necesita capacidad de man-in-the-middle; es un ataque puramente pasivo.

Escenario de ejemplo: Un proveedor de la nube importante utiliza parámetros DH de 1024 bits predeterminados en miles de servidores. Un actor de estado-nación dedica meses a precalcular tablas criptográficas para este número primo en específico. Una vez completado, puede monitorear pasivamente el tráfico de internet y descifrar cualquier conexión TLS a estos servidores en tiempo real, afectando a millones de usuarios sin ninguna interferencia activa o detección.

Romper el número primo de 1024 bits más común permitiría escuchar pasivamente el 18% de los principales dominios HTTPS, mientras que romper los dos números primos más comunes comprometería al 66% de los servidores VPN y al 26% de los servidores SSH a nivel mundial.

Recomendación

Para mitigar los ataques de número primo común LOGJAM:

Defensa principal - Generar parámetros DH únicos:

# Generar parámetros DH de 2048 bits únicos
openssl dhparam -out unique-dhparams.pem 2048

# Apache: usar parámetros personalizados
SSLOpenSSLConfCmd DHParameters /path/to/unique-dhparams.pem

# Nginx: especificar parámetros únicos  
ssl_dhparam /path/to/unique-dhparams.pem;

Evitar números primos predeterminados/comunes:

Nunca use estos números primos ampliamente comprometidos: - Número primo predeterminado de 512 bits de Apache (utilizado por millones de servidores). - Número primo predeterminado de 512 bits de OpenSSL (en SSLeay desde 1995). - Números primos estándar RFC 5114 (potencialmente influenciados por la NSA).

Migrar a ECDHE:

La mejor solución: eliminar la vulnerabilidad DH por completo:

# Apache: priorizar ECDHE sobre DHE
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:!DHE

# Nginx: usar solo cifrados ECDHE
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:!DHE;

Usar parámetros mínimos de 2048 bits:

Si se requiere DHE:

# Asegurar tamaño de clave mínimo
ssl_dhparam_size 2048;  # Nginx

Pruebas de números primos comunes:

# Extraer parámetros DH del servidor
openssl s_client -connect example.com:443 -cipher DHE 2>&1 | \
  openssl dhparam -inform PEM -text -noout

# Comparar con números primos vulnerables conocidos
# Comprobar si el número primo coincide con el valor predeterminado de Apache u otros valores comunes

Protecciones adicionales:

  • Use TLS 1.3, que elimina por completo el DH de campo finito.
  • Implemente el certificate pinning para detectar intentos de MITM.
  • Monitoree patrones de conexión inusuales que indiquen análisis de tráfico masivo.
  • Considere las implicaciones de Perfect Forward Secrecy al elegir suites de cifrado.

Información crítica: Incluso los parámetros DH fuertes de 1024 bits se vuelven vulnerables cuando se comparten en muchos servidores, ya que el costo de precalculo puede ser amortizado. La singularidad importa tanto como el tamaño.

Enlaces

Estándares

  • SOC2_CONTROLS:
    • CC_6_7
    • CC_7_1
  • CCPA:
    • CCPA_1798_150
  • GDPR:
    • ART_32
  • PCI_STANDARDS:
    • REQ_4_1
    • REQ_6_2
    • REQ_11_3