Cómo probar una teoría de adivinación de contraseñas del libro "Introducción a la seguridad informática" de Matt Bishop

4

Primero, esto no es un problema de tarea. Este es un problema del libro "Introducción a la seguridad informática" de Matt Bishop, que se usó como uno de los libros de texto para una clase de seguridad informática que tomé el año pasado. Esta pregunta nunca surgió durante el curso. En retrospectiva, debería haberle pedido al profesor del curso que me explicara la prueba, pero nuevamente este libro de texto no fue el texto principal del curso.

El teorema establece:

  

Deje que el tiempo esperado requerido para adivinar una contraseña sea T . Entonces T es una   máximo cuando la selección de cualquiera de un conjunto de contraseñas es   equiprobable.

La pregunta es ¿cómo se prueba este teorema?

Entiendo que si hay n contraseñas posibles, en promedio puede adivinar la contraseña en n / 2 intentos de uso de fuerza bruta. Además, si cada contraseña es equiprobable, la probabilidad de cada contraseña es 1 / n .

Aquí es donde me quedo atascado, si la probabilidad de cada contraseña no es igual, entonces obviamente hay un conjunto más pequeño de contraseñas para verificar y, por lo tanto, se requiere un tiempo más corto para realizar un ataque de fuerza bruta.

Sin embargo, si no sé cuál es la probabilidad de cada contraseña, entonces necesito realizar un ataque de fuerza bruta en todas las contraseñas posibles y estamos de nuevo en n / 2 intentos.

O es que la prueba. Si la probabilidad de cada contraseña no es igual y prueba las contraseñas con las probabilidades más altas, se trata de un subconjunto más pequeño y, por lo tanto, de un período de tiempo más corto que la prueba de todas las contraseñas posibles.

¿Hay una manera más formal de decir esto?

Además, ¿qué sucede si la contraseña es parte del subconjunto de contraseñas con probabilidades más bajas? Al buscar solo las contraseñas de mayor probabilidad, no podrá encontrar la contraseña deseada. O tómate más tiempo que si hubieras intentado todo.

Gracias por su consideración a esta pregunta.

    
pregunta HeatfanJohn 22.08.2012 - 19:58
fuente

2 respuestas

4

Con matemáticas:

Supongamos que hay n contraseñas posibles. El número de contraseña i tiene la probabilidad pi de ser seleccionado. Se asume que el atacante conoce los valores exactos de pi y los prueba en el debido orden. Sin pérdida de generalidad, asumo que p1 es la contraseña más probable, y así sucesivamente (es decir, p i > = p j siempre que i < j ).

Deje qj la suma de todos los valores de pi para i desde 1 hasta j . qj es la probabilidad de que la contraseña sea parte de las contraseñas más probables de j (necesariamente, q n = 1 : la contraseña es parte del espacio de posibles contraseñas). Lo siguiente es cierto:

  

Para todos j , q j > = j / n

Porque si q j < j / n (para algún valor j ), entonces debe haber un valor i más bajo que j tal que p i < 1 / n . La condición en pi (valores que no aumentan) implica que todos pk para k > i son inferiores a 1 / n , y esto implica que q n < 1 , que no es posible.

qj es la probabilidad de que el atacante tenga éxito al hacer como máximo j conjeturas. Los valores más altos implican un éxito más rápido, es decir, si hay dos probabilidades de distribución P y P ', de manera que q' j > = q j para todos j , entonces el ataque para P ' tiene éxito al menos tan rápido como el ataque para P . Tenga en cuenta que dos probabilidades de distribución no pueden compararse necesariamente de esta manera (podría haber algunas , pero no todos valora j de manera que q ' j > = q j ), pero, si pueden ser comparados, la conclusión es la siguiente.

La distribución uniforme ( p i = 1 / n para todos i ) implica q j = j / n para todos j , que, como se explicó anteriormente, se compara favorablemente (para el defensor) con todas las demás distribuciones. Por lo tanto, esta es la distribución que hace que el ataque sea más lento.

Con física:

La velocidad de éxito del ataque es mayor cuando la entropía de la contraseña es menor. La distribución uniforme maximiza la entropía.

    
respondido por el Thomas Pornin 22.08.2012 - 20:46
fuente
2

Hagamos algunas definiciones:

  1. Equiprobable significa que para un conjunto de contraseñas W , cada elemento en W tiene la misma probabilidad de ocurrencia, es decir, P ( W a ) = P ( W b ) para cualquier a y b .
  2. Se supone que el conjunto W sí contiene la contraseña que estamos buscando. Como tal, podemos suponer que Σ P ( W n ) = 1.
  3. La probabilidad de que un n -length subconjunto de W contenga la contraseña que estamos buscando es n * P ( W x ) para cualquier x , o esencialmente n dividido por el número de contraseñas en W .
  4. Si todas las contraseñas no son equiprobables, pero la definición # 2 aún se mantiene, nuestra mejor estimación (sin conocer las probabilidades de subconjuntos específicos) es que una selección aleatoria de W se adherirá a la definición # 3 .

El tiempo esperado se define como la cantidad de trabajo necesario para encontrar la contraseña de destino con una probabilidad del 50%. Como tal, descifrar ingenuamente una contraseña contra el conjunto W siempre dará como resultado un tiempo esperado de n / 2, donde n es el número de entradas en W .

Sin embargo, si conoce la probabilidad de cada contraseña, puede organizarlas en grupos equiprobable. Como tal, todas las contraseñas en W se dividen en n subconjuntos W0 , W 1 , W2 , ... Wn , cada uno de los cuales Contiene una serie de contraseñas equiprobable. La advertencia de esto es que ya no se garantiza que la contraseña esté en un solo subconjunto, solo tenemos la posibilidad de que la contraseña esté en un subconjunto en particular. Sin embargo, la definición # 2 aún se mantiene cuando considera todos los subconjuntos como un todo, es decir, Σ P ( W n ) = 1.

Supongamos que tenemos cinco subconjuntos:

Subset | Prob. (Password) | Count | Prob. (Subset)
-------+------------------+-------+---------------
W0     | 0.005            | 20    | 0.1
W1     | 0.002            | 60    | 0.12
W2     | 0.0004           | 540   | 0.216
W3     | 0.00007          | 6000  | 0.42
W4     | ~0.0000426       | 3380  | 0.144

En este caso, debemos calcular la cantidad de contraseñas que verificamos antes de que la probabilidad total de golpear la contraseña llegue a 0.5. Entonces, para el primer subconjunto ( W 0 ) alcanzamos 0.1, para el segundo ( W 1 ) alcanzamos 0.22, para el tercero ( W 2 ) llegamos a 0.436. Cuando miramos el cuarto grupo ( W 3 ) notamos que estamos excediendo 0.5. Por lo tanto, calculamos el número de contraseñas en el depósito W3 que nos llevará de una probabilidad de 0.436 a 0.5. Esto es simple: reste, luego divida: 0.5 - 0.436 = 0.064, 0.064 / 0.00007 = 914. Por lo tanto, nuestro trabajo esperado es 20 + 60 + 540 + 914 = 1534 hashes.

    
respondido por el Polynomial 22.08.2012 - 21:07
fuente

Lea otras preguntas en las etiquetas