Lansarea John the Ripper 1.9.0-jumbo-1 cu suport FPGA

Eliberată новая версия старейшей поддерживаемой программы для подбора паролей John the Ripper 1.9.0-jumbo-1 (проект развивается с 1996 года). C выхода прошлой версии 1.8.0-jumbo-1 прошло 4.5 года, за которые было внесено более 6000 изменений (git commits) от более 80 разработчиков. Благодаря integrare continuă, включающей предварительную проверку каждого изменения (pull request) на многих платформах, в течение этого срока разработчики рекомендовали использовать ediția curentă din GitHub, состояние которой поддерживалось стабильным несмотря на вносимые изменения. Основной код проекта distribuit de под лицензией GPLv2+, а код некоторых компонентов под лицензией BSD.

Особенностью новой версии является появление поддержки FPGA (в дополнение к CPU, GPU и Xeon Phi). Для плат ZTEX 1.15y, включающих по 4 чипа FPGA и исходно использовавшихся в основном для майнинга Bitcoin, теперь реализованы 7 типов хешей паролей: bcrypt, классический descrypt (включая bigcrypt), sha512crypt, sha256crypt, md5crypt (включая Apache apr1 и AIX smd5), Drupal7 и phpass (используется, в частности, в WordPress). Некоторые из них реализованы на FPGA впервые.

Для bcrypt, достигнутая производительность в ~119k c/s при 2^5 итераций («$2b$05») с потребляемой мощностью около ~27 ватт существенно превосходит результаты для новейших GPU в расчете на плату, на цену оборудования и на ватт. Также поддерживаются clustere из плат этого типа, что проверено вплоть до 16 плат (64 чипа FPGA), контролируемых с одного Raspberry Pi 2. Поддерживается обычная функциональность John the Ripper, включая все режимы подбора паролей и одновременную загрузку большого количества хешей.

Для ускорения работы реализовано применение маски (режим «—mask», в том числе в комбинации с другими режимами) и сравнение вычисленных хешей с загруженными на стороне FPGA. С точки зрения реализации, во многих из дизайнов (например, для sha512crypt și Drupal7) sunt utilizate blocuri formate din nuclee de procesor multi-threaded (nuclee soft CPU) care interacționează cu nuclee criptografice. Dezvoltarea acestei funcționalități a fost condusă de Denis Burykin în coordonare cu alți dezvoltatori jumbo.

Другие важные изменения:

  • Поддержка большого количества дополнительных типов хешей, шифров и т.п., включая как классические хеши паролей (например, от новых версий QNX), так и кошельки криптовалют, шифрованные архивы и шифрованные файловые системы (например, Bitlocker и FreeBSD geli), а также поддержку новых разновидностей форматов, поддерживаемых ранее (например, добавлена поддержка bcrypt-pbkdf для OpenBSD softraid) и многое другое. В общей сложности, добавлено 80 форматов на CPU и 47 на OpenCL. Общее количество форматов теперь 407 на CPU (или 262 не включая «dynamic» форматы, настраиваемые из файлов конфигурации) и 88 на OpenCL.
  • Refuzul de a sprijini limbajul CUDA în favoarea OpenCL, care în niciun caz nu interferează cu utilizarea deplină a GPU-urilor NVIDIA (și chiar ajută, datorită concentrării dezvoltării și optimizării pe o implementare a fiecărui format pentru GPU în loc de două implementări anterior).
  • Suport pentru noile seturi de instrucțiuni SIMD - AVX2, AVX-512 (inclusiv pentru a doua generație Xeon Phi) și MIC (pentru prima generație) - precum și utilizarea mai universală și mai completă a SIMD în implementări de mai multe formate, inclusiv utilizarea de setările de instrucțiuni acceptate anterior până la AVX și XOP pe x86(-64) și
    NEON, ASIMD и AltiVec на ARM, Aarch64 и POWER, соответственно.

  • Numeroase optimizări pentru CPU și OpenCL, atât pentru a lucra mai eficient cu un număr mare de hashuri simultan (de exemplu, a fost testată încărcarea a 320 de milioane de hash-uri SHA-1 pe GPU), cât și pentru a crește viteza calculelor hash. Unele dintre aceste optimizări sunt universale, unele acoperă diferite subseturi de formate și multe sunt specifice formatelor individuale.
  • (Авто-)настройка оптимальной буферизации проверяемых паролей на CPU («—tune=auto —verbosity=5») и оптимальных размерностей задания на OpenCL (включена по умолчанию), в том числе с учетом медленного выхода на полную рабочую частоту GPU серии NVIDIA GTX 10xx и новее. Использование реально загруженных хешей и реальной длины проверяемых паролей (когда она известна заранее) для такой авто-настройки.
  • Добавление компилятора «динамических выражений», указываемых прямо на командной строке и реализующих новые гибридные типы хешей, например «—format=dynamic=’sha1(md5($p).$s)'», вычисляемые на CPU с использованием SIMD. В качестве компонентов таких выражений поддерживаются десятки быстрых хешей (от распространенных вроде MD5 до умеренно экзотических вроде Whirlpool), объединение подстрок, кодирование и декодирование, преобразование регистра символов, ссылки на пароль, соль, имя пользователя и строковые константы.
  • Eliminarea diferențelor nedorite față de hashcat, inclusiv suport pentru regulile specifice hashcat-ului anterior (comenzi pentru regulile listei de cuvinte), tranziția la numerotarea dispozitivelor OpenCL de la 1, utilizarea implicită a acelorași lungimi de parole (de obicei lungimea 7) pentru testele de performanță.
  • Noi moduri de generare a parolelor verificabile (moduri de cracare), inclusiv PRINCE din hashcat (formează „fraze” prin combinarea mai multor cuvinte în ordinea crescătoare a lungimii totale), subseturi (afișează parole cu un număr insuficient de caractere diferite, chiar dacă aceste caractere vin dintr-un set mare de posibile) și hibrid extern (permite modurilor externe, descrise în fișierele de configurare într-un limbaj asemănător C, să genereze multe parole verificabile pe baza fiecărui „cuvânt” de bază primit dintr-un alt mod). De asemenea, câteva moduri externe noi predefinite.
  • Capacități suplimentare pentru utilizarea mai multor moduri simultan (unul peste celălalt - stivuire), precum și pentru utilizarea seturi de reguli (stivuirea regulilor listei de cuvinte).
  • Îmbunătățiri ale modurilor măști (întinderea treptată a măștii într-o gamă specificată de lungimi, aplicarea unei măști pe partea laterală a dispozitivului OpenCL sau a plăcii FPGA) și crack unic (comportament rezonabil pe dispozitivele care calculează un număr mare de hashe-uri în paralel). , pentru care anterior nu existau suficiente parole verificabile în acest mod și, de asemenea, restricții privind consumul de memorie).
  • Multe îmbunătățiri ale suportului pentru Unicode și alte codificări în diferite subsisteme.
  • Multe îmbunătățiri ale programelor *2john (care convertesc fișiere de diferite formate pentru
    utilizați cu john), în special wpapcap2john (se ocupă de traficul WiFi).

  • Există multe opțiuni noi de linie de comandă, setări în john.conf, opțiuni de configurare a scriptului și funcții noi corespunzătoare, care nu au fost toate menționate aici.
  • Îmbunătățirea calității codului datorită suportului încorporat pentru versiunile de depanare cu AddressSanitizer (anterior) și UndefinedBehaviorSanitizer (adăugat), adăugarea unui format fuzzer încorporat (ca parte a GSoC 2015), folosind integrarea continuă (build-uri pentru zeci de sisteme de operare și compilator combinații și testarea lor pentru suport corect pentru toate formatele).

Sursa: opennet.ru

Adauga un comentariu