Какой метод хеширования паролей мне следует использовать? - PullRequest
6 голосов
/ 24 января 2012

Этот вопрос заставил меня снова задуматься о хешировании паролей.В настоящее время я использую bcrypt (в частности, py-bcrypt).Я много слышал о PBKDF2 и scrypt.

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

И затем, оттуда, какой из них мне следует использовать?Большинство людей, кажется, рекомендуют bcrypt, но мне интересно, если это только потому, что он старый (читай: хорошо известно).scrypt кажется лучше (переменное количество использования памяти).Я не очень разбираюсь в PBKDF2.

Так что, если я создам схему управления пользователями, какую из них мне следует использовать?Или я должен использовать что-то совершенно другое?

1 Ответ

6 голосов
/ 24 января 2012

PBKDF2 используется в WPA / WPA2 и доменных кэшированных учетных данных 2 (AKA DCC2).Вы можете изменить итерации для HMAC-SHA1 для повышения безопасности.Этот метод замедления процесса крекинга не нарушается.Однако, поскольку он основан на SHA1, вы можете назвать его дружественным к GPU для атаки.

Оба, bcrypt и scrypt , используют справочную таблицу.Эта зависимость от памяти делает его GPU-недружественным.Однако новейшие 28 нм архитектуры GPU обеспечивают очень быстрый доступ к памяти.

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

...