Saltar al contenido

Salado de contraseñas

El salado da a cada nuevo hash de contraseña un valor aleatorio propio. El salt se almacena junto al hash y no necesita ser secreto.

También conocido comoPassword salting
Seguridad informática

Utilizar un salt distinto para cada hash

El salado da a cada nuevo hash de contraseña un valor adicional propio, generado aleatoriamente de forma segura. Este salt entra como dato en la función hash de contraseñas. No necesita ser secreto y se guarda con el valor de verificación. Una biblioteca de hashing de contraseñas correctamente utilizada puede encargarse de generarlo y gestionarlo.

En una aplicación ficticia, account-A y account-B eligen la misma contraseña. La biblioteca genera para ellos salts aleatorios independientes. Las etiquetas salt-A y salt-B solo representan esos valores; no son ajustes de salt utilizables. Los salts distintos impiden que un atacante reutilice fácilmente un único hash precalculado para todas las cuentas.

Verificar con el valor guardado

En un acceso posterior, la biblioteca utiliza el salt y los parámetros guardados para comprobar la contraseña introducida. No genera un salt nuevo cada vez que verifica un hash existente. Al crear un nuevo hash de contraseña, en cambio, utiliza un salt nuevo.

Un salt no es un pepper: este último es un secreto adicional que puede proteger varios registros y se conserva separado de la base de contraseñas. El salt tampoco sustituye una función hash suficientemente costosa. Quien disponga de una copia de la base puede seguir probando contraseñas candidatas con el salt correspondiente; las contraseñas débiles siguen expuestas.

Fuentes