Hashing contraseñas es una defensa contra un ataque específico. El ataque es: robar una copia del archivo de contraseñas completo (tabla de usuarios, ldap db, etc.), descargarlo en la computadora e intentar recuperar las contraseñas de los usuarios. El objetivo del ataque es: buscar usuarios que reutilicen sus nombres de usuario y contraseñas en los sitios web, e iniciar sesión en las cuentas de correo electrónico, el banco, la red social y otras cuentas de esos usuarios.
La defensa de hashing-passwords funciona así: las contraseñas no se almacenan directamente, y cualquier intento de recuperar las contraseñas originales requiere que el atacante realice una gran cantidad de trabajo, al menos en comparación con el trabajo requerido para compruebe si la contraseña que ingresa el usuario al iniciar sesión coincide con la contraseña del archivo. Existen múltiples variaciones en esta defensa, que incluyen elegir mejores hashes, sembrar los hashes, iterar los hashes, etc., cuyo objetivo es mejorar la defensa de lo contrario y defenderse de las variantes del ataque que son capaces de sortear. Las defensas más simples.
La defensa de contraseñas de hash no es una defensa contra cualquier ataque. Por ejemplo, no ayuda contra un ataque en el que el atacante obtiene acceso de escritura arbitrario a la base de datos, vuelve a escribir las contraseñas de todos los usuarios a las suyas e inicia sesión en todas las cuentas de los usuarios en ese sitio web. La defensa solo se defiende contra el ataque de robo de contraseñas sin conexión.
Por lo tanto, debes conocer los diferentes tipos de ataques y defenderte de cada uno de ellos utilizando una defensa que funcione contra ese tipo de ataque.