ayúdame a eliminar las contraseñas

-1

Eve acaba de descubrir y descifrar el archivo que asocia cada ID de usuario con su valor de sal aleatorio de 32 bits, y también ha descubierto y descifrado el archivo de contraseña, que contiene las contraseñas con sal y hash para 100 personas en su edificio. Si ella tiene un diccionario de 500,000 palabras y ella es Seguro que las 100 personas tienen contraseñas de este diccionario, ¿cuál es el tamaño? de su espacio de búsqueda para realizar un ataque de diccionario en sus contraseñas?

    
pregunta user34221 14.11.2013 - 17:56
fuente

3 respuestas

6

Suponiendo que esta es una pregunta para la tarea, me centraré más en el por qué que en el qué. El propósito de una sal única es que genera valores que, de lo contrario, serían los mismos. El resultado neto es que esto obliga a que cada contraseña en la base de datos sea atacada de forma independiente, ya que 'abc' password no tiene la misma función que 'dcf'password.

Esto significa que todos los valores deben probarse contra todas las entradas en el peor de los casos. Si están distribuidos uniformemente, entonces debería tomar un promedio de la mitad del espacio de búsqueda cada vez para encontrar una coincidencia. En el mundo real, las personas tienden a seguir los patrones y, por lo tanto, van incluso más rápido, aunque un diccionario de 500,000 puede que no sea mucho más rápido, ya que es probable que se acerque más al grupo común de contraseñas cuando se realizan sustituciones frecuentes de letras.

    
respondido por el AJ Henderson 14.11.2013 - 19:16
fuente
3

Como 100 ^ 2 es mucho más pequeño que 2 ^ 32, podemos asumir que cada sal es única, a pesar de ser mucho más pequeña de lo recomendado. Las sales únicas evitan todos los ataques de objetivos múltiples, más allá de eso, el tamaño de sal es irrelevante para la seguridad.

Por lo tanto, el número máximo de conjeturas es 100 * 500000 = 50 millones, ya que debe probar cada valor de diccionario con cada usuario. La cantidad esperada de conjeturas es la mitad de que si todos los candidatos de contraseña son igualmente probables y mucho más pequeños que los de la práctica, ya que un atacante racional prueba primero los candidatos más probables.     

respondido por el CodesInChaos 14.11.2013 - 18:11
fuente
-1

Las otras respuestas son correctas, pero para completar, me gustaría contrastar un ataque de diccionario con un ataque de arco iris.

En un ataque de arco iris, el pirata informático crea una "tabla de arco iris" basada en el diccionario.

¿Qué es una mesa de arco iris? Una lista precalculada de los hashes asociados con palabras comunes. Con la tabla del arco iris, un pirata informático puede realizar una "búsqueda inversa" comenzando con el hash de la palabra y retrocediendo para obtener el texto claro: algo que es computacionalmente inviable sin la tabla del arco iris (o una serie de cadenas de hash precomputadas, si vamos por la compensación de espacio / tiempo, pero eso es otro asunto). En este caso, el pirata informático ha limitado la lista de palabras comunes a 500,000.

Entonces, si no hubiera sal en absoluto, el pirata informático tendría que marcar cada palabra, lo que significa que el número de entradas de la tabla del arco iris (el "espacio de búsqueda") sería de 500,000.

Ahora agregue la sal. Como usted sabe, la sal es solo algo que se agrega a la palabra de texto claro antes de calcular el hash, por lo que las palabras muy largas son más o menos impredecibles. Con valores de sal de 2 ^ 32, la tabla del arco iris explota en tamaño a 2 ^ 32 x 500,000, o 2,14 x 10 ^ 15, o 2,147,483,648,000,000. Ouch.

Afortunadamente, en realidad no hay valores de sal de 2 ^ 32. El pirata informático conoce todos los valores de sal en uso, y solo hay 100 de ellos (1 para cada usuario). Por lo tanto, el tamaño de la tabla de arco iris que se necesita es solo de 100 x 500,000 = 50M entradas.

Contrasta esto con un ataque de diccionario. Un ataque de diccionario es una forma de ataque de fuerza bruta que limita el campo de búsqueda al buscar palabras comunes. Este tipo de ataque en este caso requiere como máximo 100x500,000 = 50M operaciones de hashing.

Las palabras clave son "como máximo". El ataque del diccionario es en realidad considerablemente más rápido; es bastante improbable que tengas que calcular los 500,000 hashes antes de encontrar el correcto. En un caso típico, solo tendrá que calcular 250,000, y tal vez incluso menos si revisa su diccionario de manera inteligente (la mayoría de las palabras comunes primero).

En contraste, con un ataque de arco iris (que es un tipo de ataque de "fuerza bruta inversa"), primero construye la tabla de arco iris y requiere todas las operaciones de hashing de 50M antes de mirar un solo registro de usuario. ¡No es conocido por su eficiencia de memoria! De hecho, ese es su principal inconveniente.

Entonces, para obtener más crédito, dígale a su profesor que el ataque de diccionario (dada la sal y la lista de palabras conocida de 500,000) en cada contraseña sería más eficiente que un ataque de arco iris, en este caso específico, asumiendo que los valores de sal son cada uno.

Una forma elocuente de afirmar esto es:

Rainbow attack

  • 500,000 x (100-Q) operaciones de hashing + 100 operaciones de comparación, donde Q es el número de valores de sal que están duplicados
  • El requisito de memoria es (500,000 x (100-Q) x tamaño hash) + (100 x tamaño de contraseña)

Ataque de diccionario

  • 100 x (N x (1 operación de hashing y 1 operación de comparación)), donde 1 < = N < = 500,000
  • El requisito de memoria es (1 x tamaño de hash) + (100 x tamaño de contraseña)

En ambos casos, el "espacio de búsqueda" es 50,000,000. El ataque del diccionario es superior en términos de espacio y tiempo para los valores esperados de Q. El ataque del arco iris gana si no hay sal o la sal está fija (Q = 99), y probablemente también ganaría con valores altos de Q.

Para crédito adicional serio, calcule Q '(donde el ataque del arco iris vence al ataque del diccionario cuando Q > = Q'), en términos de número de cálculos. Seguramente obtendrás un A +.

    
respondido por el John Wu 15.11.2013 - 17:29
fuente

Lea otras preguntas en las etiquetas