¿Cuáles son los algoritmos que mejor se descifran con la GPU?

7

¿Qué algoritmos son mejor atacados por un cracker de contraseñas con GPU? Por ejemplo, escuché que md5crypt que se está utilizando en el archivo shadow de Unix, no es la mejor opción para el crackeo de GPU porque prácticamente md5 se utiliza 1.000 veces sobre la contraseña original para obtener un hash ...

    
pregunta dalimama 20.11.2011 - 05:24
fuente

2 respuestas

11

Miles de iteraciones de MD5 dificultan el hashing de la contraseña para todos, independientemente del tipo de hardware utilizado. No empeora las cosas específicamente para una GPU. Lo que hace que las cosas sean más difíciles para una GPU (en comparación con una CPU de propósito genérico) es cualquier cosa que use mucha RAM: una GPU puede acceder a mucha RAM, pero no con un paralelismo completo.

Los algoritmos que se basan en operaciones de enteros de 32 bits (aritmética y lógica) se implementan de manera muy eficiente en la GPU. Esto incluye MD5, SHA-1 y el SHA-2 "pequeño" (SHA-224 y SHA-256). SHA-384 y SHA-512 usan operaciones de 64 bits, y la GPU tiene problemas con eso, por lo que una GPU le dará un impulso menor al descifrar un hash de contraseña basado en SHA-512 que una función basada en SHA-256. Bcrypt usa una gran cantidad de accesos de memoria a una matriz de 4 kB mutante, y la GPU sufrirá, hasta el punto que es básico La CPU puede ser una mejor opción para intentar descifrar contraseñas de bcrypt que una GPU. En teoría, scrypt es aún más hostil para la GPU.

Esta es la razón por la que bcrypt se puede ver como una mejor opción para el hash de contraseñas que PBKDF2 (la forma estándar de hacer múltiples hashing anidado con una función hash genérica como SHA-1) (vea esta respuesta para más detalles). Aún así, el número configurable de iteraciones puede hacer que el craqueo de contraseñas sea bastante difícil incluso para una GPU enorme, y PBKDF2 / SHA-256 con un millón de iteraciones será mucho más seguro contra ataques que una sola llamada a SHA-512.

    
respondido por el Thomas Pornin 20.11.2011 - 19:49
fuente
3

Las GPU son rápidas solo cuando puedes hacer muchas operaciones en paralelo. El "estiramiento" del hash al alimentar el resultado de una sola ronda de un hash en otra iteración como una sal definitivamente hace que todo el proceso sea más lento. No solo, por defecto, puedes hacer 1000 rondas de MD5, sino que no puedes hacerlo en paralelo, ya que la ronda 2 debe esperar a que se complete la ronda 1.

Las contraseñas con sal son otro "obstáculo" para el crackeo de GPU. Si tiene un esquema de hash sin sal, el hash calculado puede compararse con TODOS los hashes diferentes que intenta romper. Con una sal adecuada (alta entropía), si calcula un hash, todo lo que puede comparar es el hash con la misma sal que utilizó para calcular su hash. Por lo general, es solo uno, a menos que tenga suerte (o tenga un conjunto muy grande de contraseñas o sales cortas), y no puede comparar su valor con algunos hashes, no solo uno.

Otro aspecto del cracking de GPU que no he visto discutido es el cracking de una sola contraseña frente a muchos. Para resumir la historia, muchas de las contraseñas pueden ser MUCHO más rápidas que si intentas descifrar solo una, dado que estás usando el software adecuado para ella. Por lo tanto, antes de ejecutar un trabajo de crack, primero realice una breve ejecución de sus datos, observe la velocidad. Si es mucho más lento de lo habitual, es probable que necesites usar un programa diferente o modificar los parámetros para aumentar el rendimiento.

    
respondido por el Marcin 20.11.2011 - 17:04
fuente

Lea otras preguntas en las etiquetas