Шифрование пароля: PBKDF2 (используя sha512 x 1000) против Bcrypt

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

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

2 ответов


вы хорошо с PBKDF2, нет необходимости прыгать в bcrypt.

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

кроме того, при использовании bcrypt:

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

из бумаги scrypt [PDF]

Что сказал, Есть также скрипт.

любые сравнения были бы неполными без таблицы из документа scrypt, упомянутого выше:

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

итерации рассчитывает на PBKDF2 с-с HMAC-SHA256 и там применяются 86,000 и 4,300,000.


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

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

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

мое мнение:

используйте PBKDF2 над Bcrypt. (У меня просто больше веры в ша, чем Blofish, без причины)

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

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