John the Ripper 1.9.0-jumbo-1 ar FPGA atbalstu

AtbrÄ«vots vecākās atbalstÄ«tās paroļu uzminÄ“Å”anas programmas John the Ripper 1.9.0-jumbo-1 jaunā versija. (Projekts tiek izstrādāts kopÅ” 1996. gada.) Gad projekta lapa Lejupielādei ir pieejami avoti, kā arÄ« gatavi komplekti operētājsistēmai Windows.

Tiek atzÄ«mēts, ka ir pagājuÅ”i 1.8.0 gadi kopÅ” 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. Å ajā periodā izstrādātāji ieteica izmantot paÅ”reizējais izdevums no GitHub, kura stāvoklis tika saglabāts stabils, neskatoties uz veiktajām izmaiņām, pateicoties nepārtraukta integrācija, kas ietver katras izmaiņas (izvilkÅ”anas pieprasÄ«juma) iepriekŔēju pārbaudi daudzās platformās. Jaunās versijas Ä«paÅ”a iezÄ«me ir FPGA (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 dēļu, kas ir pārbaudÄ«tas lÄ«dz 16 platēm (64 FPGA), 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, mēs ieviesām maskas izmantoÅ”anu (ā€œ--maskā€ 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 būtiskas 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 (un neliels skaits veco ir noņemti kā integrēti jaunos un novecojuÅ”os). 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. (Daļēji kā daļa no GSoC 2015.)
  • 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.
  • PārbaudÄ«to paroļu optimālas buferizācijas (ā€œā€”tune=auto ā€”verbosity=5ā€) un optimālo darbu lieluma (pēc noklusējuma iespējots) konfigurÄ“Å”ana (automātiskā) centrālajā procesorā, tostarp ņemot vērā NVIDIA GTX lēno palielināŔanu. sērijas GPU uz pilnu darbÄ«bas frekvenci 10xx un jaunākām versijām. Šā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āls, lietotājvārda un virknes konstantes.
  • 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: linux.org.ru

Pievieno komentāru