La seguridad de los servicios de hoy en día depende en mayor o menor medida de la fiabilidad de la contraseña que creamos para loguearnos en el mismo. Si sois precavidos (o el propio servicio os lo pide), seguramente uséis la regla de los ocho caracteres (una contraseña de mínimo 8 caracteres, con al menos un número y un signo), lo que en la práctica de como resultado un array de ocho caracteres, y 6.1 cuatrillones de posibilidades distintas.
Los ordenadores actuales tardarían muchísimo tiempo en explotar mediante fuerza bruta una contraseña así, por lo que se tiende a decir que estamos ante un sistema de seguridad bastante fiable.
El problema surge cuando quien decide cómo unir esos caracteres no sigue un patrón aleatorio (que daría efectivamente con una posibilidad entre las 6.1 cuatrillones que hay), sino que tendemos a simplificarlas partiendo de palabras ya existentes, y para colmo, que mantienen algún tipo de relación con alguna faceta de nuestra vida, descontando el hecho de que no es raro usar la misma contraseña para diferentes servicios, con el grave peligro que conlleva. Un servidor lo hace en aquellas herramientas que considero de segunda (como pueden ser los innumerables formularios que casi para cualquier cosa tenemos que rellenar), y seguramente muchos de los que me estáis leyendo también.
Esto ofrece varios discursos. El primero y más obvio es que de esos 6.1 cuatrillones de posibilidades, nos quedamos con un muy reducido número, ya que podemos descontar todas aquellas combinaciones que no dan como resultado palabras reales. Además, y como ya hemos visto en más de una ocasión, la seguridad del conjunto es tan débil como el más débil de sus elementos, por lo que en buena parte de los casos, bastaría con obtener una de ellas para tener acceso al resto.
Sobre los métodos de obtención de contraseñas, los hay como piedras. El más obvio sería la fuerza bruta, pero no hay que olvidarse de la ingeniería social, muchísimo más efectista y que para colmo pone en jaque el poco razonamiento de los luser. Y para ataques masificados, bastaría vulnerar la seguridad de la base de datos del servicio donde están alojadas mediante alguna vulnerabilidad web.
Todo esto viene a raíz de uno de los últimos estudios de predicciones del 2013 sobre TMT (Technology, Media, Telecommunications) (EN), en donde se llega a la conclusión que las 1000 contraseñas más utilizadas permiten acceder al 98,1% de servicios.
Hay que contemplar el esperable inflado de datos (por eso de obtener titulares que vendan), pero aun así, dudo que se equivoquen mucho, y para muestra la aparente aleatoriedad de un generador de password como el de compartir WIFI de iOS, que si bien se trata de un programa (y se esperaría por tanto una fiabilidad superior a la humana), no deja de estar desarrollado por nosotros, y acaba siendo explotable en menos de un minuto.
Os dejo con el vídeo (eso sí, en inglés), que viene a decir básicamente lo que ya hemos desarrollado más extensamente en el artículo.
Muy buen artículo.
Qué gran verdad lo de poner a todos los servicios la misma password… Yo antes lo que hacía era tener un algoritmo con el que creaba una contraseña bastante segura, en solo 3 pasos. Casi todos los test de seguridad de contraseñas se superaban por encima del 90% de seguridad. Sin embargo no me fiaba de mi propio método así que un amigo que usaba el mismo método y yo, nos retamos a descubrir el algoritmo que usábamos. Todo hay que decirlo: había confianzas suficientes, no lo habría hecho con cualquiera. Nos dimos cada uno 3 contraseñas del otro, sin saber nombres de usuario ni a qué servicio pertenecían, y el reto consistía en saber los pasos que se seguía y, si era posible, descubrir a qué servicio. Todo ello bajo promesa de no hacernos ninguna liada cuando los lográsemos. Una semana más tarde, mi amigo me mandó por correo un archivo cifrado diciéndome qué pasos usaba para construir las contraseñas, a que servicios pertenecían, y mis contraseñas de 7 servicios más. Ni que decir tiene que lo cambié todo al instante. A mi me llevó más tiempo, pero en unas 3 o 4 semanas lo saqué también (él usaba 5 pasos).
Por éste motivo es (relativamente) importante tener contraseñas aleatorias. Para ello, ambos empezamos a utilizar un gestor de contraseñas para almacenarlas todas. En concreto nos decidimos por KeePass, ya que el ser de código abierto nos inspiraba confianza, además de ser multiplataforma y los plugins para casi todo… No hace mucho he escrito en mi blog dos artículos que hablan de éste generador describiendo con detalle todas sus posibilidades (dejo los links con tu permiso): Enlace 1 (ES) y enlace 2 (ES).
El problema es la falta de formación de los usuarios, y, por desgracia, ese problema va a perdurar por mucho tiempo.
Así es Rubén. Y en efecto, la estrategia que seguís es bastante adecuada. Siempre va a haber un algoritmo por detrás, pero mientras más pasos tenga, mejor que mejor.
Buenos enlaces. Saludos, ¡y muchas gracias!