Así funcionan los ataques de fuerza bruta
Por qué la longitud importa: ejemplos de cálculo y contramedidas.
En los ataques de fuerza bruta los atacantes intentan adivinar una contraseña mediante la prueba sistemática de todas las combinaciones posibles de caracteres. La idea subyacente es sencilla: probar el mayor número posible de combinaciones por segundo, idealmente en GPU o en sistemas distribuidos. También se habla de una búsqueda exhaustiva (búsqueda exhaustiva).
En la práctica, este tipo de ataques suele tener éxito porque muchas contraseñas son demasiado cortas , se limitan a pocos grupos de caracteres (solo letras) o aparecen en listas de palabras . Esto reduce drásticamente el espacio de búsqueda y facilita adivinarlas. Más importante aún: se distingue entre ataques online (contra formularios de inicio de sesión; aquí ayudan la limitación de intentos y el bloqueo de cuentas) y ataques offline (contra hashes de contraseñas robados; aquí la función hash y la solidez de la contraseña determinan el tiempo del ataque).
Descifrar contraseñas (offline) ≠ «desencriptar»
Las contraseñas no se desencriptan, sino que se almacenan como valores hash y después se buscan mediante adivinar + aplicar hash (fuerza bruta, ataques de diccionario o por máscara). La velocidad de cálculo del hardware moderno se sitúa en el orden de miles de millones por segundo (para algoritmos hash rápidos), por lo que las contraseñas hash largas y con algoritmos lentos (p. ej., Argon2, scrypt, PBKDF2, bcrypt) son decisivas.
Referencia histórica y actual: El proyecto RC5 de distributed.net demuestra la fuerza bruta de la búsqueda exhaustiva en un espacio de claves: 56 bits se resolvieron en 1997 tras 250 días, y 64 bits en 2002 tras 1.757 días. Actualmente, el estado del proxy para RC5-72 aprox. 2,38 billones de claves por segundo (a fecha de consulta de hoy). Esto es fuerza bruta de claves y no hash de contraseñas, pero ilustra hasta qué punto escala la potencia de cálculo distribuida.
Combinación y longitud de la contraseña
Los siguientes ejemplos muestran la influencia de la longitud y la selección de caracteres. Para ilustrarlo, se calcula con 2 mil millones de intentos por segundo (equipo individual muy potente; los valores reales varían mucho según el hardware y, en caso de ataque offline, el procedimiento de hash).
Grupos de caracteres típicos:
- Números (10: 0–9)
- Letras (52: A–Z y a–z)
- Caracteres especiales (≈ 32; depende del conjunto de caracteres permitido por el servicio)
El número de combinaciones posibles se obtiene de:
Importante: La tabla muestra el tiempo de búsqueda máximo. En promedio, el tiempo real se sitúa en torno a la mitad. Además, los ataques de diccionario, por reglas y por máscaras reducen considerablemente el espacio de búsqueda, mientras que los procedimientos lentos de hash de contraseñas reducen drásticamente la tasa efectiva.
| Passwort besteht aus | Mögliche Kombinationen (Formel) | Benötigte Zeit (bei 2 Mrd./s) |
|---|---|---|
| 5 Zeichen 3 Kleinbuchstaben, 2 Zahlen | (53) × 263 × 10217.576.000 | 0,009 Sekunden |
| 7 Zeichen 1 Großbuchstabe, 6 Kleinbuchstaben | (71) × 261+656.222.671.232 | ≈ 28 Sekunden |
| 8 Zeichen 4 Kleinbuchstaben, 2 Sonderzeichen, 2 Zahlen | (84) × (42) × 264 × 322 × 10219.653.623.808.000 | ≈ 2,73 Stunden |
| 9 Zeichen 2 Groß-, 3 Kleinbuchstaben, 2 Zahlen, 2 Sonderzeichen | (92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000 | ≈ 53 Tage |
| 12 Zeichen 3 Groß-, 4 Kleinbuchstaben, 3 Sonderzeichen, 2 Zahlen | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 | ≈ 115.591 Jahre |
| 14 Zeichen 4 Groß-, 4 Kleinbuchstaben, 3 Zahlen, 3 Sonderzeichen | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 | ≈ 455.812.388 Jahre |
Conclusión: Cada carácter adicional multiplica el espacio de búsqueda. La longitud supera a las reglas de complejidad, especialmente frente a Ataques offline – siempre que los servicios utilicen funciones hash lentas y adecuadas con Salt.
Protección frente a ataques de fuerza bruta
La medida de usuario más eficazBenutzer‑Maßnahme es una contraseña maestra larga y aleatoria o bien una frase de contraseña (p. ej., varias palabras aleatorias) – única para cada servicio. Password Depot ayuda a generarla y muestra un tiempo de ataque estimado que, además de la longitud y el conjunto de caracteres, también tiene en cuenta vulnerabilidades de diccionario.
- Activar MFA/2FA (p. ej., aplicación TOTP o token de hardware) – cuando sea posible, los Passkeys son aún mejores. Véase las indicaciones del BSI.
- No reutilice contraseñas. Cada cuenta necesita una contraseña propia y segura.
- Priorizar la longitud frente a la complejidad obligatoria. Los servicios deberían permitir contraseñas/frases de contraseña largas (mín. 64 caracteres) y bloquear las contraseñas comprometidas (lista negra).
- Funciones hash lentas del lado del servidor (p. ej., Argon2, scrypt, PBKDF2, bcrypt) con Salt y factores de trabajo adecuados; los hashes rápidos como MD5/SHA-1 no son apropiados para almacenar contraseñas.
- Rate limiting/throttling y bloqueos: Los ataques online deben frenarse mediante un número limitado de intentos fallidos, tiempos de espera progresivos y, en caso necesario, CAPTCHA.
Además, Password Depot dificulta los intentos de acceso online por fuerza bruta bloqueando brevemente el campo de entrada de la contraseña maestra tras introducir datos incorrectos, con un tiempo de espera creciente en caso de intentos fallidos repetidos.
Indicaciones prácticas para proveedores de servicios (equipos técnicos)
- Acepte todos los caracteres imprimibles, incluidos espacios/Unicode, y permita copiar y pegar.
- Implemente listas de bloqueo (contraseñas comprometidas o habituales) y limitación de velocidad con indicaciones claras para los usuarios.
- Guarde las contraseñas exclusivamente como valores con salt y hash con KDF lentas y revise periódicamente los factores de coste.
Fuentes adicionales
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – longitud, frases de contraseña, ataques offline (miles de millones de hashes/seg.) y concepto de limitación de velocidad.
- NIST SP 800–63B (Rev. 3) – entre otros, longitud mínima, permitir contraseñas largas (≥ 64), listas negras, permitir pegar; limitación de velocidad/throttling con un máximo de 100 intentos fallidos consecutivos.
- OWASP Password Storage Cheat Sheet – métodos adecuados (Argon2, scrypt, PBKDF2, bcrypt), salt/factores de coste.
- OWASP Authentication Cheat Sheet – directrices sobre introducción de contraseñas, longitud, listas negras y mecanismos de bloqueo.
- BSI: crear contraseñas seguras – p. ej., contraseñas largas y complejas, así como frases de contraseña; consejos prácticos.
- Prensa del BSI 31.01.2025 – sin cambios periódicos de contraseña forzados; priorizar 2FA/passkeys.
- distributed.net RC5 / estado actual del proxy – ejemplo ilustrativo de búsqueda exhaustiva y potencia de cálculo distribuida.
Crear contraseñas seguras
Descubra cómo crear contraseñas que resistan ataques de fuerza bruta.
Consejos para contraseñas seguras