Сравнение пароля со случайной солью - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть приложение на c #, и я пытаюсь написать базовую форму входа, используя php и mysql для хранения паролей.

Я использую случайную соль SHA512 + для хранения паролей, поэтому в настоящее время я делаю это для паролей.

хэш (пароль + randomSalt) + randomSalt;

Таким образом, соль добавляется в хеш, затем отправляется на сервер и сохраняется.

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

Должен ли я шифровать пароль и отправлять его на сервер, чтобы сервер отправлял пользователю соль или есть лучший способ реализовать это?

Я просто хочу убедиться, что любой, кто создает пароль учетной записи, является умеренно защищенным.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Как правило, вы должны хранить хешированные пароли и случайные значения соли в базе данных.

Когда пользователь аутентифицируется, его или ее имя пользователя и пароль отправляются на сервер (предпочтительно через защищенное соединение SSL).Форма там, вы используете имя пользователя, чтобы получить значение соли и хешированный пароль из базы данных, чтобы сделать сравнение с.

В итоге, вы никогда не должны хранить пароли в виде простого текста или отправлять их по незащищенному соединению.

См. Хеширование пароля, соль и хранение хешированных значений для получения дополнительной информации.

0 голосов
/ 02 ноября 2011

Это почти невозможно. Как сказал Дерек, правильно получить SSL-сертификат и отправить текстовые пароли поверх этого.

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

Если вы действительно не можете использовать SSL, http://en.wikipedia.org/wiki/Challenge-response_authentication#Cryptographic_techniques описывает способ избежать отправки пароля (или хэша, который почти совпадает).

...