John the Ripper 1.9.0-jumbo-1 tika izlaists ar FPGA atbalstu

AtbrÄ«vots vecākās atbalstÄ«tās paroles uzminÄ“Å”anas programmas jaunā versija Jānis UzŔķērdējs 1.9.0-jumbo-1 (projekts attÄ«stās kopÅ” 1996. gada). Ir pagājuÅ”i 1.8.0 gadi kopÅ” iepriekŔējās versijas 1-jumbo-4.5 izlaiÅ”anas, kuras laikā tika veiktas vairāk nekā 6000 izmaiņas (git commits) no vairāk nekā 80 izstrādātājiem. Pateicoties nepārtraukta integrācija, kas ietver katras izmaiņas (izvilkÅ”anas pieprasÄ«juma) iepriekŔēju pārbaudi daudzās platformās, Å”ajā periodā izstrādātāji ieteica izmantot paÅ”reizējais izdevums no GitHub, kuras stāvoklis tika saglabāts stabils, neskatoties uz veiktajām izmaiņām. Galvenais projekta kods izplata saskaņā ar GPLv2+ licenci, un dažu komponentu kods ir saskaņā ar BSD licenci.

Jaunās versijas Ä«paÅ”a iezÄ«me ir FPGA atbalsta parādÄ«Å”anās (papildus CPU, GPU un Xeon Phi). Dēļiem ZTEX 1.15g, ieskaitot 4 FPGA mikroshēmas un sākotnēji tika izmantotas galvenokārt Bitcoin ieguvei, tagad ir ieviesti 7 paroļu jaukÅ”anas veidi: bcrypt, klasiskais atÅ”ifrējums (ieskaitot bigcrypt), sha512crypt, sha256crypt, md5crypt (ieskaitot Apache apr1 un AIX smd5), Drupal7 un phpass (izmantots). , jo Ä«paÅ”i programmā WordPress). Daži no tiem pirmo reizi tiek ieviesti FPGA.

Bcrypt sasniegtā veiktspēja ~ 119 2 c/s ar 5^2 iterācijām (ā€œ$05b$27ā€) ar aptuveni XNUMX vatu enerÄ£ijas patēriņu ievērojami pārsniedz rezultātus jaunākajiem GPU uz plati, pēc aparatÅ«ras cenas un par vatu. . ArÄ« atbalstÄ«ts kopas Ŕāda veida plates, kas ir pārbaudÄ«tas lÄ«dz 16 platēm (64 FPGA Äipi), ko kontrolē no viena Raspberry Pi 2. Tiek atbalstÄ«ta parastā John the Ripper funkcionalitāte, ieskaitot visus paroles uzminÄ“Å”anas režīmus un vienlaicÄ«gu liela skaita jaucēju lejupielādi. .

Lai paātrinātu darbu, ieviesām maskas izmantoÅ”anu (ā€œā€”maskaā€ režīmu, arÄ« kombinācijā ar citiem režīmiem) un aprēķināto jaucējvārdu salÄ«dzināŔanu ar tiem, kas ielādēti FPGA pusē. No ievieÅ”anas viedokļa daudzi dizaini (piem. sha512crypt un Drupal7) tiek izmantoti bloki, kas sastāv no vairāku vÄ«tņu procesoru kodoliem (mÄ«kstajiem CPU kodoliem), kas mijiedarbojas ar kriptogrāfiskajiem kodoliem. Å Ä«s funkcionalitātes izstrādi vadÄ«ja Deniss Burikins sadarbÄ«bā ar citiem jumbo izstrādātājiem.

Citas svarīgas izmaiņas:

  • Atbalsts lielam skaitam papildu jaucēju, Å”ifru u.c. veidu, ieskaitot gan klasiskos paroļu jaucējus (piemēram, no jaunām QNX versijām), gan kriptovalÅ«tas maciņus, Å”ifrētus arhÄ«vus un Å”ifrētas failu sistēmas (piemēram, Bitlocker un FreeBSD geli), kā arÄ« atbalsts jauniem iepriekÅ” atbalstÄ«tiem formātu veidiem (piemēram, pievienots atbalsts bcrypt-pbkdf OpenBSD softraid) un daudz ko citu. Kopumā CPU ir pievienoti 80 formāti, bet OpenCL - 47 formāti. Kopējais formātu skaits tagad ir 407 CPU (vai 262, neskaitot "dinamiskos" formātus, kas konfigurēti no konfigurācijas failiem) un 88 OpenCL.
  • Atteikums atbalstÄ«t CUDA valodu par labu OpenCL, kas nekādā veidā netraucē pilnvērtÄ«gi izmantot NVIDIA GPU (un pat palÄ«dz, pateicoties tam, ka izstrāde un optimizācija tiek koncentrēta uz vienu katra formāta ievieÅ”anu GPU, nevis uz divām ievieÅ”anām iepriekÅ”).
  • Atbalsts jaunām SIMD instrukciju komplektiem - AVX2, AVX-512 (tostarp otrajai paaudzei Xeon Phi) un MIC (pirmai paaudzei) -, kā arÄ« universālāka un pilnÄ«gāka SIMD izmantoÅ”ana daudzu formātu ievieÅ”anā, ieskaitot iepriekÅ” atbalstÄ«tās instrukciju kopas lÄ«dz AVX un XOP uz x86(-64) un
    NEON, ASIMD un AltiVec attiecīgi uz ARM, Aarch64 un POWER.

  • Daudzas optimizācijas CPU un OpenCL, lai efektÄ«vāk strādātu ar lielu skaitu jaucēju vienlaicÄ«gi (piemēram, tika pārbaudÄ«ta 320 miljonu SHA-1 jaucēju ielāde uz GPU), gan lai palielinātu jaucējvārdu aprēķinu ātrumu. Dažas no Ŕīm optimizācijām ir universālas, dažas aptver dažādas formātu apakÅ”kopas, un daudzas ir raksturÄ«gas atseviŔķiem formātiem.
  • CPU pārbaudÄ«to paroļu optimālas buferizācijas (ā€œā€”tune=auto ā€”verbosity=5ā€) un optimālo darbu lieluma OpenCL (iespējots pēc noklusējuma) (automātiska) konfigurācija, tostarp ņemot vērā lēno ātrumu lÄ«dz pilnai darbÄ«bas frekvencei. NVIDIA GTX sērijas GPU 10xx un jaunāki. Šādai automātiskai iestatÄ«Å”anai tiek izmantota faktiski ielādēta jaukÅ”ana un pārbaudāmo paroļu faktiskais garums (ja tas ir iepriekÅ” zināms).
  • Kompilatora pievienoÅ”ana "dinamiskajām izteiksmēm", kas norādÄ«tas tieÅ”i komandrindā, un jaunu hibrÄ«du jaucējkodolu ievieÅ”ana, piemēram, "-format=dynamic='sha1(md5($p).$s)'", kas aprēķināts CPU, izmantojot SIMD . Kā Ŕādu izteiksmju komponenti tiek atbalstÄ«ti desmitiem ātru jaucēju (no parastajiem, piemēram, MD5 lÄ«dz vidēji eksotiskām, piemēram, Whirlpool), apakÅ”virkņu savienoÅ”ana, kodÄ“Å”ana un dekodÄ“Å”ana, rakstzÄ«mju reÄ£istru konvertÄ“Å”ana, atsauces uz paroli, sāli, lietotājvārdu un virknes konstantēm.
  • Nevēlamu atŔķirÄ«bu novērÅ”ana no hashcat, tostarp atbalsts iepriekÅ” hashcat specifiskiem noteikumiem (vārdu saraksta kārtulu komandas), pāreja uz OpenCL ierīču numerāciju no 1, viena un tā paÅ”a paroles garuma (parasti garums 7) izmantoÅ”ana veiktspējas pārbaudēm pēc noklusējuma.
  • Jauni režīmi pārbaudāmu paroļu Ä£enerÄ“Å”anai (uzlauÅ”anas režīmi), tostarp PRINCE no hashcat (veido ā€œfrāzesā€, apvienojot vairākus vārdus kopējā garuma pieaugoŔā secÄ«bā), apakÅ”kopas (izceļ paroles ar nepietiekamu dažādu rakstzÄ«mju skaitu, pat ja Ŕīs rakstzÄ«mes nāk no liela iespējamo paroļu kopuma) un hibrÄ«diem ārējiem (ļauj ārējiem režīmiem, kas aprakstÄ«ti konfigurācijas failos C veida valodā, lai Ä£enerētu daudzas pārbaudāmas paroles, pamatojoties uz katru pamata ā€œvārduā€, kas saņemts no cita režīma). ArÄ« vairāki jauni iepriekÅ” noteikti ārējie režīmi.
  • Papildu iespējas vairāku režīmu vienlaicÄ«gai lietoÅ”anai (viens virs otra ā€“ sakrauÅ”ana), kā arÄ« noteikumu kopu izmantoÅ”anai (vārdu saraksta noteikumu sakrauÅ”ana).
  • Maskas režīmu uzlabojumi (pakāpeniska maskas izstiepÅ”ana noteiktā garuma diapazonā, maskas uzlikÅ”ana OpenCL ierÄ«ces vai FPGA plates sānos) un viena plaisa (saprātÄ«ga rÄ«cÄ«ba ierÄ«cēs, kas paralēli aprēķina lielu jaucēju skaitu , kurām iepriekÅ” Å”ajā režīmā nebija pietiekami daudz pārbaudāmu paroļu, kā arÄ« atmiņas patēriņa ierobežojumi).
  • Daudzi uzlabojumi, lai atbalstÄ«tu Unicode un citus kodējumus dažādās apakÅ”sistēmās.
  • Daudzi *2john programmu uzlabojumi (kas pārvērÅ” dažādu formātu failus, lai
    izmantot kopā ar john), īpaŔi wpapcap2john (apstrādā WiFi trafiku).

  • Ir daudz jaunu komandrindas opciju, iestatÄ«jumu john.conf, konfigurēt skripta opcijas un atbilstoÅ”us jaunus lÄ«dzekļus, no kuriem visi Å”eit netika minēti.
  • Koda kvalitātes uzlaboÅ”ana, pateicoties iebÅ«vētajam atbalstam atkļūdoÅ”anas bÅ«vējumiem ar AddressSanitizer (iepriekÅ”) un UndefinedBehaviorSanitizer (pievienots), pievienojot iebÅ«vētu formāta fuzer (kā daļa no GSoC 2015), izmantojot nepārtrauktu integrāciju (bÅ«vējumi desmitiem operētājsistēmu un kompilatoru kombinācijas un to testÄ“Å”ana, lai nodroÅ”inātu pareizu atbalstu visiem formātiem).

Avots: opennet.ru

Pievieno komentāru