Con los recientes
avances de la criptografía, sistemas de clave pública,
RSA, DES, one-time-pad etc. etc. podemos estar seguros de que
nuestros datos están a salvo de miradas indiscretas ¿o
tal vez no?
Pese a todos
estos progresos, o quizá debido a ellos, cada vez está
más claro que hay un punto débil en el proceso ¿cual?
nosotros, o más concretamente la forma en que elegimos
las claves (passwords).
Sea cual sea
tu sistema de seguridad, si tu clave es mala estás comprometiendo
tus datos. Supongamos que debes elegir una clave de 5 letras,
aparentemente la entropía (número de combinaciones
posibles para entendernos) es de 26^5 , aproximadamente 1.118x10^7;
sin embargo la mayoría de los usuarios se inclinan por
escoger nombres comunes, la mayoría de las cuales se encuentra
en una lista de 6000-7000 palabras, de esta manera la entropía
real es del orden de 6.5x10^3 , cuatro ordenes de magnitud menor.
En el momento
en que escoges una clave ordinaria, fácil de recordar,
estás corriendo el riesgo de un ataque con diccionario,
cualquier cracker que se precie encontrará la clave muy
rápidamente. Se ha dicho también que cualquiera
que crea estar a salvo poniendo como clave su nombre al revés,
el nombre de su novia o su número de teléfono es
un ingenuo que muy pronto se encontrará en problemas.
Los criptoanálisis
(o simplemente crackers habilidosos) pueden explotar con éxito
nuestras inclinaciones, contexto cultural etc. No deberías
escoger acrónimos de canciones populares, frases comunes
de la TV o similares, te sorprendería saber la cantidad
de información de este tipo que ya hay recopilada y lista
para usarse en un programa para romper claves. En general no deberías
usar frases o expresiones que hayas visto u oído anteriormente.
Entonces, ¿que
podemos hacer?. Se trata de llegar a un equilibrio entre facilidad
de recordar y seguridad. Por ejemplo generar claves aleatorias
parece una buena idea pero es difícil recordar claves como
#wEr5ft!, y desde luego no es buena idea dejar apuntadas tus claves,
antes o después alguien las leerá.
Bien, la mejor
idea parece ser hacer frases sin sentido y/o que contengan cosas
totalmente ajenas a tu entorno y modo de ser, podrían contener
expresiones racistas, sexuales y faltas de ortografía,
esto es aceptable porque después de todo la clave no es
algo que se haga público, no deberías saberla más
que tu. El mismo hecho de elegir una frase chocante para ti hará
que la evocación emocional la haga fácil de recordar.
Algunos programas
admiten claves de longitud ilimitada, en ese caso una frase del
tipo descrito anteriormente, formada por cuatro o cinco palabras
escogidas de un vocabulario de unos pocos miles proporciona claves
con 58-60 bits de entropía (más de lo necesario
para algoritmos como DES, uno de los estándares en criptografía),
en este caso no es necesario incluir números o símbolos
para aumentar el número de claves posible.
Si el programa
que usas no admite más que unos pocos caracteres el procedimiento
más seguro es: escribe una frase del tipo que proponemos
en este artículo, pasarla a través de un algoritmo
como MD5 o SHA que producirá un hash de al menos 128 bits,
procesa esta salida con UUENCODE y obtendrás una ristra
de caracteres ASCII de la que puedes extraer tu clave.
Nuestro programa
KEY, a partir de la versión 1.2 usa un algoritmo SHA para
obtener secuencias de 160 bits y una gran seguridad, sin embargo
¡ elige bien tu clave !
Debo la mayor
parte de la información de este artículo a las PASSWORD.FAQ
de Grady Ward (grady@netcom.com). Gracias a él y a todos
los que en la red, creen que el conocimiento debe compartirse.
Lee en el siguiente
artículo
algo sobre cómo la gente elige los passwords en realidad,
con algunas estadísticas inquietantes.