En la publicación de la conferencia del IEEE, Factoring RSA Keys in the IoT Erademostramos que muchos de los dispositivos de red y IoT que se utilizan hoy en día utilizan certificados digitales débiles que podrían exponerlos a ataques.
Nuestro equipo estudió millones de certificados digitales activos que se basan en el algoritmo RSA. Spoiler alert: descubrimos que 1 de cada 172 certificados es vulnerable a un ataque debido a una generación deficiente de números aleatorios.
Aleatoriedad requerida
El algoritmo RSA está muy extendido y se utiliza para proteger desde el tráfico de Internet hasta los dispositivos de IoT . Sin embargo, a menudo puede parecer críptico, incluso para quienes lo utilizan a diario. A grandes rasgos, utiliza un par de claves diferentes pero relacionadas matemáticamente (una pública y otra privada) para cifrar datos y autenticar conexiones.
Para obtener la clave pública hay que multiplicar dos grandes números primos generados aleatoriamente (conocidos como factores), un cálculo cuyo resultado es inviable desde el punto de vista de la ingeniería inversa.
Sin embargo, hay una trampa.
Si los números primos utilizados para crear las claves públicas no son realmente aleatorios, es posible que haya un duplicado. Y si dos claves públicas comparten un factor común, no hacen falta más que unos microsegundos de cálculo y matemáticas sencillas para encontrar los otros factores, y comprometer ambas claves.
Entonces, ¿cómo pudimos descifrar casi un cuarto de millón de claves RSA?
Cómo desciframos las claves
En nuestro empeño por vigilar y mejorar continuamente la seguridad en Internet, nos propusimos determinar con exactitud hasta qué punto está extendida esta vulnerabilidad, y los resultados son asombrosos.
Nuestro equipo creó una base de datos de más de 75 millones de certificados digitales disponibles en Internet utilizando las capacidades de descubrimiento SSL/TLS de la plataforma Keyfactor , combinadas con 100 millones de certificados producidos por el proyecto de registro Certificate Transparency (CT) de Google. Tras analizar la base de datos en busca de factores compartidos, descubrimos que uno de cada 172 certificados digitales tiene claves RSA que comparten un factor con otro.
A partir de aquí, todo lo que se necesitaba era simple matemática para calcular los otros factores únicos, rompiendo efectivamente casi 250.000 claves RSA únicas. En muchos casos, estas claves vulnerables eran utilizadas por varios certificados, a veces incluso miles.
No es la primera vez
El sector conoce esta vulnerabilidad desde hace años. Varios estudios -de 2012 a 2016- han descubierto puntos débiles en la generación de números aleatorios, así que ¿qué hace diferente a este estudio?
Más llaves, más riesgo
El número de claves RSA disponibles en Internet ha crecido exponencialmente, y con él, el riesgo de compromiso. Ejecutar el algoritmo GCD con un conjunto de datos más amplio, extraído de Internet y de registros CT de acceso público, aumenta las probabilidades de encontrar claves con un factor compartido.
Computación en nube
Sólo hay dos cosas que necesitamos para hacerlo con eficacia: (1) encontrar muchas claves públicas, y (2) un método eficiente para minar y analizar claves a escala. La computación en nube ha facilitado enormemente el acceso de un atacante a los recursos necesarios para llevar a cabo esta tarea. Utilizando una única máquina virtual de Microsoft Azure, con un coste de unos 3.000 dólares, nuestro equipo fue capaz de descifrar casi 250.000 claves RSA en unas 18 horas. Hoy en día, este ataque no solo es posible, sino práctico y factible.
El auge de la IoT
La mayoría de los certificados digitales vulnerables no se encontraron en sitios web de confianza pública, sino en dispositivos integrados de la Internet de las Cosas (IoT) y aparatos de red: routers, cortafuegos y conmutadores. En muchos casos, pudimos rastrear los certificados hasta dispositivos específicos de IoT .
A diferencia de la TI tradicional, incluidos servidores y ordenadores portátiles, los dispositivos modernos de IoT tienen limitaciones de diseño que les impiden producir claves altamente aleatorias. Estos dispositivos ligeros suelen funcionar con muy poca energía y los recursos informáticos necesarios para generar una alta entropía, es decir, aleatoriedad estadística. El resultado son miles de dispositivos vulnerables a los ataques.
Vida crítica y alto riesgo
Muchos dispositivos de IoT incluyen hoy en día aparatos médicos, vehículos conectados y aviones comerciales.
Piense en un marcapasos. Se implanta en el cuerpo humano, tiene una potencia informática limitada, un ancho de banda intermitente, está en constante movimiento y la duración de su batería puede oscilar entre 5 y 10 años. Generar claves altamente aleatorias no es sólo un reto, es fundamental para la salud y el bienestar humanos.
Llega Quantum
No es el algoritmo RSA el que es inseguro, sino la generación de números aleatorios mal implementada. Dicho esto, cabe señalar que la computación cuántica podría amenazar con socavar muchos de los algoritmos en los que confiamos hoy en día, incluido el RSA. El NIST predice que incluso las claves RSA de 8192 bits podrían ser vulnerables en la próxima década, a medida que continúen los avances en los ordenadores cuánticos a gran escala.
Los fabricantes deben hacerlo bien
El hecho de que un cuarto de millón de claves RSA de los últimos cinco años sean vulnerables a este ataque, incluso para un atacante con recursos limitados, es muy preocupante. Enormes fracciones de estas claves viven en la próxima generación IoT y dispositivos de red integrados que están siendo adoptados por las empresas y los consumidores hoy en día.
¿Qué hay que hacer entonces? Empieza en el diseño. Los fabricantes de dispositivos deben integrar la seguridad en sus dispositivos durante el diseño y el desarrollo, y garantizar que la software y la criptografía del dispositivo puedan actualizarse de forma segura a lo largo de su ciclo de vida.