John the Ripper 1.9.0-jumbo-1 FPGA toe toetamise toega

Välja antud John the Ripper 1.9.0-jumbo-1, vanim versioon heakskiidetud paroolide genereerimise programmist. (Projekt on arenenud alates 1996. aastast.) projekti lehelt on allalaadimiseks saadaval lähtekood ning valmis kogud Windowsile.

Toote versioon 1.8.0-jumbo-1 on olnud välja 4,5 aastat, mille jooksul on tehtud üle 6000 muudatuse (git commits) üle 80 arendaja poolt. Selle aja jooksul soovitasid arendajad kasutada praegust väljaannet GitHub'is, mille seisundit on hoitud stabiilsena vaatamata tehtud muudatustele tänu katkematule integreerimisele, mis sisaldab iga muudatuse (pull request) eelset kontrollimist paljudes keskkondades. Uue versiooni eripära on FPGA (ristprogrammimise loogika) toe lisamine lisaks CPU, GPU ja Xeon Phi-le.


platvormidele. ZTEX 1.15y, sealhulgas 4 FPGA kiipi, mis kasutati algselt peamiselt Bitcoin'i kaevandamiseks, on nüüd realiseeritud 7 tüüpi paroolihash'e: bcrypt, klassikaline descrypt (sealhulgas bigcrypt), sha512crypt, sha256crypt, md5crypt (sealhulgas Apache apr1 ja AIX smd5), Drupal7 ja phpass (kasutatakse eelkõige WordPressis). Mõned neist on esmakordselt rakendatud FPGA-l. Bcrypt jaoks saavutatud jõudlus on ~119k c/s 2^5 iteratsiooni („$2b$05”) juures, tarbides umbes 27 vatti, mis ületab oluliselt uusimate GPU-de tulemusi jõudluse, seadme hinna ja vati kohta. Samuti toetatakse klastreid selle tüüpi kaartidel, mis on testitud kuni 16 kaardi (64 FPGA) juhtimiseks ühest Raspberry Pi 2-st. Toetatakse John the Ripper'i tavalist funktsionaalsust, sealhulgas kõiki paroolide proovimise režiime ja suure hulga hash'ide samaaegset laadimist. Töö kiirendamiseks on rakendatud maskeeringu kasutamise võimalust (režiim "—mask", sealhulgas koos teiste režiimidega) ning arvutatud hash'ide võrdlemist FPGA-l laaditud hash'idega. Rakenduse seisukohalt on paljude disainide puhul (näiteks sha512crypt ja Drupal7) rakendatud plokke, mis koosnevad mitme lõime protsessorituumadest (soft CPU cores), mis suhtlevad krüptograafia tuumadega. Selle funktsionaalsuse arendust juhtis Denis Burikin koostöös teiste jumbo arendajatega.

Teised peamised muudatused:

  • Toetab mitmeid täiendavaid hash-tüüpe, krüpteerimismeetodeid jne, sealhulgas nii klassikalisi paroolihashesid (nt uute QNX versioonide puhul) kui ka krüptovaluutakotte, krüpteeritud arhiive ja krüpteeritud failisüsteeme (nt Bitlocker ja FreeBSD geli), samuti toetust uute vormingute variantidele, mis varem toetust nautisid (nt lisatud bcrypt-pbkdf tugi OpenBSD softraid'i jaoks) ja palju muud. Kokku on lisatud 80 vormingut CPU-l ja 47 OpenCL-il (ja väike kogus vanu eemaldatud, kuna need on uutesse integreeritud ja aegunud). Üldine vormingute arv on nüüd 407 CPU-l (või 262, välja arvatud „dünaamilised” vormingud, mis on konfigureeritavad konfiguratsioonifailidest) ja 88 OpenCL-il.
  • CUDA keele toe loobumine avatud OpenCL-i kasuks ei takista NVIDIAt GPU täielikku kasutamist (ja isegi aitab, kuna arendusele ja optimeerimisele keskendumine ühele vormingu teostusele GPU-l on parem kui kaks eelmist rakendust).
  • Uute SIMD käskude komplektide tugi — AVX2, AVX-512 (sealhulgas teise põlvkonna Xeon Phi jaoks) ja MIC (esimese põlvkonna jaoks) — ning samuti laiem ja täielikum SIMD kasutamine paljude vormingute teostustes, sealhulgas varem toetatud käskude komplektide rakendamine kuni AVX ja XOP x86(-64) peal.
    NEON, ASIMD ja AltiVec ARM-is, Aarch64-s ja POWER-is, vastavalt. (Osaliselt GSoC 2015 raames.)
  • Palju optimeerimisi CPU ja OpenCL jaoks, et võimaldada tõhusamat töötlemist suure hulga hash'idega (näiteks testiti 320 miljoni SHA-1 hash'i laadimist GPU-l) ning kiirusede arvestamisel. Osa neist optimeerimisest on universaalsed, osa hõlmavad erinevaid formaate ja paljud on spetsiifilised teatud formaatidele.
  • (Auto)optimeerimine kontrollitavate paroolide optimaalse puhverdamise seadistamiseks CPU-l ("—tune=auto —verbosity=5") ja optimaalsete ülesande mõõtmete seadistamiseks OpenCL-is (sisseehitatud vaikimisi), arvestades ka NVIDIA GTX 10xx seeria ja uuemate GPU-de aeglast saavutamist täis töösagedusele. Kasutatakse reaalselt koormatud hash-e ja paroolide reaalseid pikkusi (kui need on ette teada) selliseks automaatseks seadistamiseks.
  • «Dünaamiliste väljendite» kompilaatori lisamine, mis on otse käsureal määratletud ja rakendab uusi hübriidhashide tüüpe, nagu "—format=dynamic=’sha1(md5($p).$s)’", mis arvutatakse CPU-l, kasutades SIMD-i. Nende väljendite komponente toetavad tosinad kiireid hash'e (alates levinud nagu MD5 kuni mõõdukalt eksootiliste nagu Whirlpool), alamstringide ühendamine, kodeerimine ja dekodeerimine, tähemärkide registreerimise muutmine, viidatud paroolidele, soolale, kasutajanimele ja stringi konstantidele.
  • Ebameeldivate erinevuste kõrvaldamine hashcat'ist, sealhulgas varasemalt hashcat'ile spetsiifiliste reeglite (wordlist rule commands) tugi, OpenCL seadmete numbrite algus 1. numbrist, sama pikkade paroolide (tavaliselt 7 tähemärki) rakendamine vaikimisi toimivuse testide korral.
  • Uued paroolide genereerimise režiimid (cracking modes), sealhulgas PRINCE hashcatist (koostab 'fraase', ühendades mitu sõna kasvavas kogupikkuse järjekorras), subsets (valib paroolid, millel on ebapiisav arv erinevaid sümboleid, isegi kui need sümbolid pärinevad suurest võimalike hulkadest) ja hybrid external (lubab väliste režiimide kasutamist, mida kirjeldatakse C-sarnastes konfiguratsioonifailides, et luua palju kontrollitavaid paroole iga põhiasja kohta, mis tuleb teiselt režiimilt). Samuti on mitmeid uusi eelmääratud väliseid režiime.
  • Lisa võimalused mitme režiimi samaaegseks kasutamiseks (üks teise peal — stacking), samuti võimalused kasutada reeglite kogusid (wordlist rules stacking).
  • Täiendused mask režiimide jaoks (maski järkjärguline pikendamine määratud pikkuste vahemikus, maski rakendamine OpenCL-seadme või FPGA platvormi poolel) ja single crack (mõistlik käitumine seadmetes, mis arvutavad samaaegselt suurt hulka hash'e, millele eelnevalt ei olnud selle režiimi jaoks piisavalt kontrollitavaid paroole, samuti mälukulu piirangud).
  • Palju täiustusi Unicode'i ja teiste kodeeringute toe osas erinevates alamsüsteemides.
  • Palju täiustusi programmi *2john (failide erinevate formaatide konverteerimiseks john'iga),
    eriti wpapcap2john (WiFi liikluse töötlemiseks).
  • Palju uusi käsurea valikuid, seadistusi john.conf-is, configure-skripti valikuid ja vastavaid uusi võimalusi, millest kaugeltki mitte kõiki ei õnnestunud siin mainida.
  • Koodikvaliteedi tõus tänu sisseehitatud toetusele tõrkeotsingu ehitustele AddressSanitizer'iga (oli varem) ja UndefinedBehaviorSanitizer'iga (lisatud), vormingute sisseehitatud fuzzimise lisamine (GSoC 2015 raames), pideva integratsiooni kasutamine (ehitused kümnete operatsioonisüsteemi ja kompilaatori kombinatsioonide jaoks ning nende piisava vormingute toe testimine).

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster