Como usuarios habituales de productos y servicios digitales, estamos acostumbrados a generar y utilizar multitud de contraseñas al día. Es una necesidad: para utilizar o consumir estos productos y servicios tenemos que identificarnos con nuestro nombre de cuenta (usuario o dirección de correo electrónico) y autenticarnos, es decir, demostrar que somos realmente quienes decimos ser.
La autenticación se puede basar en tres aspectos diferentes:
- Algo que solo el usuario conoce, como un PIN o contraseña.
- Algo que solo el usuario posee, como una llave, tarjeta o token físico.
- Algo que solo el usuario es o hace (un aspecto biométrico), como una huella dactilar o un patrón gestual.
Por su bajo coste, sencillez y transversalidad, el primer tipo de autenticación, basado en contraseñas, es el que más utilizamos en nuestra vida cotidiana. Pero ¿podemos sentirnos seguros utilizando este tipo de autenticación?
Ataques a contraseñas
Pensemos en un usuario medio, que utiliza entre 50 y 100 productos y servicios diferentes. Esto implica que debe generar y recordar entre 50 y 100 contraseñas para poder acceder a todos ellos. Lo que suele hacer este tipo de usuarios es definir contraseñas fáciles de teclear y de recordar, por lo tanto:
- Cortas y con letras.
- Que incluyan palabras o términos con un significado.
- Que incluyan datos personales como fechas de nacimiento, nombres de familiares o mascotas, objetos relacionados con aficiones, etc.
- Que ya se usen en otros productos y servicios.
Desde el punto de vista del usuario, esto tiene todo el sentido y hace su vida digital más cómoda. Pero desde el punto de vista de un atacante que quiera averiguar una contraseña, estos hábitos también hacen su trabajo más sencillo.
¿Cómo actúan los ciberdelincuentes?
El ataque clásico a contraseñas es la fuerza bruta, es decir, el atacante prueba con todas las combinaciones posibles de caracteres hasta averiguar nuestra contraseña. Obviamente hay herramientas que automatizan este proceso de prueba-error, muchas de ellas gratuitas y ampliamente distribuidas.
Si hemos generado una contraseña de 4 caracteres, todos letras minúsculas, el atacante tendrá que probar 531.441 combinaciones diferentes (con nuestro alfabeto de 27 letras). Parece un número muy alto, pero con la potencia de cómputo de los ordenadores domésticos actuales, se pueden probar todas de manera casi instantánea.
Si los atacantes utilizasen servidores más potentes o superordenadores de centros de investigación, por ejemplo, no les daría tiempo ni a pestañear. Cuanta más potencia de cómputo, menos tiempo necesita el atacante para dar con la contraseña que busca.
Si definimos una contraseña de 8 caracteres y, además, mezclamos letras mayúsculas, minúsculas, números y símbolos (70 posibilidades en total, por ejemplo), el atacante ya tendría que probar 576.480.100.000.000 combinaciones diferentes. Con la capacidad de los ordenadores actuales, tardaría años, un tiempo que probablemente no le compense.
El problema es que si una contraseña con esta complejidad (8 caracteres de diferente tipo) incluye palabras conocidas, con un significado, el atacante comenzará probando, de entre todas las contraseñas posibles, aquellas que incluyen este tipo de palabras. Para ello usará un diccionario que recoge las claves más frecuentes (por ejemplo, password o iloveyou). Y esto reduce mucho el tiempo que necesita para dar con nuestra contraseña.
Además, este diccionario puede incluir palabras o fechas que tienen que ver con la persona en concreto (información que se puede extraer hoy en día con mucha facilidad de sus redes sociales). Esto puede ahorrarle mucho tiempo al ciberdelincuente, evitándole probar muchas combinaciones y convirtiendo años de pruebas en horas o incluso en minutos.
Todos los años se publican listados con las contraseñas más habituales que se han visto involucradas en diferentes ataques y que permiten mejorar estos diccionarios malignos.
Phishing, otra forma de obtener contraseñas
Los ataques de fuerza bruta no son los únicos dirigidos a robar las contraseñas. La mayor parte de las campañas de phishing actuales preguntan directamente a los usuarios por sus claves o les llevan mediante enlaces a interfaces falsas muy bien construidas donde, si los usuarios confían, teclean sus contraseñas (pensando que interactúan con el servicio legítimo y no con uno controlado por el atacante).
En muchas brechas de datos de grandes proveedores también se filtran nuestras contraseñas desde sus propias bases de datos. El famoso servicio Have I been pwned? nos permite descubrir si alguna de nuestras contraseñas se ha visto comprometida en una de estas brechas.
Y hay un problema añadido: como muchos usuarios reutilizan contraseñas, una vez descubierta su contraseña para un servicio, con el método que sea, el atacante probará inmediatamente si esta misma contraseña le sirve para acceder a otros.
¿Cómo podemos protegernos?
Una vez comprendido el problema, parece obvio que necesitamos contraseñas largas (12 caracteres es lo que recomiendan los expertos en la actualidad), complejas (en cuanto a variedad de caracteres), que no incluyan palabras o frases ni información personal y únicas para cada servicio. De estas, necesitamos entre 50 y 100… ¿Cómo lo hacemos?
Una solución es el social login, que implica que nos autentiquemos en la mayor parte de servicios que usamos a través de un proveedor de identidades, como Facebook o Google.
Si mantenemos contraseñas seguras para los proveedores que usamos (lo que es más sencillo, porque serán tres o cuatro como mucho), nos ahorramos tener cuenta en el resto de productos y servicios que utilizamos. Pero ya hemos hablado en el pasado de los problemas que esto puede suponer para la seguridad y la privacidad.
Si queremos seguir asociando una contraseña a cada producto o servicio que utilizamos, hay dos buenas soluciones para incrementar nuestros niveles de seguridad:
- Utilizar un gestor de contraseñas. Es muy intuitivo: si tengo que recodar 100 contraseñar largas y complejas diferentes, las apunto. Pero en lugar de hacerlo en un papel, que debería llevar siempre conmigo, lo hago en una lista digital, en un gestor que me ayuda a generarlas, a almacenarlas e incluso a escribirlas cuando las necesito. Los hay gratuitos y de pago, locales y en la nube, para perfiles básicos o domésticos y profesionales. Lo esencial es elegir una solución robusta y proteger esta lista de contraseñas con una contraseña maestra bien definida (larga, compleja, no reutilizada).
- Habilitar un segundo factor de autenticación en los productos y servicios más importantes. Si habilito un autenticador adicional, aunque alguien conozca mi contraseña, no va a poder suplantarme, ya que se le pedirá un segundo factor que demuestre que es quien dice ser. Normalmente, algo que solo yo poseo o algo que solo yo soy o hago (lo que comentábamos al inicio del artículo). No es imposible que el atacante pueda conseguirlo en algunos casos, pero le complica mucho las cosas y nos proporciona un segundo nivel de protección.
Con estas dos buenas prácticas, ninguna especialmente costosa ni compleja, conseguiremos estar mucho más tranquilos con nuestra seguridad online.
Marta Beltrán, Profesora y coordinadora del Grado en Ingeniería de la Ciberseguridad, Universidad Rey Juan Carlos
Este artículo fue publicado originalmente en The Conversation. Lea el original.