John the Ripper 1.9.0-jumbo-1 väljaanne FPGA toega

Välja antud uus versioon vanimast toetatavast paroolide leidmise programmist John the Ripper 1.9.0-jumbo-1 (projekt on arenenud alates 1996. aastast). Eelmise versiooni 1.8.0-jumbo-1 väljastamisest on möödunud 4,5 aastat, mille jooksul on tehtud üle 6000 muudatuse (git commit) rohkem kui 80 arendajalt. Tänu jätkuva integreerimise, sealhulgas iga muudatuse eelkontroll (pull request) paljude platvormide peal, soovitasid arendajad sellel perioodil kasutada praegust väljaannet GitHubis,, mille seisundit on hoitud stabiilsena vaatamata muudatustele. Projekti põhikood levitatakse on litsentsi GPLv2+ all, samas kui teatud komponentide kood on litsentsi BSD all.

Uue versiooni eripära on FPGA toe lisamine (koos CPU, GPU ja Xeon Phi toega). Platvormidele ZTEX 1.15y,, mis sisaldavad 4 FPGA kiipi ja mida algselt kasutati peamiselt Bitcoin'i kaevandamiseks, on nüüd ellu viidud 7 tüüpi paroolide hashed: bcrypt, klassikaline descrypt (sh bigcrypt), sha512crypt, sha256crypt, md5crypt (sh Apache apr1 ja AIX smd5), Drupal7 ja phpass (millel põhineb näiteks WordPress). Mõned neist on FPGA-se integreeritud esmakordselt.

Bcrypt'i puhul saavutatud jõudlus on ~119k c/s koos 2^5 kordustega („$2b$05”) ja tarbimisega umbes ~27 vatti, mis ületab märkimisväärselt uusimate GPU-de tulemusi arvestades plaadi, seadme hinda ja vatti. Samuti toetavad klastreid sellised plaadid, mis on kontrollitud kuni 16 plaadini (64 FPGA kiipi), mida juhib üks Raspberry Pi 2. Toetatakse John the Ripper'i tavalisi funktsioone, sealhulgas kõiki paroolide leidmise režiime ja suurt hulka hashed'i korraga.

Töö kiirendamiseks on rakendatud maskeeringu kasutamine (režiim „—mask“, sealhulgas koos teiste režiimidega) ja arvutatud hashide võrdlemine FPGA-le laaditud hashidega. Tehniliselt on paljudes disainides (näiteks sha512crypt ja Drupal7) rakendatud plokid, mis koosnevad mitme põhijuhtmega protsessorituumadest (soft CPU cores), mis suhtlevad krüptograafiliste tuumadega. Selle funktsionaalsuse väljatöötamist juhtis Denis Burikin koos teiste jumbo arendajatega.

Teised olulised muudatused:

  • Toetatakse suurt hulka täiendavaid hash-tüüpe, šifreid jne, sealhulgas klassikalisi paroolihashesid (näiteks uute QNX versioonide jaoks), krüptorahakotte, krüpteeritud arhiive ja krüpteeritud failisüsteeme (näiteks Bitlocker ja FreeBSD geli), samuti uute tüüpide vormate, mis varem olid toetatud (näiteks lisatud bcrypt-pbkdf tugi OpenBSD softraid'ile) ja palju muud. Kokku on lisatud 80 formaati CPU-le ja 47 OpenCL-ile. Kokku on nüüd 407 formaati CPU-l (või 262, kui jätta välja „dünaamilised“ formaadid, mida saab konfigureerimisfailidest muuta) ja 88 OpenCL-ile.
  • CUDA keele toetamisest loobumine OpenCL-i kasuks, mis ei takista NVIDIA GPU-de täielikku kasutamist (ja isegi aitab, tänu arenduse fookustamisele ja optimeerimisele igas formaadis GPU jaoks ühe rakenduse suunas, mitte kahe rakenduse suunas nagu varem).
  • Uute SIMD käskude komplektide tugi — AVX2, AVX-512 (sealhulgas teise põlvkonna Xeon Phi jaoks) ja MIC (esimese põlvkonna jaoks) — samuti universaalsema ja täieliku SIMD kasutamise rakendused paljude formaatide implementeerimistes, sealhulgas varasemate käskude komplektide rakendamine kuni AVX ja XOP x86(-64) ja
    NEON, ASIMD ja AltiVec ARM-is, Aarch64-s ja POWER-is, vastavalt.
  • Küsimuste ja OpenCL-i jaoks arvukad optimeerimised, et tõhusamalt hakkama saada suure hulga hash'idega korraga (näiteks testiti 320 miljoni SHA-1 hash'i koormust GPU-l), samuti hash'ide arvutamise kiirus. Osa neist optimeerimisest on universaalne, osa katab erinevaid formaatide alamsüsteeme ning paljusid on spetsiifilisi konkreetsetele formaatidele.
  • (Automaatne) kohandamine paroolide kontrollimise optimaalsete puhvrite jaoks CPU-l („—tune=auto —verbosity=5“) ja optimaalsete ülesannetega OpenCL-is (olemas vaikimisi), sealhulgas arvestades NVIDIA GTX 10xx ja uuemate seeria GPU-de aeglast täisvõimsusele jõudmist. Kasutatakse tegelikke koormatud hashesid ja reaalse pikkuse kontrollitavaid paroole (kui see on eelnevalt teada) sellise automaatse kohandamise jaoks.
  • Uue ‘dünaamiliste väljendite’ kompilaatori lisamine, mis on otse käsureal määratud ja rakendab uusi hübriidhashesid, näiteks „—format=dynamic=’sha1(md5($p).$s)'“, mis arvutatakse CPU-l SIMD-i kasutades. Sarnaste väljendite komponentidena toetatakse kümneid kiireid hashesid (alates levinud nagu MD5 kuni mõõdukalt eksootiliste nagu Whirlpool), alamsõnade ühendamine, kodeerimine ja dekodeerimine, tähemärkide registreerimine, viidatakse paroolile, soolale, kasutajanimele ja stringikonstantidele.
  • Soovimatute erinevuste kõrvaldamine hashcat-st, sealhulgas varasemalt hashcat-le spetsiifiliste reeglite toetamine (wordlist rule commands), üleminek OpenCL seadmete nummerdamisele 1.-st, sama paroolide pikkuse (tavaliselt 7) rakendamine jõudluse testimisel.
  • Uued kontrollitud paroolide genereerimise režiimid (cracking modes), sealhulgas PRINCE hashcat-ist (moodustab "fraase", ühendades mitu sõna kasvava kogupikkuse järjekorras), subsets (valib paroolid, mis ei sisalda piisavalt erinevaid märke, isegi kui need tulevad suurest võimalikest kogumist) ja hybrid external (lubab väliseid režiime, mida kirjeldatakse C-sarnastes konfigureerimisfailides, luua palju kontrollitud parooli igasuguste "sõnade", mis tuginevad teiselt režiimist, põhjal). Samuti mitu uut eelmääratud välist režiimi.
  • Lisavõimalused mitme režiimi samaaegseks kasutamiseks (ühe kohal teise peal — stacking), samuti reeglite komplektide (wordlist rules stacking) selliseks kasutamiseks.
  • Parandused maski režiimide jaoks (maski järkjärguline venitamine määratud pikkuste vahele, maski rakendamine OpenCL seadme või FPGA plaadi küljelt) ja single crack (loogiline käitumine seadmetes, mis arvutavad suurt arvu hashesid paralleelselt, millega ei jätkunud paroolidele kontrollimisel varem ja samuti mälu raiskamise piirangud).
  • Palju täiustusi Unicode'i ja teiste kodeeringute toe osas erinevates alamsüsteemides.
  • Palju täiustusi programmide *2john (mille abil muudetakse erineva formaadiga faile
    johniga kasutamiseks), eriti wpapcap2john (töötleb WiFi liiklust).
  • Palju uusi käsurea valikuid, seadeid john.conf failis, configure-skripti valikuid ja nendega sobivaid uusi võimalusi, millest kaugel ei ole kõik siin mainitud.
  • Koodi kvaliteedi tõstmine tänu sisseehitatud toe toele silumisversioonide, sealhulgas AddressSanitizer (varem olemas) ja UndefinedBehaviorSanitizer (lisatud), sisseehitatud formaadi fuzzimise lisamisele (GSoC 2015 raames), pidevale integreerimise rakendamisele (kümnete operatsioonisüsteemi ja kompilaatori kombinatsioonide kogumine ning uuring kõikide formaatide õige toe testimiseks).

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster