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

  • По-другому, конечно, эти игры в наёмников в стране, где наёмничество запрещено законом, кончиться не могло. В США, кстати, наёмничество не…

  • Радио и дураки

    Наши богоспасаемые законодатели, в бесконечной мудрости своей, в очередной раз защищают какую-то хреноту. В роли хреноты — средневолновые…

  • Наши разведчики и ихние шпионы

    Коммьюнике НАТО 14 июня 2021 года (ставшее провоцирующей причиной нападения России на Украину): Мы вновь подтверждаем решение, принятое на встрече…

  • 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