¿Pásguord? ¿Guat pásguord?

Aprovecho que mi amigo Mauricio me conminó a escribir algo por él utilizando el clásico método del halago en un comentario de féisbuc para revivir este blog con un articulito corto y conciso. password security

La pregunta es ¿cómo elegir una buena password? Si uno no está utilizando ninguna ayuda tecnológica para guardar las claves que uno utiliza en distintos lugares como KeePass, LastPass o 1Password (cosa que recomiendo fervientemente, pero es tema para otro artículo), las passwords deberían ser fáciles para uno de recordar (y tipear) y difíciles de adivinar para una computadora que podría tener alguna información sobre vos.

Sin hacer ni remotamente un análisis serio sobre el tema, valga decir que, en principio, cuanto más larga es una clave, más difícil es de adivinar por una computadora, al menos utilizando un mecanismo de fuerza bruta (esto es, probar a lo bestia combinaciones de caracteres hasta dar con uno que funcione).

¿Cómo adivina una clave una computadora?

Si bien hay varias formas, el método más simple para una computadora para adivinar claves es aprovecharse de la velocidad de cálculo de la computadora y utilizar lo que se llama mecanismos de fuerza bruta.

En su forma más básica sería ir probando en orden:

  • A
  • AA
  • AB
  • AC
  • AD
  • AZ
  • B
  • BA
  • BB
  • ..

Eventualmente, va a encontrar todas las combinaciones posibles. Podría empezar en «AAAAAAAA» suponiendo que la longitud mínima es ocho caracteres. Con este método, utilizado en forma pura queda claro que, cuanto más larga es nuestra clave, más difícil es de descubrir.

Con una ayudita del atacado

En general el mecanismo de fuerza bruta puro casi no se utiliza o se deja como último recurso, ya que la gente tiende a utilizar palabras comunes o datos más o menos personales.

Posiblemente lo peor que uno pueda hacer es utilizar una palabra común como password ya que, por más larga que sea, lo más posible es que esté en un diccionario, ya sea «gastroenterologo», «prestidigitation», «Иллюзионист» o «טראַפּעז» y la computadora puede probar con todas las palabras de todos los diccionarios que tenga, rápidamente.

Muchas computadoras cuentan, además, con información que nosotros les dimos, ya sea directa o indirectamente, consciente o inconscientemente como ser, nuestra fecha de nacimiento, nuestro aniversario de bodas, nuestro número de documento, los nombres de nuestros hijos, mascotas, cónyuges, amantes, padres, primos, etc.

Una clave más larga que…

Una primera opción sería poner claves muy largas pero que nos sean fáciles de recordar, como ser un par de versos de una canción o una poesía que nos gusta, una línea de un personaje en una película, etcétera, por ejemplo: «Muchacha ojos de papel, no corras mas, quedate hasta el dia» o «Me parecio ver un lindo gatito, Es cierto! es cierto! He visto un lindo gatito».

Una condición para poder utilizar este tipo de claves es ser un buen tipista, como su servidor, ya que si uno no fue a la Pitman y sólo tipea con dos dedos buscando durante dos segundos la mitad de las letras en el teclado, ingresar la clave va a ser una tortura. Por otra parte, aun tipeando treinta palabras por minuto o más, si la clave se utiliza con cierta frecuencia o se debe ingresar en un dispositivo móvil con un teclado virtual en una pequeña pantalla que no se presta a la velocidad, termina siendo también una tortura.

En mi caso, yo utilizo estas claves muy largas para guardar otras claves dentro de KeePass o para guardar las claves privadas que me dan acceso desde mi computadora a otras sin tipear la clave, es decir, que una clave muy larga tipeada una vez, me da acceso a un montón de lugares sin volver a tipear una clave durante una sesión.

Cortala un poco, querés

Otra posibilidad, para no desgastar tanto los dedos es utilizar una clave más corta (sin exagerar, en principio una clave jamás debería tener menos de ocho o diez caracteres) es utilizar el mismo mecanismo de memoria, pero abreviarlo como proponía Mauricio en su comentario, poniendo sólo las letras iniciales de esas palabras. Así nuestros ejemplos podrían pasar a ser «Modp,nc+,qhed» y «Mpv1lg_Ec!ec!hv1lg». Notar que estas claves, si bien tienen una longitud más corta que las otras, sólo pueden ser atacadas con un mecanismo de fuerza bruta en el que las «ayudas» que pueda tener dicho mecanismo que vimos más arriba como ser: buscar palabras comunes de un diccionario primero, o utilizar datos significativos si se sabe algo de ustedes como fecha de nacimiento, aniversarios, números de documentos o nombres de las mascotas; serían inútiles.

Qué teclas usar (y cuáles no)

Conviene que la clave tenga una combinación de letras mayúsculas y minúsculas, números y quizás algun símbolo (como un punto, un espacio en blanco, un guión, etc). En algunos casos, hay sitios de internet que nos obligan a utilizar esto; cada vez es más común que si la clave no tiene al menos una letra mayúscula, una letra minúscula, un dígito numérico y al menos ocho caracteres, el sitio no la acepte cuando la tratamos de crear.

Dicho esto, hay caracteres que es conveniente evitar ya que no todos los sistemas los interpretan igual: las letras con acento, la eñe, los símbolos de apertura interrogación y admiración y otros que no están entre los que son comunes a todos los idiomas.

El problema con estos caracteres es que si bien existe y normalmente se utiliza un estándar internacional que soporta todos los caracteres utilizados en todos los idiomas en uso, no siempre esto está bien configurado en los servidores y en los clientes, y la posibilidad de que en algún momento tengamos que tipear la clave en una computadora, tableta o teléfono que no esté bien configurado y en consecuencia no podamos ingresar la misma correctamente es motivo suficiente para evitarlos.

Una lista razonable de los caracteres que conviene usar en una password es:

  • Todas las letras mayúsculas y minúsculas del alfabeto inglés (o, si preferimos no hacer referencia a otro idioma, del alfabeto español sin la eñe)
  • Los diez dígitos del 0 al 9
  • El punto, la coma, punto y coma, dos puntos, paréntesis, corchetes, llaves, guión bajo, signos más, menos e igual, barras diagonales y vertical, asterisco, porcentaje, numeral, signo pesos, arroba, signo de admiración e interrogación que cierra (no el que abre), signos de menor y mayor, el símbolo ampersand y el espacio en blanco

Hay que tener cuidado con las comillas dobles y simples (ya que, a veces se transforman en comillas orientadas, que diferencian la que abre de la que cierra), los guiones, que a veces se transforman en guión «ancho» o doble, etc.

Finalmente se terminó haciendo un poco largo, pero espero que la nota todavía sea legible por cualquiera.