Contraseña y Entropía: La ciencia detrás de tu seguridad

Olvida las reglas de contraseñas obsoletas. Descubre la teoría de la entropía de Shannon, la amenaza cuántica de Grover y verdaderos trucos OPSEC para asegurar tus accesos.

|

Tiempo de lectura: 9 minutos

Contraseña y Entropía: La ciencia detrás de tu seguridad

« Tu contraseña debe tener 8 caracteres, una mayúscula, una minúscula, un número y un carácter especial. »

Todos conocemos esta regla. Y, sin embargo, en ciberseguridad, a esto se le llama “teatro de seguridad”. Una contraseña como P@ssw0rd1! respeta todas estas reglas. Pero es una palabra común con sustituciones previsibles, justo lo que las herramientas de cracking prueban primero.

La verdadera seguridad no se basa en reglas visuales arbitrarias, sino en una realidad matemática implacable: la entropía.

La Entropía según Claude Shannon

Para comprender la fuerza de una contraseña, hay que dirigirse a Claude Shannon, el padre de la teoría de la información. La entropía mide el grado de incertidumbre o imprevisibilidad de una información.

Aplicada a las contraseñas, la entropía se calcula en bits. Cuanto mayor sea el número de bits, más impredecible será la contraseña para un ordenador. La fórmula simplificada de la entropía (E) de una contraseña generada aleatoriamente es:

E = L × log2(R)

  • L es la longitud de la contraseña.
  • R es el tamaño del repertorio (26 para las minúsculas, 62 con mayúsculas y números, 94 con todos los símbolos imprimibles). Los cuatro conjuntos de caracteres de nuestro generador suman 91, porque su conjunto de símbolos tiene 29 caracteres.

Aumentar el tamaño del repertorio (añadir símbolos) aumenta la entropía, pero aumentar la longitud (añadir caracteres) la aumenta de forma mucho más drástica. Sin embargo, la longitud solo supera a la complejidad con una única condición: que la contraseña se genere de forma aleatoria.

Fuerza bruta vs Ataque de diccionario

Si utilizas palabras o estructuras predecibles, la regla de la longitud pura se derrumba.

Los softwares de piratería no intentan todas las combinaciones de letras una a una (lo que se llama Fuerza Bruta). Utilizan enormes listas de contraseñas reales filtradas en fugas de datos anteriores, junto con palabras y frases comunes. Esto es el Ataque de Diccionario.

Si tu contraseña es larga, pero está compuesta por palabras del diccionario o sustituciones predecibles, su entropía real es drásticamente inferior a su entropía matemática teórica.

La tabla siguiente usa una sola regla: 100 mil millones de intentos por segundo, el ritmo que la página de nuestro generador asume para un ataque sin conexión contra un hash rápido. Los tiempos son promedios (la mitad de todas las posibilidades), redondeados hacia abajo con la misma fórmula que esa página. La ruta más rápida para cada contraseña está en negrita:

ContraseñaEntropía si cada carácter fuera aleatorioFuerza bruta (promedio)Ataque de diccionario (nuestra estimación)
password12356 bits (11 caracteres, minúsculas y números)7 díasMenos de un segundo
S3cr3t!9958 bits (9 caracteres, los cuatro conjuntos)24 díasMenos de un segundo
correct horse battery staple133 bits (28 caracteres, minúsculas y espacio)Más de 1 billón de años1 minuto
gL7!pQ9z#vX278 bits (12 caracteres, los cuatro conjuntos)51 mil añosNingún atajo

La columna de diccionario es una estimación. Supone que los intentos del atacante siguen la estructura de cada contraseña, y que cada palabra base está entre las 1000 más comunes:

  • password123: una palabra común y tres dígitos. Son 1000 × 1000, alrededor de un millón de intentos.
  • S3cr3t!99: una palabra común, con o sin mayúscula, cada “e” cambiada o no por “3”, y después cualquier sufijo de tres caracteres. Son unos 7 mil millones de intentos.
  • correct horse battery staple: cuatro palabras comunes. El cómic de xkcd que la hizo famosa cuenta 44 bits para cuatro palabras de una lista de 2048. Al mismo ritmo, son 88 segundos de promedio, redondeados hacia abajo a 1 minuto.
  • gL7!pQ9z#vX2: ninguna palabra y ningún patrón, así que la fuerza bruta es la ruta más rápida.

Estas estimaciones tratan cada contraseña como desconocida para el atacante. Todas las contraseñas de este artículo son ahora públicas, así que cada una tiene su sitio en un diccionario. Una contraseña publicada es una contraseña quemada.

La ilusión del Leetspeak y las reglas de mutación

Tomemos el ejemplo de S3cr3t!99. Visualmente, parece compleja y robusta. Sin embargo, es simplemente la palabra del diccionario “secret”, donde las ’e’ han sido reemplazadas por ‘3’, a la que se ha añadido un sufijo muy común (!99). A esto se le llama leetspeak.

Frente a un ataque de diccionario, esta contraseña aguanta menos de un segundo, no los 24 días que su longitud haría pensar. Los softwares de descifrado modernos (como Hashcat) no se conforman con probar listas de palabras estáticas; aplican automáticamente reglas de mutación. Cogerán cada palabra de su diccionario, probarán todas las combinaciones posibles de leetspeak, invertirán las mayúsculas y añadirán años o símbolos. El leetspeak ofrece una falsa sensación de seguridad.

El truco del cambio de teclado (Keyboard Shift)

Para complicar una frase fácil de memorizar, algunos utilizan el truco del cambio de disposición del teclado. Por ejemplo, memorizas una frase como my-cat. Pero en el momento de teclearla, pones los dedos en un teclado físico QWERTY mientras tienes tu sistema operativo configurado en AZERTY (francés).

  • La palabra pensada: my-cat
  • El resultado tecleado: ,y)cqt (La tecla ’m’ se convierte en ‘,’; el ‘-’ se convierte en ‘)’; la ‘a’ se convierte en ‘q’).

¿Es esta una buena idea en OPSEC? No, este método no es suficiente si se utiliza solo. Igual que el leetspeak, un cambio de distribución de teclado es una sustitución fija: un atacante que la sospecha aplica la misma correspondencia a cada intento. En OPSEC, esto es seguridad por oscuridad: retrasa a un atacante aficionado, pero no detendrá un ataque dirigido y equipado.

Combinada con una contraseña que ya es fuerte (como una frase de contraseña larga y aleatoria), aporta poco. Incluso si un atacante prueba mil pares de distribuciones, eso añade menos de 10 bits, ya que log2(1000) ≈ 9,97. La fuerza sigue viniendo de la frase de contraseña de base.

Construir una contraseña maestra (~250 bits)

Si las listas de palabras, el leetspeak y los trucos de escritura tienen sus límites, ¿cómo construimos una contraseña maestra que perdure? Nuestro generador ya califica 80 bits como “Fuerte” y 100 bits como “Muy Fuerte”. Para una contraseña maestra pensada para durar décadas, este artículo apunta mucho más alto: unos 250 bits de entropía. La sección cuántica más abajo explica por qué, y lo que ese margen no aporta.

Hay dos formas de lograrlo según tus necesidades:

1. Caracteres aleatorios (para un gestor de contraseñas)

Una cadena de caracteres generada totalmente al azar, sin ningún patrón que una máquina pueda aprovechar: 8}8,_$-p)M&n,XvUCT0o+.5hDE6P^w6b@U-evS0 39 caracteres sacados al azar de los 91 de nuestro generador: ≈ 253 bits. Se generó para este artículo, así que ahora es pública. No la uses nunca.

2. Una frase de contraseña aleatoria (para una contraseña que memorizas)

Las palabras aleatorias son más fáciles de recordar que los caracteres aleatorios. Cada palabra sacada de la lista de la EFF de 7776 palabras añade unos 12,9 bits, así que es el número de palabras lo que da la entropía. Doce palabras dan ≈ 155 bits, muy por encima del umbral “Muy Fuerte” de nuestro generador. Las palabras solas solo superan los 250 bits a partir de 20 palabras.

Nuestro generador llega como máximo a 12 palabras. Para superar los 250 bits con menos, marca “Dígito aleatorio tras cada palabra” y elige “Dígito + Símbolo” como separador. Once palabras dan entonces ≈ 260 bits: depletion78$sporting14~overlap11>macaw86>paced95,paramedic41}blot41$flagstone07;uncanny92/broadways77#say2 Generada al azar para este artículo, exactamente con esos ajustes. Una contraseña publicada es una contraseña quemada: no uses nunca esta, ni ningún ejemplo que leas. Solo cuenta lo que se saca al azar. Poner en mayúscula cada palabra no añade nada, y las palabras que eliges tú son mucho más débiles que las aleatorias.

La amenaza cuántica: El algoritmo de Grover

¿Por qué aspirar a 250 bits cuando 128 bits ya bloquean los superordenadores de hoy en día? La respuesta reside en la perspectiva de grandes ordenadores cuánticos.

En criptografía, el algoritmo de Grover permite a un ordenador cuántico buscar en una base de datos no ordenada mucho más rápido que un ordenador clásico. En concreto, Grover reduce a la mitad el nivel de seguridad efectivo de una clave simétrica o de una contraseña.

Frente a un ordenador cuántico que ejecute el algoritmo de Grover, una contraseña con una entropía de 128 bits ofrecería, en teoría, una resistencia equivalente a solo 64 bits. Es un margen mucho más estrecho.

Duplicar la entropía mantiene el margen: unos 256 bits seguirían dejando unos 128 bits frente a Grover. De ahí viene el objetivo de 250 bits de este artículo. Es una precaución que elige este artículo, no una cifra tomada de un estándar.

El margen tiene límites. La aceleración de Grover es cuadrática, no ilimitada. Cada uno de sus pasos sigue teniendo que calcular el hash de la contraseña del sitio, en un ordenador cuántico lo bastante grande como para ejecutarlo. Como comparación, a los 100 mil millones de intentos por segundo que asume la página de nuestro generador, una búsqueda promedio de 100 bits ya tarda al menos 200 mil millones de años.

La lógica se parece a Harvest Now, Decrypt Later (HNDL): una base de datos robada de hashes de contraseñas puede guardarse hoy y atacarse más tarde, con mejores máquinas. Un margen mayor eleva el nivel de exigencia frente a eso. No es una garantía permanente.

Arpokrat Password Generator: Crea la tuya

No dejes la seguridad de tus accesos al azar. Nuestro generador gratuito crea contraseñas y frases de contraseña aleatorias. Para cada una, muestra la entropía en bits y el tiempo promedio que tardaría una búsqueda.

Solo genera: no califica una contraseña que ya uses. Para el objetivo de 250 bits de arriba, elige una contraseña de 39 caracteres con los cuatro conjuntos de caracteres. El generador la muestra como “≈ 253 bits”.

👉 Arpokrat Password Generator

Funciona en tu navegador. Lo que genera nunca se envía ni se guarda.

El eslabón débil final: Reciclaje y gestión de accesos

La entropía matemática no protege contra el error humano. Una contraseña de 250 bits pierde su valor en cuanto se filtra, si se reutiliza en varios sitios (un ataque llamado Credential Stuffing) o si no está protegida por un segundo factor de autenticación (2FA).

La regla de oro de la higiene digital es no tener que recordar más que una sola contraseña: tu contraseña maestra de 250 bits (una frase de contraseña aleatoria, como la de arriba). Todos tus demás accesos (banco, redes sociales, servidores) deben utilizar contraseñas aleatorias únicas, generadas específicamente para ellos.

Para guardar todas estas contraseñas que no puedes recordar, usa un gestor de contraseñas. Elige uno que cifre tu bóveda en tu dispositivo antes de sincronizarla (lo que suele llamarse zero-knowledge), idealmente uno de código abierto y auditado de forma independiente.