Вопросы о засолке паролей - PullRequest
1 голос
/ 13 января 2011

Хорошо.Скажем, например, что я установил соль для пароля "привет".Не может ли кто-нибудь просто посмотреть на исходный код и обнаружить соль?Если так, как бы я это скрыл?Спасибо.

Ответы [ 5 ]

7 голосов
/ 13 января 2011

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

5 голосов
/ 13 января 2011

Прежде всего: Безопасность - это Твердо .Не пытайтесь делать это самостоятельно, потому что вы испортите это.Используйте хорошо зарекомендовавшую себя библиотеку для обработки аутентификации пользователя.

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

3 голосов
/ 13 января 2011

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

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

1 голос
/ 13 января 2011

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

2) PKCS # 5 v2.1, раздел 4

0 голосов
/ 13 января 2011

Надеюсь, ваш «исходный код» работает на веб-сервере, а не на стороне клиента (javascript), где его может увидеть каждый.

...