ការចេញផ្សាយ 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) ប្លុកដែលមានស្នូលដំណើរការច្រើនខ្សែ (ស្នូលស៊ីភីយូទន់) អន្តរកម្មជាមួយស្នូលគ្រីបត្រូនិចត្រូវបានប្រើ។ ការអភិវឌ្ឍន៍មុខងារនេះត្រូវបានដឹកនាំដោយ Denis Burykin ក្នុងការសម្របសម្រួលជាមួយអ្នកអភិវឌ្ឍន៍ jumbo ផ្សេងទៀត។

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

  • Поддержка большого количества дополнительных типов хешей, шифров и т.п., включая как классические хеши паролей (например, от новых версий QNX), так и кошельки криптовалют, шифрованные архивы и шифрованные файловые системы (например, Bitlocker и FreeBSD geli), а также поддержку новых разновидностей форматов, поддерживаемых ранее (например, добавлена поддержка bcrypt-pbkdf для OpenBSD softraid) и многое другое. В общей сложности, добавлено 80 форматов на CPU и 47 на OpenCL. Общее количество форматов теперь 407 на CPU (или 262 не включая «dynamic» форматы, настраиваемые из файлов конфигурации) и 88 на OpenCL.
  • ការបដិសេធមិនគាំទ្រភាសា CUDA ក្នុងការពេញចិត្តចំពោះ OpenCL ដែលមិនមានការរំខានដល់ការប្រើប្រាស់ NVIDIA GPUs ពេញលេញទេ (ហើយថែមទាំងអាចជួយបាន ដោយសារការផ្តោតទៅលើការអភិវឌ្ឍន៍ និងការបង្កើនប្រសិទ្ធភាពលើការអនុវត្តមួយនៃទម្រង់នីមួយៗសម្រាប់ GPU ជំនួសឱ្យការអនុវត្តពីរពីមុន)។
  • ការគាំទ្រសម្រាប់សំណុំការណែនាំស៊ីមឌីថ្មី - AVX2, AVX-512 (រួមទាំងសម្រាប់ Xeon Phi ជំនាន់ទីពីរ) និង MIC (សម្រាប់ជំនាន់ទីមួយ) - ក៏ដូចជាការប្រើប្រាស់ស៊ីមឌីជាសកល និងពេញលេញបន្ថែមទៀតក្នុងការអនុវត្តទម្រង់ជាច្រើន រួមទាំងការប្រើប្រាស់ ការណែនាំដែលបានគាំទ្រពីមុនកំណត់ទៅ AVX និង XOP នៅលើ x86(-64) និង
    NEON, ASIMD и AltiVec на ARM, Aarch64 и POWER, соответственно.

  • ការបង្កើនប្រសិទ្ធភាពជាច្រើនសម្រាប់ CPU និង OpenCL ទាំងពីរដើម្បីដំណើរការកាន់តែមានប្រសិទ្ធភាពជាមួយនឹងចំនួន hash ដ៏ច្រើនក្នុងពេលដំណាលគ្នា (ឧទាហរណ៍ ការផ្ទុក 320 លាន SHA-1 hashes នៅលើ GPU ត្រូវបានសាកល្បង) និងដើម្បីបង្កើនល្បឿននៃការគណនា hash ។ ការបង្កើនប្រសិទ្ធភាពទាំងនេះខ្លះមានលក្ខណៈជាសកល ខ្លះគ្របដណ្តប់លើសំណុំរងផ្សេងៗគ្នានៃទម្រង់ និងជាច្រើនគឺជាក់លាក់ចំពោះទម្រង់នីមួយៗ។
  • (Авто-)настройка оптимальной буферизации проверяемых паролей на CPU («—tune=auto —verbosity=5») и оптимальных размерностей задания на OpenCL (включена по умолчанию), в том числе с учетом медленного выхода на полную рабочую частоту GPU серии NVIDIA GTX 10xx и новее. Использование реально загруженных хешей и реальной длины проверяемых паролей (когда она известна заранее) для такой авто-настройки.
  • Добавление компилятора «динамических выражений», указываемых прямо на командной строке и реализующих новые гибридные типы хешей, например «—format=dynamic=’sha1(md5($p).$s)'», вычисляемые на CPU с использованием SIMD. В качестве компонентов таких выражений поддерживаются десятки быстрых хешей (от распространенных вроде MD5 до умеренно экзотических вроде Whirlpool), объединение подстрок, кодирование и декодирование, преобразование регистра символов, ссылки на пароль, соль, имя пользователя и строковые константы.
  • ការលុបបំបាត់ភាពខុសគ្នាដែលមិនចង់បានពី hashcat រួមទាំងការគាំទ្រសម្រាប់ច្បាប់ជាក់លាក់នៃ hashcat ពីមុន (ពាក្យបញ្ជាច្បាប់បញ្ជីពាក្យ) ការផ្លាស់ប្តូរទៅលេខឧបករណ៍ OpenCL ពីលេខ 1 ការប្រើប្រាស់លំនាំដើមនៃប្រវែងពាក្យសម្ងាត់ដូចគ្នា (ជាធម្មតាប្រវែង 7) សម្រាប់ការធ្វើតេស្តដំណើរការ។
  • របៀបថ្មីសម្រាប់បង្កើតពាក្យសម្ងាត់ដែលអាចផ្ទៀងផ្ទាត់បាន (របៀបបំបែក) រួមទាំង PRINCE ពី hashcat (បង្កើតជា "ឃ្លា" ដោយរួមបញ្ចូលគ្នានូវពាក្យជាច្រើនក្នុងលំដាប់នៃប្រវែងសរុប) សំណុំរង (នាំមកនូវពាក្យសម្ងាត់ដែលមានចំនួនមិនគ្រប់គ្រាន់នៃតួអក្សរផ្សេងគ្នា ទោះបីជាតួអក្សរទាំងនេះមកក៏ដោយ។ ពីសំណុំដ៏ច្រើនដែលអាចធ្វើទៅបាន) និងកូនកាត់ខាងក្រៅ (អនុញ្ញាតឱ្យទម្រង់ខាងក្រៅដែលបានពិពណ៌នានៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធជាភាសា C-like ដើម្បីបង្កើតពាក្យសម្ងាត់ដែលអាចផ្ទៀងផ្ទាត់បានជាច្រើនដោយផ្អែកលើ "ពាក្យ" មូលដ្ឋាននីមួយៗដែលទទួលបានពីរបៀបមួយផ្សេងទៀត) ។ ផងដែរ របៀបខាងក្រៅដែលបានកំណត់ជាមុនថ្មីជាច្រើន។
  • លក្ខណៈពិសេសបន្ថែមសម្រាប់ការប្រើប្រាស់របៀបជាច្រើនក្នុងពេលដំណាលគ្នា (មួយនៅលើកំពូលនៃផ្សេងទៀត - ការដាក់ជង់) ក៏ដូចជាសម្រាប់ការប្រើប្រាស់សំណុំនៃច្បាប់ (ការដាក់ជង់ក្បួនបញ្ជីពាក្យ) ។
  • ការកែលម្អរបៀបរបាំងមុខ (ការលាតសន្ធឹងបន្តិចម្តង ៗ នៃរបាំងក្នុងជួរប្រវែងជាក់លាក់ ការអនុវត្តរបាំងនៅផ្នែកម្ខាងនៃឧបករណ៍ OpenCL ឬបន្ទះ FPGA) និងការបង្ក្រាបតែមួយ (អាកប្បកិរិយាសមហេតុផលលើឧបករណ៍ដែលគណនាចំនួនលេខច្រើនស្របគ្នា ដែលពីមុនមិនមានពាក្យសម្ងាត់ដែលអាចផ្ទៀងផ្ទាត់បានគ្រប់គ្រាន់នៅក្នុងរបៀបនេះ ហើយក៏មានការរឹតបន្តឹងលើការប្រើប្រាស់អង្គចងចាំផងដែរ)។
  • ការកែលម្អជាច្រើនចំពោះការគាំទ្រសម្រាប់យូនីកូដ និងការអ៊ិនកូដផ្សេងទៀតនៅក្នុងប្រព័ន្ធរងផ្សេងៗគ្នា។
  • ការកែលម្អជាច្រើនចំពោះកម្មវិធី *2john (ការបំប្លែងឯកសារនៃទម្រង់ផ្សេងៗគ្នាសម្រាប់
    ប្រើជាមួយ john) ជាពិសេស wpapcap2john (ដោះស្រាយចរាចរណ៍វ៉ាយហ្វាយ) ។

  • មានជម្រើសបន្ទាត់ពាក្យបញ្ជាថ្មីជាច្រើន ការកំណត់នៅក្នុង john.conf កំណត់រចនាសម្ព័ន្ធជម្រើសស្គ្រីប និងមុខងារថ្មីដែលត្រូវគ្នា មិនមែនទាំងអស់ដែលត្រូវបានលើកឡើងនៅទីនេះទេ។
  • ការកែលម្អគុណភាពកូដដោយអរគុណចំពោះការគាំទ្រដែលភ្ជាប់មកជាមួយសម្រាប់ការបង្កើតបំបាត់កំហុសជាមួយ AddressSanitizer (ពីមុន) និង UndefinedBehaviorSanitizer (បន្ថែម) ការបន្ថែម fuzzer ទម្រង់ដែលភ្ជាប់មកជាមួយ (ជាផ្នែកនៃ GSoC 2015) ដោយប្រើការរួមបញ្ចូលជាបន្តបន្ទាប់ (បង្កើតសម្រាប់ប្រព័ន្ធប្រតិបត្តិការ និងកម្មវិធីចងក្រងរាប់សិប។ បន្សំ និងសាកល្បងពួកវាសម្រាប់ការគាំទ្រត្រឹមត្រូវសម្រាប់ទម្រង់ទាំងអស់)។

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់