Hay muchos artículos que tratan de como formar una contraseña “buena”. El problema es cómo memorizar 50 diferentes. En este artículo presento una manera que se basa en memorizar una regla para formar contraseñas en lugar de las contraseñas mismas.

El problema

Como te preocupa la seguridad de tus datos, usas varias cuentas de email distintas. Los correos más importantes te dejas enviar al servidor de la NSA, porque sabes que ahí no se borra nunca nada. Como tienes pocos correos importantes, nunca te acuerdas de la contraseña para abrir la página de correo. Lo que, sí, te acuerdas es que cambias tu contraseña a menudo por seguridad. Con este método te aseguras que aún no sabes tus credenciales si te acuerdas de alguna contraseña porque ya no estás seguro si es la actual.

¡Así de frustrante es hacer contactos seguros por Internet!

Una forma de resolver este problema es mantener una base de datos de contraseñas como KeePass que a su vez está protegido por una contraseña maestra. Así sólo necesitas saber una contraseña para saberlas todas (y la NSA y demás interesados también). Pero conlleva el inconveniente que necesitas esta base de datos siempre a mano y esto a veces no es tan fácil. Instalar un programa así en tu smartphone y, además, confiar que no envie tu base de datos por ahí ya es un reto. El otro es abrir la base de datos, leer la contraseña correspondiente y editarlo en la página que quieres abrir. No es fácil si es la contraseña que da acceso a tu teléfono.

La vida sería mucho más fácil si tuvieras todas las contraseñas en la cabeza. La buena noticia es: se puede. En lugar de memorizar contraseñas memorizas una regla de como formar una contraseña. Los “datos de entrada” a que aplicar esta regla los obtienes directamente del sitio en que quieres entrar.

Los ingredientes

Queremos una contraseña diferente para cada sitio. Así el sitio debe ser un ingrediente en la contraseña de alguna forma. También quieres cambiar tu contraseña regularmente. Así el tiempo también debe ser una parte. Personalmente considero los siguientes ingredientes en cada contraseña.

  1. Una parte “fija”. Esta parte sirve para hacer la contraseña más larga, ensamblar los demás datos en una frase completa y subir la entropía (o calidad de encriptación). No obstante, la parte fija puede omitirse si uno quiere.
  2. El sitio. El sitio es adonde quiero entrar: “el teléfono”, “NSA”, “mi ordenador”, “facebook”.
  3. El tiempo. Conviene usar el año para la noción de tiempo, pero esto depende de qué a menudo cambias tu contraseña en general.
  4. La versión. La versión tiene un significado variado según tus necesidades. Si cambias tu contraseña cada més, podría ser el mes. Si cambias tu contraseña cuando en el periodico sale que fue robada, entonces la versión te permite crear una nueva contraseña y todavía usar el mismo año para “el tiempo”. No obstante, ninguna versión también es una versión válida. Se puede omitir.

Con todos esto campos se podría crear una contraseña como “Mi primera contraseña para la NSA en 2015”. Tiene una parte fija (“Mi … contraseña para … en”), un sitio “la NSA”, el tiempo (“2015”) y una versión (“primera”).

De hecho, esto ya es toda la mágica. Con esta regla puedes crear una contraseña distinta y con fecha de caducidad para cualquier sitio en que entres. En la contraseña actual entra el año actual. Si no funciona, debe funcionar la contraseña del año pasado. (Y si ésta tampoco considera cerrar la cuenta.)

Encriptar tu contraseña

Esta contraseña ejemplo arriba es fácil de crear y fácil de adivinar. Mejor es una contraseña que sólo es fácil para ti. Además, si uno ha descubierto una de tus contraseñas, entonces no quieres que lo tenga fácil adivinar las demás. Así debes poner el sitio, el tiempo y la versión en una manera encriptada.

La versión

La versión es la más fácil. Lo que necesitas es alguna enumeración con un orden definido. Los números natureles 1, 2, 3 son un ejemplo. Más ejemplos pueden ser las ciudades en que has vivido, los nombres de los peces en tu aquario en el orden de entrada, tus profesores de matemática en la escuela o los años en que has ganado el campionato de bailar Merengue. Todos estos ejemplos tienen en común que sólo tienen un orden (cronológico) en tu vida y que no aparentan ser demasiado ordenados por alguien más. Normalmente no necesitas muchas versiones diferentes. Así te vale con cuatro cosas.

El tiempo

Saber que “2015” representa un año es bastante obvio. Así es mejor camuflarlo. No camufla mucho eligir otro calendario como años budistas o judios o representar el año por el animal de turno del calendario chino. Para ti puede ser exótico pero para un posible atacante puede ser lo más normal del mundo.

Lo que funciona mejor que hacer un cálculo mátematico que no sea una simple adición o subtracción ya que estos dejan la estructura del número todavía demasiado obvia para alguien que ha robado varias de tus contraseñas. Mejor es una multiplicación con un número pequeño que sólo sabes tú como los años que tiene tu perro o el número de cuadros en la pared. Ayuda si este número se cambia cada año, porque así no multiplicas siempre con el mismo número que también dejaría una estructura visible como los múltiple de 5 de todos los años.

Mejor aún para romper la estructura de número de años consecutivos es aplicar un algoritmo no líneal. Por ejemplo, los años pares multiplicas por el número de cuadros y los impares por los años de tu perro. Ideal es la combinación de varios cálculos. Pero tu procesador de cálculo cerebral probablemente prefiere que te limites a algo que todavía seas capaz de hacer bajo la influencia de drogas socializadas.

Como los dos primeros cifras del año no cambian mucho, es mejor hacer los cálculos sobre el último o los dos últimos dígitos del año.

El sitio

¿Es obvio que una contraseña que contenga “para la NSA” será para la NSA? Pues, ¡sí! Tienes dos formas de tratar este problema.

La versión número uno trata de camuflar el sitio de una forma similar que el tiempo. Aplicamos un cálculo sobre letras. Por ejemplo, escogemos para cada letra la próxima del alfabeto. La “NSA” sería entonces “OTB”. Puedes intentarlo con más fantasía: si es un vocal, entonces avances tantas letras como los años que tiene tu perro y si es un consonante retrocedes tantas letras como suman los dígitos de este año. (Por ejemplo, 2 + 0 + 1 + 5 = 8 posiciones) De esta manera cambias incluso la encriptación cada año.

El problema con la versión número uno es que no es práctico. Si has calculado que la “NSA” sea algo como “OTB”, entonces empiezas memorizar la “NSA” como “OTB”. El cálculo con letras no es tan fácil de manejar por el cerebro que el cálculo con números. A menos que seas una excepción, te pararás al teclear el sitio porque el cálculo de letras te cuesta tanto esfuerzo mental.

Así llegamos al número dos: ¡no hacer nada! Aparentemente. Alguien que ha descifrado tu contraseña siempre sabe para que sitio sirve, porque encontrar una llave sin saber la cerradura a que corresponde no es un peligro. Así no revelas demiasado que la contraseña para la “NSA” contenga las letras “NSA”.

Lógicamente no quieres que el atacante sólo necesita reemplazar “NSA” por “Casa Blanca” para obtener el pase a algún edificio emblemático. Pero esto puedes resolver de una forma más sútil. Y para esto conviene la parte “fija”.

La parte “fija”

He puesto “fija” entre comillas porque no necesita ser tan fija” La puedes usar para subir el número de combinaciones posibles.

Digamos tu parte fija es “campeón”. Si el sitio tiene tres letras, entonces reemplazas las primeras tres letras por puntos “…peón” o escribes la tercera letra en mayúscula “caMpeón”. Cómo no quieres que un atacante simplemente reemplaza “NSA” por otra institución de tres letras, entonces lo pones un poco más complicado. Reemplazas la tercera letra por la primera del sitio y añades la última. Así obtienes “caNpeónA”.

En general puedes seguir las recomendaciones para formar una contraseña para crear la parte “fija”. Puedes mezclarla con la información de las otras parte tiempo, sitio y versión. Así la parte “fija” se modifica y rompe la estructura aparente de la contraseña. Aunque un atacante sepa en qué parte pones el sitio y el tiempo, no lo tendrá tan fácil en saber como estas partes modifican la parte “fija”. De esta forma te permites no necesitar camuflar las otras partes mucho.

A probar

La primera cosa es inventarse una regla. Para comprobarla escribe varias contraseñas formadas por ella y mira cuanto se distinguen. Cuanto más mejor – especialmente aquellos que vienen de datos similares porque, por ejemplo, sólo cambiaste el año o el sitio.

La segunda cosa es aplicar la regla y esto ya cuesta bastante más coraje. Ahora te toca cambiar contraseñas y confiar que no las olvides. Para el principio te recomiendo que sólo cambias unas pocas que usas a menudo y, por seguridad, te las apuntas en algún fichero encriptado offline. Tras un par de semanas estás acostumbrado a la nueva forma.

Además, comienza con una regla que no te cuesta demasiado pensarlo. Tras medio año estás más entrenado y cambias a una más compleja. De hecho, cambiar la regla a veces puede mejorar la seguridad como lo hace cambiar la contraseña. Pero como tu regla ya contiene un campo de tiempo, no hace falta cambiarla tan a menudo.

Un problema te puede surgir por la ortografía. ¿Nombres propios comienzan mayúsculas o los escribo como los hace los propietarios? Es decir, “Facebook” o “facebook”? Mi recomendación es póntelo fácil: todos los nombres escribes igual. Todos minúsculas o primera mayúsculas o la última letra mayúscula. Así evitas el problema.

Un problema más difícil es la denomicación de los sitios. ¿Tu cuenta de correo lo tienes en “Google” o “Gmail”? ¿En qué piensas cuando tecleas la contraseña de acceso a tu ordenador? ¿El nombre que tiene en la red o simplemente “mi ordenador”? Verás que muchas veces no es tan fácil determinar un sólo nombre obvio. Para esto no hay una regla de oro. Intenta sentir en lo que piensas primero cuando ves tu ordenador, tu teléfono, tu blog o tu cuenta de correo y esto escoges como nombre de sitio. Esto tendrá éxito porque muchas veces pensamos primero en lo mismo cuando vemos la misma cosa. (Lógicamente esto no es recomendado para quien piensa siempre en lo mismo no importa lo que vea.)

También para la denominación ponlo fácil. “Quizá no es creativo llamar “ordenador” a tu ordenador pero lo obvio para uno no tiene por qué serlo para otro. (Si no lo crees sigue una conversación entre tu padre y tu madre.)

Tampoco lánzate demasiado. Empieza cambiar la contraseña en los sitios que ya tienes claro como denominarlo. Quizá sería perfecto cambiar todas las contraseña a tu nueva regla, pero si sólo cambias un 20 por cien, ya has ganado algo. Debes aprender una nueva forma de hacer las cosas y esto cuesta tiempo. También verás como querrás mejorar tu regla inicial tras cierto tiempo. Así empieza con poco. No es un error mantener una base de datos encriptada con contraseñas mientras tanto – sobre todo con las que usas poco.

Trampas

Aunque la regla sea perfecta, el mundo no lo es. El dogmático intenta cambiar el mundo, el pragmático ajusta el dominio en que la regla es válida. Como no falta opiniones sobre como hacer el primero, aquí tratamos la segunda manera.

Contraseñas de longitud limitada

¡Sí! Esto existe hasta hoy en día: que una contraseña no deba contener más que ocho caracteres o al menos no más que 16. Es un aviso que el sistema guarda la contraseña directamente en lugar de algún hash como MD5, ya que este hash siempre tiene la misma longitud.

Si tu contraseña no cabe, entonces busca alguna forma de abreviarla. La más obvia es abreviar cada palabra con la primera letra. O sólo las palabras y no las cifras. O sólo escribes la letra que escribes en mayúsculas. En fin, te hace falta encontrar una regla de cómo abreviar tu regla. O directamente inventas una regla con contraseñas cortas aunque esto tampoco es la mejor solución ya que baja la seguridad en todos los sitios.

Claves de cifras

Claves de cifras hay muchas: la cerradura de números de tu maleta, el código para la caja fuerte en el hotel y el PIN de tu teléfono. Algunos sistemas ni siquiera te permiten cambiar el código como muchas tarjetas de crédito. Ahí olvídate de cualquier regla de formar contraseñas. Mejor aprendas una para memorizar números.

Es lógico que tu reglar de arriba no va a funcionar con códigos numéricos o ¿cómo escribes el sitio “caja fuerte” con los cuatro cifras que te permite sistema?

La solución es inventarse otra regla que genera sólo dígitos. Hazte libre de cualquier regla que acabas de inventar para tu ordenador y piensa en algo puramente numérico. Fechas son malas, pero sólo si se relacionan públicamente contigo como tu cumpleaños. Algún otro día que no quieres olvidar, aunque no quieres decir a otros qué día era y qué hiciste entonces, es una mejor opción.

Una regla numérica es una secuencia matemática. Por ejemplo, 123456. Mejor ejemplo, 112358, que es la secuencia Fibonacci. Aún mejor ejemplo, 126258, que la secuencia de Fibonacci multiplicado por la posición del dígito.

Al contrario de contraseñas, no es necesariamente buena idea incluir el tiempo en una clave numérica, porque muchas claves no se cambian casi nunca. Piensa en la maleta con cerradura numérica y sólo usas cada dos o tres años. ¿En qué año pusiste el código por última vez? ¿No lo prestaste a alguien que seguramente lo cambió? Al final quizá ni es la peor idea de siempre poner la fecha de contraer matrimonio. Si alguien la adivina, pues, entonces al menos a uno puedes preguntársela.

Nota del autor


A la hora de escribir este artículo no conozco ningún otro que trata este tema. Así es posiblemente la primera publicación de esta idea. Si quieres citarlo en una obra científica puedes poner el enlace a esta página (a falta de algo mejor) o te pones en contacto conmigo (con el enlace “Envía un mensaje al autor” al lado).

Referencias

  • KeePass – “caja fuerte” para contraseñas

Lectura adicional