Si tuviera que darle a alguien dos claves de 4096 bits, y decir que una se generó en un sistema operativo Linux con muy poca entropía disponible, y otra se generó en un sistema operativo Linux con más que suficiente entropía.
¿Sería posible diferenciar entre los dos? ¿Serían capaces de realizar cualquier tipo de ataque en la clave generada de baja entropía?
Lo pregunto principalmente porque a menudo genero una gran cantidad de claves / certificados / parámetros DH de 4096 bits y más en las máquinas virtuales y mi escaso conocimiento de esto es que quiero un montón de entropía disponible para usar porque hace más difícil predecir cosas.
Hice una búsqueda sobre por qué es importante la aleatoriedad y encontré un artículo de blog ( por qué los sistemas seguros requieren números aleatorios ) que intenta explicar por qué es importante la aleatoriedad y describe un truco del popular sitio web de programación y tecnología Hacker News:
Y todos los generadores de números pseudoaleatorios deben comenzar en algún lugar; necesitan ser sembrados y ahí es donde Hacker News falló. El generador de números aleatorios se sembró con el tiempo en milisegundos en que se inició por última vez el software Hacker News. Mediante un cuidadoso trabajo, el atacante logró hacer que Hacker News se bloquee y luego podría predecir cuándo se reiniciará dentro de una ventana de aproximadamente un minuto. Desde allí, pudo predecir las ID únicas asignadas a los usuarios cuando iniciaron sesión y, por lo tanto, podrían hacerse pasar por ellos.
Ok, entiendo eso, ¿pero esto todavía no necesita que el atacante realice un ataque activo en lugar de solo ataques pasivos? Quiero decir que no se pudo obtener un flujo de tráfico de alguien y dice " Hey, estos parámetros Diffie-Hellman / SSH parecen generarse con baja entropía, así que los atacaremos ", ¿verdad?
Digamos que acabo de generar una clave u otra cosa con baja entropía, pero el atacante no puede lanzar un ataque activo y actualmente no sabe qué secreto pre-maestro elegido al azar ha sido usado, ¿y qué?
Todavía no siento que pueda expresar realmente lo que estoy diciendo, así que voy a agregar este ejemplo más:
Esto es parte de cómo una computadora que usa WiFi establece una conexión segura. conexión a un punto de acceso mediante el popular protocolo WPA2:
- El punto de acceso genera un nonce aleatorio y lo envía a la computadora.
- La computadora genera un nonce aleatorio y lo envía al punto de acceso.
- El punto de acceso y la computadora continúan desde allí utilizando esos valores aleatorios para asegurar la conexión.
Ok, eso está bien. Dice que soy MITM y observo pasivamente el tráfico, y sucedió que el enrutador se había quedado sin entropía, ¿y qué? ¿Cómo podría saber esto de alguna manera para siquiera pensar en lanzar un ataque para provocar un nuevo apretón de manos y, a partir de ellos, intentar predecir el uso aleatorio y, por lo tanto, eliminar el cifrado?
Si la respuesta es "no puedes" como pienso, ¿por qué entonces incluso importa? Este no sería el primer ataque que alguien intentaría a menos que supieran que se usó una fuente de baja entropía como si supieran en el evento Hacker News.
También puedes editar mi título si puedes encontrar un mejor título lol.