Ninguna de las respuestas existentes cubre la parte crítica de esta pregunta para mi satisfacción: ¿qué pasa con las sales?
Si solo se publicaron los valores de hash de la contraseña, es posible que otros crackers no puedan saberlo:
-
El valor real de sal por contraseña (supuestamente aleatorio, según la fuente).
-
Cómo se mezcla la sal con la contraseña en el código.
¡Todo lo que tienen es el hash final, resultante!
Hay muchas maneras que la contraseña y el salt se pueden combinar para formar el hash:
sha256(pass + salt)
sha256(salt + pass)
sha256(sha256(pass) + sha256(salt))
sha256(pass + sha256(salt))
sha256(sha256(...(salt + pass + salt)...))
Pero si la sal es la recomienda 8 caracteres de pura aleatoriedad ...
sha256("monkey1" + "w&yu2P2@")
sha256("w&yu2P2@" + "monkey1")
... esto significa que una contraseña "típica" de 7 u 8 caracteres se vuelve extremadamente difícil de forzar, ¡porque es efectivamente 15 o más caracteres! Además, para descifrar la contraseña los hashes que sabes están salados, a menos que también tengas sal, no tienes otra opción, excepto fuerza bruta!
Sobre la base de la investigación que realicé utilizando el cracking de GPU , obtuve 8213.6 M c s utilizando dos tarjetas ATI de gama alta, fuerza bruta, craqueo de hashes de contraseña MD5. En mi evaluación comparativa, esto significaba que podía intentar:
all 6 character password MD5s 47 seconds
all 7 character password MD5s 1 hour, 14 minutes
all 8 character password MD5s ~465 days
all 9 character password MD5s fuggedaboudit
Tenga en cuenta que SHA-256 es el 13% de la velocidad de MD5 en las GPU que utilizan Hashcat . Así que multiplica estos números por aproximadamente 8 para ver cuánto tiempo tomaría.
Si las sales no se conocían , eso significa que eres esencialmente brutal forzando el equivalente de más de 12 contraseñas de caracteres. Eso está mucho más allá del ámbito de cualquier poder computacional conocido.
Ahora, si quieres argumentar que ...
-
Los crackers originales también obtuvieron las sales, pero optaron por no publicarlas.
-
Los crackers original también tienen el código fuente (o es de código abierto) para que sepan cómo se eliminan las contraseñas, pero decidieron no publicar esa información.
-
Formspring miente y sus contraseñas no fueron tratadas de manera inadecuada, por lo que las sales no tuvieron ningún efecto.
... entonces sí, es fácil descifrar 200k de hashes de contraseña de 400k en unos pocos días.