El juego de las contraseñas, y las reglas que no protegen

Publicado el por David Carrero

En junio de 2023, un programador llamado Neal Agarwal publicó en su web, neal.fun, algo titulado The Password Game. Te pide que escribas una contraseña. Luego que tenga cinco caracteres. Luego un número. Luego una mayúscula. Luego un carácter especial.

Hasta ahí no es un juego. Es el formulario de tu banco.

Después empieza lo otro. Que los dígitos sumen 25. Que incluya el nombre de un mes. Que contenga números romanos cuyo producto sea 35. Que lleve la respuesta del Wordle de hoy. Que identifique el país de una foto. Que contenga la mejor jugada de una posición de ajedrez, en notación algebraica. Son treinta y cinco reglas, y por el camino aparece dentro de tu contraseña un emoji de huevo llamado Paul, que eclosiona y hay que alimentar con orugas, y una llama que se va comiendo tus caracteres si no la apagas a tiempo.

El juego funciona por una razón incómoda: nadie tiene que explicarte el chiste. Lo pillas en el primer segundo, porque el mecanismo lo llevas sufriendo media vida. Lo único que ha hecho Agarwal es seguir tirando del hilo.

Y esa es la parte que conviene mirar despacio. Las cuatro primeras reglas no se las inventó él.

De dónde salieron las reglas que ya conocías

Una mayúscula, un número, un símbolo y una longitud mínima no son folclore de internet: son la traducción práctica de un documento del NIST estadounidense publicado en 2003, el SP 800-63, escrito por Bill Burr. De ahí bajó a los formularios de medio mundo, y de ahí a tu cabeza.

Lo contamos entero en qué es una contraseña: Burr no tenía datos de contraseñas reales —apenas existían— así que razonó lo que parecía sensato. Más variedad de caracteres, más combinaciones, más seguridad. En 2017 el propio NIST dio marcha atrás y él le dijo al Wall Street Journal que lamentaba buena parte de lo que había escrito.

Así que el juego de Agarwal no exagera una política de seguridad. Continúa una lista que ya estaba mal en su primera línea. La única diferencia entre «debe contener un símbolo» y «los dígitos deben sumar 25» es que a la primera te has acostumbrado.

Lo que esas reglas nunca midieron

Aquí es donde el chiste deja de tener gracia, porque se puede medir.

Estas cifras salen del comprobador de este sitio, con su modelo declarado: un ataque fuera de línea contra un hash rápido, a 10¹² intentos por segundo. No son estimaciones de folleto; es lo que verás si tecleas estas mismas cadenas ahí.

contraseña reglas que cumple intentos aguanta
Contraseña1! las cuatro 2,3 × 10⁶ < 1 segundo
Verano2026! las cuatro 1,0 × 10⁷ < 1 segundo
Zx9#kQ2m las cuatro 3,3 × 10¹⁵ 55 minutos
seis palabras sacadas a dados, en minúscula ninguna 1,1 × 10²³ 3.500 años

La última fila no sale del comprobador, sale de la aritmética, y es a propósito: el comprobador no puede saber que esas seis palabras vinieron de un dado, así que le calcularía otra cosa. Seis tiradas son 77,5 bits exactos, y 77,5 bits a 10¹² intentos por segundo son unos tres mil quinientos años. Volvemos a ello al final.

Léelo otra vez. Contraseña1! pasa cualquier formulario del planeta y cae antes de que sueltes la tecla, porque la palabra «contraseña» está en el diccionario y lo demás es el adorno que todo el mundo pone: la mayúscula delante, el número y el símbolo detrás. Y la última fila, seis palabras corrientes en minúscula, no la aceptaría ni la mitad de los sitios donde tienes cuenta: no lleva mayúscula, ni número, ni símbolo.

Merece la pena detenerse en Zx9#kQ2m, porque es el mejor caso posible de la regla. Ocho caracteres verdaderamente aleatorios, con sus cuatro tipos, exactamente lo que la política de 2003 consideraba una contraseña ejemplar. Cincuenta y cinco minutos. Y es un techo: el comprobador no puede saber que la tecleaste al azar, así que le concede el beneficio de la duda y calcula el mejor escenario. Nadie teclea así, además. Cuando a una persona le piden ocho caracteres con un símbolo, lo que sale es Hola123! — 2,6 × 10⁶ intentos, menos de un segundo.

La regla no distingue entre esos dos. Para el formulario, Hola123! y Zx9#kQ2m son la misma contraseña. Ese es el fallo entero: una regla de composición mide la forma de la cadena, y la resistencia no está en la forma.

La regla de los 90 días, o cómo se inventa Otoño2026!

La otra mitad de la herencia de 2003 es la caducidad. Cámbiala cada noventa días.

Nadie inventa una contraseña nueva cada noventa días. Lo que hace la gente —lo que haces tú, y yo— es incrementar la que ya tenía. Verano2026! se convierte en Otoño2026! y el trabajo está hecho. Las dos aguantan menos de un segundo, y si un atacante tiene la primera, adivinar la segunda no es un ataque: es rellenar un hueco.

El NIST retiró la rotación obligatoria en el SP 800-63B, en 2017. En la revisión de agosto de 2025 el texto endureció el tono: donde antes decía que los verificadores «no deberían» imponer reglas de composición ni exigir cambios periódicos, ahora dice que no deben hacer ninguna de las dos cosas. Solo se fuerza el cambio si hay indicios de que la contraseña está comprometida.

Nueve años después de la primera retractación, tu empresa te sigue pidiendo una mayúscula cada trimestre.

El límite de caracteres es la peor señal de todas

Agarwal ha contado que la gota que colmó el vaso, lo que le llevó a hacer el juego, fue intentar crear una cuenta y que le dijeran que su contraseña era demasiado larga.

Esa es, de todas las reglas absurdas, la única que además es una mala señal.

Un sistema que guarda tu contraseña como debe no la guarda: guarda su hash, y un hash mide siempre lo mismo, tanto si le das ocho caracteres como si le das ochocientos. No existe ninguna razón de almacenamiento para un límite de dieciséis. Hay exactamente una excepción técnica legítima y conocida —bcrypt ignora lo que pase de 72 bytes—, y no explica los formularios que se plantan en doce.

Un tope corto no demuestra que estén guardando tu contraseña en claro, pero es el tipo de detalle que solo aparece cuando alguien la ha metido en una columna de la base de datos con un tamaño fijo. El propio SP 800-63B pide lo contrario: que se acepten al menos 64 caracteres.

La regla que sí funciona no cabe en un formulario

La incomodidad de fondo es que la buena práctica no se puede expresar como una casilla de validación. Nadie puede escribir una expresión regular para «que no la hayas usado en otro sitio» ni para «que no salga en la última filtración».

Lo que sí se puede hacer es contar. Una frase de palabras elegidas a dados —Diceware— suma 12,9 bits limpios por palabra, y esos bits sí son bits. Con el mismo modelo de 10¹² intentos por segundo:

  • Cinco palabras son 64,6 bits: unos 164 días.
  • Seis palabras son 77,5 bits: unos 3.500 años.

Conviene decir las dos cifras y no solo la segunda. Se repite mucho que una frase de cinco palabras «aguanta siglos», y contra un hash rápido no aguanta siglos: aguanta cinco meses y medio. Por eso Reinhold recomendaba cinco como mínimo y seis para lo que importa. La palabra número seis es la que cambia la escala, y es gratis.

Y ninguna de las dos pasaría el formulario de tu banco.

Por qué el juego es gracioso

Cuando el juego te pide que la suma de los dígitos sea 25, te ríes porque es una condición arbitraria que no tiene nada que ver con lo que hace segura a una contraseña.

Exigir un símbolo también es una condición arbitraria que no tiene nada que ver con lo que hace segura a una contraseña. La diferencia es que esa la lleva la mitad de internet, y que a esa le hemos cogido cariño.

Si quieres el resumen operativo, cabe en tres líneas: usa el generador o unos dados, mete el resultado en el gestor, y cumple las reglas del formulario añadiendo lo que te pida, sin creerte que eso te ha protegido de nada. La mayúscula al principio y el ! al final son un peaje, no una defensa.

Lo demás es un juego. Está muy bien hecho, y ojalá se hubiera quedado en juego.


Fuentes: Neal Agarwal, «The Password Game» (neal.fun, 27 de junio de 2023), sus 35 reglas y el propio relato del autor sobre el formulario que le dijo que su contraseña era demasiado larga · NIST SP 800-63 (2003), SP 800-63B (2017) y SP 800-63B-4 (agosto de 2025), que pasa de «no deberían» a «no deben» sobre reglas de composición y caducidad, y pide aceptar al menos 64 caracteres · declaraciones de Bill Burr al Wall Street Journal, agosto de 2017 · Arnold G. Reinhold, Diceware (1995), de donde salen los 12,9 bits por palabra. Los tiempos de la tabla están medidos con el comprobador de este sitio, con su modelo declarado de 10¹² intentos por segundo contra un hash rápido; los de Diceware, calculados con los mismos intentos por segundo a partir de log₂(7.776) por palabra.

Foto de Olha Ruskykh · Pexels

← Volver al blog