21.08.2013, 11:49
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Вопрос по поводу pbkdf2
Не оч силён в криптографии, так что ищу совета у знающих) Какое оптимальное количество итераций и длину ключа нужно указывать? Сейчас использую: длина ключа 512, 25 тысяч итераций.
И ещё вопрос: нужно ли результат функции пропускать дополнительно через хеш функцию?
Последний раз редактировалось kobezzza, 21.08.2013 в 11:53.
|
|
21.08.2013, 17:50
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Дзен-трансгуманист
|
kobezzza,
Тоже не силен, но... куда и зачем ты его используешь?
|
Для генерации ключа на основе пароля и соли, т.к. пишут, что простое вычисление хеша от пароля - это редкостный отстой и нужно юзать эту функцию (благо она входит в стандартную библиотеку ноды).
Сообщение от Дзен-трансгуманист
|
Через хеш-функцию пропустить можно, если ее длина не меньше, чем длина входа (ключа pbkdf2), иначе будет возрастать вероятность практически непредсказуемых вторичных коллизий.
|
Спасибо!
|
|
21.08.2013, 18:50
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Дзен-трансгуманист
|
То есть для дескрипторов безопасности на сервере. А какова вероятность, что их начнут воровать? Это для открытой передачи данных и особо уязвимых хранилищ актуально усложнять алгоритм, а для закрытой от посторонних глаз БД - 25к итераций... Не знаю, но просто потестируй, во сколько миллисекунд обойдется серверу каждая авторизация или изменение пароля.
|
Не от того, что начнут воровать, а чтобы брутфорсом нельзя было подобрать. Эта функция не должна работать быстро (в ноде она имеет асинхронный интерфейс, т.е. поток лочится не будет), но насчёт итераций я не уверен, вот поэтому и спрашиваю. Вроде как минимум это 1к итераций. Но наверно стоит понизить, пускай будет 10к А по поводу длины ключа никто ничего не знает?
UPD: почитав ещё пару статей по криптографии в итоге понизил количество итераций до одной тысячи
Последний раз редактировалось kobezzza, 21.08.2013 в 19:20.
|
|
21.08.2013, 19:22
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
|
|
21.08.2013, 19:39
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
|
|
21.08.2013, 20:56
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Дзен-трансгуманист
|
Вроде бы его можно сразу с buffer'ами юзать: function pbkdf2
В противном случае, кодировку salt надо 'binary' ставить, а не 'hex', судя по всему.
|
Угу, вот плохо, что в доке у них не пишут формат входных данных. Пасиб за наводку
Но с другой стороны, судя по комментам в коде - это костыль для совместимости со старыми версиями и лучше передавать методу строки
Последний раз редактировалось kobezzza, 21.08.2013 в 21:05.
|
|
21.08.2013, 21:21
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Дзен-трансгуманист
|
То есть, наоборот, старые программы использовали строки, теперь переход на буфер, который намного более эффективен.
|
Нужно мне подтягивать инглиш)
А в какой кодировки лучше хранить строки соль и пароль в базе? в хексе или в бинарном виде?
|
|
21.08.2013, 21:52
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Дзен-трансгуманист
|
А зачем тут хекс? Чтобы удвоить потребляемую память? ))
ЗЫ: под словом пароль ты конечно же имел в виду ключ.)
|
Ну да, ключ) Да я просто много где видел, где конвертят в хекс при сохранении в базу и думал, мб в этом есть какой то тайный смысл Спасибо за помощь!
|
|
21.08.2013, 22:16
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Дзен-трансгуманист
|
У некоторых программеров текстовый способ мышления.) Ну или если сама БД бинарку не поддерживает, хотя маловероятно.
|
Всё ок, теперь храню как бинарные данные СУБД Mongo, всё ок, только вопрос: а как сравнивать 2 буфера? toString делать ? Метода для сравнения в АПИ ноды я не нашёл (
|
|
21.08.2013, 22:44
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Дзен-трансгуманист
|
Ты уже наверно спать хочешь, раз такие вопросы задаешь.)
|
А ну да очень хочу спать, но чёртовы буферы не дают, сейчас пойду
Я ещё прост с недавнего времени примерил на себе шкуру бек-энд прогера, вот и задаю тупые вопросы
|
|
|
|