nlothik (nlothik) wrote,
nlothik
nlothik

Не все хеши одинаково полезны

Для тех, кто не знает -- пароли во всех современных системах хранятся в зашифрованном виде. Даже если ты украдёшь /etc/master.passwd (если речь про православный BSD) или /etc/shadow (если речь про богомерзкий красноглазый линупс) -- тебя это ничего не даст.

Ну, почти не даст. Заполучив пароль в шифрованном виде, его можно сломать, не боясь того, что система тебя отследит, забанит, и так далее. Проблема в том, что паролей может быть очень много. Для 6-значного пароля, включающего цифры и буквы как верхнего, так и нижнего регистров, количество возможных паролей составляет 56 миллиардов (это очень мало, на самом деле, хотя кажется много).

Перебрать все комбинации несложно. Это вычислительно архидёшево. А вот генерирование хешей из этих комбинаций -- вот это уже вычислительно дорогая операция.

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

Так что на современных компьютерах с многоядерными процессорами пароли можно перебирать очень быстро.

Но есть отдельно маньякнутые маньяки, которые используют для вычисления хешей видеокарту. Благо, процессоров на ней -- несколько тысяч (на современных, мощных). Это, правда, очень тупые и медленные процессоры, но зато их МНОГО.

Рекомендую программу oclHashCat. Она умеет именно это. При этом она бесплатна и есть под никсы. На выходных от души с ней поигрался.

Выяснилось очень интересное. Алгоритмов хеширования паролей достаточно много. Линупсы используют солёный MD5. Винда использует NTLM (ЕМНИП, по сути это MD4). Веб-системы -- тут уже кто во что горазд. Часто -- до сих пор MD5. Хотя многие уже перешли на SHA.

Так вот хеширование, в зависимости от алгоритма, занимает очень разное время. Быстрее всего подбирается пароль от Windows (это серьёзно удивило). 6-значный я подбираю всего за 3-5 секунд!! Домашний компьютер (у меня там стоит не самая плохая видеокарта) фигарит 5 миллиардов паролей в секунду!

MD5 хеши уже идут хуже -- 3.5 миллиарда паролей в секунду.

Существенно медленнее (в 10 раз) идёт подбор паролей, хешированных SHA256.

Но медленнее всего шло ломание паролей от WordPress. Он использует библиотеку phpass, что есть опенсорсный bcrypt. Ломание этого пароля шло в 26 000 (двадцать шесть тысяч, Карл!) раз медленнее, чем ломание виндового NTLM. 200 тысяч паролей в секунду -- это был максимум, на который был способен мой домашний компьютер.

Кстати, что отдельно смешно. Пароли от профурсетского сайта Эшли Мэдисон были хешированы именно bcrypt. Только это был херовый bcrypt :) Они его настроили так, что алгоритм был существенно ослаблен. Подробности тут:

http://arstechnica.com/security/2015/09/once-seen-as-bulletproof-11-million-ashley-madison-passwords-already-cracked
Tags: компьютерное, сисадминское
Subscribe

  • Платить преступникам за несовершение преступлений

    Запасаемся попкорном. Мне почему-то кааца, что на преступность это не повлияет от слова “никак”. Да, кстати, а почему мне не платят?…

  • Твердотельные жулики

    Мои две “любимые” конторы-производители накопителей данных засветились с подменой более быстрых флеш-чипов на более дешёвые (и менее…

  • Sitrep

    Две недели занимались практически только тем, что на работе выкидывали всякой хлам: –Это выкинуть или оставить? –Эту выкини, эту…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments