Vydanie John the Ripper 1.9.0-jumbo-1 s podporou FPGA

Vydaná nová verzia najstaršieho podporovaného programu na výber hesiel John the Ripper 1.9.0-jumbo-1 (projekt sa vyvíja od roku 1996). Od vydania predchádzajúcej verzie 1.8.0-jumbo-1 uplynulo 4,5 roka, počas ktorých bolo vykonaných viac ako 6000 zmien (git commits) od viac ako 80 vývojárov. Vďaka nepretržitej integrácie, vrátane predbežnej overovania každého zmeny (pull request) na mnohých platformách, počas tohto obdobia vývojári odporúčali používať aktuálnu edíciu z GitHubu, ktorého stav bol stabilný napriek vykonaným zmenám. Hlavný kód projektu distribuovaný je pod licenciou GPLv2+, pričom kód niektorých komponentov je pod licenciou BSD.

Rysom novej verzie je podpora FPGA (okrem CPU, GPU a Xeon Phi). Pre dosky ZTEX 1.15y, ktoré obsahujú 4 čipy FPGA a pôvodne sa používali hlavne na ťažbu Bitcoin, je teraz realizovaných 7 typov hash hesiel: bcrypt, klasický descrypt (vrátane bigcrypt), sha512crypt, sha256crypt, md5crypt (vrátane Apache apr1 a AIX smd5), Drupal7 a phpass (používaný najmä vo WordPress). Niektoré z nich sú implementované na FPGA po prvýkrát.

Pre bcrypt bola dosiahnutá výkonnosť približne ~119k c/s pri 2^5 iteráciách („$2b$05“) s príkon cca ~27 wattov, čo výrazne prevyšuje výsledky najnovších GPU pri porovnaní ceny za dosku, cenu zariadenia a watt. Podporujú sa aj klastre z týchto typov dosiek, čo bolo overené až do 16 dosiek (64 čipov FPGA) ovládaných z jedného Raspberry Pi 2. Podporuje sa bežná funkčnosť John the Ripper, vrátane všetkých režimov výberu hesiel a súbežného načítania veľkého množstva hashov.

Na urýchlenie práce bola implementovaná aplikácia masky (režim „—mask“, vrátane kombinácie s inými režimami) a porovnanie vypočítaných hashov so načítanými na strane FPGA. Z pohľadu implementácie boli v mnohých designoch (napríklad pre sha512crypt a Drupal7) použité bloky pozostávajúce z viacvláknových procesorových jadier (soft CPU cores), ktoré komunikujú s kryptografickými jadrami. Vývoj tejto funkcionality viedol Denis Burikin v koordinácii s ďalšími vývojármi jumbo.

Iné dôležité zmeny:

  • Podpora mnohých ďalších typov hashov, šifrov a pod., vrátane klasických hashov pre heslá (napríklad z nových verzií QNX), ako aj kryptomenových peňaženiek, šifrovaných archívov a šifrovaných súborových systémov (napríklad Bitlocker a FreeBSD geli), a taktiež podpora nových variant formátov, ktoré boli predtým podporované (napríklad pridanie podpory bcrypt-pbkdf pre OpenBSD softraid) a mnohé ďalšie. Celkovo bolo pridaných 80 formátov na CPU a 47 na OpenCL. Celkový počet formátov teraz činí 407 na CPU (alebo 262 bez „dynamických“ formátov prispôsobených z konfiguračných súborov) a 88 na OpenCL.
  • Odstránenie podpory jazyka CUDA v prospech OpenCL, čo nijako nebráni plnému využitiu GPU od NVIDIA (a dokonca to pomáha, vďaka zameraniu vývoja a optimalizácií na jednu implementáciu každého formátu pod GPU namiesto dvoch implementácií predtým).
  • Podpora nových súborov inštrukcií SIMD — AVX2, AVX-512 (vrátane pre druhú generáciu Xeon Phi) a MIC (pre prvú generáciu) — ako aj univerzálnejšie a úplnejšie využitie SIMD v implementáciách mnohých formátov, vrátane aplikácie predtým podporovaných súborov inštrukcií až po AVX a XOP na x86(-64) a
    NEON, ASIMD a AltiVec na ARM, Aarch64 a POWER, respektíve.
  • Množstvo optimalizácií pre CPU a OpenCL, ako pre efektívnejšiu prácu s veľkým počtom hashov súčasne (napríklad testovanie 320 miliónov hashov SHA-1 na GPU), tak aj pre zvýšenie rýchlosti výpočtu hashov. Časť týchto optimalizácií je univerzálna, časť pokrýva rôzne podmnožiny formátov, a mnohé sú špecifické pre jednotlivé formáty.
  • (Auto-)nastavenie optimálneho bufferingu overovaných hesiel na CPU („—tune=auto —verbosity=5“) a optimálnych rozmerov úlohy na OpenCL (zapnuté predvolene), vrátane zohľadnenia pomalého dosahovania plnej pracovnej frekvencie GPU série NVIDIA GTX 10xx a novších. Použitie reálne zaťažených hashov a reálnej dĺžky overovaných hesiel (keď je známa vopred) pre takú auto-nastavovanie.
  • Pridanie kompilátora "dynamických výrazov", ktoré sú priamo uvedené na príkazovom riadku a realizujú nové hybridné typy hashov, ako napríklad "--format=dynamic='sha1(md5($p).$s)'", počítané na CPU pomocou SIMD. Ako komponenty týchto výrazov sú podporované desiatky rýchlych hashov (od rozšírených ako MD5 po mierne exotické ako Whirlpool), kombinácia podreťazcov, kódovanie a dekódovanie, zmena registru znakov, odkazy na heslá, soľ, používateľské mená a reťazcové konštanty.
  • Odstránenie nežiaducich rozdielov od hashcat, vrátane podpory predtým špecifických pre hashcat pravidiel (príkazy pre pravidlá wordlist), prechod na číslovanie zariadení OpenCL od 1, aplikovanie rovnakých dĺžok hesiel (zvyčajne dĺžka 7) pri výkonových testoch ako predvolené.
  • Nové režimy generovania overovaných hesiel (cracking modes), vrátane PRINCE z hashcat (tvorí "frázy", kombinujúc niekoľko slov v poradí zvyšujúcich sa celkovej dĺžky), subsets (vyberá heslá s nedostatočným množstvom rôznych symbolov, aj keď tieto symboly pochádzajú z veľkého súboru možností) a hybrid external (umožňuje externým režimom, popísaným v konfiguračných súboroch v C-podobnom jazyku, vytvárať množstvo overovaných hesiel na základe každého základného "slova", pochádzajúceho z iného režimu). Taktiež niekoľko nových preddefinovaných vonkajších režimov.
  • Rozšírené možnosti používania viacerých režimov súčasne (jeden nad druhým — stacking), ako aj používania súborov pravidiel (wordlist rules stacking).
  • Vylepšenia režimov mask (postupné natiahnutie masky v určenom rozsahu dĺžok, aplikácia masky na strane zariadenia OpenCL alebo platne FPGA) a single crack (rozumné správanie na zariadeniach, ktoré počítajú veľké množstvo hashov paralelne, na čo predtým v tomto režime chýbali overované heslá, rovnako ako obmedzenia na využitie pamäte).
  • Množstvo vylepšení podpory Unicode a iných kódovaní v rôznych subsystémoch.
  • Množstvo vylepšení programov *2john (prevádzajúce súbory rôznych formátov na
    používanie s john), najmä wpapcap2john (spracováva WiFi traffic).
  • Mnoho nových možností příkazového řádku, nastavení v john.conf, možností skriptu configure a odpovídajících nových funkcí, z nichž všechny zde nebyly zmíněny.
  • Zvýšení kvality kódu díky vestavěné podpoře ladicích sestavení s AddressSanitizer (dříve) a UndefinedBehaviorSanitizer (přidáno), přidáním zabudovaného fuzzování formátů (v rámci GSoC 2015), použití nepřetržité integrace (sestavení pro desítky kombinací operačního systému a kompilátoru a testování správné podpory všech formátů v nich).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster