miércoles, 28 de febrero de 2018

Explicación matemática de por qué se recomienda usar passwords complejas.

Normalmente se suelen recomendar utilizar passwords complejas, compuestas por letras,números y signos de puntuación. Esto hay mucha gente que no lo entiende de primeras, y hasta cierto punto lo entiendo, pues estamos tratando de que el usuario se crea algo, y no debería ser así, se lo deberíamos demostrar de forma que no quepa dudas, demostrárselo científicamente. Tendríamos que dejar de preocuparnos porque el usuario se crea algo y pasar a hacer que el usuario entienda lo que tiene que hacer. Nada de dogmatismos.



Podemos visualizar las contraseñas como huecos donde se insertan dígitos. Me voy a centrar en las sencillas, en las passwords de 4 dígito, que a pesar de no ser recomendables, se utilizan como en el PIN del móvil o WPS. Vamos a analizar cada tipo de contraseña y demostrándolo todo matemáticamente.

Passwords compuestas sólo por números


 En cada espacio, con passwords compuestas solamente por números, pueden ir dígitos del 0 al 9. Por supuesto, los dígitos se pueden repetir, esto, desde el punto de vista de la combinatoria, campo de las matemáticas, los números son muy claros.





Concretamente se denomina combinatoria con repetición, y este tipo de combinataria viene determinada por la fórmula anterior, donde m son las posibilidades y n al marco al que nos tenemos que ajustar, en nuestro caso n=4 ya que serán los espacios donde se insertarán dígitos de la contraseña.


Para el caso de las contraseñas compuestas por solamente números, existen 715 combinaciones, es decir, muy pocas.

Esto hace que este tipo de contraseñas sean muy débiles y que con ordenadores no muy potentes se pueda tirar de fuerza bruta y obtener la clave en menos de un día, y ya estoy poniendo mucho tiempo.

Passwords compuestas por números y letras

Vamos a considerar 26 letras del alfabeto, es decir, excluyo la ñ. Las 26 letras {minúsculas o mayúculas} más los 10 números hacen un total de 36 dígitos que vamos a combinar entre los 4 espacios.


Como vemos, usando 4 dígitos, pero ampliando el campo a números y letras {mayúsculas o minúsculas}, el número de combinaciones crece notablemente de 715 a 82251 combinaciones. Son muchas más, pero igualmente se puede sacar en unas horas con ataques de fuerza bruta.

*Nota: es 4! por {36-1}! no 35, eso ha sido un fallo que he cometido, pero el resultado sí está bien*

Password compuestas por números y letras {Mayúsculas y minúculas}

Aquí lo que tendremos que hacer es multiplicar por 2 el número de letras, ya que vamos a incluir tanto letras minúsculas y mayúsculas.


Aquí el número vuelve a crecer de forma exponencial, pero sigue sin ser del todo segura. No obstante ya creo que habéis podido observar la tendencia, si aumentamos el número de n, es decir, el número de caracteres de la contraseña, cada vez las combinaciones serán mayores y por tanto, será más complicado de de obtener mediante técnicas de fuerza bruta.

Yo ya os dije cómo generar contraseñas seguras en sistemas GNU/Linux y con esta entrada ya creo que podéis entender la importancia de generar contraseñas robustas. Si analizamos las posibles combinaciones que existen en el caso que expuse en la entrada que os he enlazo antes, obtenemos una prueba clara.


Como se ve se hace prácticamente imposible deducir la contraseña mediante ataques de fuerza bruta. Pero de nada sirve esto si ahora vas y almacenas estas contraseñas en un txt dentro de tu máquina. Una contraseña robusta hace que se tarde más o sea casi imposible la fuerza bruta, no que estés seguro, pero un comienzo es un comienzo.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...