Cuán fuerte tiene que ser una contraseña

Qué mide realmente la entropía en bits, por qué la longitud gana a la sopa de símbolos, cuánto te cuesta reutilizar contraseñas y qué papel juegan las frases de paso y los gestores de contraseñas.

Para una cuenta que te importaría perder, usa una contraseña generada al azar de al menos 16 caracteres, o una frase de paso de al menos 5 palabras elegidas al azar, y úsala en exactamente un sitio. Eso son entre 65 y 95 bits de entropía, cómodamente fuera del alcance de la fuerza bruta, y la parte de «un solo sitio» importa más que la fuerza. Abajo está el razonamiento detrás de esas cifras.

La entropía en bits

La entropía mide de cuántas posibilidades igual de probables salió la contraseña, expresado como potencia de dos. 40 bits de entropía significan una entre 2^40 posibilidades, aproximadamente un billón, y cada bit adicional duplica el trabajo de adivinarla. La fórmula es bits = longitud x log2(tamaño del conjunto de caracteres), así que las letras minúsculas valen 4,7 bits cada una, las letras y los dígitos 5,95, todo el ASCII imprimible 6,57 y una palabra de una lista de 7.776 palabras 12,9:

ContraseñaEntropía
8 letras minúsculas38 bits
12 letras y dígitos71 bits
12 caracteres, ASCII completo79 bits
16 letras y dígitos95 bits
5 palabras aleatorias65 bits
6 palabras aleatorias78 bits

Estas cuentas solo se sostienen si la contraseña salió de un proceso aleatorio de verdad. Tr0ub4dor&3 son 11 caracteres de un conjunto de 95, que la fórmula puntúa con 72 bits, pero es una palabra de diccionario con sustituciones predecibles y una herramienta de descifrado llega a ella mucho antes. La entropía describe el generador, no la cadena.

Qué te compran esos bits

La velocidad a la que se puede adivinar depende de cómo guardara el sitio la contraseña. Contra un formulario de inicio de sesión en vivo con limitación de intentos, un atacante consigue unos pocos intentos por hora. Contra una base de datos robada depende del hash: uno rápido como MD5 o SHA-1 se puede probar a velocidades enormes en hardware gráfico de consumo, mientras que un hash de contraseñas hecho a propósito, como bcrypt o Argon2, es más lento en muchos órdenes de magnitud.

Abajo está el peor caso, un hash rápido y sin sal a unos supuestos diez mil millones de intentos por segundo. Muestra lo bruscamente que se dobla la curva, y no es una medición:

EntropíaTiempo para agotar todo el espacio
40 bitsUnos dos minutos
50 bitsAlrededor de un día
60 bitsUnos pocos años
70 bitsUnos pocos miles de años
80 bitsMillones de años

De media, un atacante lo consigue en la mitad de ese tiempo. La lectura práctica: por debajo de 50 bits no sirve de mucho frente a un ataque sin conexión, de 60 a 70 bits está bien para casi todo, y de 80 bits para arriba seguirá siendo cómodo.

La longitud gana a la sopa de símbolos

Toma una contraseña de 12 caracteres con letras y dígitos (71 bits). Añadir signos de puntuación, ensanchando el conjunto de 62 a 95 caracteres, te lleva a 79 bits. Añadir en su lugar dos letras o dígitos más te lleva a 83. Cada carácter adicional multiplica el espacio de búsqueda por el alfabeto entero, mientras que ensanchar el alfabeto solo añade unos 0,6 bits por cada carácter que ya tenías. La longitud gana, y sigue ganando.

Las reglas de composición («debe contener una letra mayúscula, un dígito y un símbolo») empujan a la gente hacia un conjunto estrecho de patrones: mayúscula al principio, dígito y signo de exclamación al final. Las herramientas de descifrado prueban esas transformaciones primero. Esa es una de las razones por las que las directrices de identidad digital del NIST se alejaron de las reglas de composición y de los cambios periódicos obligatorios, a favor de la longitud y de comprobar la contraseña contra listas de contraseñas filtradas conocidas.

El riesgo de verdad es reutilizar

A casi nadie le comprometen una cuenta por fuerza bruta. Lo que ocurre es el relleno de credenciales: se vulnera un sitio flojo, se publican los pares de correo y contraseña, y unas herramientas automatizadas prueban cada par contra cientos de servicios más. Si usaste la misma contraseña en tu correo que en el foro vulnerado, su fuerza da igual. No la adivinaron: se la entregaron.

El phishing funciona igual: una contraseña de 30 caracteres escrita en una página de inicio de sesión falsa y convincente vale exactamente lo mismo que password1. Así que, por orden de importancia:

  1. Una contraseña distinta en cada sitio.
  2. Autenticación de dos factores en todo lo importante, y sobre todo en tu correo, ya que esa es la vía de restablecimiento de todo lo demás.
  3. Longitud suficiente para que el descifrado sin conexión sea inviable.

Frases de paso

Una frase de paso son varias palabras elegidas al azar de una lista, por ejemplo harvest-cobalt-mural-drift-plinth. A 12,9 bits por palabra, cinco palabras son 65 bits y seis son 78.

Dos condiciones hacen que esto funcione. Las palabras tienen que elegirse al azar, con dados o con software, no elegirlas tú. Y la fuerza viene del número de palabras, no del separador ni de poner una letra en mayúscula: la letra de una canción o una cita no tiene casi entropía, porque sale de un conjunto pequeño de cosas que la gente dice.

Las frases de paso se ganan el sueldo en las pocas contraseñas que escribes de memoria: el inicio de sesión de tu dispositivo, la contraseña maestra de tu gestor y el cifrado de tu disco.

Qué papel juega un gestor

Un gestor de contraseñas convierte «inventa y recuerda 200 contraseñas únicas» en «recuerda una frase de paso larga». Genera cadenas de entropía alta y las rellena en el dominio correcto, lo que le quita filo al phishing, porque no autocompleta en una dirección que solo se le parece.

Concentra el riesgo, que es una objeción real y aun así el mejor trato: una caja fuerte detrás de una frase de paso larga y un segundo factor es mejor que una sola contraseña compartida entre decenas de sitios de calidad desconocida.

Una nota sobre el hasheo

El hasheo es el otro lado del inicio de sesión. Un servicio bien construido guarda un hash con sal producido por un algoritmo deliberadamente lento, nunca la contraseña en sí, para que una filtración no entregue de inmediato el texto en claro. Los hashes de uso general como SHA-256 están hechos para ser rápidos, lo que los vuelve excelentes para sumas de comprobación de archivos y una mala elección para guardar contraseñas. Hashear tu propia contraseña para «hacerla más fuerte» no consigue nada: el resultado es exactamente igual de difícil de adivinar que la entrada.