Будет ли полезным повторное добавление хэша пароля пользователя при каждом входе в систему и перезаписи оригинала? - PullRequest
0 голосов
/ 18 июня 2011

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

Вот тут то, что мне интересно, входит в игру. Я хочу знать, будет ли этот сценарий полезным:

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

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

EDIT


Я написал этот вопрос очень плохо ... Я изучал способы сделать сценарии входа в систему без SSL-шифрования более безопасными и пришел к мысли использовать javascript для хеширования пароля перед его отправкой по почте. Это показалось мне полуприличной идеей, за исключением того, что было бы бессмысленно, если бы хакер перехватил хеш-данные постов, потому что он мог просто с этого момента отправлять фальшивые пост-данные с использованием хеша. Я подумал о том, чтобы каждый раз заново хэшировать проход с новой солью, так что хакеру придется постоянно перепринимать соединение каждый раз, когда он хочет получить доступ к учетной записи этого пользователя.

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

Ответы [ 2 ]

3 голосов
/ 18 июня 2011

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

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

Итак, никаких изменений в безопасности здесь.

1 голос
/ 18 июня 2011

Я не уверен, что это сделает его более безопасным.Если хакер пытается грубо взломать логин пользователя, не имеет значения, какой MD5 / SHA1 или что вы сохранили в базе данных.Важно то, сколько времени потребуется для каждой попытки аутентификации, а также, чтобы ваши пароли были засолены и зашифрованы.Вы все еще должны хранить новую «случайную» соль в базе данных или получить ее как из полей в базе данных.Убедитесь, что вы используете растяжение (усиление) ключа и что каждая попытка входа в систему занимает 1 или 2 секунды.И, конечно же, не позволяйте хакерам получить доступ к компьютеру или получить дампы зашифрованных паролей (через внедрение SQL, эксплойты на вашем сервере и т. Д.).

...