¿Para qué sirve un salt en el hash de contraseñas?
Opciones
- Para cifrar el hash final antes de guardarlo
- Para que contraseñas iguales den hashes distintos (frena las rainbow tables) (Opción correcta)
- Para que la función de hash vaya más rápido en cada login
- Para sustituir a la autenticación multifactor
Respuesta
Hacer que contraseñas idénticas den hashes distintos, lo que anula las rainbow tables precalculadas
Por qué
Un salt es un valor aleatorio generado para cada usuario y mezclado con la contraseña antes del hash. Se guarda junto al hash; no necesita ser secreto.
Sin salts, todos los que usan la contraseña '123456' tienen el mismo hash, y los atacantes pueden usar enormes tablas precalculadas (rainbow tables) para buscar hashes al instante.
Con salts, cada hash es único, así que cada contraseña debe atacarse por separado.
Recuerda
Salt = valor aleatorio por usuario para que contraseñas iguales den hashes distintos.