30 de mayo de 2015

LOGJAM. El rompe cerraduras digitales

Al pilar que sostiene la privacidad de nuestras comunicaciones le ha salido una nueva grieta que vuelve a amenazar la integridad y el secreto que percibimos como seguros. Un golpe a la criptografía bautizado Logjam que demuestra (otra vez) la fragilidad de un sistema vital para la confianza.
¿ En qué consiste Logjam ?
  • A mediados de los años setenta, unos científicos propusieron un método de intercambio de claves, aunque sería más apropiado decir "método de acuerdo de clave compartida", para solucionar el problema de intercambio inicial de mensajes entre dos partes a través de un canal inseguro. El método se conoce popularmente como Diffie-Hellman, nombre derivado de sus autores: Whitfield Diffie y Martin Hellman. Según este último habría que añadir a Ralph Merkle como coautor del protocolo.
  • Entonces llegó un grupo de investigadores de varias universidades junto con gente de la división de investigación y desarrollo de Microsoft. Pensaron que sería buena idea echarle un vistazo a esa tecnología setentera y ver como aguanta los avances en potencia de cálculo y algoritmos de 2015.
  • En primer lugar se las ingeniaron para lograr un nuevo ataque que degrada las conexiones TLS al uso de Diffie-Hellman en su versión "exportable" (DHE_EXPORT). Esta versión era la que estaba autorizada en los años 90 por la administración Clinton para productos que usaran tecnología de cifrado. Cómo no, esta versión usa primos de hasta 512 bits, una longitud que veremos es insuficiente. Con este ataque, que recuerda poderosamente a FREAK, se aseguraban que las conexiones seguras de una gran mayoría de clientes y servidores usarán Diffie-Hellman con 512 bits.
  • El siguiente paso era obtener una "base de datos" de cálculos ya efectuados de los primos más usados de 512 bits para esa versión descafeinada de Diffie-Hellman. Con los recursos de cálculo de una universidad, tardaron un par de semanas en obtener estas tablas precalculadas para los dos primos de 512 bits más usados.
  • Esos dos primos de 512 bits por cierto, son los usados por el servidor Apache y su módulo SSL (mod_ssl). Como ponen de ejemplo, el 8% del índice Alexa del top 1M HTTPS permite o soporta el uso de DHE_EXPORT y usan uno de estos dos primos de 512 bits en un 92% de casos.
  • Ahora ya solo les queda "escuchar" el resultado de g^a mod p, preguntar en su base de datos y calcular 'a'. Cuando obtienen la forma derivada g^ab mod p, donde 'ab' es la clave usada ya poseen el secreto para descifrar las comunicaciones.
  • La base de este protocolo se basa en la dificultad de cálculo del logaritmo discreto de la forma g^a mod p, es decir, averiguar 'a'. Su análogo sería el problema de factorización de números primos que forma la base del algoritmo de clave pública RSA.
  • Diffie-Hellman se asienta en la forma que hemos visto: g^a mod p. Donde g y p son valores conocidos por ambas partes, es decir, no son valores secretos y pueden ser conocidos por todos. p es un número primo relativamente grande y g es una base matemáticamente relacionada con p (no vamos a profundizar en detalles). Pues bien, aun conociendo g y p, existe una dificultad computacional en hallar el exponente 'a', que es el secreto que va a añadir cada una de las partes.
  • Algo que no pasó por alto al grupo era preguntarse hasta que punto era posible utilizar la misma técnica para valores de 768 y 1024 bits. Básicamente admiten que 768 bits puede alcanzarse de manera realista con una potencia de cálculo distribuido disponible en empresas y universidades y dejan los 1024 bits para organizaciones con muy buenos recursos y dedicados a estos menesteres de manera profesional, léase, la NSA por ejemplo.
  • No solo lo mencionan en la publicación que describe Logjam. El grupo de investigadores correlacionan directamente las filtraciones de Edward Snowden con la capacidad de la NSA para descifrar comunicaciones VPN usando este tipo de ataque. 
Recomendación
  • Lo recomendable como siempre el sistema debidamente actualizado.
Más información:
Fuente: Hispasec