He visto varias preguntas sobre este tema, pero hay un par de preguntas que no se han formulado. Si el usuario olvida su contraseña, me gustaría que puedan restablecerla solo con su dirección de correo electrónico (es decir, no hay preguntas/respuestas de seguridad). La contraseña se almacena como un hash salado, por lo que no hay recuperación posible. En cambio, me gustaría que el usuario ingrese una nueva contraseña después de confirmar que ha solicitado un restablecimiento.Restablecer la contraseña de ASP.NET: ¿problemas de seguridad?
Un método común que se ha mencionado es simplemente:
1) Crear un GUID/criptográficamente segura aleatoria de números aleatorios
2) Enviar una URL única que contiene el número aleatorio de correo electrónico del usuario abordar
3) Cuando se confirma, se le pide al usuario a cambiar la contraseña
Sin embargo, ¿no está esto abierto a un ataque MITM
? Si el envío de contraseñas temporales a través de Internet a un correo electrónico es inseguro, ¿cuál es la diferencia entre hacer eso y simplemente enviar una URL única a la que el atacante pueda navegar? ¿He perdido un paso clave en alguna parte que hará que este sistema sea más seguro (o existe una forma mejor de restablecer la contraseña)?
Gracias
me gusta la idea de tratar de asegurar el enlace de clic de confirmación viene del mismo equipo que el inicial solicitud de restablecimiento –
En cuanto al aspecto de IP, ¿seguramente esa parte sería irrelevante? Como atacante, yo diría que olvidé la contraseña yo mismo, por lo tanto, la solicitud de restablecimiento de contraseña proviene de mi (el atacante) PC. Al realizar un ataque MITM, interceptaría el correo electrónico, haré clic en el enlace y cambiaré la contraseña, ya que sigue viendo mi dirección IP. – keyboardP
Posiblemente, pero esto supone que el atacante ya ha comprometido la cuenta de correo electrónico también. La IP solo sería un pequeño subconjunto de información de identificación. Podría haber otras métricas aplicadas que aumentarían la complejidad del hash. La clave sería no depender de ninguna métrica ya que cada una debe estar comprometida. Cuanto más se requiera, más difícil será pasar. En un punto, se convierte en una cuestión de esfuerzo vs. resultado. –