Lansarea John the Ripper 1.9.0-jumbo-1 cu suport FPGA.

Lansată noua versiune a celui mai vechi program de recuperare a parolelor suportat John the Ripper 1.9.0-jumbo-1 (proiectul a evoluat din 1996). De la lansarea versiunii anterioare 1.8.0-jumbo-1 au trecut 4,5 ani, timp în care au fost efectuate peste 6000 de modificări (git commits) de către mai mult de 80 de dezvoltatori. Datorită integrării continue, care include verificarea preliminară a fiecărei modificări (pull request) pe multe platforme, în acest interval, dezvoltatorii au recomandat utilizarea versiunii curente de pe GitHub, a cărei stare a fost menținută stabilă, în ciuda modificărilor efectuate. Codul de bază al proiectului se răspândește este licențiat sub GPLv2+, iar codul unor componente sub licența BSD.

O caracteristică a noii versiuni este introducerea suportului pentru FPGA (în plus față de CPU, GPU și Xeon Phi). Pentru plăci ZTEX 1.15y, care include câte 4 cipuri FPGA și care erau utilizate inițial în principal pentru mineritul Bitcoin, acum sunt implementate 7 tipuri de hash-uri pentru parole: bcrypt, descrypt clasic (inclusiv bigcrypt), sha512crypt, sha256crypt, md5crypt (inclusiv Apache apr1 și AIX smd5), Drupal7 și phpass (utilizat, în special, în WordPress). Unele dintre ele sunt implementate pe FPGA pentru prima dată.

Pentru bcrypt, performanța atinsă este de ~119k c/s cu 2^5 iterații („$2b$05”) cu un consum de putere de aproximativ ~27 wați, depășind semnificativ rezultatele pentru cele mai recente GPU-uri în funcție de placă, prețul echipamentului și wați. Sunt, de asemenea, acceptate clustere de la plăci de acest tip, ceea ce a fost verificat până la 16 plăci (64 cipuri FPGA) controlate de un singur Raspberry Pi 2. Funcționalitatea obișnuită a lui John the Ripper este susținută, inclusiv toate modurile de recuperare a parolelor și încărcarea simultană a unui număr mare de hash-uri.

Pentru accelerarea lucrului, a fost implementată aplicarea măștii (modul „—mask”, inclusiv în combinație cu alte moduri) și compararea hash-urilor calculate cu cele încărcate pe FPGA. Din punct de vedere al implementării, în multe dintre designuri (de exemplu, pentru sha512crypt și Drupal7) au fost utilizate blocuri formate din nuclee procesor multithreading, interacționând cu nuclee criptografice. Dezvoltarea acestei funcționalități a fost realizată de Denis Burykin în coordonare cu alți dezvoltatori jumbo.

Alte modificări importante:

  • Suport pentru un număr mare de tipuri suplimentare de hash-uri, cifrări etc., inclusiv atât hash-uri de parole clasice (de exemplu, din versiunile recente QNX), cât și portofele criptomonede, arhive criptate și sisteme de fișiere criptate (de exemplu, Bitlocker și FreeBSD geli), precum și suport pentru noi soiuri de formate care au fost anterior suportate (de exemplu, a fost adăugat suport pentru bcrypt-pbkdf pentru OpenBSD softraid) și multe altele. În total, au fost adăugate 80 de formate pentru CPU și 47 pentru OpenCL. Numărul total de formate este acum 407 pentru CPU (sau 262 fără a include formatele „dinamice”, configurabile din fișierele de configurare) și 88 pentru OpenCL.
  • Renunțarea la suportul pentru limbajul CUDA în favoarea OpenCL nu împiedică utilizarea deplină a GPU-urilor NVIDIA (ba chiar ajută, datorită concentrării dezvoltării și optimizărilor pe o singură implementare pentru fiecare format pe GPU, în loc de două implementări ca înainte).
  • Suport pentru noi seturi de instrucțiuni SIMD — AVX2, AVX-512 (inclusiv pentru a doua generație Xeon Phi) și MIC (pentru prima generație) — precum și utilizare mai universală și completă a SIMD în implementările multor formate, incluzând utilizarea seturilor de instrucțiuni deja susținute, inclusiv AVX și XOP pe x86(-64) și
    NEON, ASIMD și AltiVec pe ARM, Aarch64 și POWER, respectiv.
  • Numeroase optimizări pentru CPU și OpenCL, atât pentru o funcționare mai eficientă cu un număr mare de hash-uri simultan (de exemplu, a fost testată încărcarea a 320 de milioane de hash-uri SHA-1 pe GPU), cât și pentru creșterea vitezei de calcul a hash-urilor. O parte din aceste optimizări sunt universale, iar cealaltă parte acoperă diferite submulțimi de formate, multe fiind specifice pentru anumite formate.
  • (Auto-)configurarea buffer-ului optim pentru parolele verificate pe CPU („—tune=auto —verbosity=5”) și pentru dimensiunile de sarcină optime pe OpenCL (activată în mod implicit), inclusiv ținând cont de ieșirea lentă la frecvența maximă GPU-urilor din seria NVIDIA GTX 10xx și mai noi. Utilizarea hash-urilor solicitate efectiv și a lungimii reale a parolelor verificate (atunci când este cunoscută dinainte) pentru această auto-configurare.
  • Adăugarea unui compilator pentru „expr-ii dinamice”, specificate direct în linia de comandă și care implementează noi tipuri hibride de hash-uri, de exemplu „—format=dynamic=’sha1(md5($p).$s)'”, calculate pe CPU folosind SIMD. Ca componente ale acestor expresii sunt suportate zeci de hash-uri rapide (de la cele comune, cum ar fi MD5, la cele moderat exotice, cum ar fi Whirlpool), combinarea substring-urilor, codificare și decodare, transformarea registrului caracterelor, referințe la parolă, sare, nume de utilizator și constante de șir.
  • Eliminarea diferențelor nedorite de la hashcat, inclusiv suport pentru regulile specifice anterior hashcat (comenzi de reguli pentru liste de cuvinte), trecerea la numerotarea dispozitivelor OpenCL începând de la 1, aplicarea implicită a aceleași lungimi a parolelor (de obicei lungimea 7) în teste de performanță.
  • Noi moduri de generare a parolelor verificate (moduri de cracking), inclusiv PRINCE din hashcat (formează „fraze” combinând mai multe cuvinte în ordinea lungimii totale crescânde), subseturi (ricosează parole cu un număr insuficient de caractere diferite, chiar dacă aceste caractere provin dintr-un set mare de posibilități) și hybrid external (permite modurilor externe, descrise în fișierele de configurare într-un limbaj similar C, să genereze multe parole verificate pe baza fiecărui „cuvânt” de bază, provenit dintr-un alt mod). De asemenea, câteva noi moduri externe predefinite.
  • Funcții suplimentare pentru utilizarea mai multor moduri simultan (unul peste altul — stacking), precum și pentru utilizarea seturilor de reguli (stacking de reguli pentru liste de cuvinte).
  • Îmbunătățiri ale modurilor de mask (extinderea treptată a măștii în intervalul de lungimi specificat, aplicarea măștii pe partea dispozitivului OpenCL sau a plăcii FPGA) și single crack (comportament rațional pe dispozitive care calculează un număr mare de hash-uri în paralel, pentru care anterior în acest mod nu erau suficiente parole verificate, precum și restricții privind consumul de memorie).
  • Multe îmbunătățiri ale suportului Unicode și al altor codificări în diferite subsisteme.
  • Multe îmbunătățiri ale programelor *2john (care transformă fișiere de diferite formate pentru
    a fi utilizate cu john), în special wpapcap2john (procesează traficul WiFi).
  • Multe opțiuni noi pentru linia de comandă, setări în john.conf, opțiuni ale scriptului configure și noi funcționalități asociate, nu toate fiind menționate aici.
  • Îmbunătățirea calității codului prin suportul încorporat pentru construcții de depanare cu AddressSanitizer (anterior) și UndefinedBehaviorSanitizer (adăugat), adăugarea unui fuzzing integrat pentru formate (în cadrul GSoC 2015), aplicarea integrării continue (construcții pentru zeci de combinații de sistem de operare și compilator și testare în acestea pentru a asigura suportul corect al tuturor formatelor).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster