John the Ripper 1.9.0-jumbo-1 хувилбар нь FPGA дэмжлэгтэй

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

Особенностью новой версии является появление поддержки FPGA (в дополнение к CPU, GPU и Xeon Phi). Для плат ZTEX 1.15 жил, включающих по 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 в расчете на плату, на цену оборудования и на ватт. Также поддерживаются кластерууд из плат этого типа, что проверено вплоть до 16 плат (64 чипа FPGA), контролируемых с одного Raspberry Pi 2. Поддерживается обычная функциональность John the Ripper, включая все режимы подбора паролей и одновременную загрузку большого количества хешей.

Для ускорения работы реализовано применение маски (режим «—mask», в том числе в комбинации с другими режимами) и сравнение вычисленных хешей с загруженными на стороне FPGA. С точки зрения реализации, во многих из дизайнов (например, для sha512crypt болон Drupal7) криптограф цөмтэй харилцан үйлчилдэг олон урсгалтай процессорын цөм (зөөлөн CPU цөм) -ээс бүрдэх блокуудыг ашигладаг. Энэхүү функцийг хөгжүүлэх ажлыг Денис Бурыкин бусад jumbo хөгжүүлэгчидтэй хамтран удирдсан.

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

  • Поддержка большого количества дополнительных типов хешей, шифров и т.п., включая как классические хеши паролей (например, от новых версий QNX), так и кошельки криптовалют, шифрованные архивы и шифрованные файловые системы (например, Bitlocker и FreeBSD geli), а также поддержку новых разновидностей форматов, поддерживаемых ранее (например, добавлена поддержка bcrypt-pbkdf для OpenBSD softraid) и многое другое. В общей сложности, добавлено 80 форматов на CPU и 47 на OpenCL. Общее количество форматов теперь 407 на CPU (или 262 не включая «dynamic» форматы, настраиваемые из файлов конфигурации) и 88 на OpenCL.
  • NVIDIA GPU-г бүрэн ашиглахад ямар ч байдлаар саад учруулахгүй OpenCL-ийн төлөө CUDA хэлийг дэмжихээс татгалзсан (мөн өмнө нь хоёр хувилбарын оронд GPU-ийн формат бүрийн нэг хэрэгжилтэд хөгжүүлэлт, оновчлолыг төвлөрүүлсний ачаар ч тусалдаг).
  • AVX2, AVX-512 (хоёр дахь үеийн Xeon Phi-г оруулаад) болон MIC (эхний үеийн хувьд) - шинэ SIMD зааврын багцуудыг дэмжихээс гадна SIMD-ийг олон форматын хэрэгжилтэд илүү түгээмэл, бүрэн ашиглах, үүнд x86(-64) дээр AVX болон XOP хүртэлх өмнө нь дэмжигдсэн зааврууд болон
    NEON, ASIMD и AltiVec на ARM, Aarch64 и POWER, соответственно.

  • CPU болон OpenCL-ийн олон тооны оновчлолууд нь олон тооны хэшүүдтэй нэгэн зэрэг илүү үр дүнтэй ажиллах (жишээлбэл, GPU дээр 320 сая SHA-1 хэшийг ачаалахыг туршиж үзсэн), хэш тооцооны хурдыг нэмэгдүүлэх. Эдгээр оновчлолын зарим нь бүх нийтийнх, зарим нь өөр өөр дэд форматуудыг хамардаг бөгөөд ихэнх нь хувь хүний ​​форматад зориулагдсан байдаг.
  • (Авто-)настройка оптимальной буферизации проверяемых паролей на CPU («—tune=auto —verbosity=5») и оптимальных размерностей задания на OpenCL (включена по умолчанию), в том числе с учетом медленного выхода на полную рабочую частоту GPU серии NVIDIA GTX 10xx и новее. Использование реально загруженных хешей и реальной длины проверяемых паролей (когда она известна заранее) для такой авто-настройки.
  • Добавление компилятора «динамических выражений», указываемых прямо на командной строке и реализующих новые гибридные типы хешей, например «—format=dynamic=’sha1(md5($p).$s)'», вычисляемые на CPU с использованием SIMD. В качестве компонентов таких выражений поддерживаются десятки быстрых хешей (от распространенных вроде MD5 до умеренно экзотических вроде Whirlpool), объединение подстрок, кодирование и декодирование, преобразование регистра символов, ссылки на пароль, соль, имя пользователя и строковые константы.
  • Hashcat-аас хүсээгүй ялгааг арилгах, үүнд өмнө нь hashcat-д зориулсан дүрэм (үгийн жагсаалтын дүрмийн командууд)-ыг дэмжих, 1-ээс OpenCL төхөөрөмжийн дугаарлалт руу шилжих, гүйцэтгэлийн тест хийхэд ижил нууц үгийн уртыг (ихэвчлэн урт нь 7) ашиглах.
  • Баталгаажуулж болох нууц үг үүсгэх шинэ горимууд (хагалах горимууд), үүнд hashcat-аас PRINCE (нийт уртын өсөлтийн дарааллаар хэд хэдэн үгсийг нэгтгэж "хэллэг" үүсгэдэг), дэд олонлогууд (эдгээр тэмдэгтүүд ирсэн ч гэсэн хангалтгүй тооны өөр өөр тэмдэгт бүхий нууц үгүүдийг гаргаж ирдэг) боломжит олон багцаас) болон эрлийз гадаад (С-тэй төстэй хэл дээрх тохиргооны файлд тайлбарласан гадаад горимууд нь өөр горимоос хүлээн авсан үндсэн "үг" бүр дээр үндэслэн олон баталгаажуулах нууц үг үүсгэх боломжийг олгодог). Мөн хэд хэдэн шинэ урьдчилан тодорхойлсон гадаад горимууд.
  • Хэд хэдэн горимыг нэгэн зэрэг ашиглах нэмэлт боломжууд (нэг нь дээр нь - овоолго), түүнчлэн багц дүрмийг ашиглах (үгийн жагсаалтын дүрмүүдийг давхарлах).
  • Маскийн горимыг сайжруулсан (маскыг тодорхой уртаар аажмаар сунгах, OpenCL төхөөрөмж эсвэл FPGA самбарын хажуу талд маск тавих) болон нэг хагарал (олон тооны хэшийг зэрэгцээ тооцоолдог төхөөрөмжүүдийн боломжийн үйлдэл) , өмнө нь энэ горимд баталгаажуулах нууц үг хангалтгүй байсан бөгөөд санах ойн хэрэглээнд хязгаарлалт тавьдаг байсан).
  • Төрөл бүрийн дэд системүүд дэх Юникод болон бусад кодчилолуудыг дэмжих олон сайжруулалт.
  • *2john программуудын олон сайжруулалт (өөр өөр форматтай файлуудыг
    john-тэй хамт ашиглах), ялангуяа wpapcap2john (WiFi урсгалыг зохицуулдаг).

  • john.conf-д олон шинэ командын мөрийн сонголтууд, тохиргоонууд, скриптийн тохиргооны сонголтууд болон холбогдох шинэ боломжууд байгаа бөгөөд бүгдийг энд дурдаагүй болно.
  • AddressSanitizer (өмнө нь) болон UndefinedBehaviorSanitizer (нэмсэн), тасралтгүй интеграцчилал (олон арван үйлдлийн систем болон хөрвүүлэгчид зориулж бүтээгддэг) форматтай fuzzer (GSoC 2015-ийн нэг хэсэг) нэмсэнээр дибаг хийх суурилуулалтын дэмжлэгийн ачаар кодын чанарыг сайжруулж байна. хослолууд болон тэдгээрийг бүх форматын зөв дэмжлэгийг турших).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх