John the Ripper 1.9.0-jumbo-1 sa FPGA podrškom

Oslobođen nova verzija najstarijeg podržanog krekera lozinki John the Ripper 1.9.0-jumbo-1. (Projekat se razvija od 1996. godine.) stranica projekta izvori su dostupni za preuzimanje, kao i gotovi sklopovi za Windows.

Napominje se da je prošlo 1.8.0 godine od izdavanja verzije 1-jumbo-4.5, tokom kojih je napravljeno više od 6000 izmjena (git urezivanja) od više od 80 programera. Tokom ovog perioda, programeri su preporučili korištenje trenutna revizija sa GitHub-a, čije je stanje održano stabilno uprkos promjenama učinjenim zahvaljujući kontinuirana integracija, koji uključuje preliminarnu provjeru svake promjene (pull zahtjev) na mnogim platformama. Karakteristika nove verzije je pojava podrške za FPGA (FPGA) uz CPU, GPU i Xeon Phi.


Za daske Ztex 1.15y, koji je uključivao 4 FPGA čipa i prvobitno se koristio uglavnom za rudarenje Bitcoina, sada je implementirano 7 tipova hashova lozinki: bcrypt, classic descrypt (uključujući bigcrypt), sha512crypt, sha256crypt, md5crypt (uključujući Apache apr1 i AIX smd5), Drupal7 i phpass (koristi se, posebno u WordPress-u). Neki od njih su po prvi put implementirani na FPGA. Za bcrypt, postignute performanse od ~119k c/s pri 2^5 iteracija ("$2b$05") uz potrošnju energije od oko 27 vati značajno nadmašuju najnovije GPU-ove po ploči, po cijeni hardvera i po vatu. Također podržano klasteri ploča ovog tipa, koji je testirao do 16 ploča (64 FPGA) kontrolisanih iz jednog Raspberry Pi 2. Podržana je uobičajena funkcionalnost Johna Trbosjeka, uključujući sve načine pogađanja lozinke i istovremeno preuzimanje velikog broja hešova. Da bismo ubrzali rad, implementirali smo upotrebu maske ("--mask" mod, uključujući u kombinaciji sa drugim modovima) i poređenje izračunatih hešova sa onima učitanim na FPGA strani. U smislu implementacije, u mnogim dizajnima (na primjer, za sha512crypt i Drupal7) korišteni blokovi koji se sastoje od višenitnih procesorskih jezgara (mekih CPU jezgara) u interakciji sa kriptografskim jezgrama. Razvoj ove funkcionalnosti vodio je Denis Burykin u koordinaciji s drugim jumbo programerima.

Ostale velike promjene:

  • Podrška za veliki broj dodatnih tipova hashova, šifri, itd., uključujući i klasične hešove lozinki (na primjer, iz novih verzija QNX-a), i novčanike kriptovalute, šifrirane arhive i šifrirane sisteme datoteka (na primjer, Bitlocker i FreeBSD geli ), kao i podrška za nove varijante formata koji su prethodno bili podržani (na primjer, dodana je podrška bcrypt-pbkdf za OpenBSD softraid) i još mnogo toga. Ukupno, 80 formata je dodato na CPU i 47 na OpenCL (a mali broj starih je uklonjen kao integrisan u nove i zastarele formate). Ukupan broj formata je sada 407 na CPU-u (ili 262 ne uključujući "dinamičke" formate konfigurisane iz konfiguracionih datoteka) i 88 na OpenCL-u.
  • Uklanjanje CUDA jezičke podrške u korist OpenCL-a, što ni najmanje ne ometa potpunu upotrebu NVIDIA GPU-a (a čak i pomaže, zahvaljujući fokusu razvoja i optimizacije na jednoj implementaciji svakog formata pod GPU-om umjesto dva implementacije ranije).
  • Podrška za nove SIMD skupove instrukcija - AVX2, AVX-512 (uključujući za drugu generaciju Xeon Phi) i MIC (za prvu generaciju) - kao i univerzalniju i potpuniju upotrebu SIMD-a u implementacijama mnogih formata, uključujući upotrebu prethodno podržanih skupova instrukcija do AVX i XOP na x86(-64) i
    NEON, ASIMD i AltiVec na ARM-u, Aarch64 i POWER-u, respektivno. (Djelomično u okviru GSoC 2015.)
  • Brojne optimizacije za CPU i OpenCL, za efikasniji rad sa velikim brojem hešova u isto vreme (na primer, učitavanje 320 miliona SHA-1 heša na GPU) i za povećanje brzine izračunavanja heša. Neke od ovih optimizacija su univerzalne, neke pokrivaju različite podskupove formata, a mnoge su specifične za format.
  • (Auto-)podešavanje optimalnog baferovanja provjerenih lozinki na CPU-u ("-tune=auto --verbosity=5") i optimalnih dimenzija posla na OpenCL-u (omogućeno po defaultu), uključujući uzimanje u obzir sporog oporavka do potpunog rada frekvencija grafičkih procesora NVIDIA GTX serije 10xx i novijih. Upotreba stvarno učitanih hešova i stvarne dužine provjerenih lozinki (kada je to unaprijed poznato) za takvo automatsko podešavanje.
  • Dodavanje kompajlera "dinamičkih izraza" koji je specificiran direktno u komandnoj liniji i implementira nove hibridne tipove hash-a, na primjer "--format=dynamic='sha1(md5($p).$s)'", izračunato na CPU-u koristeći SIMD. Desetine brzih hešova (od uobičajenih kao što je MD5 do blago egzotičnih poput Whirlpool), konkatenacija podstringova, kodiranje i dekodiranje, konverzija velikih i malih slova, reference lozinke, sol, korisničko ime i konstante stringova podržani su kao komponente takvih izraza.
  • Eliminacija nepoželjnih razlika u odnosu na hashcat, uključujući podršku za ranije naredbe pravila liste riječi specifičnih za hashcat, prelazak na numeriranje OpenCL uređaja sa 1, korištenje istih zadanih dužina lozinki (obično dužine 7) za testove performansi.
  • Novi načini razbijanja, uključujući PRINCE iz hashcat-a (generira "fraze" spajanjem više riječi u rastućem redoslijedu ukupne dužine), podskupove (donosi lozinke s nedovoljno različitih znakova čak i ako ti znakovi dolaze iz velikog skupa mogućih) i hibridne eksterne (omogućava eksternim režimima, opisanim u konfiguracionim datotekama na jeziku sličnom C, da generišu mnoge proverljive lozinke na osnovu svake osnovne „reči“ primljene iz drugog režima). Takođe, nekoliko novih unapred definisanih eksternih režima.
  • Dodatne mogućnosti za korištenje nekoliko načina istovremeno (jedan na drugom - slaganje), kao i za takvu upotrebu skupova pravila (slaganje pravila liste riječi).
  • Poboljšanja režima maske (postupno rastezanje maske u određenom rasponu dužina, nanošenje maske na stranu OpenCL uređaja ili FPGA ploče) i single crack (razumno ponašanje na uređajima koji paralelno računaju veliki broj hashova, što je prethodno u ovom režimu nedostajale su lozinke za proveru, kao i ograničenja potrošnje memorije).
  • Mnoga poboljšanja u podršci za Unicode i druga kodiranja u različitim podsistemima.
  • Mnoga poboljšanja *2john programa (konvertovanje datoteka različitih formata u
    koristiti sa john), posebno wpapcap2john (obavlja WiFi saobraćaj).
  • Mnoge nove opcije komandne linije, postavke john.conf, opcije konfigurisanja skripte i njihove odgovarajuće nove funkcije, od kojih nisu sve pomenute ovde.
  • Poboljšanje kvaliteta koda zbog ugrađene podrške za debug buildove sa AddressSanitizer (prethodno) i UndefinedBehaviorSanitizer (dodat), dodavanjem ugrađenog fuzzer formata (unutar GSoC 2015), korištenjem kontinuirane integracije (gradnje za desetine kombinacija operativnih sistema i kompajlera i testirajući ih za ispravnu podršku za sve formate).

izvor: linux.org.ru

Dodajte komentar