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

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

Изменить обновление:

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

4 ответа

Решение

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам