Про хранение паролей в виде хэшей Большинство сетевых ресурс | Время IT | IT Time
Про хранение паролей в виде хэшей
Большинство сетевых ресурсов, выполняющих идентификацию и аутентификацию пользователей, хранят у себя какой-либо признак (секрет) для аутентификации. Например, пароль пользователя.
Хранить пароли в открытом виде – совсем уж моветон, поэтому чаще всего хранят хэши паролей.
При входе на ресурс пользователь вводит свой логин и пароль, а на серверной стороне выполняется поиск указанного логина в базе и вычисление хэша от введённого пароля. Если хэш в базе совпадает с вычисленным, то пользователь проходит аутентификацию.
Вся эта нехитрая схема представлена на рисунке ниже.
Хорошие сетевые ресурсы хранят не просто хэши паролей пользователей, но и дополняют их солью (Salt), перцем (Pepper) или тем и другим одновременно.
Соль - это уникальная для каждого пользователя псевдослучайная последовательность битов, которая добавляется к его паролю перед построением хэша. Соль удлиняет пароль пользователя и делает его более стойким к взлому.
Кроме того, соль обеспечивает разные хэши для пользователей с одинаковыми паролями, что бывает полезно, когда атакующий получает доступ к таким хэшам, например, путём успешного проникновения в базу данных сетевого ресурса.
Перец работает аналогично соли, но в отличие от последней является константой, т.е некоторой общей битовой последовательностью, которая добавляется к паролю каждого пользователя. Важно, чтобы перец не хранился нигде в базе данных в открытом виде.
Кроме того, иногда операция взятия хэша проводится несколько раз: сначала строится хэш для пароля пользователя, затем хэш от этого хэша и т.д. Такой подход также повышает степень защищенности пароля при его хранении.
#ИБ #термин