¿Qué es la sal en criptografía y cómo protege las contraseñas?
Descubre cómo la sal en criptografía añade bits aleatorios a las contraseñas para prevenir ataques de diccionario y mejorar la seguridad de los sistemas de autenticación.
En pocas palabras
- La sal consiste en bits aleatorios añadidos a una contraseña antes de aplicar una función hash.
- Su uso principal es prevenir ataques de diccionario y el uso de tablas arcoíris (rainbow tables).
- Cada usuario debe tener una sal única para que el hash resultante sea diferente, incluso si las contraseñas son iguales.
- Las primeras implementaciones en Unix utilizaban sales de 12 bits, un estándar que ha evolucionado hacia valores mayores en sistemas modernos.
¿Qué es la sal en criptografía y cómo protege las contraseñas?
En el ámbito de la seguridad informática, la sal (salt) es un conjunto de bits aleatorios que se utiliza como entrada adicional en una función de derivación de claves o en algoritmos de hash. Su propósito fundamental es transformar una contraseña simple en una cadena única y compleja antes de almacenarla, dificultando significativamente los intentos de acceso no autorizado.
¿Cómo funciona la sal para frustrar los ataques de diccionario?
La sal complica los ataques de diccionario al obligar al atacante a realizar cálculos individuales para cada usuario, en lugar de procesar una lista global de contraseñas comunes. Cuando se utiliza sal, cada bit añadido duplica la carga computacional y el almacenamiento necesario para intentar descifrar un hash. Al añadir un valor aleatorio único a cada contraseña, los hashes precalculados por un atacante pierden su eficacia, ya que la combinación de la contraseña original con la sal genera un resultado totalmente distinto al que el atacante podría haber previsto.

¿Por qué la sal es efectiva contra las tablas arcoíris (rainbow tables)?
Las rainbow tables son diccionarios de valores hash precalculados que permiten a los atacantes identificar contraseñas rápidamente. La sal impide este método porque el atacante no puede predecir qué valor de sal se ha utilizado para cada usuario. Dado que la sal es única, el atacante tendría que generar una tabla arcoíris específica para cada posible valor de sal, lo cual resulta impracticable debido al enorme consumo de tiempo y espacio en disco que esto requeriría.
¿Cuál es la relación histórica entre la sal y los sistemas Unix?
Las primeras implementaciones de Unix introdujeron el uso de sales de 12 bits para proteger las contraseñas almacenadas en el archivo passwd. En aquel entonces, esta medida era suficiente para mitigar riesgos básicos, pero con el avance de la capacidad de cómputo y almacenamiento, los 4096 valores posibles de una sal de 12 bits se volvieron vulnerables a ataques de precomputación. Las implementaciones modernas han adoptado valores de sal mucho más largos y complejos para adaptarse a las amenazas actuales.
¿Qué sucede si dos usuarios eligen la misma contraseña?
Sin el uso de sal, dos usuarios que elijan la misma contraseña tendrían el mismo hash almacenado en la base de datos, lo que revelaría que comparten la misma clave. Al aplicar una sal única a cada cuenta, el hash resultante será diferente para cada usuario, incluso si la contraseña original es idéntica. Esto añade una capa de privacidad y seguridad, evitando que un atacante pueda identificar patrones entre diferentes cuentas de usuario.
¿Es necesario mantener la sal en secreto para garantizar la seguridad?
Aunque la sal a menudo se transmite como texto plano junto con los datos cifrados, su función principal no es el secreto, sino la singularidad. La seguridad reside en que, al ser un valor aleatorio y único, el atacante no puede utilizar tablas precalculadas. No obstante, en entornos de alta seguridad, se recomienda que la sal sea lo suficientemente larga y que el sistema de almacenamiento, como el uso de shadow passwords, mantenga los hashes y las sales fuera del alcance de usuarios no autorizados.
¿Cómo influye la sal en el rendimiento de los ataques de fuerza bruta?
La sal ralentiza drásticamente los ataques de fuerza bruta porque obliga al atacante a computar el hash de cada contraseña individualmente para cada sal encontrada. A diferencia de un sistema sin sal, donde un atacante puede comparar un hash generado contra toda una base de datos de una sola vez, la presencia de sales únicas exige que cada intento de adivinación sea procesado por separado. Este proceso consume muchos más recursos computacionales, haciendo que el crackeo de grandes volúmenes de contraseñas sea una tarea extremadamente lenta y costosa.
Sources & Further Reading
- Morris, Robert; Thompson, Ken (1978). Password Security: A Case History. Bell Laboratories.
Tu voto se guarda en este dispositivo.
