@superivankorolev

Какой алгоритм лучше использовать для хеша пароля?

На хабре прочитал такой совет "Не используйте ни MD5, ни SHA1. Лучше всего для паролей использовать специализированные хеш-функции, типа PBKDF2 или scrypt"

И подумал, может переделать, пока не поздно?

В данный момент использую это
crypto.createHmac('sha1', salt).update(password).digest('hex');


Сайт что-то типо магазина. В будущем возможно появятся деньги в личном кабинете.
  • Вопрос задан
  • 782 просмотра
Решения вопроса 1
@DaNHell
Change the world
Bycrypt верно, гуд.
Вообще защита пользовательских паролей в бд составляеться из расчета:
возможная компроментация системы, допустим сегодня Вас хэкнули, слили БД, нужно крякнуть пассы. Конечно в ход идет первым делом всевозможные finder.insidepro.com (довольно сильная и внушительную БД товарищи собрали) и другие сервисы включая cmd5.
Из этого логически можно понять, чтобы сразу не остаться в луже, обязательно использовать алгоритм с salt. Дабы ваши юзеры прожили спокойно еще чуть времени)
И дальше простой расчет идет, к примеру md5 средний показатель гдето 10M/hs, грубо говоря если политика паролей включает минимум 8 знаков разного регистра и использование символов, хэшкрякинг затянеться примерно на недельку для нахождения 90-95% паролей.
Остюда делаем выводы: если обычный md5 - делайте политику смену паролей еженедельно
если bycypt (blowfish) - можно ограничеться полугодовым или годовым периодом обязательной смены паролей.

P.s. В прошлогоднем контесте hashrunner на PHDays 2015, нашей и остальными командами не было ни 1 bycrypt крякнуто, хотя может ошибаюсь по поводу лидирующей команды. Но имхо, просто не тратили время на это. Мы заняли 4 место, немного отстав 3ие. С учетом что первые 3 - несменные лидеры и отцы хэшкрякинга (hashcat/insidepro/jhontheripper)
Вот так вот. Думаю вопрос будет решен)
И надеюсь это очень серьезный подход к безопасности? Или халатность в защите самой системы, другими словами - почти уверены что вашу бд сольют?))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sim3x
@sim3x
security.stackexchange.com/questions/70947/how-doe...

https://medium.com/@mpreziuso/password-hashing-pbk...

blog.ircmaxell.com/2014/03/why-i-dont-recommend-sc...

Ты должен писать свой код так чтоб в любой момент модно было добавить еще один хешер повер существующего
А лучше, использовать решение, которое уже опробовано, подвергалось атакам и выстояло
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы