Sal (criptografía)


En criptografía , un salt son datos aleatorios que se utilizan como entrada adicional para una función unidireccional que procesa datos , una contraseña o una frase de contraseña . [1] [ Se necesita cita completa ] Las sales se utilizan para proteger las contraseñas almacenadas. Históricamente, solo se almacenaba en un sistema una función hash criptográfica de la contraseña, pero con el tiempo, se desarrollaron medidas de seguridad adicionales para proteger contra la identificación de contraseñas duplicadas o comunes (ya que sus hash son idénticos). [2] La salazón es una de esas protecciones.

Se genera una nueva sal de forma aleatoria para cada contraseña. Por lo general, la sal y la contraseña (o su versión después del estiramiento de la clave ) se concatenan y se envían a una función hash criptográfica , y el valor hash de salida (pero no la contraseña original) se almacena con la sal en una base de datos. Hashing permite la autenticación posterior sin mantener y, por lo tanto, arriesgar la exposición del texto sin formatocontraseña si el almacén de datos de autenticación está comprometido. Tenga en cuenta que debido a esto, las salts no necesitan cifrarse o almacenarse por separado de la contraseña hash en sí, porque incluso si un atacante tiene acceso a la base de datos con los valores hash y las salts, el uso correcto de dichas salts dificultará el acceso común. ataques. [1]

Las sales defienden contra ataques que usan tablas precalculadas (por ejemplo , tablas de arco iris ), [3] ya que pueden hacer que el tamaño de la tabla necesario para un ataque exitoso sea prohibitivamente grande sin sobrecargar a los usuarios. Dado que las sales difieren entre sí, también protegen contraseñas redundantes (p. Ej., De uso común, reutilizadas), ya que se crean diferentes hashes salados para diferentes instancias de la misma contraseña.

Las sales criptográficas se usan ampliamente en muchos sistemas informáticos modernos, desde las credenciales del sistema Unix hasta la seguridad de Internet .

Aquí hay un ejemplo incompleto de un valor de sal para almacenar contraseñas. Esta primera tabla tiene dos combinaciones de nombre de usuario y contraseña. La contraseña no se almacena.

El valor de la sal se genera al azar y puede tener cualquier longitud; en este caso, el valor de sal tiene una longitud de 8 bytes . El valor salt se agrega a la contraseña de texto sin formato y luego el resultado se convierte en hash, lo que se conoce como el valor hash. Se almacenan tanto el valor de sal como el valor hash.