Mi pregunta es sobre ataques de fuerza bruta en línea, que intentan autenticarse en el sitio web.
1) En el primer caso, si las solicitudes provienen de la misma ip, creo que esto es relativamente fácil, ya que después de algunos intentos fallidos podemos bloquear la ip por algún tiempo o mostrar un captcha, o aumentar la demora entre los intentos de inicio de sesión etc.
2) segundo caso, consideremos que el atacante está usando proxy, realizando solicitudes desde diferentes direcciones IP, pero apuntando a una cuenta específica, no estamos seguros de cuál es la mejor práctica aquí, pero tal vez muestre captcha solo para esta cuenta si hubiera muchos intentos fallidos de diferentes ips, o tal vez considerando los ips incluidos en la lista blanca del usuario. También advirtiendo de alguna manera al propietario de la cuenta también, que fueron inicios de sesión fallidos enlace
3) De todos modos, creo que los 2 ataques anteriores son más o menos posibles de descubrir. Pero para el tercer caso, si el atacante está usando múltiples ips (digamos miles o más) dirigiéndose a diferentes cuentas, pero usando la misma contraseña, ya que existe una mayor posibilidad de que al menos un usuario tenga esa contraseña. En este caso, si el atacante realiza algunas solicitudes por IP durante un tiempo razonable, tal vez podría verificar miles de cuentas para esa contraseña elegida sin ser detectado / bloqueado.
Ahora, ¿cuáles son las ventajas y desventajas de temporalmente, digamos a nivel de horas o días, guardar (en la base de datos) los hashes de contraseña de los intentos fallidos de inicio de sesión (con una sola aplicación - sal del lado), y si La contraseña que se solicitó mucho durante las últimas x horas / días requiere un captcha o algún otro tipo de defensa, incluso antes de verificar la contraseña.
Además, consideremos que las políticas de contraseña se aplican durante el registro, por ejemplo, contraseñas de 6 u 8 caracteres de longitud, lo que no permite el uso de contraseñas conocidas. Además, para el hashing de contraseñas habitual, estoy usando sal única por usuario (y usando blowfish o sha512), pero desea usar sal única para contraseñas fallidas y sha 256 o 384 para ser más rápido.
gracias