FPGA dəstəyi ilə John the Ripper 1.9.0-jumbo-1

Buraxıldı Ən köhnə dəstəklənən parol təxmin proqramının yeni versiyası John the Ripper 1.9.0-jumbo-1. (Layihə 1996-cı ildən inkişaf etdirilir.) On layihə səhifəsi Mənbələr yükləmək üçün mövcuddur, həmçinin Windows üçün hazır montajlar.

Qeyd edilir ki, 1.8.0-jumbo-1 versiyasının buraxılışından 4.5 il keçib, bu müddət ərzində 6000-dən çox tərtibatçı tərəfindən 80-dən çox dəyişiklik (git commits) edilib. Bu dövrdə tərtibatçılar istifadə etməyi tövsiyə etdilər GitHub-dan cari versiyasayəsində edilən dəyişikliklərə baxmayaraq vəziyyəti sabit saxlanıldı davamlı inteqrasiya, bir çox platformada hər dəyişikliyin ilkin yoxlanmasını (çəkmə sorğusu) ehtiva edir. Yeni versiyanın xüsusi xüsusiyyəti CPU, GPU və Xeon Phi ilə yanaşı FPGA (FPGA) dəstəyinin görünüşüdür.


Lövhələr üçün Ztex 1.15y, o cümlədən 4 FPGA çipi və ilkin olaraq Bitcoin mədənçiliyi üçün istifadə edilən 7 növ parol hashı indi həyata keçirilir: bcrypt, klassik descrypt (bigcrypt daxil olmaqla), sha512crypt, sha256crypt, md5crypt (o cümlədən Apache apr1 və AIX smd5), Drupal7 və phpass (istifadə olunur) , xüsusən WordPress-də). Onlardan bəziləri ilk dəfə FPGA-da həyata keçirilir. Bcrypt üçün, təxminən 119 vatt enerji istehlakı ilə 2^5 iterasiya ilə ~2k c/s əldə edilən performans (“$05b$27”) hər lövhəyə, hər bir aparat qiymətinə və hər vatt başına ən son GPU-ların nəticələrini əhəmiyyətli dərəcədə üstələyir. Həmçinin dəstəklənir klasterlər bir Raspberry Pi 16-dən idarə olunan 64 lövhəyə (2 FPGA) qədər sınaqdan keçirilmiş bu tipli lövhələr. Adi John the Ripper funksionallığı, o cümlədən bütün parol təxmin etmə rejimləri və çoxlu sayda heşlərin eyni vaxtda endirilməsi dəstəklənir. İşi sürətləndirmək üçün maskanın istifadəsini (“--mask” rejimi, o cümlədən digər rejimlərlə birlikdə) və hesablanmış hashlərin FPGA tərəfində yüklənmişlərlə müqayisəsini həyata keçirdik. Tətbiq baxımından bir çox dizaynlar (məs. sha512crypt və Drupal7) kriptoqrafik nüvələrlə qarşılıqlı əlaqədə olan çox yivli prosessor nüvələrindən (yumşaq CPU nüvələrindən) ibarət bloklardan istifadə edilmişdir. Bu funksionallığın inkişafına digər jumbo tərtibatçıları ilə koordinasiyada Denis Burykin rəhbərlik etmişdir.

Digər əsas dəyişikliklər:

  • Həm klassik parol heşləri (məsələn, QNX-in yeni versiyalarından), həm də kriptovalyuta pul kisələri, şifrələnmiş arxivlər və şifrələnmiş fayl sistemləri (məsələn, Bitlocker və FreeBSD geli), həmçinin əvvəllər dəstəklənən yeni format növləri üçün dəstək (məsələn, OpenBSD softraid üçün bcrypt-pbkdf üçün əlavə dəstək) və daha çox. Ümumilikdə CPU-da 80 format, OpenCL-də isə 47 format əlavə edilib (və az sayda köhnə format yeni və köhnəlmiş formatlara inteqrasiya olunaraq silinib). İndi formatların ümumi sayı CPU-da 407-dir (və ya konfiqurasiya fayllarından konfiqurasiya edilmiş "dinamik" formatlar daxil deyil 262) və OpenCL-də 88-dir.
  • NVIDIA GPU-nun tam istifadəsinə ən azı mane olmayan (və hətta iki formatın əvəzinə GPU altında hər bir formatın bir tətbiqinə inkişaf və optimallaşdırmaların diqqəti sayəsində kömək edən OpenCL-in xeyrinə CUDA dil dəstəyinin aradan qaldırılması. əvvəl tətbiqlər).
  • Yeni SIMD təlimat dəstləri üçün dəstək - AVX2, AVX-512 (ikinci nəsil Xeon Phi üçün daxil olmaqla) və MIC (birinci nəsil üçün) - həmçinin istifadə daxil olmaqla bir çox formatın tətbiqində SIMD-nin daha universal və tam istifadəsi. x86(-64)-də AVX və XOP-a qədər əvvəllər dəstəklənən təlimat dəstlərinin və
    ARM, Aarch64 və POWER-də müvafiq olaraq NEON, ASIMD və AltiVec. (Qismən GSoC 2015-in bir hissəsi kimi.)
  • CPU və OpenCL üçün çoxsaylı optimallaşdırmalar, hər ikisi eyni vaxtda çoxlu sayda hashlərlə daha səmərəli işləmək (məsələn, GPU-ya 320 milyon SHA-1 hash yükləmək) və hash hesablama sürətini artırmaq üçün. Bu optimallaşdırmaların bəziləri universaldır, bəziləri müxtəlif format alt qruplarını əhatə edir və bir çoxu formata xasdır.
  • CPU-da yoxlanılmış parolların optimal buferləşdirilməsinin (avtomatik) konfiqurasiyası (“—tune=auto —verbosity=5”) və OpenCL-də optimal iş ölçüləri (defolt olaraq aktivdir), o cümlədən NVIDIA GTX-in yavaş yüksəlişi nəzərə alınmaqla seriyalı GPU-lar tam iş tezliyi 10xx və daha yeni. Belə avtomatik tənzimləmə üçün həqiqətən yüklənmiş hashlərdən və yoxlanılan parolların faktiki uzunluğundan (əvvəlcədən məlum olduqda) istifadə.
  • Birbaşa komanda xəttində göstərilən "dinamik ifadələr" üçün kompilyatorun əlavə edilməsi və yeni hibrid hash növlərinin həyata keçirilməsi, məsələn, "-format=dynamic='sha1(md5($p).$s)'", SIMD istifadə edərək CPU-da hesablanır. . Bu cür ifadələrin komponentləri kimi onlarla sürətli xeş dəstəklənir (MD5 kimi ümumilərdən tutmuş Whirlpool kimi orta dərəcədə ekzotiklərə qədər), alt sətir birləşməsi, kodlaşdırma və dekodlaşdırma, simvol rejissorunun çevrilməsi, parol, duz, istifadəçi adı və sətir sabitlərinə istinadlar.
  • Performans testləri üçün eyni standart parol uzunluqlarından (adətən uzunluq 1) istifadə edərək, əvvəllər hashcat-ə xas söz siyahısı qayda əmrlərinin dəstəklənməsi, 7-dən OpenCL cihaz nömrələnməsinə keçid daxil olmaqla, hashcat-dan arzuolunmaz fərqlərin aradan qaldırılması.
  • Yeni krekinq rejimləri, o cümlədən hashcat-dan PRINCE (ümumi uzunluğun artan ardıcıllığı ilə birdən çox sözləri birləşdirərək "ifadələr" yaradır), alt qruplar (həmin simvollar mümkün olanların böyük dəstindən gəlsə belə, kifayət qədər fərqli simvolları olmayan parollar gətirir) və hibrid xarici (C tipli dildə konfiqurasiya fayllarında təsvir edilən xarici rejimlərə başqa rejimdən alınan hər bir əsas "söz" əsasında çoxlu yoxlanıla bilən parollar yaratmağa imkan verir). Həmçinin, bir neçə yeni əvvəlcədən təyin edilmiş xarici rejimlər.
  • Eyni zamanda bir neçə rejimi istifadə etmək üçün əlavə funksiyalar (biri digərinin üstündə - yığma), həmçinin qayda dəstlərinin bu cür istifadəsi üçün (wordlist qaydalarının yığılması).
  • Maska rejimlərində təkmilləşdirmələr (müəyyən edilmiş uzunluq diapazonunda tədricən maskanın uzanması, maskanı OpenCL cihazının və ya FPGA lövhəsinin tərəfində tətbiq etmək) və tək çatlama (əvvəllər çoxlu sayda hashləri paralel olaraq hesablayan cihazlarda ağlabatan davranış) bu rejimdə yoxlanılacaq parollar, həmçinin yaddaş istehlakına məhdudiyyətlər yox idi).
  • Müxtəlif alt sistemlərdə Unicode və digər kodlaşdırmalar üçün dəstəkdə bir çox təkmilləşdirmələr.
  • *2john proqramlarında bir çox təkmilləşdirmələr (müxtəlif formatlı faylları
    john ilə istifadə edin), xüsusilə wpapcap2john (WiFi trafikini idarə edir).
  • Bir çox yeni komanda xətti variantları, john.conf parametrləri, skript seçimlərini konfiqurasiya etmək və onlara uyğun gələn yeni funksiyalar, bunların hamısı burada qeyd olunmayıb.
  • AddressSanitizer (əvvəllər) və UndefinedBehaviorSanitizer (əlavə edilib), davamlı inteqrasiyadan istifadə edərək (onlarca əməliyyat sistemi və kompilyator kombinasiyaları üçün qurur və) daxili format fuzzerinin əlavə edilməsi (GSoC 2015 daxilində) ilə sazlama quruluşlarına daxili dəstək sayəsində kod keyfiyyətinin yaxşılaşdırılması. bütün formatların düzgün dəstəklənməsi üçün onları sınaqdan keçirir).

Mənbə: linux.org.ru

Добавить комментарий