José Aguilera

La contraseña perfecta no usa mayúsculas

Realmente, esta afirmación no es correcta. Pero al finalizar, entenderás el porqué del título.

Una contraseña segura debe maximizar la incertidumbre para un posible atacante. Esto se logra combinando dos factores: longitud (cuanto más larga, mejor) y variedad de caracteres (mayúsculas, minúsculas, números, símbolos, etc.).

Por este motivo, exigir el uso de combinaciones de carácteres puede parecer una buena idea a priori. Lamentablemente, en la práctica los usuarios suelen crear la contraseña mínima que cumpla con la política, lo que ofrece un beneficio de seguridad muy limitado.

Además, este requisito de complejidad es arbitrario1: en muchas webs se exige utilizar un símbolo como #, !, o ?, pero se rechaza el uso de tildes o caracteres más extravagantes como ʖ. ¿Qué sentido tiene esto?

La longitud es más importante que la complejidad

La longitud es mucho más importante que la complejidad: aumentar el número de caracteres de la contraseña incrementa las combinaciones posibles de manera exponencial, mientras que ampliar el conjunto de caracteres permitidos tiene un efecto mucho menor.

Fíjate en este ejemplo:

ContraseñaLongitudTiempo para descifrarla
Cl@v3!6< 10 segundos
gato come pescado en madrid27Miles de millones de años

El segundo caso se trata de una passphrase, una secuencia de palabras fácilmente recordable.

Siempre que no uses un gestor de contraseñas, esta es la opción preferible, y la que personalmente recomiendo aplicar desde hoy mismo en tus propias contraseñas.

Es muchísimo mejor que una contraseña tradicional de pocos carácteres y compleja, de la que probablemente te olvidarás en el próximo inicio de sesión.

Mejores prácticas para sitios webs

Una gran parte de la responsabilidad recae sobre el sitio web. Además de las medidas de seguridad esenciales2, aquí van algunas recomendaciones simples para mejorar la política de contraseñas y hacerla más segura:

Límites de longitud elevados

Establecer un límite máximo generoso, por ejemplo, 256 caracteres.

Aunque el coste computacional de manejar cadenas largas es prácticamente inexistente, poner un límite simbólico evita abusos del sistema, como el envío de entradas gigantes.

Exigir una longitud mínima

Las contraseñas deben contener al menos 8 caracteres. Este mínimo ayuda a proteger contra ataques de fuerza bruta y es la recomendación de estándares como el NIST.

Bloquear contraseñas comunes

Prohibir el uso de contraseñas comprometidas y evitar combinaciones fáciles de adivinar.

Revisar regularmente listas de contraseñas filtradas para mantener esta medida de protección actualizada.

Eliminar cambios periódicos forzados

Los cambios forzados cada cierto número de días son molestos para el usuario y por lo general solo se crearán variaciones simples y predecibles: Password1!Password2!. Lo cual, sigue sin suponer un aumento considerable para la seguridad.

En su lugar, es recomendable forzar el cambio de contraseña únicamente cuando existan indicios de que hayan sido comprometidas.3

¿Qué podemos hacer como usuarios?

Mientras que las contraseñas tradicionales sigan teniendo protagonismo, como usuario, la opción más recomendable es utilizar un gestor de contraseñas. Estas herramientas generan contraseñas largas, únicas y aleatorias para cada sitio web, las guarda cifradas y te evita recordarlas, eliminando reutilización y riesgo de brechas.

Un magnífico gestor de contraseñas con el que empezar es Bitwarden. Es de código abierto, cuenta con una versión gratuita completa y permite autoalojar tus contraseñas si lo deseas.

Si no quieres usar un gestor, la alternativa más segura es utilizar una passphrase como contraseña diferente para cada web, suficientemente larga y memorable.

Por último, pero no menos importante, es recomendable habilitar la autenticación de doble factor (2FA). Esto puede hacerse mediante una aplicación de autenticación como Proton Authenticator o mediante el envío de un OTP (contraseña de un solo uso) por correo electrónico.

De esta forma, incluso si tu contraseña es comprometida, tu cuenta seguirá protegida.

Referencias

[1] Grassi, P. A., Newton, E., Fenton, J. L., Perlner, R. A., Regenscheid, A., & Burr, W. E. (2017). NIST Special Publication 800-63B: Digital Identity Guidelines — Authentication and Lifecycle Management. U.S. Department of Commerce. https://doi.org/10.6028/NIST.SP.800-63b
[2] OWASP. (2023). Authentication Cheat Sheet. Cheat Sheet Series. https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
[3] International Organization for Standardization. (2013). ISO/IEC 27001:2013 - Information technology - Security techniques - Information security management systems - Requirements. https://www.iso.org/standard/54534.html