Cuando a alguien le filtran la contraseña, se lo imagina como un accidente puntual: un servicio tuvo un mal día, salió en la prensa, la cambiaste y se acabó. No se acabó. El día de la filtración no es el final de nada: es el primer día de una cadena de montaje que va a durar años, y en la que tú no aparecerás nunca por tu nombre. Merece la pena contarla entera, porque casi nadie la ve.
Paso uno: alguien saca la base de datos
Lo primero no tiene nada de espectacular. Alguien encuentra una inyección SQL, una copia de seguridad abierta, un panel de administración con las credenciales por defecto. Y se lleva una tabla.
Esa tabla, con suerte, contiene tu correo y un hash de tu contraseña. Con menos suerte, contiene tu correo y tu contraseña. En texto. Tal cual la escribiste.
2009 treinta y dos millones de contraseñas en texto plano
En diciembre de 2009, una empresa de widgets para redes sociales llamada RockYou sufrió una inyección SQL. Se llevaron unos 32 millones de contraseñas, y no había hash que romper: las guardaba en texto plano.
Fue un desastre para RockYou y un regalo para todos los demás. Por primera vez existía un corpus enorme de contraseñas reales, escritas por gente que no sabía que alguien las iba a leer. No un estudio: la cosa en sí.
El fichero se convirtió en rockyou.txt, que sigue siendo el diccionario de
referencia con el que se prueban ataques. Su valor no es que contenga tu
contraseña: es que contiene cómo escribe contraseñas la gente. Un nombre y un
año, la palabra y el 123, el ! al final. RockYou no filtró 32 millones de
secretos. Filtró el patrón. Y el patrón no caduca.
Paso dos: se craquea lo que se pueda, sin ninguna prisa
Aquí falla la intuición. Cuando alguien intenta adivinar tu contraseña en la pantalla de acceso de un servicio, el servicio le corta: tres intentos, un CAPTCHA, un bloqueo. Contra un servidor, adivinar es lento y ruidoso.
Contra un fichero de hashes que ya está en tu disco no hay servidor. No hay nadie al otro lado que diga que no. Se prueba en local, con GPUs, sin límite de intentos y con todo el tiempo del mundo. Si el servicio hasheó mal —algoritmo rápido, sin sal— la diferencia con el texto plano es de conveniencia, no de seguridad.
Y no se prueba al azar: primero rockyou.txt, y luego reglas derivadas de él.
Cambia la a por @. Añade un año al final. Cada truco que a ti te pareció
ingenioso lleva más de una década escrito en un fichero de configuración.
De ahí sale una parte del volcado convertida en contraseñas legibles. El resto —lo largo, lo aleatorio, lo que no está en ningún diccionario— sigue siendo ruido. Es la línea que traza el comprobador: no te regaña, te dice de qué lado caes.
Paso tres: se cruza, y ahí es donde vales dinero
Un volcado suelto vale poco. Lo valioso es la agregación: coger diez
filtraciones de sitios distintos, cruzarlas por correo y quedarse con las parejas
correo:contraseña ya en claro. Al resultado se le llama combolist, y ya no es
la base de datos de nadie. Es una lista de personas.
2013 el inventario sale a la luz
En diciembre de 2013, Troy Hunt puso en marcha Have I Been Pwned: una base de datos pública de correos aparecidos en filtraciones, para que cualquiera pudiera preguntar si estaba dentro. La idea de fondo es sencilla e incómoda: si los atacantes ya tienen el inventario, negárselo a las víctimas no protege a nadie. Años después llegó Pwned Passwords, que hace lo mismo con las contraseñas y permite consultarlas sin enviarlas: se manda un fragmento del hash y el servidor devuelve un lote de candidatos, sin saber cuál era el tuyo.
2017 el NIST deja de pedir símbolos y empieza a pedir listas
Cuando el NIST publicó el SP 800-63B, tiró por la borda casi toda la ortodoxia de los formularios y puso en su lugar un requisito que pocos esperaban: al fijar una contraseña, el sistema debe compararla contra una lista de valores comprometidos conocidos y rechazarla si aparece.
Es un cambio de teoría, no de detalle. La pregunta ya no es si tu contraseña parece fuerte, sino si ya está publicada. Por eso el generador hace lo único razonable: sacarla de un sitio donde no ha estado nunca.
2019 la filtración que ya era un refrito de otras
En enero de 2019 circuló un paquete que se hizo famoso como Collection #1. Hunt lo analizó y contó lo que había dentro: unos 773 millones de direcciones de correo únicas y unos 21 millones de contraseñas únicas en texto plano, agregadas de miles de fuentes.
Lo importante no fue el tamaño. Fue de dónde salía: en buena parte era el refrito de filtraciones anteriores, ya craqueadas y puestas en formato cómodo —aunque Hunt encontró también material que hasta entonces no tenía fichado. El producto no era la intrusión. Era el inventario. Y un inventario así solo tiene un uso.
Credential stuffing: no te atacan a ti
A ti no te ataca nadie. Esa es la parte que cuesta interiorizar.
Nadie se sienta a pensar en tu cuenta. Alguien coge una combolist de cientos de millones de líneas, la mete en una herramienta que las prueba contra el formulario de acceso de un banco o un correo, reparte los intentos entre muchas direcciones IP para no disparar los bloqueos, y espera. La inmensa mayoría fallan. Da igual: cuestan casi nada.
Eso es credential stuffing, y no es adivinar. Es comprobar. La contraseña ya la tienen; lo único que averiguan es dónde más la pusiste.
Tu contraseña de aquel foro no era importante. El foro tampoco. Lo importante es que la misma cadena de caracteres abre tu correo, y tu correo abre todo lo demás vía «he olvidado mi contraseña». El pecado original no es que fuera débil: es que era la misma. Una contraseña de treinta caracteres, aleatoria y perfecta, reutilizada en dos sitios, es tan buena como el peor de los dos. Y tú no controlas cómo hashea el peor de los dos.
Qué se deduce de todo esto
- Cambiar la contraseña filtrada no basta si la repetiste. Lo urgente no es el sitio que salió en las noticias. Son los otros.
- Una contraseña por sitio, y que te dé igual olvidarla. Si puedes recordar todas tus contraseñas, tienes muy pocas o son muy malas.
- El segundo factor rompe la cadena. El credential stuffing prueba
correo:contraseña. Si eso no basta para entrar, el inventario deja de valer.
Tu contraseña filtrada no está en manos de un enemigo. Está en una fila de un fichero, entre otros cientos de millones, esperando a que a alguien le salga a cuenta probarla en un sitio más. Y lo único que decide si eso funciona lo decidiste tú hace años, cuando escribiste la misma palabra por segunda vez.
Fuentes: la filtración de RockYou (diciembre de 2009) y el uso posterior de
rockyou.txt como diccionario de ataque · Have I Been Pwned y Pwned Passwords, de
Troy Hunt · NIST SP 800-63B, sobre la comprobación de contraseñas contra listas de
valores comprometidos · el análisis de Troy Hunt sobre Collection #1 (enero de
2019) y las cifras que publicó · definición de credential stuffing de OWASP.