CyberGlossary

Криптография

Соль

Также известно как: Криптографическая соль, Соль для пароля

Определение

Уникальное случайное значение, добавляемое к паролю перед хешированием, чтобы обесценить радужные таблицы и сделать хеш каждого пользователя уникальным.

Криптографическая соль — это несекретное случайное значение, которое смешивается с паролем перед подачей в хеш-функцию или KDF вроде Argon2, scrypt, bcrypt, PBKDF2. Соль гарантирует, что у двух пользователей с одинаковым паролем хранимые хеши будут разными, что обнуляет предвычисленные радужные таблицы и превращает массовые атаки в линейные по пользователям, а не пакетные. Рекомендуется не менее 16 байт, генерация криптографически стойким RNG, уникальность на каждую запись и хранение рядом с хешем; соль не обязана быть секретной. Современные форматы (строка PHC, $argon2id$..., $2b$..., $scrypt$...) встраивают соль прямо в значение. Соль также применяется в HKDF и в рандомизированных схемах с открытым ключом для той же диверсификации.

Примеры

  • Хеш Argon2id вида $argon2id$v=19$m=65536,t=3,p=1$<base64-соль>$<base64-хеш>.
  • Уникальная 16-байтовая случайная соль, генерируемая для каждого пользователя при создании учётной записи.

Связанные термины