¿Podemos simplemente volver a ingresar la contraseña en el supuesto secuestro de sesión?

1

Mirando a personas que se quejan de que Yahoo obliga a los usuarios a cambiar sus contraseñas . Podemos ver que a las personas no les gusta particularmente cambiar las contraseñas (y si los cambiamos regularmente es un aumento de la seguridad es discutible ). Estos dos casos (violaciones de Yahoo y cambios periódicos de contraseña) se refieren al hecho de que los hashes de contraseña han sido (o podrían ser) robados.

Sin embargo, este no es el único caso en el que es recomendable cambiar una contraseña. El otro caso es secuestro de sesión .

Suponiendo una aplicación en red y de varias sesiones (por ejemplo, de diferentes unidades al mismo tiempo), cuando un usuario sospecha que su sesión a menudo aconsejamos que cambie su contraseña . Esto tiene sentido hasta cierto punto porque OWASP argumenta que todas las sesiones actuales deben ser invalidadas en el cambio de contraseña . Y además, debido a que los tokes de sesión a menudo se derivan del hash de la contraseña.

En lugar de recomendar a este usuario que cambie su contraseña, ¿no podemos simplemente reutilizar la misma contraseña y simplemente volver a agregarla?

Mirando el antiguo ¿Está utilizando las contraseñas regularmente para aumentar / reducir la seguridad? Estoy pensando si existen desventajas al permitir que un usuario guarde sus contraseñas. Para realizar la re-sal necesitamos que el usuario nos dé la contraseña, por lo que un secuestrador no podría hacerlo.

Entonces, sí, es una ventaja de usabilidad para un usuario que puede seguir usando la misma contraseña pero:

  • Al realizar la re-sal, ¿sería esto más vulnerable (que un simple cambio de contraseña) a un atacante que conoce parte del hash (por ejemplo, desde el token de sesión)? (Creo que no)
  • ¿Evitar cualquier información del hash de contraseña que se filtra en el token de sesión lo mitigaría?
  • ¿Sería mejor proporcionar una lista de sesiones abiertas para el usuario y permitirle deshabilitarlas? (Creo que no, ya que el atacante también podría hacerlo)
pregunta grochmal 20.02.2017 - 22:08
fuente

2 respuestas

2

No, no funcionaría. Es de esperar que no tenga la contraseña en su base de datos, por lo que no puede simplemente cambiar el hash sin bloquear al usuario. Para cambiar el hash, debe esperar a que el usuario se autentique, de modo que tenga la contraseña. Con la contraseña usted crea otro salt, hash ambos, guarde el hash y tire la contraseña. Pero eso no es lo que querrás hacer.

Es posible que las sesiones no estén vinculadas a la contraseña, sino que se guarden en una tabla en algún lugar, por lo que es mejor deshacerse de todos los tokens de la sesión Y forzar al usuario a cambiar la contraseña, invalidando la actual y enviando una mensaje de banda (correo electrónico, sms) con uno nuevo o un enlace a una página de cambiar su contraseña .

    
respondido por el ThoriumBR 20.02.2017 - 22:33
fuente
2

La idea detrás de la violación es que un hacker ahora tiene su contraseña. Lo consiguió al usar cualquiera de una serie de ataques (arco iris, diccionario, fuerza bruta) en una imagen de la base de datos de Yahoo que obtuvo por medios ilícitos.

Si él tiene su contraseña, cambiar la sal no hará nada. Él no necesita tu sal. Él no necesita tu hash. Todo lo que necesita es tu contraseña.

Cuando él proporcione esa contraseña en la página de inicio de sesión, Yahoo buscará felizmente la última sal para él, y calculará el hash de contraseña usándola. Desde allí se iniciará sesión con acceso a su cuenta.

Además, no es posible que Yahoo cambie la sal y regenere el hash de la contraseña, a menos que tengan la propia contraseña en texto sin formato. El no debería. Si lo hacen, el pirata informático aún tiene la contraseña, que no ha cambiado, y aún puede iniciar sesión como usted.

    
respondido por el John Wu 21.02.2017 - 04:47
fuente

Lea otras preguntas en las etiquetas