Las técnicas más comunes para descifrar contraseñas son por Fuerza Bruta o por ataque de diccionarios.
En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso. El tiempo necesario para descifrar una contraseña utilizando este método depende de la longitud de la contraseña y del conjunto de símbolos que comprende la contraseña.
Un ataque por diccionario es un método de cracking que consiste en intentar averiguar una contraseña probando todas las palabras de un diccionario que tengamos en nuestro equipo. Si tu contraseña está en la lista de contraseñas más comunes, probablemente se pueda descifrar casi instantáneamente.
Puedes ver cómo se generan diccionarios para esta técnica en este artículo:
Si quiere saber cómo de segura es tu contraseña, esta web https://howsecureismypassword.net/ te permite introducir su contraseña y basándose en unos algoritmos hace un estudio de cuanto tiempo tardaría un hacker romper su seguridad desde un ordenador.
Vamos a realizar unas pruebas para demostrar qué debemos hacer para tener una contraseña robusta:
Vamos a utilizar para el ejemplo contraseña de 8 caracteres ya que por debajo de este número es muy difícil conseguir una contraseña fuerte. Empezamos probando la contraseña 12345678 y el resultado es que es posible hackearla sin necesidad de emplear tiempo alguno:
Ahora vamos simplemente a introducir una cadena de números no consecutivos como 13579753 y vemos que el resultado es 3 milisegundos, lo cual demuestra que utilizar contraseña formadas únicamente por números no es nada segura:
Si introducimos en nuestra contraseña de 8 caracteres dos letras como pudiera ser un357975 observamos que el tiempo aumenta hasta 1 minuto, lo cual sigue siendo claramente insuficiente:
Si simplemente cambiamos la primera letra por una mayúscula, Un357975, vemos que el resultado del tiempo para descifrar la contraseña sube hasta 2 horas:
Probemos ahora introduciendo un caracter que sea un símbolo como puede ser Un35797*. El resultado sube hasta las 9 horas pero sigue siendo insuficiente:
En este punto vamos a ver lo que ocurre si cambiamos simplemente la n por una ñ, y probamos con Uñ35797*:
Ahora el tiempo para descifrar la contraseña es de 2 meses. Esto se debe a que la mayoría de los programas que se utilizan para los ataques de fuerza bruta están diseñados de forma que no tienen en cuenta la letra ñ debido a cómo se codifica ya que es un caracter que no se utiliza fuera del Español.
Dos meses ya es un tiempo suficiente para que nadie tenga un equipo probando contraseñas para descifrarla pero no es imposible y dependerá del interés que tenga el hacker en averiguarla.
Por ello vamos a ver que ocurre si en lugar de 8 caracteres ponemos 9 añadiéndole otro símbolo.
Probamos Uñ35797*@ y ahora el resultado es de 21 años. Es complicado que alguien utilice 21 años de su vida a descifrar una contraseña.
Este tiempo se incrementa exponencialmente a medida que añadimos más caracteres a nuestra contraseña. Si por ejemplo ponemos Uñ35797*@_ el resultado será que necesitamos 300 años para descifrarla:
En resumen, para obtener una contraseña robusta y difícil de hackear deberíamos crear un password con más de 8 caracteres, que tenga números y letras incluyendo la ñ, que combinemos letras mayúsculas y minúsculas, y que utilicemos símbolos.