Una política consistente de "no revelar las direcciones de correo electrónico de los miembros" [duplicar]

1

Los desarrolladores son dogmáticos al tener un "nombre de usuario no válido o contraseña" en las pantallas de inicio de sesión; nuestras aplicaciones no deben revelar si alguien es miembro dado una dirección de correo electrónico.

Pero hay otras dos formas en que nuestra aplicación puede revelar un miembro:

  1. la página de registro devuelve un " este correo electrónico fue registrado por otra persona " (a menudo, este es un punto final dedicado para Ajax)
  2. la página de restablecimiento de contraseña tiene un " su enlace ha sido enviado a su correo electrónico " o " siempre que el correo electrónico no exista en nuestros registros "

¿Por qué estamos solo preocupados por la pantalla de inicio de sesión que revela la membresía? ¿Deberíamos tapar estos agujeros también?

El " correo electrónico proporcionado no existe en nuestros registros " en la página de restablecimiento de contraseña es útil cuando ingresamos un correo electrónico incorrecto o nos registramos con una dirección de correo electrónico incorrecta. Ejemplo: Me llamo Raj, me he registrado incorrectamente con [email protected] (mal escrito J) y trato de enviar una solicitud de restablecimiento a [email protected] .

    
pregunta aitchnyu 13.10.2014 - 10:13
fuente

2 respuestas

2

Si se supone que este es un sistema seguro en esa medida y como la dirección de correo electrónico se divulga en otra parte, los desarrolladores podrían hacer que el nombre de usuario sea un número generado aleatoriamente en lugar de la dirección de correo electrónico del usuario. Esto cierra la brecha de fuga de información.

Por ejemplo, para un nombre de usuario numérico generado:

  • Inicio de sesión fallido: "Nombre de usuario incorrecto"
  • Contraseña fallida: "Contraseña incorrecta"
  • Ya está registrado: Este error no se producirá con una clave de nombre de usuario sustituto a menos que tenga una política de la compañía que indique que las personas (por ejemplo, en una familia) no pueden usar la misma dirección de correo electrónico.
  • Restablecimiento de la contraseña (por nombre de usuario): La dirección de correo electrónico no se revela, ya que el mensaje puede decir "El enlace de restablecimiento se envió a la dirección de correo electrónico asociada con este nombre de usuario".
  • Restablecimiento de la contraseña (por dirección de correo electrónico): "El enlace de restablecimiento se ha enviado a esta dirección de correo electrónico para todas las cuentas asociadas con esta dirección de correo electrónico".

Además, la falacia de la validación del campo de inicio de sesión agrega solo unos pocos bits de entropía adicional a la seguridad general de la fuerza bruta al tiempo que reduce la facilidad de uso. Simplemente aumente los requisitos mínimos de longitud de contraseña para obtener el mismo efecto con sensatez. Se supone que existe un retraso exponencial en los intentos de contraseña en cualquier caso.

    
respondido por el LateralFractal 13.10.2014 - 10:46
fuente
0

Por lo general, existe un equilibrio entre la seguridad y la facilidad de uso. Como desarrollador web, debe decidir qué nivel de seguridad se requiere para su aplicación y lograr un equilibrio entre los dos.

Como lo señaló correctamente, existe un tratamiento inconsistente en la protección de las direcciones de correo electrónico en muchos sitios web. La razón es bastante simple:

  • Una página de inicio de sesión solo requiere una dirección de correo electrónico y una contraseña, lo que la hace bastante fácil de hacer varios intentos en poco tiempo.
  • Una página de registro tarda más tiempo en completarse manualmente.
  • Es posible implementar CAPTCHA en la página de restablecimiento de contraseña y página de registro para evitar la enumeración automatizada de direcciones de correo electrónico.

Al ocultar el hecho de que una dirección de correo electrónico ya está ocupada (en el registro), o de que una dirección de correo electrónico es incorrecta (al restablecer la contraseña), la consecuencia es que los usuarios legítimos que cometen un error de escritura no pueden registrarse , o restablecer su contraseña y no sabrían cuál es el problema. El costo es que pierde un cliente o aumenta la carga de trabajo de su mesa de ayuda, y agrega frustración a sus usuarios.

En el caso de mostrar un error de inicio de sesión genérico, siempre que la dirección de correo electrónico permanezca en la pantalla después de un intento fallido, no es difícil saber si la dirección de correo electrónico o la contraseña se ingresaron de manera incorrecta. El inconveniente de no saber lo que está mal es bastante intrascendente.

Si su requisito de seguridad es tan alto que las direcciones de correo electrónico deben se deben mantener en secreto, entonces nunca deben usarse en su sistema de autenticación. Prueba los nombres de usuario en su lugar.

    
respondido por el Question Overflow 13.10.2014 - 10:54
fuente

Lea otras preguntas en las etiquetas