Por qué las contraseñas creadas por LLM son peligrosas: parecen de 100 bits, pero en realidad son de 27 bits
(irregular.com)Basado en una investigación de la empresa de seguridad Irregular, se señala que las contraseñas generadas por LLM (modelos de lenguaje grandes) modernos como Claude, ChatGPT y Gemini parecen muy sólidas a simple vista, pero en realidad son extremadamente vulnerables.
Resultados clave del experimento
- Se repitió 50 veces la solicitud “genérame una contraseña” a cada modelo
- Claude Opus 4.6: en 18 de 50 ocasiones generó exactamente la misma contraseña
G7$kL9#mQ2&xP4!w(36% de coincidencia), y solo produjo 30 contraseñas únicas - Clara preferencia de patrones según el modelo
- Claude → empieza con 'G' + segundo carácter '7'
- ChatGPT → empieza con 'v'
- Gemini → empieza con 'k' o 'K'
- Incluso al cambiar la temperatura (temperature) entre 0.0 y 1.0, casi no hubo diferencias (con 0.0, las 50 veces generó exactamente la misma contraseña)
La ilusión de la entropía (aleatoriedad)
- Herramientas como KeePass la califican como “aprox. 100 bits de entropía, muy sólida”
→ parece un nivel que tomaría miles de millones de años incluso con una supercomputadora - Pero al calcular la entropía de Shannon real, las contraseñas generadas por Claude quedaron en apenas 27 bits
→ una contraseña débil que puede romperse en segundos con una computadora común - Ejemplo de GPT-5.2: probabilidad de que la posición 15 sea el número '2' = 99.7% (casi fijo)
¿Por qué un LLM no sirve para generar contraseñas?
- Una contraseña realmente fuerte debe generarse con un CSPRNG (generador de números aleatorios criptográficamente seguro), donde todos los caracteres tengan probabilidad uniforme
- Un LLM, en cambio, está entrenado para predecir el siguiente token más probable → maximiza la predictibilidad
- → Por eso, ni un mejor prompt ni ajustar la temperatura resuelven el problema de fondo (conclusión de Irregular)
Un problema mayor: el riesgo de los agentes de código con IA
- Claude Code, Gemini-CLI y Codex están hardcodeando contraseñas vulnerables dentro del código
Ej.: MariaDB, PostgreSQL, claves de API de FastAPI, etc. - “Genérame una contraseña” → propone métodos seguros como
openssl rand
“Recomiéndame una contraseña” → inserta directamente una contraseña con patrones creados por el LLM - Si buscas en GitHub patrones como
K7#mP9ok9#vL, aparecen múltiples repositorios reales
Conclusión
- Los LLM pueden crear contraseñas que “parecen fuertes”, pero la seguridad real no depende de la apariencia sino de la entropía real y la aleatoriedad.
- Debido a su diseño centrado en la predicción, los LLM son estructuralmente inadecuados para generar contraseñas y, si las herramientas de programación con IA las insertan en el código, las vulnerabilidades pueden propagarse de forma silenciosa dentro del desarrollo automatizado.
7 comentarios
Si con
openssl rand -hex 64ya lo haría bien, ¿de verdad hay que hacer que un LLM genere la contraseña directamente...?Incluso si le pides a una persona que cree una contraseña, al final la va a hacer con algún patrón fijo para que le resulte fácil recordarla.
Quizá para los desarrolladores no sea un gran problema. Pero como hoy en día mucha gente común también programa con vibe coding, creo que el problema mayor serán esos valores por defecto que terminan incrustándose automáticamente en el código. Por ejemplo, cosas como la contraseña de conexión a la BD...
Pensándolo bien, considerando que también he visto muchos casos en los que se despliega un servicio web pero se dejan archivos sensibles como
.envaccesibles desde la red externa...También podría pasar que alguien, sin saber bien lo que hace, arme un servicio web con OpenClaw y deje la
keytal cual incrustada en el código HTML, se la roben y de repente le llegue una factura inesperada.Las personas tampoco son buenas eligiendo cosas al azar. No debería haber patrones, pero intentar evitarlos deliberadamente también puede considerarse un patrón.
Tengo mucha curiosidad por saber por qué Claude code no generó una cadena aleatoria
Ah... ahora entiendo por qué los profesores que les vuelven a enseñar cálculo a los de primer año de ingeniería ponen esa cara.
T_T esto sí está medio grave