Hoy me he cruzado con una tira cómica de XKCD bastante mítica que hablaba de la
seguridad en las contraseñas, y he pensado ilustrar vuestra seguridad online
con un nuevo post que salve vuestros datos de los hackers malvados.
Corrían los primeros años en un
medio naciente como era Internet, sólo había un montón de webs que intentaban
hacerse con usuarios, así que querían que te registrases. Tú lo hacías
utilizando contraseñas fáciles de recordar, porque nadie compraba en internet y
no tenías datos que te importase perder, seguro que usaste “12345” al menos un
par de veces. Ahora la cosa ha cambiado, accedemos al banco, a cuentas en las
que nuestra identidad se da por supuesta, tramitamos becas y realizamos todo
tipo de gestiones importantes, así que podemos preguntarnos: ¿Qué seguridad
tiene mi contraseña? Vamos al tajo.
Hash
Ya hablé de los hash brevemente en
el post sobre la criptomoneda, pero os concederé un recordatorio rápido: El hash
calculado sobre un texto cualquiera produce otro texto distinto con longitud
constante, de forma que es fácil
calcular el Hash desde texto original pero es MUY difícil calcular el texto original desde un hash. Un ejemplo
calculado con esta web lo tenéis en
la imagen, arriba está el texto original y abajo las conversiones mediante
distintos algoritmos de cálculo Hash. He subrayado el texto original y los
algoritmos más conocidos y utilizados.
Algoritmos de Hash |
La primera medida de seguridad no
la implementaréis vosotros, sino la web en la que os registráis. Cuando tú te
registras e introduces tu contraseña, se calcula su hash y ese es el valor que se almacena. Cuando tú metes tu contraseña, se
calcula su hash y se comprueba que son iguales. Una página web NUNCA debería
almacenar una contraseña en texto legible, porque si les roban los datos (y no
es tan difícil como se cree) vuestra contraseña estará disponible para el
ladrón. Adicionalmente, seguramente uséis la misma clave para más cosas. Por
eso si una web os envía en un correo vuestra contraseña en texto plano, NO ES
SEGURA, porque cualquier administrador de la base de datos o cualquier hacker
que obtenga el fichero de claves podría leerla.
Por ejemplo, hace cerca de un
año, una conocida web de componentes de PC (que ya ha solucionado el problema)
me envió mi propia contraseña en texto plano por email tras registrarme. Vi el
problema de seguridad y se lo notifiqué mediante un e-mail. Tras eso, ellos me
respondieron asegurándome que su sistema de seguridad era robusto e inexpugnable
y que no debía preocuparme por ello, así que solicité el borrado de mi
información de sus bases de datos, ya que mi clave no debería ser de dominio
público.
¿Y yo qué puedo hacer?
No te afijas, voz cursiva, la
mayor parte de las webs hoy en día “Hashean” las contraseñas entrantes, así que
tienes que preocuparte de tus propios asuntos, mejor dicho, de que tus
contraseñas sean seguras. Para que una contraseña tenga mucha seguridad importa
mucho el desorden, o lo que más técnicamente se llama entropía. La cantidad de
entropía es un componente de aleatoriedad, a mayor entropía, más complicado
será hallar vuestra contraseña. La entropía es un número que puede ser muy
grande, por ello la vamos a calcular en bits. Puedes imaginar que es más
complicado adivinar palabras infrecuentes y largas que palabras largas y
frecuentes, pero ¿Es mejor una palabra infrecuente con números y símbolos de
puntuación o varias palabras frecuentes? Pondré dos ejemplos que lo ilustren.
Palabra complicada
Tomamos una palabra ‘rara’ y
moderadamente larga: “infierno”. Tiene unos 13 bits de entropía, y el tiempo
estimado para averiguarla por una mezcla de inteligencia artificial y fuerza
bruta sería de 0.046 segundos. Sustituyamos una de sus letras por mayúsculas: “infieRno”.
Su entropía subiría a 14 bits. Realicemos unas pocas transformaciones
corrientes, como son sustituir letras por números: “1nf13Rno”, ya tenemos una
entropía de 15, y un tiempo para descifrarlo de 0.911 segundos. Vamos a añadir
un signo de exclamación y un número al final: “1nf13Rno!4”. Con esto, el tiempo
estimado en obtener tu contraseña serían 58 minutos, además la contraseña es
irrecordable.
Varias palabras simples
Imagina ahora que juntas palabras
de entropía baja, fáciles de recordar, por ejemplo: “MiraQueContraseñaMasSegura”.
Esta contraseña es fácil de recordar, ¿Verdad? Pues la dificultad para el ordenador
crece. De hecho el tiempo de descifrado alcanza los 14.112 años, una cifra
respetable para cualquier hacker.
Está claro que lo más seguro
sería mezclar ambas técnicas y escribir contraseñas kilométricas ilegibles e
irrecordables, sin embargo mucha gente y muchas empresas confunden complejidad
con seguridad. Ilustremos esto con mi empresa, donde en una de las cuentas de
aplicaciones seguras corporativas te piden una contraseña de entre 6 y 12
caracteres con mayúsculas, minúsculas y símbolos de puntuación. Un ejemplo de
esta “contraseña segura” sería la ya mencionada “1nf13Rno!4”, la que hemos
visto que alcanza una seguridad efímera de una hora ante ataques.
Aquí termina esta entrada donde
añado, como curiosidad, la web que he utilizado para calcular la entropía, los
tiempos y las complejidades de cada contraseña. Adicionalmente diré que, aunque es totalmente cierto que cuanto más larga sea la contraseña más difícil es de descifrar, la mayoría de estándares de seguridad establecen que debería tener algún número y signo de puntuación. Todo el mundo se salta los estándares, pero un ejemplo de contraseña larga y fácil de recordar la tenéis en la imagen de arriba, y no es complicado pensar otras válidas como "Somos4EnCasa+ElPerro" Así que ya sabéis, en este caso el tamaño sí que importa ¿La tenéis lo bastante
larga?
No hay comentarios:
Publicar un comentario