Пароль, соль, хеш, БД: в миллионный раз - PullRequest
1 голос
/ 15 февраля 2012

Я знаю, что эта тема обсуждалась миллион раз.Но для меня это ново, и чем больше я читаю об этом, тем меньше понимаю, что на самом деле происходит или должно происходить.

Я добавляю соль для каждого пользователя в хешированное хранилище пароля пользователя, поэтому сохраняемый парольхеш выглядит так: хеш (пароль + perusersalt).Это приводит к тому, что одни и те же пароли разных пользователей сохраняются как разные строки в БД.Здорово.Но я не беспокоюсь о том, что кто-то взломает БД и найдет хешированные пароли.Я беспокоюсь о том, что кто-то будет грубо насиловать мой сервер на комбинации имени пользователя и пароля.В этом случае соленое и хешированное хранилище паролей бесполезно, поскольку правильная комбинация имени пользователя и пароля приведет к успешному входу в систему.Правильно?

Правильно ли я понимаю, что в этом случае соль довольно бесполезна?Поскольку сервер принимает только имя пользователя и пароль на интерфейсе (соль не передается), подойдет обычная атака по словарю, верно?

Таким образом, соль существует только для того, чтобы запутать пароль пользователя (можно получить только в обратном порядке).Радуга Таблица поиска) от кого-то, кто имеет доступ к БД.Хм.

Похожие: Мое веб-приложение даже не передает простые пароли.Пароли уже хэшированы на стороне клиента, только для того, чтобы полностью отказаться от ответственности за чьи-то украденные пароли, и все это использует SSL.

Означает ли это, что я более или менее на максимально возможном уровне безопасности, потому что правильные комбинацииимя пользователя и пароль, конечно, должны приводить к успешному входу в систему?

Спасибо за то, что вы очистили мою голову.

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Вы правы в своем предположении об атаке грубой силой. Если у пользователя простой пароль, соль и хэш не будут иметь большого значения. Атака по словарю будет угадывать «пароль» и позволит злоумышленнику войти в систему. Вы должны потребовать от пользователя безопасный пароль, затем выполнить одностороннее шифрование (хешировать его с солью) и использовать SSL, как вы.

0 голосов
/ 15 февраля 2012

«Пароли […] хешируются на стороне клиента […], чтобы […] отклонить ответственность за чьи-то украденные пароли, и все это использует SSL.»

Отправляет ли клиент хеш (пароль + соль)?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...