«Al menos ocho caracteres» aparece en la mitad de los formularios de registro de internet. La cifra viene de recomendaciones escritas en los años noventa y no se ha movido desde entonces, mientras que la velocidad de descifrado ha crecido millones de veces.
De dónde salen los años
Cada carácter añadido multiplica el número de candidatos por el tamaño del alfabeto. Para el conjunto completo de 94 caracteres imprimibles, eso es multiplicar por 94: un solo carácter aporta más que cualquier complicación de los que ya están.
| Longitud | Entropía | Sin conexión, 10¹⁰/s | Granja, 10¹⁴/s |
|---|---|---|---|
| 8 | 52 bits | unas horas | segundos |
| 10 | 65 bits | unos dos meses | unos minutos |
| 12 | 79 bits | cientos de miles de años | décadas |
| 14 | 92 bits | miles de millones de años | cientos de miles de años |
| 16 | 105 bits | más que la edad del universo | más que la edad del universo |
| 20 | 131 bits | no merece la pena calcularlo | no merece la pena calcularlo |
Un carácter frente a todo el alfabeto
Una discusión habitual: ¿es mejor añadir símbolos o añadir longitud? La aritmética responde sin ambigüedad.
- De 26 letras a 94 caracteres: +1,85 bits por carácter
- La contraseña se vuelve más difícil de teclear
- Algunos formularios rechazan los símbolos
- Dictarla en voz alta se vuelve casi imposible
- Cada carácter: +6,55 bits con el conjunto completo
- Teclearla no se complica cualitativamente
- Funciona en cualquier formulario
- Un carácter vale más que ampliar todo el alfabeto
Qué usar en la práctica
- 16 caracteres — valor por defecto sensato para todo lo que vive en un gestor. Página lista.
- 20 o más — correo, banco, el propio gestor de contraseñas. Se teclean poco y valen más que el resto.
- 32 o más — claves, tokens y cuentas de servicio que pone un programa.
- 12 — el mínimo por debajo del cual no bajar si el formulario permite más.
- 8 — solo cuando el sistema no acepta nada más largo. Entonces el segundo factor es obligatorio.
Si un formulario limita la longitud a doce caracteres, suele significar que la contraseña no se guarda bien, y es un motivo para no repetirla en ningún otro sitio.