¿Cuál es la mejor manera de protegerse contra un ataque de contraseña de fuerza bruta?

No una, pero una combinación de técnicas es una buena forma de prevención confiable de la fuerza bruta:

Implementación a nivel de código:

Algunas verificaciones simples a nivel de código incluyen

  1. bloqueos de cuenta después de cierto número de intentos incorrectos (como los utilizados por los bancos).
  2. huella digital del dispositivo y acceso tras la aprobación del dispositivo (seguido de minoristas electrónicos localizados que usan números de teléfono móvil)
  3. Limitación de velocidad basada en IP en páginas de inicio de sesión

CAPTCHA:

Admito que los odio (como un millón de otros), pero CAPTCHA resuelve el problema hasta cierto punto para los piratas informáticos novatos.

InfiSecure (software de protección de Bot):

Una plataforma robusta de protección contra bots proporciona protección contra la fuerza bruta al deshabilitar que los bots cometan fraudes en su sitio web. La ventaja de invertir en una buena plataforma de protección de bots es que no solo protege el sitio web contra ataques de fuerza bruta, sino que también protege al sitio web de todos los demás tipos de fraudes de bots, incluidos el raspado de web, el spam, los abusos de bot y otros.

Usar múltiples formas de bloquear la fuerza bruta es una buena idea, ya que comprometer la cuenta del usuario puede ser un movimiento desastroso para una marca. Para comenzar, asegúrese de que haya una buena cantidad de comprobaciones a nivel de código. Explore la solución de protección contra bots si desea tener protección pagada contra bots en el sitio web.

[ Divulgación completa : soy fundador de InfiSecure, la robusta plataforma de protección contra bots. Mis puntos de vista son una experiencia directa de trabajar con cientos de sitios web que requieren protección bot]

A través de su propia interfaz: use captchas, retrasos forzados y cuentas bloqueadas después de un cierto número de intentos incorrectos.

Si el atacante ha obtenido acceso a su base de datos y está intentando desconectar los hashes fuera de línea: use un algoritmo de hash que sea deliberadamente lento y difícil de acelerar incluso en hardware, como bcrypt. El “MD” en MD5 significa “Message Digest”, y MD5, SHA1 y sus amigos fueron diseñados para tomar grandes cantidades de datos y, por lo tanto, son muy rápidos. Es posible probar miles de millones de permutaciones por segundo en hardware moderno. Por otro lado, bcrypt puede tardar cien milisegundos o más para generar un hash, lo que hace casi imposible romper la fuerza bruta.

Desde el punto de vista de la implementación, una buena manera de lograr una protección simple de la fuerza de estrangulamiento / fuerza bruta es mediante el uso de la funcionalidad incr () de memcache. Almacena claves basadas en IP y / o nombres de cuenta y las incrementa en ciertos eventos (inicio de sesión, por ejemplo). Ponga un TTL en la clave para crear datos de series temporales y luego aplique su política en función de los umbrales. Por ejemplo, 10 inicios de sesión en 1 minuto = rechazar intentos durante x minutos, 100 intentos de inicio de sesión en 1 minuto = bloquear la cuenta o intentar desde esa IP. Esta implementación de contador simple también se puede extender para mirar botnet como tráfico con un poco más de trabajo.