Почему перефразировка сделает его более безопасным? - PullRequest
3 голосов
/ 09 февраля 2012

Чтение книги, в которой говорилось: многократно перефразировать, чтобы получить более интенсивную вычислительную последовательность байтов.Если вы перефразируете 100 раз, атака по словарю, которая в противном случае может занять 1 месяц, займет 8 лет.Зачем?Я не понимаюКто-нибудь может объяснить?

1 Ответ

1 голос
/ 09 февраля 2012

Предположим, у вас есть такая функция хеширования:

password_hash = MD5(password)

С учетом хеша, скажем, 5f4dcc3b5aa765d61d8327deb882cf99, вы предпочитаете генерировать хэши всех слов в словаре, используя вышеупомянутую функцию, а затем сравнивать password_hash с тем, который вы хотите изменить.

Теперь предположим, что вы изменили свою функцию хеширования на

   password_hash = password
   for i = 1 to 100
     password_hash = MD5(password_hash)
   next

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

Именно для этой цели быстрые алгоритмы хеширования, такие как семейство MD5 и SHA, не очень подходят для хеширования паролей. Вы можете прочитать http://codahale.com/how-to-safely-store-a-password/, чтобы понять, как медленный алгоритм, такой как bcrypt, больше подходит для хеширования пароля.

...