¿Cuál es el propósito de $ LoginKey de la fuga de Ashley Madison?

4

Según este sitio Ashley Madison mantenía un hash inseguro almacenado en su base de datos utilizando MD5, además del hash bcrypt mucho más seguro. Este grupo utilizó los hashes MD5 para descifrar rápidamente la base de datos de contraseñas en lugar de usar los hashes bcrypt, que son mucho más difíciles.

El artículo solo da esta breve pista:

  

La variable $ loginkey parecía ser utilizada para el inicio de sesión automático, pero nosotros   No pasó mucho tiempo investigando más. Fue generado sobre   creación de cuenta de usuario y se volvió a generar cuando el usuario modificó   los detalles de su cuenta, incluidos el nombre de usuario, la contraseña y la dirección de correo electrónico.

La pregunta es, ¿cuál es el propósito de esta variable $ loginkey? Obviamente, no tiene sentido usar bcrypt, que es deliberadamente lento cuando usas un hash mucho más rápido como md5 en otros lugares, es un objetivo más fácil. Obviamente, esto es un gran error por parte de los desarrolladores de Ashley Madison, pero tengo curiosidad por saber por qué habrían puesto esto en primer lugar, y por qué nunca se solucionó ya que (alguien) sabía usar bcrypt para el contraseña principal hash.

    
pregunta Steve Sether 10.09.2015 - 21:17
fuente

2 respuestas

3

Probablemente como un token para que los usuarios inicien sesión (es decir, "Recordar mi inicio de sesión").

Si desea que los usuarios puedan usar la funcionalidad de inicio de sesión recordada, entonces necesita usar un generador de números pseudoaleatorios criográficamente seguro (CSPRNG) para generar el token. Luego calcule una fecha de caducidad para el token que se usará y almacene tanto la ficha como la fecha de caducidad en su base de datos. Una vez que el usuario inicia sesión (e indicó al iniciar sesión que deseaba recordar su inicio de sesión), almacenaría el texto sin formato del token en su máquina en forma de cookie o almacenamiento local. Luego, la próxima vez que intenten acceder a una página que requiera un inicio de sesión, buscará ese token en la cookie de su navegador o en el almacenamiento local. Si el token coincide con un token que almacenó en su base de datos, y si la fecha de caducidad de ese token aún está en el futuro, considere que el usuario ha iniciado sesión; elimine el token de su navegador, así como la base de datos, y repita el proceso de generación y almacenamiento de un token nuevo de nuevo.

Para mayor seguridad, en su base de datos es probable que desee almacenar el hash del token en lugar del token. Siempre que use un CSPRNG para generar el token, debe poder usar incluso un algoritmo de hash rápido para hash del token.

Creo que los desarrolladores de Ashley Madison simplemente no usaron un CSPRNG para crear $ loginkey y en su lugar usaron una secuencia de caracteres no aleatoria (nombre de usuario más el hash MD5 de la contraseña), que actualmente es lo que lo hizo tan fácil para que los crackers determinen la parte no dañada de $ loginkey, que en este caso era la contraseña.

    
respondido por el vrtjason 10.09.2015 - 22:17
fuente
0

La cobertura en Ars Technica tiene una buena discusión en los comentarios. enlace

Algunas especulaciones:

  • Un hash heredado. En algún momento, los desarrolladores cambiaron a bcrypt pero mantuvieron el hash antiguo "por si acaso".
  • $ loginkey se utilizó para iniciar sesión más rápido (bcrypt es lento por diseño) o mantener un usuario conectado.
  • Se utiliza para mantener a un usuario conectado en otras aplicaciones. Como en una plataforma de foro que no pudo hacer bcrypt.
respondido por el Mike Focosi 10.09.2015 - 22:26
fuente

Lea otras preguntas en las etiquetas