Limitación de solicitudes y bloqueo de cuentas
Examine las defensas del servidor y del protocolo que hacen impracticables los ataques de fuerza bruta en la práctica.
Limitación de solicitudes y bloqueo de cuentas es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.
Fuerza bruta en línea frente a fuera de línea
Los ataques de fuerza bruta en línea autentican al atacante frente a sistemas activos a través de una red. Cada intento requiere al menos un viaje de ida y vuelta, normalmente de 50 a 500 ms, lo que limita al atacante a unos pocos miles de intentos por minuto como máximo. Esto es muchísimo más lento que romper hashes sin conexión. La limitación de tasa y el bloqueo de cuentas aprovechan esta limitación para hacer que la fuerza bruta en línea resulte prácticamente imposible en un plazo realista.
Bloqueo de cuenta tras N intentos fallidos
La defensa más sencilla contra la fuerza bruta en línea consiste en bloquear una cuenta después de un número definido de intentos consecutivos fallidos de inicio de sesión, normalmente entre 5 y 10. La cuenta puede bloquearse durante un periodo fijo, como 15 minutos, o hasta que un administrador la desbloquee manualmente. El bloqueo convierte un ataque de fuerza bruta en línea, cuyo objetivo es descifrar una contraseña, en un ataque de agotamiento contra la disponibilidad de la cuenta.
Riesgo de denegación de servicio por bloqueo
El bloqueo de cuentas crea una vulnerabilidad de denegación de servicio: un atacante que conozca nombres de usuario válidos puede bloquear todas las cuentas enviando 5 intentos fallidos a cada una. Esta es una consecuencia inherente a las políticas de bloqueo. Algunos sistemas utilizan un bloqueo temporal de 5 minutos en lugar de un bloqueo permanente para reducir el impacto de los ataques DoS. Otros no bloquean las cuentas, sino que utilizan una espera exponencial para ralentizar a los atacantes sin facilitar ataques DoS.
CAPTCHA como disuasión para bots
CAPTCHA, una prueba de Turing pública y completamente automatizada para diferenciar ordenadores de humanos, requiere resolver un desafío visual o de audio que resulta fácil para las personas, pero difícil para los bots automatizados. Google reCAPTCHA v3 utiliza análisis de comportamiento en lugar de desafíos explícitos y asigna una puntuación de riesgo basada en los movimientos del ratón, los tiempos y el historial de navegación. CAPTCHA ralentiza significativamente la fuerza bruta automatizada sin bloquear las cuentas.
Espera exponencial para intentos fallidos
La espera exponencial aumenta el tiempo de espera entre los intentos de inicio de sesión permitidos después de cada fallo: 1 segundo tras el primer fallo, 2 segundos tras el segundo, 4 segundos tras el tercero y así sucesivamente. Después de 10 fallos, la espera supera los 17 minutos. Esto hace que la fuerza bruta sea extremadamente lenta sin bloquear por completo la cuenta, evita el riesgo de denegación de servicio y, al mismo tiempo, disuade los ataques automatizados.
Limitación de tasa basada en IP
La limitación de tasa basada en IP bloquea o somete a desafíos los intentos de inicio de sesión procedentes de direcciones IP que superan un umbral de fallos por unidad de tiempo. Si una IP envía 50 inicios de sesión fallidos en un minuto, los intentos posteriores desde esa IP se bloquean durante una hora. Los ataques distribuidos que utilizan botnets con miles de direcciones IP diferentes pueden eludir los límites simples por IP, por lo que requieren una detección más sofisticada del ritmo de los intentos mediante múltiples señales.
TOTP como defensa contra la fuerza bruta
Las contraseñas de un solo uso basadas en el tiempo (TOTP, utilizadas en Google Authenticator y aplicaciones similares) generan un código de 6 dígitos válido durante 30 segundos. Aunque un atacante consiga probar por fuerza bruta la contraseña correcta, también necesitará el código TOTP actual. Con solo 1 millón de códigos posibles de 6 dígitos y una ventana de 30 segundos, la ventana práctica para realizar fuerza bruta contra TOTP es mínima. La MFA elimina prácticamente la fuerza bruta de contraseñas como vector de ataque viable.
El factor de coste de bcrypt ralentiza el cálculo de hashes
bcrypt es una función de hash de contraseñas con un factor de coste configurable. Con un coste de 10, bcrypt tarda unos 100 ms en calcular el hash de una sola contraseña. Con un coste de 12, tarda unos 400 ms. Esto significa que un atacante que rompa hashes de bcrypt sin conexión puede probar como máximo unos cientos de contraseñas por segundo en una GPU, frente a miles de millones por segundo con MD5. El factor de coste puede aumentarse a medida que mejora el hardware para mantener constante la dificultad de romper los hashes.
Dureza de memoria de Argon2
Argon2 ganó la Password Hashing Competition en 2015 y es la recomendación vigente para los sistemas nuevos. Su propiedad clave es la dureza de memoria: requiere una cantidad configurable de RAM, normalmente entre 64 MB y 1 GB, para realizar el cálculo. Esto impide la aceleración mediante GPU y ASIC, porque estos dispositivos tienen un ancho de banda de memoria limitado. Un atacante con una GPU capaz de ejecutar miles de cálculos de bcrypt en paralelo solo puede ejecutar unos pocos cálculos de Argon2 debido a las limitaciones de memoria.
Reglas de WAF para el relleno de credenciales
Los firewalls de aplicaciones web pueden detectar ataques de relleno de credenciales identificando patrones en el tráfico de inicios de sesión fallidos: grandes volúmenes procedentes de una sola IP, intentos que utilizan listas de nombres de usuario comunes, una distribución geográfica anómala de los intentos de inicio de sesión y patrones temporales coherentes con herramientas automatizadas. Las reglas de WAF pueden bloquear, someter a desafíos o ralentizar el tráfico sospechoso antes de que llegue a la aplicación. Los WAF modernos integran fuentes de inteligencia sobre amenazas para reconocer rangos de IP conocidos de botnets.
API de HIBP para contraseñas expuestas en filtraciones conocidas
Integrar la API de Have I Been Pwned en los flujos de cambio de contraseña impide que los usuarios establezcan contraseñas que aparecen en bases de datos de filtraciones conocidas. La API utiliza k-anonimato: solo se envían los 5 primeros caracteres hexadecimales del hash SHA-1, lo que protege la privacidad del usuario y permite compararlos con 850 millones de contraseñas conocidas como expuestas. Bloquear las contraseñas expuestas en filtraciones durante el registro elimina una parte significativa de la vulnerabilidad frente al relleno de credenciales.
Bloqueo de cuenta
¿Cuál es el principal riesgo de seguridad que crean las políticas estrictas de bloqueo de cuentas que las bloquean permanentemente?
Limitación de tasa y bloqueo de cuenta: conclusiones clave
La fuerza bruta en línea está limitada por la latencia de la red; la limitación de tasa y el bloqueo de cuentas aprovechan esta limitación. El bloqueo de cuentas detiene la fuerza bruta, pero permite realizar ataques de denegación de servicio. La espera exponencial y CAPTCHA mitigan ambos riesgos. La limitación de tasa basada en IP detecta los ataques procedentes de una única fuente. La MFA con TOTP derrota eficazmente la fuerza bruta de contraseñas. bcrypt y Argon2 ralentizan la ruptura de hashes sin conexión. La API de HIBP bloquea las contraseñas expuestas en filtraciones conocidas durante el registro.
Preguntas frecuentes
¿La lección «Limitación de solicitudes y bloqueo de cuentas» es gratis?
Sí — el texto completo de «Limitación de solicitudes y bloqueo de cuentas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Limitación de solicitudes y bloqueo de cuentas»?
Examine las defensas del servidor y del protocolo que hacen impracticables los ataques de fuerza bruta en la práctica. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cryptology Academy?
No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Limitación de solicitudes y bloqueo de cuentas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?
Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Cómo funcionan los ataques de fuerza bruta
- Ataques de diccionario y tablas arcoíris
- Por qué importa la longitud de las claves criptográficas
- Limitación de solicitudes y bloqueo de cuentas