En los últimos años, las recomendaciones y buenas prácticas en la política de contraseña han ido evolucionando conforme a los ataques a los que nos enfrentamos y a la evolución de la tecnología.
Hace una década teníamos una normativa como la antigua LOPD, en su RD 1720/2007, el cual indicaba que la contraseña tenía que caducar antes de un año y no permitir el acceso reiterado, y las buenas prácticas recomendaban contraseña de longitud al menos de 8 caracteres, caducidad al menos cada 90 días y complejidad de mayúsculas, minúsculas, números y caracteres especial. En esa época, los ataques principales a los que se estaba expuesto eran principalmente de fuerza bruta contra diccionario.
Hoy en día, los ataques han evolucionado; aunque no dejan de existir ese tipo de ataques, actualmente se utilizan técnicas de ingeniería social y phishing donde los atacantes consiguen las contraseñas de los propios usuarios mediante engaños por mail, sms o teléfono, esto más unido a que por defecto el ser humano, por increíble que pueda parecer en este artículo, tiene por principio no decir que no y tratar de ayudar a quien está al otro lado de la comunicación, sobre todo en ataques vía teléfono. Esto, unido a la evolución tecnológica, nos ha llevado a cambiar la perspectiva de cómo debemos implementar la parametrización de las contraseñas y los sistemas de identificación y autenticación para que sean seguros y robustos en la actualidad.
Normas como la familia de ISO 27000, ENS o la nueva LOPDGDD ya no recomiendan explícitamente unas guías para establecer las contraseñas, pues las medidas de seguridad, incluidas las de identificación y autenticación, deben diseñarse basándose en el análisis de riesgos actuales de cada organización. Otros estándares como PCI, HIPAA, no han actualizado sus guías sobre contraseñas o el caso de HITRUST que en la versión de 2020 actualizó los requerimientos, pero basándose en las recomendaciones de antiguas buenas prácticas:
- PCI-DSS (Payment Card Indrustry Data Security Standard) destacaba como requerimiento 8 de la versión 3.0 en el 2013, una longitud mínima de 7 caracteres, complejidad de números y letras y caducidad de 90 dias.
- HIPAA – ley de Ley de Portabilidad y Contabilidad de los Seguros de Salud de 1996, que en 2007 en la guía 164.308 menciona la política de contraseñas sólo al indicar que se debe tratar la gestión de contraseñas en los cursos y concienciación de seguridad, pero no se especifica ninguna política específica.
- El CSF -common security framework de Health Information Trust Alliance HITRUST- organización regida por representantes del sector de la salud, especifica como requisitos, en la actualización de v9.4 en 2020, un mínimo de 8 caracteres de longitud, complejidad, caducidad de 60 días y un histórico de 6 contraseñas.
Si bien es cierto que, en 2017, la guía NIST 800-63B (National Institute of Standards and Technology) centró sus recomendaciones en las siguientes pautas:
- Recomienda chequear las credenciales contra bases de datos en las que aparecen listas negras actualizadas con contraseñas usadas en ciberataques de diccionario. Aunque la utilidad de esta recomendación es cuestionable, pues suelen incluir contraseñas comunes, globales (no siempre recogen contraseñas populares locales), suelen requerir que se actualicen y refresquen con frecuencia los sistemas de autenticación para realizar esa comparación (lo que puede abrir una ventana para atacantes), etc.
- Recomienda eliminar la complejidad de las contraseñas. Estudios han mostrado que forzar esa complejidad puede generar como resultado contraseñas débiles ya que los usuarios acaban por sustituir alguna letra por un número o un carácter especial tipo “1” en vez de “i” o “0” en vez de la letra “o”.
- Cuanto más larga sea la contraseña, es matemáticamente más difícil adivinarla. Actualmente es más importante incrementar la longitud de las contraseñas y reducir el foco en la complejidad de estas. Se recomienda permitir contraseñas de hasta 64 caracteres que permita incluso usar frases con espacios como contraseñas. Aunque hay que tener en cuenta que contraseñas largas, requerirán más tiempo de procesamiento al cifrarlas para su almacenamiento, por lo que habría que limitar el número (aunque NIST no determina ese límite).
- Limitar la caducidad periódica de las contraseñas. Estudios han demostrado que puede cambiar muy frecuentemente las contraseñas, puede ser contraproducente, pues los usuarios, ante tanto cambio, eligen contraseñas débiles y comunes, haciéndolas débiles y predecibles.
- Permitir el copiar/pegar en las contraseñas, facilitando el uso de gestores de contraseñas.
Aparte de lo mencionado, habría que añadir otras recomendaciones como:
- Limitar los intentos fallidos reiterados desde una misma IP para los ataques de fuerza bruta.
- Usar multifactor de autenticación (al menos doble-factor), que es una de las formas más segura para proteger una cuenta (según Microsoft, las cuentas de usuarios tienen un 99.99% menos de probabilidad de ser comprometidas si se tiene múltiple factor de autenticación), basadas en algo que tú sabes (contraseña, pin), algo que tú tienes (token, teléfono, tarjeta, llave) y algo que tú eres (datos biométricos como huella, voz, reconocimiento facial).
- Utilizar gestores de contraseñas, pues además de almacenar tus contraseñas, también te enseñan a gestionarlas. Estos gestores pueden incluir un sistema para crear automática y aleatoriamente contraseñas fuertes, alertas que te avisan de cuándo tienes contraseñas débiles o excesivamente repetidas en varios servicios o permiten sincronización en la nube para poder utilizar estas mismas contraseñas en varios dispositivos. También hay gestores que posibilitan compartir alguna contraseña con otras personas de forma controlada, etc. Pero es muy importante que el propio gestor tenga un sistema de autenticación seguro cifrado en el lado del cliente (utilizando certificados, firmas, claves HASH), que distinga entre conexiones http y https, así como entre subdominios que puedan requerir distintos logins.
- Uso de llaves de seguridad Hardware, que es un dispositivo físico conectado al dispositivo normalmente a través de USB (aunque puede conectarse a otros puertos/conexiones como Lightning, NFC y Bluetooth) y son pequeñas y portátiles para llevarlas en un llavero. Estas llaves protegen contra bots automatizados y ataques dirigidos utilizando criptografía para verificar la identidad y la URL de una página de inicio de sesión. Por lo tanto, también son resistentes al phishing, ya que pueden determinar si está intentando iniciar sesión en un servicio legítimo. La mayoría de ellos utilizan un estándar de autenticación abierto, llamado FIDO U2F (o el estándar FIDO2 mejorado) que es un sistema de doble autenticación basado hardware que generará un número aleatorio, a través del cual se generarán los distintos hashes que se utilizarán para iniciar sesión en las plataformas con las que lo vinculemos, Cuando tengamos que iniciar sesión en una página, lo único que tendremos que hacer es conectar esta llave a nuestro puerto USB y esperar a que nuestro navegador la reconozca y verifique, sin tener que hacer nada más. Ninguna persona sin esta llave podrá acceder a nuestra cuenta, aunque se haga con nuestra contraseña. Algunas llaves incluso cuentan con hardware diseñado para resistir ataques físicos destinados a extraer firmware y material de la propia clave y si se nos pierde o nos la roban, es necesario conocer los usuarios y parámetros de inicio de sesión.
- Concienciación y formación de los usuarios. Es fundamental educar y concienciar de los riesgos de utilizar contraseñas débiles, las mismas contraseñas en casa que en el trabajo, así como formar en cómo crear contraseñas robustas y seguras, cómo habilitar múltiple factor de autenticación o cómo utilizar un gestor de contraseñas o llaves de seguridad.
Cómo conclusión, los controles de autenticación descritos son recomendaciones y guías a tener en cuenta, pero cada organización tiene que valorar el riesgo real al que está expuesto, dependiendo de su contexto y entorno de control, para determinar la probabilidad y el impacto, así como la exposición de la organización que va cambiando según las tendencias de los ataques.
Para tratar dicho riesgo, se debe tener en cuenta estas recomendaciones para protegerse acorde a sus necesidades y riesgos, siempre valorando el coste/beneficio de la organización y buscando facilitar al usuario el uso de métodos de autenticación eficientes y robustos pero amigables, buscando un equilibrio entre seguridad y accesibilidad.
Carmen Sánchez-Guijo Martín
Equipo GRC