¿Cómo sabe el atacante qué algoritmo y sal usar en un ataque de diccionario?

27

Tengo curiosidad acerca de los métodos para descifrar contraseñas como el diccionario y los ataques de fuerza bruta. Hoy en día, las contraseñas se almacenan como hashes y no como texto simple en el servidor. Entonces, ¿cómo pueden compararse las contraseñas de texto simple en el diccionario con los hashes en la base de datos filtrada? Dado que los hashes pueden ser de diferentes tipos como bcrypt, SHA-512, etc., ¿cómo pueden las herramientas de cracking saber cómo crear los hashes y compararlos?

Por ejemplo, eche un vistazo al ataque del diccionario a continuación. Las contraseñas filtradas son solo hashes y el diccionario tiene palabras simples en inglés. Entonces, ¿cómo se pueden comparar? ¿Cómo sabe el atacante o las herramientas de craqueo qué algoritmo hash debería usar? Incluso la sal está ahí, pero ¿cómo sabe el atacante qué es la sal?

    
pregunta andjava 26.02.2018 - 13:02
fuente

1 respuesta

56

¿Cómo se comparan el texto simple y los hashes?

Durante el ataque de fuerza bruta, las palabras del diccionario se combinan con el algoritmo hash y la sal correctos, y luego se comparan con el hash en el volcado de la base de datos. Por lo tanto, el atacante debe conocer no solo el valor hash en sí mismo, sino también el algoritmo y la sal.

¿Cómo sabe el atacante la sal?

La sal generalmente se almacena en la base de datos justo al lado del hash. De hecho, tiene que ser. ¿De qué otra manera podría el servidor web codificar las contraseñas entrantes al verificarlas? Entonces, si tiene un volcado de base de datos, tiene las sales.

¿Cómo sabe el atacante qué algoritmo usar?

Esto se puede hacer de varias maneras:

  • A menudo se puede saber por el formato o la longitud del hash. Por ejemplo, un hash bcrypt generalmente comienza con el marcador $2b$ .
  • Pruebe algunas contraseñas muy comunes con los algoritmos más comunes, y tarde o temprano obtendrá una coincidencia. Como generalmente solo se usa un algoritmo para todos los hashes, solo necesitas encontrar una coincidencia y luego puedes seguir descifrando las otras contraseñas con ese algoritmo.
  • Aún más simple, si conoce una sola contraseña (quizás haya creado su propia cuenta antes de la violación), puede probar diferentes algoritmos en esa. (Gracias, Goose .)
  • Si tiene acceso al código, encontrará la respuesta allí. (Gracias, marcelm .)
  • O si sabe qué software se está utilizando, puede encontrarlo en la documentación. (Gracias, eckes .)
respondido por el Anders 26.02.2018 - 13:12
fuente

Lea otras preguntas en las etiquetas