Un tema que se considera de alta relevancia para quienes son usuarios o tienen a su cargo varios sistemas informáticos, es el empleo y la gestión de contraseñas suficientemente fuertes con el fin de restringir el acceso a su información, lo que sin duda puede trasladarse a ámbitos laborales, personales y sociales. Es importante que el administrador y usuario comprendan no solo la trascendencia de  establecer contraseñas fortalecidas, sino el método para generarlas.

En muchos sistemas es común que el estándar de facto para establecer contraseñas sea mayor a ocho caracteres y menor a catorce. Esta regla es por sí misma obsoleta debido a que herramientas orientadas a ataques basados en diccionario y en fuerza bruta prácticamente pueden descubrir una contraseña con estas características de longitud en un tiempo relativamente pequeño.

En un estudio publicado por (IN)Secure[1], algunas de las contraseñas más usadas como “123456”, “qwerty”, “root”, “abc123” o “admin” fueron quebrantadas por ataque de fuerza bruta entre 600 y 2,103 intentos en un lapso de tres a cinco minutos. En cambio, en contraseñas de hasta 10 caracteres de longitud, que incluyen caracteres especiales, el número de intentos aumenta a 41,349, en un lapso de entre 18 días y 5 meses. Por ejemplo la contraseña “password” es común que sea repetida en 3,691 variaciones distintas en un mismo conjunto de sistemas administrados por un usuario común: “p4ssw0rd” para el acceso al correo electrónico,  “Pa$$worD” para la cuenta de algún sitio y “[email protected]” para el equipo personal. Nótese que la implicación de caracteres especiales o alfanuméricos no robustece lo suficiente este tipo de contraseñas, ya que los ataques basados en diccionario tienen aproximadamente 93% de efectividad, toda vez que consideran de antemano este tipo de variaciones.

El común denominador en el método usado por la mayoría de los usuarios para crear una contraseña es el establecimiento de un patrón para las distintas contraseñas, por ejemplo, agregar ligeras variantes a los valores por omisión. Lo anterior da lugar a contraseñas débiles: empleando programas como MD5 bruteforcer, hydra o L0phtcrack, para auditar una contraseña de ocho caracteres de longitud que basada en el alfabeto de 26 caracteres  en minúscula, matemáticamente es posible acceder a ella en un lapso de 6 a 35 horas, considerando que el ataque se realice en una máquina con procesador Pentium 4 a 2.8 GHz, es decir, un equipo de desempeño relativamente bajo tomando en cuenta los estándares actuales de velocidad en procesadores[2]. Al agregar caracteres especiales (#, $, %, &, etcétera), números, y aumentando la longitud de la contraseña, se incrementará exponencialmente el tiempo para obtenerla. Sin embargo, surge un nuevo problema: al incluir todos estos caracteres e incrementar la longitud, el usuario tendrá complicaciones al generar y aprender diferentes contraseñas complejas, por ejemplo, una típica contraseña robusta sería “ajñ91kwclB455)%[email protected]?+#”, pero una cosa es cierta, no habría quien logre memorizarla a primera vista y, lo que es peor, habría que renovarla cada 30 días en ambientes críticos. Surge entonces el dilema que invariablemente nos destina al conocido “triángulo de la seguridad”, en el que las puntas corresponden a la seguridad, la funcionalidad y la facilidad, y donde únicamente podríamos satisfacer dos de esas tres características.

Según un estudio realizado por Mark Burnett y Dave Kleiman[3], de tres millones de contraseñas de longitudes variadas 70% incluye solo letras minúsculas (siendo la letra a la más usada), 20% tiene un número o más (siendo el número 1 el más común), alrededor de 10% incluye al menos una letra mayúscula  (con la A como la más usada) y alrededor de 1% incluye al menos un carácter especial (siendo @ el más recurrente). En el mismo estudio, ambos especialistas proponen que una contraseña debe tener las siguientes tres características:

  1. Fácil de recordar.
  2. Difícil de adivinar para un usuario ajeno.
  3. Longitud mayor a catorce caracteres.

En otras palabras, recomiendan que una contraseña sea como la ropa interior: solo tú sabes qué te pones, no la muestras a nadie y, por lo tanto, te acuerdas de ella fácilmente.

Las anteriores condiciones pudieran parecer al principio difíciles de asimilar, ya que se podría pensar que el punto uno y el dos son contradictorios, pero no es así.

Por ejemplo, si se desea asignar una contraseña al equipo personal se podría comenzar pensando en el equipo favorito de beisbol: Tomateros de Culiacán. Si se escribe el nombre del equipo todo junto quedaría “tomaterosdeculiacan”. Para agregar mayor complejidad se podrían considerar caracteres numéricos, caracteres especiales y letras mayúsculas, lo que podría llevar a contraseñas como “TomaterosDEculiacaN” o “&&tomaterosdeculiacan&&”. Más robusta podría ser una contraseña como “miequipofavoritosonlostomaterosdeculiacan” (de 41 caracteres de longitud). Incluso sin considerar caracteres numéricos, especiales y mayúsculas, una contraseña con las anteriores características rompe el molde convencional para establecerlas, ya que supera por mucho la longitud “normal” y usa una “palabra” alejada completamente del ataque de diccionario.

En conclusión, cada vez que es agregado un carácter más en la longitud de la contraseña, el tiempo para quebrantarla se dispara. Teniendo presente que el poder de cómputo se duplica aproximadamente cada 18 meses[4]  y considerando las recomendaciones anteriores, se obtendrían buenos resultados tanto en la creación como en la administración de contraseñas altamente robustas.

[email protected]

 

1 Samuel, Erich. (Septiembre, 2010). “Learn from bruteforcers”. [IN]Secure Magazine. Numero 27, pag. 23-26.

2 MD5 brute Forcer (beta version). “MD5 Brute forcé program”. Tomado de http://www.timwarriner.com/software/md5brute.html

3 Burnett, Mark. Kleiman, Dave. (2006). Perfect Passwords: Selection, Protection, Authentication. E.U. Syngress.

4 Micho Kakou. (Abril, 2010). “The future of computing power (fast, cheap and invisible)”. Tomado de http://bigthink.com/ideas/19776