Salting (Salado)
Definición:
El salting es una técnica utilizada en seguridad informática para proteger las contraseñas de los usuarios. Consiste en añadir una cadena de caracteres aleatoria, conocida como "sal" (salt, en inglés), a la contraseña antes de que esta sea procesada por un algoritmo de hash.
Detalles:
-
Proceso de Salting:
- Cuando un usuario crea o cambia su contraseña, el sistema genera una cadena de caracteres aleatoria (la "sal").
- La sal se combina con la contraseña del usuario.
- La combinación de la contraseña y la sal se pasa por un algoritmo de hash (como SHA-256) para crear un "hash" seguro.
- Tanto la sal como el hash resultante se almacenan en la base de datos, pero la contraseña original no se almacena.
-
Propósito:
- Incrementar la Seguridad: Al agregar una sal única a cada contraseña, se evita que dos contraseñas iguales tengan el mismo hash. Esto significa que, incluso si dos usuarios tienen la misma contraseña, los hashes almacenados serán diferentes debido a las sales distintas.
- Proteger Contra Ataques de Diccionario y Fuerza Bruta: Los atacantes que utilizan listas precompiladas de hashes (llamadas tablas arcoíris) para descifrar contraseñas no pueden usar esas tablas efectivamente porque la sal cambia el resultado del hash, haciendo que esas listas sean inútiles.
-
Ventajas:
- Individualización: Cada usuario tiene una sal única, lo que asegura que cada contraseña sea única incluso si varias personas usan la misma contraseña.
- Dificultad para los Atacantes: Hace que sea extremadamente difícil y costoso para los atacantes descifrar las contraseñas, ya que tendrían que calcular un hash diferente para cada combinación de sal y contraseña.
-
Ejemplo Práctico:
- Sin Sal: Contraseña: "123456". Hash: "e10adc3949ba59abbe56e057f20f883e".
- Con Sal:
- Genera sal: "random_salt".
- Contraseña + Sal: "123456random_salt".
- Hash: "hash_resultante".
- Si dos usuarios tienen la misma contraseña "123456", con diferentes sales ("salt1" y "salt2"), los hashes serán diferentes.
Conclusión:
El salting es una práctica esencial en la seguridad informática moderna para proteger contraseñas. A través de la adición de una sal única a cada contraseña, se mejora significativamente la seguridad, impidiendo a los atacantes acceder fácilmente a las contraseñas de los usuarios incluso si logran obtener acceso a los hashes almacenados.
Recuerda, el salting es sólo una parte de una estrategia de seguridad más amplia y debe combinarse con otras mejores prácticas, como el uso de algoritmos de hash seguros y políticas robustas de contraseñas.