Utilizando claves seguras

¡Una clase de Criptografía! ¿Cómo funciona la seguridad de los sitios webs? ¿Qué hace a una clave segura? ¿Se puede conseguir la contraseña de un amigo (o enemigo) para entrar en su Facebook?

Lo primero que debemos saber es que nunca se guarda una contraseña, lo que se almacena es una huella de nuestra clave. Para hacernos una idea, el ejemplo más fácil de huella es la letra del DNI, que se obtiene realizando cálculos sobre el número.

Pues bien, el mismo método (aunque de una forma más sofisticada) se emplea para obtener una huella de la palabra que escribimos cuando creamos una clave nueva. Cuando entramos a un sitio y escribimos nuestra clave, sencillamente se calcula su hash y se compara con la huella guardada.

Pero al igual que de una letra de DNI no se puede sacar el número (hay muchísimos números que dan la misma letra), tampoco se puede extraer por las buenas una clave a partir de su huella. Si se pudiera, las firmas digitales no tendrían razón de ser, y una gran parte de la seguridad en Internet se desmoronaría. No hay más que comprobar que lo único que se puede hacer es cambiar la contraseña, pero nunca verla.

Así que olvídate de que un programa o virus te diga en un pispás tu clave del correo, ni la de nadie. La única posibilidad para un hacker es probar claves hasta encontrar la correcta. Hay gente que se expone a que le roben la contraseña rápida y cómodamente porque utiliza palabras del diccionario o claves muy comunes, tales como 1234 o hello. No voy a hablar de ellos, están perdidos.

El ataque por fuerza bruta es posible, pero muy ineficiente. Consiste en probar todas las posibles combinaciones, y créeme, hay muchas. Si escribimos una clave de 10 caracteres utilizando letras mayúsculas y minúsculas, junto a dígitos, tenemos un alfabeto de 64 (27+27+10) símbolos, con lo cual hay 6410 (más de un trillón) de posibles claves. Por muy potente que sea un ordenador, tardará una eternidad en encontrar la correcta.

Entonces lo más seguro es utilizar contraseñas largas, mezclando variedad de símbolos (mayúsculas, minúsculas, dígitos y signos de puntuación), para dificultar lo máximo posible que puedan dar con nuestra clave.

Tengo escrita una aplicación en Python que, aunque posiblemente no de la forma más eficiente, nos da una idea de la dificultad que tiene hackear claves largas. Está programado para dividirse en tantos procesadores como tenga el ordenador en que se ejecute, pero eso vale de poco si la contraseña es larga.


Por otro lado, he encontrado la web How secure is my password?, que calcula cuánto puede tardar un sistema algo más sofisticado que el programa anterior en encontrar nuestra clave. Y recuerda: ¡deja de usar como clave 1234 o tu fecha de nacimiento!

Comentarios

Entradas populares de este blog

Algoritmo de relleno

Problema de las N reinas

Cifrado de Vernam