Хэширование пароля и "соль"
В книге Шнайера описывается способ подбора пароля с использованием словаря. Также описывается способ добавления "соли" перед хэшированием. Насколько возможно использование nickname в качестве "соли"?
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
Нормы пользования. Некоторые права на материалы сайта защищены по условиям лицензии CreativeCommons. Движок
openSpace 0.8.25a и дизайн сайта © 2006-2007 Vlad "SATtva" Miller.
|
||||||||||||||||||||||||
комментариев: 11558 документов: 1036 редакций: 4118
В роли привязки может выступать любая строка, вероятность появления которой в словаре достаточно мала. Лучший вариант — какие-нибудь случайные и всякий раз разные биты. Но может быть и никнэйм. Суть в том, что если Вы используете salt, противнику придётся составлять второй словарь и для этой привязки. (Т.е. для такого словаря ему придётся хэшировать все слова и фразы из первого, конкатенированные с этой привязкой.)
Если же в каждом пароле используется уникальная случайная привязка, оппонент теряет практическую возможность создавать словари и библиотеки хэшей для подбора паролей.
комментариев: 2 документов: 4 редакций: 0
Как я понял: возможность подбора пароля для ОТДЕЛЬНО ВЗЯТОГО пользователя что с привязкой, что без таковой одинакова. И значение привязки для каждого пользователя не представляет тайны. Верно ли?
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 2 документов: 4 редакций: 0
И еще вопрос!
Если мы используем логин, как привязку, и значение хэш-функции, вычисленной по пароль+логин, есть в БД, то это автоматом означает, что и логин, и пароль верные. То есть по логину можно даже не искать?
Здесь правда вопрос быстродействия, а именно что лучше: найти сначала логин и проверить хэш или сразу искать по хэшу. Учитывая среднюю длину строк, мне кажется, первый вариант быстрее. Но второй хорош тем, что кроме вычисленного хэша с клиента ничего не уходит (в явном виде, т.е. зависит от технологии), а приходит только подтверждение логин+пароль верны или нет.
Я пока не силен в этой теме, буду рад указаниям/замечаниям...
Что, где можно почитать об этом (желательно на русском)? Как это реализовано, например, здесь? Хотя бы в общих чертах...
комментариев: 11558 документов: 1036 редакций: 4118
Да. Если логин или пароль ошибочны, результат хэширования будет другим.
Для защищённой системы я бы индексировал и сравнивал только хэши. Различия в скорости всё равно незначительны. Конечно, если архитектура Вашей системы не исходит из каких-то особых требований к масштабированию и т.д. В этом случае лучше предварительно оттестировать.
В этом форуме? Здесь обычный движок phpBB, можете сами посмотреть исходники. Привязка не используется, хэшируется только пароль. Индексом в БД служит имя пользователя, по нему же производится поиск.