¿Cómo puedo diseñar una función de restablecimiento de contraseña, que no reduce la seguridad para los usuarios que pueden recordar su contraseña?

2

Tenemos una aplicación web para la cual algunos usuarios desean tener una función de restablecimiento de contraseña.

No quiero imponer un nivel particular de seguridad para los usuarios. Entonces, si un usuario elige una contraseña segura que pueda recordar y luego almacena datos confidenciales en nuestro sistema, queremos mantener esos datos seguros.

Al mismo tiempo, hay un flujo constante de usuarios que olvidan su contraseña y no quieren preocuparse por la seguridad, de hecho, ni siquiera quieren que se les haga preguntas sobre la seguridad.

¿Cómo puedo crear una función de restablecimiento de contraseña para el segundo grupo de usuarios sin reducir la seguridad para el primer grupo de usuarios?

    
pregunta kasperd 10.08.2014 - 14:28
fuente

1 respuesta

1

Tener un valor booleano configurable por el usuario para "restablecer permitido".

Si tiene su correo electrónico / algún medio fuera de banda para comunicarse con el usuario final

Cuando el usuario haga clic en el enlace "Olvidé mi contraseña", si el "restablecimiento permitido" es verdadero, envíe un enlace de restablecimiento de contraseña a la cuenta de correo electrónico asociada con la cuenta de usuario. Asegúrese de utilizar un servicio de correo electrónico que intente primero el cifrado de extremo a extremo (de modo que, si su servidor de correo lo admite, el enlace nunca se envíe de forma simple. Y si su servidor no lo admite, no lo son). t negó el enlace).

Límite de velocidad la cantidad de veces que se puede enviar un correo electrónico a la misma cuenta (por ejemplo, 2 restablecimientos por día) para que alguien no pueda usarlo para enviar correo no deseado a la cuenta. No permita que el usuario sepa si se ha enviado un correo electrónico o si la cuenta que mencionaron existe.

Si no hacen clic en el enlace para restablecer la contraseña, nada debería cambiar. Si hacen clic en él después de un cierto período de tiempo de espera, o si entre el correo electrónico que se envía y el momento en que se hace clic en "reiniciar permitido" se ha establecido en falso, no debería ocurrir nada.

Si no tiene un medio de comunicación fuera de banda

Si se configura el "restablecimiento permitido", use un mecanismo de respuesta-desafío, como preguntas de seguridad configurables por el usuario. Si responden las preguntas correctamente, permítales ingresar una nueva contraseña. Es posible que también desee considerar el hashing de las respuestas.

Por supuesto, también puede usar algo como TOTP , pero es probable que lo hagan. t tiene la contraseña, tampoco tendrán la clave necesaria para esto.

De cualquier manera

Realice todo el intercambio a través de un canal encriptado. A menos que esté intentando impedir que la NSA robe credenciales, SSL debería ser suficiente.

    
respondido por el Parthian Shot 10.08.2014 - 17:51
fuente

Lea otras preguntas en las etiquetas