Estamos acostumbrados a inventar contraseñas por intuición: una palabra conocida, el año favorito, un par de símbolos al final. Con la aparición de modelos avanzados de IA esa costumbre se ha convertido en un problema. Esos modelos aprenden de grandes conjuntos de contraseñas reales y de datos públicos sobre las personas y, después, no proponen conjuntos aleatorios de caracteres, sino variantes verosímiles que una persona probablemente elegiría. Explico cómo funciona todo por dentro.
Fundamento del proceso: cómo los modelos llegan a la contraseña real
Un modelo de lenguaje es un programa que ve muchos ejemplos de cadenas y aprende a predecir la siguiente letra o palabra. Si el conjunto de entrenamiento incluye filtraciones de contraseñas, el modelo interioriza plantillas comunes: palabra más año, nombre de un equipo más un símbolo, nombre de una mascota con sustituciones de letras por números. Tras el entrenamiento genera candidatos por orden de probabilidad: primero los que aparecen con más frecuencia en la realidad, luego los menos típicos.
Luego se añade personalización. El atacante recopila datos públicos sobre la persona: nombre, apodos, ciudad, año de nacimiento, club favorito, nombres de proyectos, apodos de mascotas, giros habituales en publicaciones y correos. Esos datos se dan al modelo junto con la tarea de generar variantes de contraseña. Como resultado, las primeras centenas de hipótesis no son generales, sino adaptadas a la biografía y hábitos concretos.
Cómo se acelera la búsqueda. En lugar de volver a entrenar el modelo por completo se usa ajuste fino con un pequeño conjunto de contraseñas y reglas breves de transformación. Esto requiere menos recursos y mejora la precisión. En la generación se aplican técnicas claras: el modelo primero crea una lista de, por ejemplo, 200 raíces más probables y luego amplía cada raíz con decenas de variantes. Ejemplo: de la palabra spartak surgen candidatos como Spartak2025, spartak!, Sp@rtak25, Spartak-05, y así sucesivamente. Ese orden ahorra tiempo: en vez de millones de intentos aleatorios se prueban unos pocos miles, pero mucho más realistas.
Qué es un patrón de comportamiento y un vector de contraseña
Un patrón de comportamiento es un esquema repetible con el que una persona crea credenciales. Los ejemplos son comprensibles sin teoría: siempre añade el año al final, siempre empieza con mayúscula, siempre usa la misma palabra clave con modificaciones mínimas. El modelo detecta esas inclinaciones a partir del contenido público: qué palabras escribe con más frecuencia la persona, qué números aparecen en perfiles y mensajes, cómo acorta nombres.
El vector de contraseña es una representación numérica de la contraseña con la que resulta cómodo trabajar para una máquina. Contraseñas similares en su estructura quedan cerca: por ejemplo, Arsenal2023 y Arsenal2025 son vecinos para el modelo. Por eso, si al atacante se le conoce una variante antigua, las primeras conjeturas estarán al lado de ella: Arsenal2024, Arsenal!2025, Ars3nal2025, y así sucesivamente.
Cuando una persona cambia solo un carácter o añade el año vigente, permanece en el mismo rango de combinaciones. El modelo empieza exactamente por ahí, porque tales correcciones son también una línea de comportamiento típica para todos nosotros (recuerdo — nuestros cerebros funcionan más o menos igual). De aquí una conclusión simple: los cambios pequeños no salvan.
¿Cómo decide el modelo qué comprobar al principio? Antes se empleaban reglas fijas, por ejemplo palabra+año o año+palabra. Ahora el propio sistema neuronal determina el orden en función de la frecuencia y el contexto. En la práctica eso significa que los primeros minutos de ataque producen la mayoría de las coincidencias, porque se prueban los esquemas más extendidos.
De dónde vienen las pistas y en qué se convierten
Otra vez: huellas públicas. Redes sociales, firmas en correos, páginas de presentaciones, currículums, perfiles en sitios de eventos. De ahí es fácil extraer nombres, fechas, ciudades, equipos favoritos, nombres de mascotas, abreviaturas características. Ejemplo: si en las publicaciones aparece con frecuencia la palabra cosmos, los candidatos con cosmos estarán al inicio de la lista.
Filtraciones anteriores. Si una de tus cuentas fue comprometida alguna vez, esa contraseña sirve de patrón. El modelo genera decenas de versiones cercanas: mycat2023 → mycat2024, MyCat2024, mycat_24, myc@t2024. Al reutilizar o usar variantes próximas, el riesgo aumenta drásticamente.
Correspondencia laboral y documentos. Abreviaturas internas, códigos de departamentos, nombres de proyectos suelen migrar a contraseñas. Si estos elementos son visibles, se convierten en pistas. Ejemplo: el proyecto Orbis y un lanzamiento en 2025 darán en las primeras líneas Orbis2025, 0rbis2025, Orbis-25.
Cultura corporativa. Etiquetas comunes, lemas, nombres de eventos aumentan la probabilidad de que cadenas parecidas aparezcan al principio de la lista. El algoritmo prioriza esas variantes porque coinciden con la agenda de la persona o la empresa.
Práctica de defensa: pasos concretos a tomar
Longitud y diversidad. Usa frases largas compuestas por palabras aleatorias o cadenas generadas por un gestor de contraseñas con una longitud mínima de 16–20 caracteres. Cuanto más alejada esté la contraseña de tus palabras y números habituales, menor será la probabilidad de aparecer entre las primeras hipótesis del modelo.
Gestor de contraseñas. Genera contraseñas únicas y las guarda por ti. Reglas simples: cada servicio — su contraseña propia, máxima longitud, comprobación periódica de si aparecen en filtraciones mediante funciones integradas.
Autenticación multifactor. Donde sea posible, usa llaves físicas. Incluso si adivinan la contraseña, sin el SMS o el segundo factor no se completará el acceso.
Comprobación de compromiso. En las empresas active la verificación automática al crear o cambiar contraseñas: comparación de hashes con bases de datos de secretos filtrados. Esto descartará opciones manifiestamente malas y bloqueará la reutilización de credenciales antiguas.
- Para el personal: gestor de contraseñas, autenticación multifactor, prohibición de repeticiones y de variaciones cercanas de la misma palabra o esquema alfanumérico.
- Para administradores: política de longitud, verificación automática de filtraciones, bloqueo de plantillas comunes, limitación de la velocidad de intentos, monitoreo de anomalías en los accesos.
- Para desarrolladores: mensajes de error prudentes sin pistas, protección de los registros de autenticación, tiempos de vida de sesión razonables, almacenamiento seguro de tokens de recuperación.
- Para los directivos: formación del personal con ejemplos, auditoría de prácticas reales, no solo de requisitos formales.
Cómo es un ataque dirigido
Recolección de datos iniciales: scripts automáticos revisan perfiles públicos y archivos de filtraciones, extrayendo hechos y cadenas frecuentes: nombres y sus variaciones, fechas, ciudades, nombres de equipos y proyectos, abreviaturas habituales, palabras preferidas, secuencias numéricas. Paralelamente se recopilan pistas técnicas no vinculadas al texto: idioma de la interfaz, zona horaria, distribución del teclado por rastros en apodos, formato de fechas. Si se conoce una contraseña antigua por una filtración, se toma como punto de partida para generar variantes cercanas.
Preparación y ajuste del modelo: se toma un modelo de lenguaje listo y se ajusta con un corpus de contraseñas reales y reglas frecuentes de transformación. Esto se hace de forma localizada para no rehacer toda la red: se actualizan solo las capas necesarias o se conectan adaptadores. Además se preparan plantillas de pistas para la generación: en ellas se enumeran los atributos recopilados del objetivo y los formatos de cadena permitidos, para que el modelo no genere variantes manifiestamente inútiles.
Formación de la lista de candidatos: la generación no es a ciegas. Primero se compone una lista corta de raíces que coinciden con el vocabulario y los hábitos del objetivo; luego, para cada raíz, se crean decenas de modificaciones previsibles. Se usan restricciones: máscaras de longitud, patrones regulares, posiciones permitidas de números y símbolos. El algoritmo ordena los candidatos según la probabilidad de aparecer en una persona concreta, por eso las primeras miles de entradas parecen realistas: palabra de publicaciones públicas más el año en curso, una abreviatura interna con separador, sustituciones habituales de letras por números, y así sucesivamente.
Verificación de hipótesis y gestión del riesgo de bloqueo: los candidatos se prueban respetando los límites del servicio. El sistema distribuye los intentos en el tiempo y por direcciones, vigila respuestas como contraseña incorrecta, demasiados intentos, se requiere confirmación. Al activarse las protecciones se introducen pausas, se cambia la fuente de conexión y se ajusta la frecuencia de las solicitudes. Las cadenas repetidas y los duplicados evidentes se descartan de antemano para no malgastar el límite en lo mismo.
Por qué esto escala: la recolección de datos públicos es automática y no requiere intervención humana; el ajuste con contraseñas ocupa un tiempo limitado porque solo se modifican parte de los parámetros; la generación y verificación se ejecutan en paralelo en muchos nodos. En conjunto disminuye el coste de un intento exitoso, por eso el método sigue siendo económico incluso contra organizaciones pequeñas y cuentas personales.