Primero, un par de puntos de aclaración.
- Las contraseñas generalmente están con hash, no encriptadas, como se señaló anteriormente.
- Por lo general, las contraseñas de texto simple se envían al servidor para que la aplicación haga hash y compare con lo que está en la base de datos.
Lo digo típicamente en ambos casos, porque hay excepciones. Para las contraseñas enviadas al servidor, se puede usar un protocolo llamado SRP para nunca enviar la contraseña al servidor. Pero no se usa muy a menudo.
¿Qué puede hacer un atacante? Existen ataques contra los algoritmos de hash, como la discusión de MD5 vinculada anteriormente, que permite descubrir las contraseñas de texto sin formato. El hashing común que utilizan las aplicaciones incluye:
- MD5
- SHA1
- SHA256
- SHA512
- bcrypt
- scrypt
Existen herramientas que crean hashes de palabras conocidas y las comparan con el hash deseado. Por ejemplo:
Quiero saber cuál es el valor de texto simple de este hash: 098f6bcd4621d373cade4e832627b4f6
. Dada la longitud del hash y que solo contiene caracteres hexadecimales, puedo hacer la suposición que es un hash MD5. Entonces puedo ejecutar ese hash a través de cualquier número de herramientas. Para fines de demostración, he creado un archivo con solo este hash:
$ cat hashlist.crack
myusername:098f6bcd4621d373cade4e832627b4f6
Ahora puedo ejecutar una herramienta contra ese hash:
$ john hashlist.crack --format=Raw-MD5
Loaded 1 password hash (Raw-MD5 [MD5 128/128 SSSE3 20x])
Press 'q' or Ctrl-C to abort, almost any other key for status
test (myusername)
1g 0:00:00:00 DONE 2/3 (2015-08-09 10:26) 100.0g/s 109300p/s 109300c/s 109300C/s test..blazer
Use the "--show" option to display all of the cracked passwords reliably
Session completed
El valor de texto simple es test
.
Al usar esta herramienta y otras herramientas de libre acceso, un atacante puede obtener una lista de hashes y descifrar los valores de texto sin formato.
Es por eso que los profesionales de la seguridad alientan a las personas a usar hashes que son mejores para resistir las grietas, como bcrypt
, y también alientan el uso de contraseñas seguras.