Cada vez que algún conocido me pregunta qué puede hacer para tener una contraseña segura y lograr que sea difícil de romper, automáticamente se dispara en mí la respuesta cuasi robótica de: “Mira, tu contraseña debe tener una longitud mínima de doce caracteres, y debe estar compuesta por mayúsculas y minúsculas, números y caracteres especiales como son mayor que, menor que, gatito, porcentaje y demás símbolos.”, y seamos honestos, este método de buena práctica para contraseñas es bastante efectivo y tiene una explicación matemática combinatoria que lo sustenta.

Una contraseña (una buena contraseña compleja) es la variación aleatoria de 12 elementos tomados del grupo de todos los caracteres que encontramos en el teclado de una computadora. Estamos hablando de que la contraseña puede estar compuesta por las 27 letras del alfabeto español, que en realidad debemos multiplicar por 2 ya que también hay que contar las mayúsculas, dando un total de 54, más 10 dígitos (del 0 al 9) y un aproximado de 33 caracteres especiales, es decir, que una contraseña puede ser formada por 97 caracteres. Esto en matemáticas se conoce como “variación con repetición” y el cálculo de las diferentes variaciones posibles está dado por la siguiente fórmula:

V Rm,n = mn

En donde llamamos variaciones con repetición de m elementos tomados de n en n a todas a las agrupaciones posibles con n elementos, independientemente de que se repita alguno.

Vamos a comprobar que esto es cierto; veamos cuántas variaciones de 0 y 1 existen formando grupos de tres elementos.

V Rm,n =  23  = 8

Y es cierto, porque al hacer grupos de ceros y unos, de 3 elementos, solo son factibles las siguientes variaciones:

000     100

001     101

010     110

011     111

Después de constatarlo, ¿cuántas variaciones posibles existen de contraseñas de 12 caracteres con los 97 posibles elementos que podemos escoger?

V Rm,n =  9712  = 6.93842360995438 x 1023

Un número bastante grande. Pero seamos un poco más realistas, no es común que utilicemos contraseñas de 12 caracteres, es más probable que la mayoría de nosotros utilicemos una contraseña de 8 caracteres utilizando alguno de los 97 posibles valores. Tomando esto como cierto veamos cuántas posibles variaciones existen con estas condiciones:

V Rm,n =  978  = 7,837,433,594,376,961

Igualmente un número bastante grande, aunque no tan grande como el primero. Ahora, pensemos que contamos con una computadora que puede ejecutar pruebas automatizadas de todas estas variaciones (lo que comúnmente se conoce como ataque de fuerza bruta), ¿cuánto tiempo tardaría en dar con la contraseña que hemos utilizado si la computadora hace 1000 pruebas por segundo? En el caso de una contraseña de 12 elementos la computadora tardaría aproximadamente 2.2 x 1013  años en probar todas y cada una de las posibles opciones, claro está que la prueba podría tardar mucho menos si utilizara algún método de probabilidad que le permitiese jugar con las variaciones más probables primero, sin probar las combinaciones linealmente, o si simplemente el atacante corriera con suerte. Regresando al caso de una contraseña de 8 caracteres  la computadora tardaría aproximadamente 2.5 x 105 años en probar todas las contraseñas posibles.

Solo por curiosidad, calculemos cuánto tiempo tardaría la misma computadora en probar variaciones que contengan solo mayúsculas, minúsculas y números. En el caso de una contraseña de 12 caracteres tardaría aproximadamente 1.5 x 1011 años  y con una de 8 caracteres tardaría aproximadamente 8926 años.

De estos números se deducen dos cosas, la primera, que el hecho de incluir los caracteres especiales aumenta considerablemente el tiempo que sería necesario para encontrar la contraseña correcta; y dos, que a mayor longitud de la contraseña aumenta considerablemente el tiempo requerido para encontrarla. Si observamos el caso donde se construyó una contraseña sin caracteres especiales, la diferencia de tiempo para probar todas las variaciones entre una de 8 elementos y una de 12 elementos es bastante amplia.

¿A dónde quiero llegar con todo este análisis? Utilizar caracteres especiales en una contraseña con una longitud considerable es indudablemente la mejor manera de obtener una contraseña robusta, sin embargo presenta una desventaja, es difícil de memorizar o recordar. Si eligiéramos 12 caracteres al azar como Tg7&3=9sy/4!? y los utilizáramos como contraseña, sería una buena práctica tomando en cuenta lo que he expuesto pero, hay que admitirlo, no es muy mnemotécnica y muy probablemente la lleguemos a olvidar pronto, sobre todo si no la manejamos con frecuencia. Si a esto le agregamos que otra buena práctica de las contraseñas que es no repetir la misma contraseña en cada uno de los mecanismos de autenticación (acceso a computadora, email, bancos, redes sociales, etc.), entonces se vuelve aún más complicado usar contraseñas como la que construí con 12 caracteres al azar, y existe mayor probabilidad de olvidar alguna, luego entonces, ¿qué opciones tenemos?, la más común es emplear palabras y cambiar algunas letras por números, con un símbolo para cumplir con la regla de incluir caracteres especiales, por ejemplo p4ssS3gUr0! o 5pUr543v3R<3. Seamos sinceros, este tipo de contraseñas se pueden poner en un diccionario después de haber hecho un poco de ingeniería social sobre la víctima para descubrir sus gustos, y luego proceder a un ataque de fuerza bruta con posibles contraseñas basadas en ellos.

Sin embargo hay otra opción no muy popularizada, ¿qué tal si basamos la contraseña en la longitud y no en la complejidad?, se podría utiliza una contraseña de cuatro palabras al azar, algo como “GatoLamparaLentesBote”, una contraseña de 21 caracteres solo entre mayúsculas y minúsculas: calculemos cuántas variaciones existen solo tomando 54 caracteres para crear las variaciones de una longitud de 21 elementos.

V Rm,n =   5421  = 2.40031896369803 x 1036

El resultado es un número mucho mayor que las variaciones factibles con una combinación de 97 caracteres y 12 elementos, lo cual convierte a la contraseña de mayor longitud en una contraseña más difícil de adivinar pero más fácil de recordar, ya que podemos auxiliarnos en la memorización de la contraseña creando la imagen mental de “un Gato saltando sobre una Lámpara tirando unos Lentes al Bote”, y esta imagen mental sería más fácil de recordar que 12 caracteres aleatorios que no guardan relación entre sí.

No hace falta más ejemplificación, se observa fácilmente que a mayor cantidad de caracteres, mayor será el número exponencial de la fórmula, lo que conlleva a que al final las variaciones totales sean muchísimas más.

Basar una contraseña en la longitud y no en la complejidad parece arriesgado e incluso ir en contra de las buenas prácticas (y lo hace), pero hemos visto la matemática detrás de las contraseñas cimentadas en la longitud sustentando que hay mayor probabilidad de llegar a descubrir una contraseña compleja que una basada en longitud, sin embargo, al final es el lector quien tiene la última palabra acerca de qué tipo de contraseña elaborar, a menos que el mecanismo de autenticación no lo permita y solo pueda introducir contraseñas de unos cuantos caracteres, en ese caso sí es recomendable que se utilicen mayúsculas, minúsculas, números y caracteres especiales para contar con una contraseña segura.

[email protected]