Si la NSA tiene las claves de la puerta trasera de un generador de números aleatorios podría descodificar ciertos códigos sin problemas
La seguridad de una conexión de datos protegida mediante un deficiente nivel de encriptación promovido por la Agencia de Seguridad Nacional (NSA, por sus siglas en inglés) en EEUU podía descifrarse en menos de 16 segundos utilizando un único procesador de ordenador. Esto es lo que señala el primer estudio en profundidad sobre la facilidad con que los sistemas de encriptación que utilizan el obsoleto generador de números aleatorios Dual_EC podrían ser derrotados por un atacante que hubiera encontrado una "una puerta trasera" del estándar.
El defectuoso estándar nunca ha sido utilizado ampliamente para proteger las comunicaciones por internet, a pesar de que la empresa de seguridad RSA recibiera 10 millones de dólares (7,25 millones de euros) de la NSA para que fuera el generador predeterminado de números aleatorios en uno de sus paquetes de software. Se desconoce si la NSA o cualquier otro agente sabe la relación matemática fundamental necesaria para explotar el defecto y deshacer el cifrado basado en Dual_EC.
Sin embargo, el estudio muestra de manera concluyente que un atacante que conozca la clave de la puerta trasera de Dual_EC podría darle un uso práctico. De los seis paquetes de software de cifrado distintos puestos a prueba, no todos pudieron ser derrotados en segundos: para la mitad de ellos fue necesario usar un grupo de 16 procesadores y se tardó entre 60 y 80 minutos. No obstante, una agencia de inteligencia nacional podría mejorar significativamente estos tiempos, dedicando más potencia de cálculo al problema.
Los documentos filtrados por Edward Snowden y publicados en septiembre de 2013 indican que la NSA ha tratado de influir en los estándares de cifrado, así como alentar a las empresas comerciales para que los productos de seguridad sean más susceptibles a la vigilancia de EEUU. Tanto el Instituto Nacional de Estándares y Tecnología (NIST, por sus siglas en inglés) y RSA dejaron de dar soporte a Dual_EC después de que se publicaran los documentos de Snowden el año pasado.
El nuevo estudio fue realizado por investigadores de la Universidad Johns Hopkins, la Universidad de Wisconsin, la Universidad Técnica de Eindhoven, la Universidad de Illinois en Chicago, y la Universidad de California San Diego, en EEUU.
El NIST propuso el uso de Dual_EC por primera vez en 2006. Meses más tarde, dos investigadores de Microsoft encontraron un fallo matemático similar a una "puerta trasera" intencional que podía ser utilizada para deshacer el cifrado basado en el estándar.
La debilidad se centra en dos constantes, conocidas como P y Q, que funcionan como una especie de configuración por defecto para el generador que se supone que son elegidas al azar y sin relación entre sí. Sin embargo, en caso de existir alguna relación matemática entre las dos, se puede utilizar para predecir la salida del generador en base a una de sus salidas anteriores.
Algunos expertos en seguridad han sospechado desde hace mucho tiempo que las versiones de P y Q en la versión de Dual_EC del NIST están vinculadas de alguna manera, y que la NSA sabe exactamente cómo, lo que les permite deshacer el cifrado basado en el estándar. Esos temores ganaron credibilidad después de que los documentos de Snowden mostraran que la política de la agencia trata de influir en los nuevos estándares.
Para probar lo que podría hacerse con una clave para la puerta trasera de Dual_EC, los investigadores propusieron valores para P y Q vinculados entre sí. Luego simularon ser un atacante intentando descifrar las conexiones TLS cifradas realizadas por software que soporte Dual_EC actualmente, o que lo usara por defecto en algún momento. Las conexiones TLS son ampliamente utilizadas para asegurar los datos en internet, como por ejemplo la navegación web, el correo electrónico y las comunicaciones VoIP.
Las dos implementaciones de Dual_EC de RSA, que solían usar el software como el generador de números aleatorios por defecto, resultaron ser las más fáciles de descifrar. Una versión escrita en el lenguaje de programación C pudo descifrarse en menos de 16 segundos utilizando un único procesador de ordenador, y en menos de tres segundos a través de un grupo de computación con 16 procesadores. Con una versión del software de RSA escrito en Java el grupo de computación tardó alrededor de una hora, aproximadamente el mismo tiempo que con una versión del software de seguridad Schannel de Microsoft.
Esa variación en la susceptibilidad fue provocada principalmente por decisiones de implementación aparentemente menores realizadas por diferentes desarrolladores de software. Sin embargo, la versión Java del software de RSA pudo ser debilitada aún más permitiendo el uso de una herramienta respaldada por la NSA, Extended Random, incluida en el software. Al usar esta característica el trabajo de búsqueda de puertas traseras para las conexiones TLS se aceleró 65.000 veces. En 2008 la NSA y otros grupos propusieron a la Fuerza Especial de Ingeniería de Estándares de Internet usar Extended Random como estándar, y más tarde RSA lo agregó a parte de su software. Sin embargo muy pocas otras empresas lo hicieron, y dejó de formar parte del proceso de estandarización.