¿Cuánta información sobre el motivo de un inicio de sesión fallido debe proporcionar una aplicación web?

12

Después de un intento fallido de inicio de sesión, ¿debo informar al usuario sobre el motivo? O más generalmente, ¿cuánta información sobre el motivo de un intento de inicio de sesión fallido debe dar una aplicación web?

Es bastante obvio no informar al usuario acerca de una contraseña incorrecta solo, sino asociarla con el inicio de sesión, como "El correo electrónico o la contraseña son incorrectos" (¿no es así?). Pero comencé a preguntarme sobre cómo informar al usuario que la cuenta fue suspendida / prohibida. ¿Es demasiada información? Si entrego esta información, también proporciono "esta cuenta está registrada con este servicio". En consecuencia, si los correos electrónicos de los usuarios se utilizan como inicio de sesión, "este correo electrónico es válido".

Pero toda esta información que un atacante podría retirar del formulario de registro al intentar registrar diferentes correos electrónicos / inicios de sesión, a menos que la aplicación confunda el motivo de la creación de la cuenta sin éxito (simplemente 'No se pudo crear una cuenta con los datos proporcionados'), que no es la mejor idea desde un punto de vista de UX.

Teniendo eso en cuenta, volvamos al inicio de sesión fallido: si un atacante puede obtener información sobre el correo electrónico registrado con cierto servicio , ¿no es estúpido simplemente decir 'El correo electrónico o la contraseña son incorrectos'? Los usuarios malintencionados / poderosos tendrán esta información de cualquier manera, y un usuario no calificado tiene que revisar el inicio de sesión / correo electrónico y la contraseña nuevamente.

Al final, parece una situación de Lose-Lose ('No hay seguridad Win - UX Flaw').

ACTUALIZACIÓN:
Reconsideré dar información sobre una cuenta bloqueada: por supuesto, esta información se debe proporcionar después de proporcionar las credenciales correctas (y entonces no es un problema dar más información sobre el motivo del bloqueo de la cuenta, la fecha de vencimiento, etc.). así que está fuera de discusión.

ACTUALIZACIÓN2:
Considere esta pregunta como una pregunta sobre un error de diseño en wepapps. No estoy preguntando sobre medidas para evitar los ataques de fuerza bruta (CAPTACHS después de algunos intentos, bloqueando una IP determinada por unos minutos después de otros intentos, y así sucesivamente ...)

    
pregunta vandalizmo 11.03.2013 - 10:05
fuente

3 respuestas

12

Ok, veamos los diferentes escenarios posibles aquí

1) Muestra exactamente lo que está mal con el intento de inicio de sesión

Esto obviamente es una estupidez. Al mostrar exactamente lo que está mal con el intento de inicio de sesión, está ayudando a un atacante a reducir su ataque. Esta es la razón por la que la gente recomienda mostrar un mensaje más genérico como Nombre de usuario / contraseña no válido .

Ver: " Nombre de usuario y / o contraseña no válidos ": ¿por qué los sitios web muestran este tipo de mensaje en lugar de informar al usuario cuál fue el incorrecto?

2) Mostrar un mensaje de error genérico

Muestra un mensaje como Nombre de usuario / contraseña no válido . La gente sugiere correctamente que un atacante puede simplemente extraer información de nombre de usuario de su formulario de registro. Un posible contraataque es simplemente tener un CAPTCHA en su formulario de registro. Si bien los CAPTCHA pueden romperse, esto no es trivial si un atacante simplemente está ejecutando un script automatizado contra su sitio web. Un CAPTCHA en un formulario de registro también es mucho menos molesto que un CAPTCHA en un formulario de inicio de sesión.

Si su nombre de usuario es información pública, como Facebook, este es obviamente un consejo no válido.

3) Mostrar información sobre cuentas bloqueadas

No veo una razón válida por la que esto deba mostrarse a un usuario que intenta iniciar sesión. Envíeles un correo electrónico informándoles que su cuenta ha sido bloqueada si es necesario. No se moleste en mostrarles esa información en la pantalla de inicio de sesión.

Puede usar eso para su ventaja contra los ataques de bots contra su sitio bloqueando direcciones IP que intentan repetidamente iniciar sesión en cuentas bloqueadas.

Recuerde, nada de lo que haga puede evitar que un atacante intente atacar su sitio. Lo que hacen tales medidas es simplemente hacer que sea mucho más difícil llevar a cabo un ataque exitoso. Si sus usuarios tienen contraseñas ridículamente débiles, sus cuentas se verán comprometidas por un determinado atacante con el tiempo.

    
respondido por el Ayrx 11.03.2013 - 10:19
fuente
1

Lo siento, pero no puedo aceptar Sus respuestas porque simplemente están repitiendo lo que creo que es "conocimiento general" (o peor, "estándar de la industria") sin dudarlo. Entonces, yo mismo investigué un poco, leí algunos temas sobre este tema y descubrí cómo funcionan los buenos sitios web con este asunto ...

Y parece que el sitio que estamos usando para discutir este tema (y creo que es uno de los mejores sitios sobre seguridad de TI) está siguiendo lo que estaba pensando:]

Intentando registrar un correo electrónico ya utilizado:
enlace

Intentando iniciar sesión con un correo electrónico válido pero con una contraseña incorrecta:
enlace

Intentando iniciar sesión con un correo electrónico no válido:
enlace

Viendo cómo funciona este sitio y teniendo en cuenta lo que estaba triste en otros temas, creo que la verdadera respuesta a mi pregunta

¿Cuánta información sobre el motivo del inicio de sesión fallido debe proporcionar la aplicación web?

es:

No se puede obtener más de uno utilizando diferentes partes del sitio web como invitado

Entonces, si tengo un formulario de registro en mi sitio web que revela información sobre las cuentas registradas, no sirve de nada ofuscar esta información en el formulario de inicio de sesión.

Pero si el sitio web no tiene un formulario de registro (es realmente un sitio realmente cerrado), me atrevería a ofuscar el máximo de información y, después de ingresar las credenciales no válidas, solo respondió "No se pudo iniciar sesión"

ACTUALIZACIÓN:
Por supuesto que no fue mi intención discutir solo sobre este tema o algo así. Creía que el enfoque común para simplemente decir 'Correo electrónico y / o contraseña no válidos' es simplemente dar sentido de falsa seguridad tanto para el usuario como para el administrador de dicho sitio web.

    
respondido por el vandalizmo 11.03.2013 - 14:00
fuente
0

Nunca le diría al usuario lo que salió mal, excepto que "algo" salió mal. Inténtalo de nuevo.

La razón es que una vez que le dices a un pirata informático potencial qué parte es incorrecta, están a mitad de camino. Adivinando una contraseña o la dirección de correo electrónico.

Si el usuario falla, déjalos tener, por ejemplo. 3 intentos. Si falla, pídales cortésmente que vuelvan a revisar los detalles de su cuenta y si se dan por vencidos, siempre proporcione los medios para restablecer la contraseña, no para volver a enviarlos.

Simplemente permítales ingresar el correo electrónico y luego enviarles un token de restablecimiento que expira automáticamente después de un período definido como 4 u 8 horas + incluir en el correo POR QUÉ se envió este correo y tal vez agregar un enlace en el correo para informar esto como un "token no solicitado" para que podamos marcar el inicio de sesión e información del cliente, como IP, para una mayor investigación si es necesario. Debido a que ya está en los registros, pero ahora los usuarios nos han dicho que prestemos especial atención a este intento fallido, quizás haya un patrón de esta IP o algo así.

Otra cosa que hacen muchos sistemas de inicio de sesión, incluidas las ventanas, es que aumenta el retraso entre entradas permitidas. Entonces, si comete un error 3 veces o más, de repente tardará unos segundos en obtener el aviso de inicio de sesión. Esto solo evitará la mayoría de los intentos de "fuerza bruta", ya que dificultará la verificación, por ejemplo. 1000 contraseñas dentro de una hora.

Entonces, la conclusión es:

NO DIGA LO QUE FALTARON en los detalles, simplemente diga: "lo siento, pero la información proporcionada no coincide con ninguno de nuestros registros. ¿Podría verificar si ingresó sus datos correctamente? Si perdió los detalles de su cuenta, haga clic allí para restablecer la contraseña de su cuenta ".

El enlace lo llevará a un nuevo mensaje en el que solicita el correo electrónico, o simplemente usará el correo electrónico ingresado si eso ya es parte del inicio de sesión.

    
respondido por el BerggreenDK 11.03.2013 - 12:16
fuente

Lea otras preguntas en las etiquetas