Меняю ли я значение соли при смене пароля пользователя?

#security #hash #salt #password-hash

#Безопасность #хэш #соль #пароль-хэш

Вопрос:

Предположим, я сохраняю случайное значение соли для каждого пользователя. Должен ли я генерировать новое значение salt при смене пароля этого пользователя или я использую одно и то же значение в течение всего срока действия этой учетной записи пользователя?

Ответ №1:

Вы должны изменить соль. Соль разработана таким образом, чтобы быть уникальной (насколько это возможно) для всех экземпляров пароля.

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

Конечно, старый пароль, будучи устаревшим, больше не является допустимым способом входа в вашу систему, но поскольку пользователи склонны повторно использовать пароли, старый пароль все еще может быть полезен (с точки зрения злоумышленника). В частности, пользователь может повторно использовать этот старый пароль, когда он будет менять свой пароль снова (это то, что делает большинство пользователей, когда сталкивается с системой, которая требует регулярной смены пароля: они чередуют два пароля).

Комментарии:

1. вверх Возможно, вы захотите изменить пароль salt и обновить запись пользователя

Ответ №2:

Если пароль не был слабым (и злоумышленник не знает соль), использование другого значения соли не улучшит безопасность вашего пароля в случае изменения пароля, поэтому вы можете сохранить его прежним.

Назначение значения salt — гарантировать, что у разных пользователей с одинаковым паролем не будет одинакового хэша пароля.

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

Так что, возможно, это хорошая идея — сменить соль при установке нового пароля.