Glosario

Sal (salt)

sal de contraseñasal criptográfica

Una sal es un valor único añadido a cada operación de hash de contraseña o derivación de clave para que entradas iguales produzcan salidas distintas.

Definición

Una sal es un valor añadido a una contraseña u otra entrada antes del hash de contraseña o la derivación de clave. Su función principal es hacer único el resultado derivado incluso cuando dos usuarios eligen la misma contraseña.

Una sal normalmente no necesita ser secreta. Se almacena con el hash o la salida codificada para que el verificador pueda repetir el mismo cálculo después.

Cómo funciona

Para cada contraseña, el sistema genera una sal aleatoria nueva y entrega la contraseña y la sal a una función de hash de contraseñas como Argon2id, bcrypt o PBKDF2. Durante la verificación, la sal almacenada se reutiliza con la contraseña candidata.

Las sales únicas evitan que contraseñas iguales produzcan hashes almacenados iguales y hacen mucho menos útiles las tablas precalculadas. No convierten contraseñas débiles en fuertes; la función de hash de contraseña aún necesita un coste adecuado.

Sal, clave, pepper y nonce

Una sal aporta unicidad pública, no una clave secreta de autenticación. Un pepper es un valor secreto separado que se guarda fuera de la base de datos de contraseñas, y un nonce es un número usado una sola vez en un protocolo u operación de cifrado concretos.

En sistemas nuevos, genera sales con una fuente aleatoria criptográficamente segura y deja que la biblioteca de hash de contraseñas las almacene en su formato codificado estándar cuando sea posible.

Preguntas frecuentes

No. Debe ser única y preferiblemente aleatoria, pero puede almacenarse junto al hash.

No deberían. Las sales aleatorias hacen improbable la reutilización y evitan que contraseñas iguales se vean como hashes iguales.

No. Usa una función de hash de contraseñas con parámetros de coste adecuados, sales aleatorias seguras, limitación de intentos y monitoreo.

Véase también