El espionaje masivo en Internet se hizo público hace ya una década. Las conexiones de la gran mayoría de usuarios son descifradas y analizadas con el único propósito (o al menos eso dicen) de evitar el terrorismo y mantener a la población a salvo.

Internet es una gran fuente de información, cuya característica principal es la libertad. Cualquier usuario que tenga acceso a la red de redes puede expresar su opinión o buscar lo que se le antoje (dentro de unos margenes legales, claro está). Cuando esta libertad se ve corrompida por algún cracker de pacotilla, los medios saltan y se disparan las alertas globales pero, ¿Qué pasa cuando el que se interpone en las comunicaciones mundiales es la mayor agencia de espionaje del mundo?

Actualmente, la NSA ya ha admitido que se encuentra destripando la gran mayoría de datos que circulan por Internet. Por si esto fuera poco, numerosas filtraciones de ex-empleados de la NSA (el más influyente sin lugar a dudas es Edward Snowden),han revelado increíbles proyectos que esta agencia de espionaje masivo tiene entre manos.

La criptografía nos protege…¿Verdad?

Las técnicas criptográficas están a la orden del día. Sin ellas, la seguridad en Internet no existiría y cualquiera podría cotillear y robar nuestra información.

Hasta hace no muchos años, los ciberespías se basaban en aprovechar errores de programación de las web y de los servidores para secuestrar las sesiones del resto de usuarios. Cuando estos agujeros de seguridad se van parcheando, la única herramienta que les queda a los cibercriminales es el desarrollo de métodos para destripar los algoritmos de cifrado, algo muy complicado y muy costoso en tiempo y en dinero.

El problema viene cuando se combinan los mejores expertos en criptoanálisis con los ordenadores más avanzados del planeta y unas cuantas vulnerabilidades nuevas. Es decir, lo que comunmente denominamos NSA (National Security Agency).

La NSA y el algoritmo RSA

RSA es un sistema criptográfico de clave pública desarrollado en 1977. Hasta hace poco era el algoritmo de clave asimétrica más utilizado en las conexiones de todo el mundo debido al gran problema que se plantea si alguien intenta descifrar un mensaje encriptado con RSA.

La seguridad de este algoritmo radica en el problema de la factorización de números enteros. Cuando un usuario quiere establecer una conexión, emisor y receptor obtienen dos números primos elegidos al azar, cuyos tamaños se encuentran en el orden de 10 elevado a 200 (es decir, increiblemente largos). Ambos numeros primos se multiplican y de ahí nace la clave que servirá para encriptar la comunicación.

Esquema RSA.
Esquema RSA.

Cuando un usuario no deseado intercepta la sesión entre emisor y receptor, le es imposible saber que dos números primos se han multiplicado y han dado como resultado la clave anteriormente citada. Para que os hagáis una idea, si un usuario corriente utiliza el servicio de computación EC2 de Amazon le costaría unos 100 dólares y cuatro horas factorizar en dos números primos una clave RSA de 512 bits. Esto implica que es imposible (computacionalmente hablando) que un usuario obtenga la factorización de una clave RSA desde su propia casa con su ordenador personal.

El problema viene cuando no es un usuario común el que se pone a factorizar tu clave RSA, si no cuando la NSA hace uso de su gran capacidad computacional para espiar tu sesión. Son muchas las técnicas que emplean para que los ataques por fuerza bruta resulten más efectivos, pero sin lugar a dudas uno de los más sonados es el famoso ataque FREAK (Factoring attack on RSA-Export Keys)

Este ataque no es más que un simple MITM con el que la NSA logra engañar al servidor destino de la conexión. Cuando la NSA intercepta una comunicación (un juego de crios para ellos), pide al servidor al que quiere acceder el usuario una clave de 512 bits en vez de una clave estándar de 1024 bits. De esta forma, la comunicación se establece bajo una capa de cifrado de bajo nivel que la NSA destripará en poco menos de una hora.

Solamente hace falta un ataque FREAK

Lo bueno de este ataque es que, una vez obtenida una clave RSA, ya has obtenido todas las demás. No es porque las claves RSA que genera un servidor tengan patrones identificables (ya hemos dicho que surgen de la multiplicacion de dos numeros primos aleatorios), si no porque un servidor utiliza una única clave RSA para todos sus clientes. Esto implica que con un solo ataque podrán espiar a todos aquellos que se conecten a ese servidor.

La solución sería utilizar una única clave para cada conexión. De esta forma, si interceptan la comunicación de un usuario el resto no tendrá que temer por sus datos. Pero hay un problema que a los propietarios de servidores no les gusta un pelo: el gasto energético y computacional. ¿Para qué van a gastar más recursos si con menos los clientes les pagan lo mismo?

Adiós RSA. Hola DH

Aunque RSA se sigue utilizando y (si se utiliza convenientemente) sigue siendo seguro, ya se ha pasado de moda. Ahora lo que se lleva es el intercambio de claves Deffie-Hellman (DH). Al igual que el anterior, la seguridad de este algoritmo se basa en operaciones matemáticas que son casi imposibles de revertir (hasta que lleguen los ordenadores cuánticos). No vamos a entrar en detalles con los fundamentos matemáticos de DH, pero se basan en la utilización de logaritmos discretos.

Siempre se las ingenian para tirar abajo un algoritmo de cifrado, ya sea por diversión o por espionaje puro y duro. En este caso, DH también tiene  un punto débil conocido como ataque LOGJAM, que hace a DH lo que FREAK hacía a RSA.

 

Esquema intercambio de claves DH.
Esquema intercambio de claves DH.

Este ataque se basa principalmente en las viejas versiones de cifrado que aún implementan muchos servidores (512 bits de clave). LOGJAM se realiza en dos pasos, pudiendo además realizar el primero de ellos antes de comenzar el ataque. La primera fase (fase de precomputación) son puros cálculos matemáticos que requieren un gran coste computacional. “Solamente” hay que hallar el número primo utilizado en el sistema (no tiene nada que ver con los números primos de RSA). Nada que la NSA no resuelva con un superordenador y un par de cafés.
La segunda fase (fase de resolución) consiste en la búsqueda de un número aleatorio usado para una conexión en particular. Como este número no cumple ninguna exquisita propiedad matemática, es cuestión de minutos dar con él.

Se sabe que un 8% de los dominios con más actividad de Internet aún no han sido parcheados y siguen siendo vulnerables a los ataques LOGJAM. Es decir, en torno a unos 80.000 servidores siguen utilizando simples claves de 512 bits que, como ya hemos visto, con 100 dólares cualquiera puede tirar abajo. Lo bueno es que la solución es muy sencilla: basta con parchear aquellos servidores con viejos protocolos y dejar atrás las claves de 512 bits.

Pero aún nos queda una duda, ¿Con 1024 bits seremos capaces de mantener a salvo nuestras conexiones? Seguro que la NSA ya no es capaz de resolver problemas matemáticos tan complejos. Porque, ¿Seguro que no son capaces? ¿No? Estad atentos al siguiente artículo para conocer la respuesta!

Comentarios

comentarios