¿Es útil tener un captcha en la pantalla de inicio de sesión?

25

Introduje recaptcha en la pantalla de inicio de sesión de un sistema.

Mi objetivo era todo sobre cosas de seguridad como ataques de bots / bots u otra cosa de ese tipo.

Los usuarios ahora lo odian, Algunos ni siquiera lo entendieron y tuve que eliminarlo.

Cuando miro a mi alrededor, no veo muchos sistemas con eso en la pantalla de inicio de sesión, la mayoría de las veces en otras formas como contáctanos o, a veces, como en el intercambio de pilas cuando quieres publicar.

Me hizo preguntarme si es una buena idea tenerlo en la pantalla de inicio de sesión.

    
pregunta meda 14.07.2015 - 17:23
fuente

9 respuestas

44

La forma en que he visto que algunos sistemas grandes lo hacen es requerir solo un captcha después de intentos de inicio de sesión fallidos secuenciales (es decir, restablecer el conteo después de un inicio de sesión válido). Si le preocupa el agrietamiento automatizado, puede poner el captcha en un número elevado de fallas, como 20, 50, 100 intentos fallidos. Casi ningún usuario legítimo verá el captcha, pero un ataque automático será golpeado por él.

¿Vale la pena agregar esta complejidad? Seguridad y UX son compensaciones. Debe encontrar la compensación correcta para su perfil de riesgo.

    
respondido por el rox0r 14.07.2015 - 18:02
fuente
5
  

Los usuarios ahora lo odian, Algunos ni siquiera lo entendieron y tuve que eliminarlo.

Aquí es donde tendrás que tomar la decisión entre usabilidad y seguridad. Aunque es útil tener un captcha en tus páginas de inicio de sesión, es increíblemente hostil para el usuario.

Mi mejor consejo sería registrar cada intento de inicio de sesión no válido en una base de datos, y antes de autenticar al usuario, verifique si esa IP ha intentado iniciar sesión X veces en la última hora.

También puede agregar algún tipo de sistema de falsificación de solicitudes entre sitios en cada página de inicio de sesión. Esto significa que en cada intento de inicio de sesión se generará un campo oculto con un token, lo que significa que un atacante tendría que realizar dos solicitudes para intentar iniciar sesión.

    
respondido por el Paradoxis 14.07.2015 - 18:17
fuente
5

Un captcha en una pantalla de inicio de sesión no tiene sentido. No me sorprende que sus usuarios lo odiaran. El propósito de los campos de captcha en los formularios es evitar que sean enviados por bots. Un bot no debería poder iniciar sesión a través de su pantalla de inicio de sesión, ya que no debería tener credenciales válidas. Si un bot puede adivinar credenciales válidas, entonces necesita aumentar la seguridad de la contraseña.

    
respondido por el user1751825 15.07.2015 - 03:59
fuente
4

Otra forma de atacar esto podría ser instalar un "honeypot". Este es un campo de entrada ordinario que se incluye en el HTML junto con los campos de inicio de sesión (nombre de usuario, contraseña), pero este campo adicional se oculta mediante CSS.

Normalmente, los bots intentarán ingresar texto en todos los campos que se muestran en el HTML, así que en PHP verifiqué que si el campo de honeypot no estuviera vacío, prohibiría esa IP.

(Esto fue para una página de inicio para un club de paracaidismo con una pequeña función de administrador para actualizar las fechas en las que vamos a saltar, etc. No recomendaría esto para aplicaciones sensibles)

    
respondido por el fluxmodel 15.07.2015 - 12:41
fuente
3

Los sistemas CAPTCHA están ahí para diferenciar entre bots automatizados y usuarios reales. Desafortunadamente, como se ha señalado, no son muy convenientes (en particular para usuarios discapacitados).

Si es "una buena idea" o no depende de su caso de uso, realmente, aunque no son muy eficientes con los inicios de sesión de los usuarios: no son muy útiles para evitar ataques de adivinación de contraseñas e implementar un limitador de velocidad en la aplicación más conveniente para el usuario mientras implementa un PIN TOTP proporciona una mejor seguridad.

Tener alguna forma de "prueba de trabajo" de su cliente podría ser una muy buena idea si va a gastar recursos del servidor para ellos y si estos recursos son limitados. Un caso de uso típico para dicha consulta es un sistema que realizará el trabajo para usuarios anónimos (por ejemplo, una aplicación de WHOIS basada en la web podría usar eso para preservar los recursos).

    
respondido por el Stephane 14.07.2015 - 18:00
fuente
3

Agregar un Captcha o ReCaptcha no es una solución, es simplemente un obstáculo tanto para los hackers como para los usuarios.

Tengo muy buena visión con mis gafas y, a veces, apenas puedo distinguir el texto de la imagen. Me imagino que alguien que niega su visión se va a enfurecer.

Todo lo que implementes debe tener un propósito específico o, de lo contrario, acabarás lanzando tartas al cielo con poo de relleno y estas tartas eventualmente llegarán directamente a tus usuarios.

Aquí hay algo para pensar:

1

Problema

  

Las cuentas de usuario se piratean debido a los intentos automáticos de fuerza bruta

Solución

  

Las cuentas ahora están bloqueadas después de 3 inicios de sesión fallidos

2

Problema

  

Se han revelado todas las cuentas de usuario y ahora un robot está tratando de forzar brutalmente todas las cuentas

     

Todas las cuentas se bloquean en cuestión de segundos debido a 3 inicios de sesión fallidos

Soluciones? Abundante, ¿pero incluso necesitamos llegar a este paso? ¿Esto es actualmente un problema?

    
respondido por el MonkeyZeus 14.07.2015 - 20:07
fuente
3

Piense por un momento lo que su captcha está tratando de lograr. Aquí está el objetivo que se me ocurre:

  • Evite que un ataque automatizado a gran escala se rompa en cuentas débiles

Esta es una manera de hacer eso que probablemente hará que sus usuarios estén más contentos:

  • Si una computadora inicia sesión con éxito (como Bob), configure una cookie en esa computadora para que el servidor sepa que la computadora obtiene 5 intentos gratuitos para iniciar sesión en la cuenta de Bob sin necesidad de capcha.

  • Si la computadora que intenta iniciar sesión es de la última IP conocida de Bob, conceda a esa ip 5 intentos gratuitos de iniciar sesión en la cuenta de Bob sin necesidad de capcha.

La idea aquí es que la suposición masiva de contraseñas generalmente se realiza desde computadoras o ips que no han iniciado sesión legítimamente en la cuenta.

Probablemente esto se puede mejorar combinándolo con ideas de otras respuestas en las que le das algunos "intentos gratis" a cuentas o ips.

    
respondido por el Patrick M 15.07.2015 - 17:41
fuente
2

Agregar un captcha después de 10 o 100 intentos fallidos es inútil, ya que la mayoría de los bots actuales tienen una cuenta deathbycaptcha, y la API para dbc es realmente fácil de usar. Entonces, mostrar un captcha cada segunda vez es algo bueno, creo.

    
respondido por el DemonSlayer 15.07.2015 - 15:35
fuente
0

Para evitar ataques de fuerza bruta, sería mejor hacer lo siguiente.

1) Asegúrese de que las contraseñas sean lo suficientemente complejas. Si se le da la oportunidad, muchos usuarios usarán contraseñas extremadamente simples, como su nombre, etc. Las contraseñas deben tener al menos 8 caracteres e incluir números, letras y mayúsculas y minúsculas.

2) Bloqueo de IP después de 5 intentos de inicio de sesión fallidos.

Puede que valga la pena agregar un campo captcha a la pantalla de recuperación de contraseña. Asegúrese de incluir suficiente texto para explicar a los usuarios cómo funciona.

    
respondido por el user1751825 22.07.2015 - 01:58
fuente

Lea otras preguntas en las etiquetas