¿Hay algún ataque práctico en los generadores de números aleatorios?

6

Estoy creando un curso de seguridad interna para desarrolladores. Para hacerlo más interesante, estoy tratando de reforzar cada capítulo con algunos ataques del mundo real pero me topé con una sección de uso aleatorio inseguro.

Entonces, asumamos que el RNG listo para usar (cualquier lenguaje de backend popular está bien) se usa de manera insegura (por ejemplo, para generar la funcionalidad de contraseñas). ¿Existe algún algoritmo paso a paso o herramienta automática que pueda calcular el estado de RNG y los valores anteriores / futuros?

    
pregunta getupandgo 29.11.2018 - 16:15
fuente

4 respuestas

3

Uso inseguro PRNG: Una demostración muy ingenua de esto (si desea hacer un laboratorio) es utilizar una semilla derivada de la hora actual para generar una contraseña pseudoaleatoria para un administrador de contraseñas de código abierto (podría agregar algún otro dato de información conocida si quiero hacer que se vea más aleatorio). Si los estudiantes notan este hecho en la fuente, podrían predecir contraseñas. Por supuesto, la fuente no es realmente necesaria para determinar esta información (solo aceleraría el laboratorio)

para ejemplos bien conocidos del mundo real, echa un vistazo a enlace

    
respondido por el DarkMatter 29.11.2018 - 16:28
fuente
3

Sí, hay. Consulte Factorable para ver un ejemplo famoso en el que los dispositivos integrados generaron las claves RSA y DSA inmediatamente cuando se iniciaron cuando se recolectó una aleatoriedad insuficiente:

  

Realizamos un estudio a gran escala de las claves criptográficas RSA y DSA que se utilizan en Internet y descubrimos que un número significativo de claves son inseguras debido a la falta de aleatoriedad. Estas claves se están utilizando para asegurar las conexiones TLS (HTTPS) y SSH para cientos de miles de hosts.

     

Casi todos los hosts vulnerables son dispositivos de red integrados y sin cabeza, como enrutadores, firewalls y tarjetas de administración de servidores. Estos tipos de dispositivos a menudo generan claves automáticamente en el primer arranque, y carecen de muchas de las fuentes físicas de aleatoriedad utilizadas por las PC tradicionales para generar números aleatorios. Identificamos dispositivos y software aparentemente vulnerables de 54 fabricantes y notificamos a estas compañías sobre los problemas.

Lea su documento de investigación para ver exactamente cómo lo hicieron.

    
respondido por el forest 30.11.2018 - 01:55
fuente
2

Algunos de los algoritmos de PRNG estándar en lenguajes de programación se pueden romper después de que se vean suficientes muestras. Consulte enlace para obtener una descripción y un enlace a un script de ejemplo.

    
respondido por el Jonathan 29.11.2018 - 22:25
fuente
2

El ataque que voy a describir es un poco diferente de los mencionados en otras respuestas, en la medida en que se trataría de un ataque basado en hardware, y en la medida en que llevaría años de planificación y una importante influencia financiera. También representa un tipo de falla PRNG no algorítmica, que es probablemente donde más se aplica a su clase: basar toda su entropía en una sola fuente puede ser contraproducente si esa entropía puede ser envenenada.

Teóricamente, podría crear una pieza de hardware que genere números por un algoritmo que conozca, y luego vender ese hardware mientras afirma que es un verdadero RNG. Cualquier código que use ese hardware para generar toda su entropía sería fácilmente atacable por el fabricante de ese hardware.

(Si bien esto puede parecer fantástico, existe una preocupación legítima de que tal situación pueda ocurrir en la vida real, como con Intel RdRand instrucción .)

    
respondido por el Miles B Huff 01.12.2018 - 05:57
fuente

Lea otras preguntas en las etiquetas