Clicky

Un defecto crítico en el generador de números aleatorios afecta a miles de millones de dispositivos IoT

Generación de números aleatorios

Para remediar este problema, se debe diseñar una característica sustancial y compleja en el dispositivo IoT

Se ha descubierto una vulnerabilidad crítica en los generadores de números aleatorios de hardware utilizados en miles de millones de dispositivos de Internet de las cosas (IoT) por la cual no genera números aleatorios de manera adecuada, lo que socava su seguridad y los pone en riesgo de ataques.

"Resulta que estos números elegidos 'al azar' no siempre son tan aleatorios como desearía cuando se trata de dispositivos IoT", dijeron los investigadores de Bishop Fox, Dan Petro y Allan Cecil, en un análisis publicado la semana pasada. "De hecho, en muchos casos, los dispositivos eligen claves de cifrado de 0 o peor. Esto puede conducir a un colapso catastrófico de la seguridad para cualquier uso ascendente".

La generación de números aleatorios (RNG, por sus singlas en inglés) es un proceso crucial que sustenta varias aplicaciones criptográficas, incluida la generación de claves, números que pueden usarse sólo una vez (nonces en inglés) y almacenamiento de contraseñas (salting en inglés). En los sistemas operativos tradicionales, se deriva de un generador de números pseudoaleatorios criptográficamente seguro (CSPRNG) que utiliza entropía obtenida de una fuente de semillas de alta calidad.

Cuando se trata de dispositivos IoT, esto se suministra desde un sistema en un chip (SoC) que alberga un periférico RNG de hardware dedicado llamado generador de números aleatorios verdaderos (TRNG) que se utiliza para capturar la aleatoriedad de procesos o fenómenos físicos.

Al afirmar que la forma en que se invoca actualmente el periférico era incorrecta, los investigadores notaron la falta de controles para las respuestas de códigos de error en todos los ámbitos, lo que lleva a un escenario en el que el número aleatorio generado no es simplemente aleatorio, y lo que es peor, es predecible, lo que resulta en entropía parcial, memoria no inicializada e incluso claves criptográficas que contienen ceros simples.

"La función HAL del periférico RNG puede fallar por una variedad de razones, pero la más común (y explotable) con mucho es que el dispositivo se ha quedado sin entropía", anotaron los investigadores. "Los periféricos RNG de hardware extraen la entropía del universo a través de una variedad de medios (como sensores analógicos o lecturas EMF) pero no la obtienen en un suministro infinito".

"Solo son capaces de producir una cantidad determinada de bits aleatorios por segundo. Si intenta llamar a la función RNG HAL cuando no tiene números aleatorios para darle, fallará y devolverá un código de error. Por lo tanto, si el dispositivo intenta obtener demasiados números aleatorios demasiado rápido, las llamadas comenzarán a fallar".

El problema es exclusivo del panorama IoT, ya que carecen de un sistema operativo que normalmente viene con una API de aleatoriedad (por ejemplo, "/dev/random" en sistemas operativos tipo Unix o BCryptGenRandom en Windows), con los investigadores destacando los beneficios de un grupo de entropía más grande asociado con un subsistema CSPRNG, eliminando así "cualquier punto único de falla entre las fuentes de entropía".

Aunque los problemas se pueden solucionar con actualizaciones de software, la solución ideal sería que los fabricantes y desarrolladores de dispositivos IoT incluyan una API CSPRNG que se haya creado a partir de un conjunto de diversas fuentes de entropía y asegúrese de que el código no ignore las condiciones de error o no bloquee las llamadas al RNG cuando no haya más entropía disponible.

"Una de las partes difíciles de esta vulnerabilidad es que no se trata de un simple caso de 'zigzagueó donde debería haber hecho zag' que se pueda parchear fácilmente", dijeron los investigadores, enfatizando la necesidad de implementar CSPRNG en un sistema operativo de la IoT. "Para remediar este problema, se debe diseñar una característica sustancial y compleja en el dispositivo IoT".

Jesus_Caceres