Ataques a claves generadas con baja entropía

9

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.

    
pregunta Freedo 23.07.2015 - 07:16
fuente

1 respuesta

6

La entropía básicamente definirá el número máximo de estados diferentes que puede tener el generador de números aleatorios en un momento dado (más información sobre el tema Se puede encontrar aquí ). Cuanto más alta es la entropía, más posibilidades hay.

El principal problema con la baja entropía es que el generador de números aleatorios tendrá menos posibles estados de conmutación, por lo que comenzará a repetirse.

La principal forma de detectar este problema es tratar de detectar dicha repetición. Un problema común, por ejemplo, puede afectar la identificación de la sesión: un atacante puede solicitar una gran cantidad de identificación de la sesión al servidor (o no a la AP en el caso del acceso Wifi, ¿alguien habló sobre WEP?) Y analizar si el servidor puede ser Engañado para generar la misma ID dos veces. Si otra falla lo permite, también puede hacer que varios reinicios rápidos de la aplicación analicen la primera ID generada.

Un ejemplo histórico muy bueno de la cuestión de la entropía afecta a Debian (y sus numerosos derivados). Durante dos años, rompieron el generador de números aleatorios Open-SSL limitando el comando ssh-keygen (usado entre otras cosas para generar claves utilizadas para autenticar personas en servidores y autenticar el servidor para evitar ataques Man-in-the-Middle) a 32 767 llaves diferentes. Como resultado de esto:

  • Un servidor afectado por este problema podría identificarse de inmediato, ya que presentará la parte pública de una de estas claves vulnerables para autenticarse: el par privado es conocido por el atacante y está disponible una amplia gama de ataques,
  • Si un usuario utiliza una clave tan vulnerable para autenticarse (el servidor en sí no necesita ser vulnerable), un atacante podría obtener acceso a su cuenta simplemente intentando cada clave del conjunto, que debería ser relativamente rápida.

Como última palabra, no debe confiar en el hecho de que la baja entropía "parece" una buena entropía y que aún no sabe cómo detectarla. Esto se llama seguridad a través de la oscuridad y no ofrece ninguna buena seguridad. De hecho, el hecho de que usted no sepa de esa manera no significa que nadie más sí lo sepa, y si un solo atacante hace las consecuencias podría ser catastrófico (supongo que la gente de WEP inicialmente consideró su sistema como seguro ...).

Para sus inquietudes con respecto a la entropía de VM, puede interesarle en esta discusión . Básicamente, una solución simple pero eficiente consiste en " sembrar cada VM con una semilla obtenida de alguna otra fuente aleatoria en otro lugar; esto es tan fácil como escribir un archivo en /dev/random " (citado de la respuesta de Thomas Pornin ).

    
respondido por el WhiteWinterWolf 23.07.2015 - 11:23
fuente

Lea otras preguntas en las etiquetas