El error crítico del generador de números aleatorios afecta a miles de millones de dispositivos del Internet de las Cosas

Los generadores de números aleatorios de hardware utilizados en miles de millones de dispositivos IoT han revelado una vulnerabilidad crítica que no genera correctamente números aleatorios, lo que socava su seguridad y los expone a ataques.

«Resulta que estos números ‘aleatorios’ no siempre son tan aleatorios como le gustaría para 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 0 o peores. Esto puede provocar un colapso catastrófico de la seguridad para cualquier uso ascendente».

La generación de números aleatorios (RNG) es un proceso esencial que sustenta varias aplicaciones criptográficas, incluida la generación de claves, nonces y salting. En los sistemas operativos tradicionales, se deriva de un generador de números pseudoaleatorios criptográficamente seguro (CSPRNG), que utiliza la entropía obtenida de una fuente de alta calidad.

En el caso de los dispositivos IoT, se entrega desde un sistema en un chip (SoC), que contiene un RNG periférico de hardware dedicado llamado generador de números aleatorios reales (TRNG), que se utiliza para capturar la aleatoriedad de los procesos o fenómenos físicos.

Descubrieron que la forma en que se llamaban los periféricos actualmente era incorrecta, y los investigadores notaron una falta de verificación de las respuestas de los códigos de error en todas las áreas, lo que llevó a un escenario en el que el número aleatorio generado no es solo aleatorio y, lo que es peor, predecible, lo que resulta en una entropía parcial. , memoria no inicializada e incluso claves de cifrado que contienen ceros.

«La función de HAL en la periferia del RNG puede fallar por una variedad de razones, pero, con mucho, el dispositivo más común (y explotable) es que la entropía se agotó», señalaron los investigadores. «Los periféricos de hardware RNG extraen entropía del espacio por varios medios (como sensores analógicos o datos EMF), pero no la tienen en cantidades ilimitadas.

«Solo pueden producir tantos bits aleatorios por segundo. Si intenta llamar a la función RNG HAL cuando no tiene números aleatorios que pueda proporcionar, fallará y devolverá un código de error. Entonces, si el dispositivo intenta obtener demasiado muchos números aleatorios demasiado rápido, las llamadas empiezan a fallar».

Este problema es exclusivo del entorno de IoT porque carecen del sistema operativo que normalmente viene con una API aleatoria (como «/dev/random» en los sistemas operativos Unix o BCryptGenRandom Windows), y los investigadores destacan los beneficios de una mayor agrupación de entropía. el subsistema CSPRNG, eliminando así «cualquier punto único de falla entre las fuentes de entropía».

Si bien los problemas se pueden solucionar con actualizaciones de software, la solución ideal para los fabricantes y desarrolladores de IoT sería incluir una API CSPRNG que se implemente desde una variedad de fuentes de entropía y garantizar que el código no ignore las condiciones de error o no se bloquee. RNG llama cuando no hay entropía disponible.

«Una de las partes difíciles de esta vulnerabilidad es que no es un simple caso de ‘haz clic donde fuiste’ que se puede solucionar fácilmente», dijeron los investigadores, enfatizando la necesidad de implementar CSPRNG en el sistema operativo IoT. «Para solucionar este problema, se debe diseñar una función sustancial y completa para el dispositivo IoT».

Continua leyendo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Newsletter Signup

Suscríbete a nuestra lista si te interesa recibir turcos exclusivos sobre hacking y seguridad informática