@cypselusmurarius
Per aspera ad astra. Contra omnes res.

Как хранится соль пароля?

Допустим у нас есть хэш-функции, через которые проходят пароли и добавляется "соль". У одинаковых паролей в базе будет разная соль, где находится база "соли", и есть ли она вообще, или же есть специальный алгоритм, находящий пароль из хэша с солью. Заранее спасибо.
  • Вопрос задан
  • 5907 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Информационная безопасность
software engineer
Соль нужна исключительно для одного случая - чтобы нельзя было подобрать пароль по известной базе хешей.

Если при генерации хеша, используется каждый раз новая соль - она вполне может лежать открытым текстом рядом с хешом, или прямо в нем (несколько символов в начале, в конце или середине). Это позволяет для одинаковых паролей создавать разные хеши, для простых паролей создавать непростые хеши, и создает невозможность создания радужной таблицы под конкретный ресурс.
ppppp.ssssss -> hhhhhhhhhhhhhhhhhsssss (p - pass, s - salt, h - hash)
ssssspppppppsssss - > hhhhhhhhhhhhsss или sssshhhhhhhhh или даже shshshshshhhhhhhhhhh

Бывает и другая схема, когда все хешируется с конкретной мастер солью (например пароли в разных форумных движках), что позволяет хранить хеши отдельно от соли (одна соль на все хеши в config.php, и сами хеши в базе данных).
Можно усложнить второй вариант, добавив базу из нескольких солей, и каждый раз перебирать их все на стороне сервера. А в базе будут хранится хеши, в которых пароль с солью захеширован, но в самом хеше соль не прописана, и какая была использована для конкретного хеша - непонятно. Повышает безопасность, если утекли только все хеши.

Можно совмещать первый и второй вариант, можно параноить по-разному.
ssspppppppsss -> hash(hash(hash(sssmastersalt.hhhhhhsss)+hash(hhhhhhhhhsss))
В общем зависит от алгоритма и желания усложнить.
Ответ написан
Jump
@Jump
Системный администратор со стажем.
Как правило соль хранится в БД вместе с логином, и хэшем.
Хотя иногда не хранится, а генерируется на основе каких то данных пользователя.

или же есть специальный алгоритм, находящий пароль из хэша с солью.
Смысл этого высказывания мне непонятен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы