Влияет ли алгоритм хеширования, используемый для хеширования паролей, на генерацию радужной таблицы? - PullRequest
0 голосов
/ 30 марта 2009

re вопрос неслучайных хэшей соли для пароля Мистер Картофельная Голова утверждает, что использование md5 вместо SHA-512 облегчает создание радужных таблиц? Я бы подумал, что как только ваша радужная таблица сформирована, используемый алгоритм не имеет значения? Не имеет значения, как вы используете радужную таблицу для проверки известных хешей? И есть ли способ узнать, какой алгоритм хеширования использовался каким-либо образом?

Редактировать обновление:

Я думаю, что правильное хеширование ваших таблиц паролей необходимо не для защиты вашего приложения, а для защиты всех остальных, где пользователи будут повторно использовать пароли и идентификаторы.

Ответы [ 4 ]

3 голосов
/ 30 марта 2009

Он сказал, что

Использование SHA-512 окажется больше боли для кого-то, производящего Радужный стол, чем MD5,

Просто вычислить хеш SHA-512 просто дороже, чем вычислить хеш MD5.

2 голосов
/ 30 марта 2009

Это чисто вопрос производительности. MD5 проще, чем SHA-512, поэтому вы можете генерировать больше радужных таблиц или больше атак грубой силы за определенный период времени.

1 голос
/ 30 апреля 2009

На самом деле, время для генерации таблиц не имеет значения, так как вы делаете это только один раз.

Время взлома гораздо более актуально. Радужные таблицы - это просто способ уменьшить количество операций хеширования, необходимых для восстановления пароля, но вам все равно нужно будет применить хеш-функцию при взломе пароля. Например, радужный стол может уменьшить количество операций хеширования в 10 000 раз. Если у вас более медленный хеш (например, SHA-512), взлом будет медленнее.

Обратите внимание, что хорошая хеш-функция пароля включает в себя не только соль, но и хеш-функцию несколько тысяч раз. Хеширование все равно будет быстрым для всех практических целей, но взлом (любым способом) будет в тысячи раз медленнее.

1 голос
/ 30 марта 2009

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

На ваш последний вопрос более прямой ответ заключается в том, что, изучая только выходные данные, вы можете определить только количество бит в выходных данных алгоритма окончательного хеширования. В зависимости от алгоритма, он может быть или не быть уникальным, но, если алгоритм хорош, не будет обнаруживаемых шаблонов, которые точно его идентифицируют. (Я говорю «окончательный», потому что вывод только MD5 будет выглядеть так же, как конечный результат SHA512-затем-MD5, так как последний шаг одинаков в обоих случаях.)

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

...