Actualmente estoy buscando la mejor manera de evitar los ataques de fuerza bruta en el portal web de mi software y se me ocurrió la siguiente idea:
- 3 intentos de inicio de sesión sin ningún desafío visual
- después de 3 intentos fallidos, muestre Google reCaptcha
- permite otros 3 intentos pero ahora tienes que hacer clic en el captcha cada vez
- si los últimos 3 intentos fallaron nuevamente, bloquee la cuenta
Mi idea solo tiene grandes inconvenientes y espero que puedas dar un consejo:
- ¿Qué sucede si el nombre de usuario cambia en cada intento de inicio de sesión? cual ¿Puedo bloquear la cuenta después de 6 intentos?
- ¿Cómo debo registrar los 3 intentos fallidos (no depende de si son 3 intentos en una cuenta o un intento en 3 cuentas diferentes) antes de mostrar el captcha?
- IP? Pero, ¿qué pasa si muchas de las personas de la red de una empresa utilizan el software a la vez?
- ¿Agente de usuario del navegador? ¿Qué pasa si alguien que intenta el ataque de fuerza bruta simplemente cambia el agente de usuario en cada intento de inicio de sesión?
- ¿Cookies?