Iniciar sesión en un usuario después de restablecer la contraseña a través del enlace

16

Digamos que el flujo de funcionalidad de restablecimiento de contraseña es el siguiente:

  1. El usuario envía la dirección de correo electrónico utilizada para su cuenta.
  2. Se envía un correo electrónico a esa dirección de correo electrónico con un enlace con un hash para restablecer la contraseña.
  3. Al hacer clic, un usuario puede restablecer la contraseña.

Veo que los sitios web redirigen a un usuario a una página de inicio de sesión después de completar el restablecimiento de la contraseña. ¿Existe algún riesgo de seguridad en el inicio de sesión del usuario automáticamente después de completar el restablecimiento de la contraseña?

    
pregunta Dmitry 18.02.2013 - 19:52
fuente

6 respuestas

7

No hay diferencia. Si un hacker llegó al enlace, entonces puede restablecer la contraseña e iniciar sesión nuevamente. No le importa, él no puede más abusar de la función.

La única vez que tiene sentido hacerlo es si utilizas alguna forma de autenticación de múltiples factores . Por supuesto, en ese caso, uno esperaría que también incluyera el bit multifactor en el flujo de trabajo de restablecimiento.

    
respondido por el Manishearth 18.02.2013 - 20:16
fuente
12

Desde un punto de vista de seguridad, si el "restablecimiento de contraseña" inicia sesión automáticamente o no es neutral. Ninguno de los dos comportamientos es inherentemente más seguro que el otro. Supongo que la mayoría de los sitios hacen lo que fue más sencillo de implementar en el lado del servidor.

Un punto a considerar es que la seguridad se logra mientras todos cooperen; en particular, el principio de menos sorpresa es de suma importancia. Ese principio, aplicado a la seguridad, significa que hay problemas cuando las cosas no ocurren como lo espera el usuario humano. En este caso, el usuario humano puede o no esperar iniciar sesión después de un reinicio. Veamos qué pasa si el usuario está "sorprendido":

  • Si el usuario esperaba iniciar sesión, y no lo está, entonces la necesidad de ingresar su contraseña otra vez puede molestarlo un poco. Sin embargo, las consecuencias se detienen ahí. En particular, el requisito de tener que ingresar la contraseña por tercera vez no inducirá al usuario a elegir una contraseña más débil pero más fácil de escribir, porque, por definición, no estaba al tanto de esta tercera entrada cuando eligió la contraseña.
  • Si el usuario no esperaba iniciar sesión después de restablecer la contraseña y aún está conectado, entonces ese usuario simplemente no lo notará que ha iniciado sesión, y sigue siéndolo. Esto contradice el control de las sesiones abiertas por parte del usuario (la razón por la cual la mayoría de los sitios tienen un botón de "cierre de sesión" destacado).

En ese sentido, se puede hacer un caso (bastante débil) contra al registrar al usuario automáticamente al restablecer la contraseña: las consecuencias de seguridad de un inicio de sesión no visto pueden ser peores que las consecuencias de una falta inesperada de inicio de sesión automático .

    
respondido por el Tom Leek 16.08.2013 - 16:05
fuente
5

Cada vez que escribe un código, debe pensar en sí mismo: "¿Cómo puede un atacante abusar de esta funcionalidad?" No tener este diálogo interno es muy peligroso ya que el programador probablemente expondrá una funcionalidad peligrosa. No entender completamente la perspectiva del atacante conducirá a observar vulnerabilidades que nunca podrían existir.

Entonces, en este caso:

¿Cómo podría beneficiarse la posibilidad de un atacante de iniciar sesión automáticamente después de haber restablecido la contraseña de una cuenta de víctima? En este caso, claramente el daño ya está hecho, e iniciar sesión automáticamente en un usuario es lo que menos le preocupa.

    
respondido por el rook 18.02.2013 - 20:13
fuente
3

Probablemente sea solo para confirmar que eligió la contraseña correcta, ¿qué sucede si navega fuera de la página de contraseña en el sitio?

Normalmente, cuando se olvida una contraseña, se genera un token de un solo uso (a menudo un enlace) que le permite cambiar su contraseña y luego iniciar sesión.

Si inmediatamente inician sesión con un token único después del cual puedes cambiar tu contraseña, es un poco extraño pero no menos seguro. Después de todo, si puede cambiar la contraseña, puede iniciar sesión fácilmente de todos modos.

Lo importante es verificar si, después de usar el token, se invalida. Si el token le permite cambiar su contraseña una y otra vez, entonces existe un problema de seguridad.

    
respondido por el Lucas Kauffman 16.08.2013 - 14:56
fuente
2

Si cambia su contraseña, todas sus sesiones de inicio de sesión existentes podrían borrarse, por lo que un villano que tenga su contraseña también se desconectará.

El hecho de que no inicies sesión inmediatamente después, o de que no conserven tu sesión actual podría ser solo una pereza del programador, o lo que dijo Lucas.

    
respondido por el copy 16.08.2013 - 15:58
fuente
0

Suponiendo que el enlace no revele ninguna información de nombre de usuario (que no debería), y el nombre de usuario no es la dirección de correo electrónico del usuario (que no debería ser, pero a veces lamentablemente lo es), luego poder restablecer "el de alguien" la contraseña no será de ningún beneficio para el atacante, a menos que el sistema los inicie automáticamente. La autenticación es el método preferido, pero el riesgo es relativo a la seguridad requerida del sistema.

    
respondido por el Chris 01.07.2013 - 15:17
fuente

Lea otras preguntas en las etiquetas