3 puntos por GN⁺ 2025-01-09 | 1 comentarios | Compartir por WhatsApp
  • En una investigación se identificaron más de 1,700 claves DKIM públicas con menos de 1,024 bits. Las claves RSA con menos de 1,024 bits son vulnerables y su uso quedó discontinuado desde el RFC 8301 de 2018.
  • Objetivo del experimento: extraer la clave privada de una clave pública RSA de 512 bits y verificar si pasa la validación DKIM en servicios de correo principales (Gmail, Outlook, Yahoo Mail, etc.)
    • Se probó si era posible firmar como si el correo viniera del remitente original.

Decodificación de clave pública RSA y generación de clave

  • La clave pública de 512 bits del dominio Redfin.com está codificada en formato ASN.1 DER y se vuelve a codifica en Base64.
  • Proceso de decodificación de clave
    • Decodificar con Python la clave pública codificada en Base64 incluida en la etiqueta p
    • Extraer n (módulo) y e (exponente público)
  • Factorización del módulo RSA
    • Uso de CADO-NFS: algoritmo basado en Number Field Sieve
    • Especificaciones del servidor en la nube: 8 vCPU, 32GB RAM (uso de Hetzner)
    • Agregar 32GB de espacio swap y luego ejecutar CADO-NFS
    • Resultado: después de unas 86 horas, se logró descomponer n en dos factores, p y q
  • Generación de clave privada RSA
    • Generar la clave privada RSA a partir de p y q
    • Usar Python y la librería PyCryptodome para exportar la clave privada en formato PEM

Prueba de firma DKIM

  • Integrar la clave privada con OpenDKIM y enviar correos
  • Verificar resultados de validación DKIM en varios servicios de hosting de correo
  • Resultado de la prueba:
    • DKIM aprobado: Yahoo Mail, Mailfence, Tuta
    • DKIM fallido: Gmail, Outlook, Zoho, Fastmail, entre otros
  • Yahoo, Mailfence y Tuta aprobaron sin notar la debilidad de la clave de 512 bits

Conclusión final

  • Vulnerabilidad de la clave RSA de 512 bits
    • Lo que hace 30 años era posible con una súpercomputadora ahora puede hacerse en pocas horas en un servidor en la nube por menos de $8
    • Al firmar con DKIM, nunca se deben usar claves de menos de 1,024 bits
  • Recomendaciones
    • Los proveedores de correo deberían rechazar automáticamente firmas DKIM que usen claves RSA de menos de 1,024 bits
    • Los propietarios de dominios deben revisar sus registros DKIM y actualizarlos a 1,024 bits o más
    • Es posible verificar el tamaño de una clave DKIM por la longitud de la cadena Base64: una clave de 1,024 bits tiene al menos 216 caracteres

1 comentarios

 
GN⁺ 2025-01-09
Comentarios de Hacker News
  • Hace 14 años escribí una entrada sobre algo que también funcionaba con claves de 512 bits. Me preguntaba si, al buscar números primos o bitcoins, existen bibliotecas de "atajo" para reducir el espacio de búsqueda y planteaba si esas bibliotecas afectan el diseño de un sistema criptográfico.
  • Se sugirió un experimento curioso: configurar una clave DKIM de 4096 bits. La mayoría de los validadores DKIM/SPF en línea no muestran problemas al consultar DNS, pero al enviar un correo de prueba aparece como fallo. Se aprendió que, aunque técnicamente sea aceptable usar claves de 2048 bits o más, no siempre hace falta procesarlas.
  • Se planteó una pregunta sobre por qué no se aumentan masivamente los tamaños de clave en criptografía. Aunque la potencia de cómputo crece rápidamente y el debate sobre computación cuántica sigue activo, no está claro por qué no se usan claves más grandes en el lado defensivo.
  • Se desacopló una clave DKIM RSA de 512 bits en una computadora de escritorio en 28 horas usando CADO-NFS. Mencionó que las claves de 1024 bits aún son difíciles para un contexto de aficionado, aunque probablemente posibles en la academia.
  • El título cambió un poco. El original era "How We Cracked a 512-Bit DKIM Key for Less Than $8 in the Cloud".
  • Algunos proveedores DNS limitan la configuración a claves de 1024 bits; por ejemplo, wordpress.com lo hace.
  • Hover no admite registros TXT de más de 255 caracteres, así que hubo que dejar de usar su gestión de DNS. La solución fue usar Digital Ocean. Ojalá el cifrado de curva elíptica se convierta en el estándar.
  • La mayoría de los proveedores rechazó la firma DKIM al considerar inseguras las claves de 512 bits, pero Yahoo Mail, Mailfence y Tuta informaron dkim=pass. Me pregunto si Google falló por la firma DKIM o por un fallo de SPF.
  • Se elogió el enfoque práctico. No está claro cuán antiguo es este artículo, pero parece que se redactó hoy, basado en una publicación anterior del mismo autor.