Fortaleza de Contraseña — Guía NIST, zxcvbn y Cribado de Filtraciones
La fortaleza de una contraseña se mide en bits de entropía — el logaritmo del número de adivinanzas que un atacante necesitaría de media. La NIST Special Publication 800-63B (Grassi et al., Rev 3, junio 2017; finalizada como 800-63-4 en julio 2025) marca la guía moderna: mínimo 8 caracteres con 64+ recomendados para secretos memorizados, ASCII imprimible + Unicode permitidos, sin rotación periódica forzada, sin reglas obligatorias de composición. El reemplazo es filtrar contra listas de filtraciones — la API Pwned Passwords de Have I Been Pwned usa k-anonymity (prefijo SHA-1 de 5 caracteres) para consultar 1.048.576 cubos de hash sin revelar tu contraseña. zxcvbn (Wheeler, USENIX Security 2016) va más allá del chequeo de longitud-y-clases: modela diccionarios reales de atacante (30k contraseñas comunes, patrones de teclado, fechas, sustituciones leet) y muestra el tiempo de cracking a diferentes velocidades de ataque. Para contraseñas nuevas, la lista larga Diceware de EFF (7.776 palabras = 6⁵, cada palabra ≈12,9 bits) permite una passphrase de 6 palabras con ~77 bits de entropía — resistente a fuerza bruta offline durante siglos en hardware actual. Todo el análisis aquí corre en tu navegador; no se envía nada a un servidor.
Cómo comprobar la fuerza de una contraseña
- Escribe o pega una contraseña en el campo. Todo el análisis corre localmente en tu navegador.
- La herramienta estima la entropía vía modelado estilo zxcvbn y marca patrones comunes (top-30k contraseñas, secuencias de teclado, fechas, sustituciones leet).
- Revisa el feedback (bits de entropía + tiempo de cracking a diferentes velocidades de ataque) y ajusta la contraseña hasta que la fortaleza cumpla tu política (NIST recomienda 64+ bits para secretos memorizados).
- Para máxima fortaleza, genera una passphrase Diceware de 6 palabras de la lista larga EFF (~77 bits) y guarda contraseñas únicas por sitio en un gestor — nunca reutilices.
Casos de uso comunes
- Evaluar una contraseña candidata antes de guardarla en tu gestor.
- Enseñar a miembros del equipo por qué los patrones predecibles (palabras de diccionario, cumpleaños, P@ssw0rd!) se crackean rápido a pesar de pasar los chequeos de longitud-y-clases.
- Fijar un objetivo mínimo de entropía (p.ej., 80 bits) para una política corporativa de contraseñas alineada con la guía NIST SP 800-63B / 800-63-4.
- Probar si una contraseña cumple las reglas de complejidad de un servicio antes de registrarte — y comprobar que las reglas no te empujan a un patrón predecible.
Preguntas frecuentes
¿Qué cambió NIST sobre las reglas de contraseñas en 2017?
NIST SP 800-63B (2017, finalizada Rev 4 julio 2025) eliminó la rotación periódica forzada y las reglas obligatorias de composición de caracteres — ambas empujaban a los usuarios a patrones predecibles. Reemplazadas por: filtrar contra listas de filtraciones, permitir passphrases, mínimo más largo (8+ chars, 64+ recomendado), todo ASCII imprimible + Unicode permitidos.
¿Qué mide zxcvbn que los checkers simples no miden?
zxcvbn (Wheeler USENIX 2016) modela diccionarios reales de atacante: 30k contraseñas comunes, palabras, patrones de teclado (qwerty), fechas, sustituciones leet. Salida `guesses_log10` y tiempo de cracking. Detecta 'P@ssw0rd!' como 'contraseña común + leet + símbolo añadido' — puntuación 1/4 vs el aprobado del checker ingenuo.
¿Debería comprobar mis contraseñas contra listas de filtraciones?
Sí — NIST 800-63B §5.1.1.2 lo recomienda. La API Pwned Passwords de HaveIBeenPwned usa k-anonymity: el cliente envía solo los primeros 5 caracteres del hash SHA-1, el servidor devuelve ~478 sufijos coincidentes de media (~800–1000 cuando el cliente activa la cabecera Add-Padding), de los 1.048.576 prefijos de 5 chars posibles. El servidor nunca aprende cuál es la contraseña concreta consultada.
¿Qué es Diceware y por qué es más fuerte que contraseñas cortas complejas?
Tira dados para elegir palabras aleatorias de una lista fija. La lista larga EFF (2016) tiene 7.776 palabras = 6⁵. Cada palabra = 12,9 bits de entropía. Una passphrase de 6 palabras = ~77 bits (recomendado por EFF). Resiste fuerza bruta offline durante siglos — vs 'P@ssw0rd!' crackeada en <1 segundo en una GPU moderna.
¿Son los gestores de contraseñas un sustituto de las contraseñas fuertes?
Habilitan la práctica de contraseña fuerte. Una maestra Diceware fuerte + contraseñas aleatorias únicas de 16+ chars por sitio elimina la reutilización — el vector principal de ataques de credential-stuffing. Maestra ≥77 bits Diceware; código de recuperación respaldado offline.
Por qué la entropía gana a las clases de caracteres — y por qué NIST revirtió la rotación forzada
La política clásica 'debe contener mayúscula, minúscula, dígito y símbolo' es teóricamente coherente — añadir clases de caracteres expande el espacio de búsqueda — pero en la práctica los usuarios responden a esas reglas predeciblemente: capitalizando la primera letra, añadiendo un dígito o '!', aplicando sustituciones leet (P@ssw0rd!). zxcvbn detecta estos patrones y los puntúa como comunes, no como fuertes. La longitud importa más que la complejidad cuando ya tienes dos clases de caracteres en juego: una passphrase de 20 caracteres en minúsculas cubre más entropía que una contraseña de 10 caracteres con las cuatro clases. La reversión de NIST en 2017 codificó esto: la rotación forzada producía transformaciones incrementales (Password1 → Password2) que reducían la entropía efectiva, y las reglas obligatorias de composición empujaban a todos a los mismos patrones predecibles. El reemplazo de breach-screening es empírico: en vez de imponer reglas teóricas, comprueba si el candidato ha aparecido en una filtración conocida. Have I Been Pwned agrega más de 800 millones de credenciales únicas comprometidas; k-anonymity hace el chequeo conservando la privacidad enviando solo los primeros 5 caracteres del hash SHA-1. Las passphrases Diceware esquivan todo esto: 6 palabras aleatorias de la lista EFF dan ~77 bits de entropía, memorables por asociación narrativa, inmunes a patrones de sustitución leet. Los gestores de contraseñas operacionalizan la estrategia: una maestra Diceware fuerte, contraseñas aleatorias únicas de 16+ caracteres por sitio, comprobadas contra filtraciones al actualizar.
- Cálculo de entropía en bits (modelo alineado con zxcvbn)
- Tiempo de descifrado a diferentes velocidades de ataque (online throttled / offline fast hash)
- Detección de contraseñas comunes + sustituciones leet + reconocimiento de patrones de teclado
- Comprobación de cumplimiento NIST SP 800-63B (mínimo 8+ chars, sin reglas de composición)
- Generador de passphrase fuerte (estilo Diceware 6 palabras, ~77 bits de entropía)
- Privacidad ante todo: nada sale de tu navegador (modelo k-anonymity para chequeos de filtraciones)
Gratis. Sin registro. Las tools de navegador (subred, JWT, fuerza de contraseña) corren localmente; las de consulta usan APIs públicas (Cloudflare DoH, RDAP, registros de certs). Detalle por herramienta en /es/methodology/.
Fuentes (5)
- Grassi, P. A., et al. (2017). Digital Identity Guidelines: Authentication and Lifecycle Management. NIST Special Publication 800-63B Rev 3 (final, June 2017; updates through March 2020).
- National Institute of Standards and Technology (NIST) (2025). Digital Identity Guidelines (Revision 4). NIST SP 800-63-4 (final published July 2025; supersedes 800-63-3 / 800-63B-3 series).
- Wheeler, D. L. (2016). zxcvbn: Low-budget password strength estimation. USENIX Security Symposium 2016, 157–173.
- Hunt, T. (live). Have I Been Pwned — Pwned Passwords API (k-anonymity model). haveibeenpwned.com/api/v3 (5-character SHA-1 prefix, 16^5 = 1,048,576 hash range buckets).
- Electronic Frontier Foundation (EFF) (2016). EFF's New Wordlists for Random Passphrases (long list). eff.org/dice — 7,776 words = 6^5, ~12.9 bits/word, 6-word recommended for ~77 bits entropy.
Son los RFCs del IETF, las publicaciones del NIST y los estándares del W3C que la herramienta implementa o consulta. Localízalos en el IETF Datatracker (datatracker.ietf.org) o en el organismo correspondiente.
Por Marco B. ·