Шифрование пароля: PBKDF2 (с использованием sha512 x 1000) против Bcrypt - PullRequest
15 голосов
/ 13 декабря 2010

Я читал об инциденте с Gawker, и несколько статей возникли относительно использования bcrypt для хеширования паролей, и я хочу убедиться, что мой механизм хеширования достаточно безопасен, чтобы избежать переключения на другой метод. В моем текущем приложении я выбрал PBKDF2 реализацию, использующую sha2-512 и минимум 1000 итераций.

Могу ли я спросить мнение об использовании PBKDF2 против Bcrypt и стоит ли вносить изменения?

Ответы [ 2 ]

27 голосов
/ 03 апреля 2011

Вы хорошо работаете с PBKDF2, не нужно переходить к bcrypt.

Хотя в 2000 году была сделана рекомендация использовать 1000 итераций, теперь вам нужно гораздо больше.

Кроме того, вы должны быть более осторожны при использовании bcrypt:

Стоит также отметить, что, хотя bcrypt сильнее PBKDF2 для большинства типов паролей, он отстает для длинных парольных фраз; это связано с неспособностью bcrypt использовать более 55 символов пароля при наших расчетных затратах и ​​NIST. оценки энтропии парольной фразы предполагают, что ограничение bcrypt в 55 символов не могут вызвать проблемы в настоящее время, разработчики систем, которые полагаются на Рекомендуется, чтобы bcrypt обошел это ограничение (например, «предварительно взломав» фразу-пароль, чтобы она соответствовала пределу в 55 символов), или предпринял шаги запретить пользователям размещать слишком много паролей в 56-м и последующих символы (например, попросив пользователей веб-сайта ввести свой пароль для ввода поле, в котором есть место только для 55 символов).

Из бумаги Scrypt [PDF]

Тем не менее, есть также scrypt .

Любые сравнения были бы неполными без таблицы из статьи Scrypt, упомянутой выше:

Estimated cost of hardware to crack a password in 1 year.

Число итераций для используемых PBKDF2-HMAC-SHA256 составляет 86 000 и 4 300 000.

0 голосов
/ 14 декабря 2010

Комментарий (re: название):

  • Не используйте шифрование (обратимое) для хранения паролей, если вы НЕ ДОЛЖНЫ.
  • Поскольку вы в качестве альтернативы представили опцию хеширования (необратимую), я полагаю, вам не нужна обратимость.

мнений об использовании PBKDF2 против Bcrypt и должен ли я реализовать изменить?

Мое мнение:

Использовать PBKDF2 поверх Bcrypt. (Я просто больше верю в SHA, чем в Blofish, без причины)

Что касается того, следует ли вам «внести изменения», я не знаю, о чем вы спрашиваете.

Отредактировано, чтобы более четко отделить обсуждение шифрования / хэширования от указания моих предпочтений с помощью алгоритма w / r / t.

...