John the Ripper 1.9.0-jumbo-1 FPGA toega

Välja antud vanima toetatud paroolimurdja John the Ripper 1.9.0-jumbo-1 uus versioon. (Projekti on arendatud alates 1996. aastast.) projekti leht allalaadimiseks on saadaval allikad, aga ka Windowsi jaoks valmiskomplektid.

Märgitakse, et versiooni 1.8.0-jumbo-1 ilmumisest on möödunud 4.5 aastat, mille jooksul on tehtud üle 6000 muudatuse (git commits) enam kui 80 arendajalt. Sel perioodil soovitasid arendajad kasutada GitHubi praegune versioon, mille seisund suudeti vaatamata tänu tehtud muudatustele stabiilsena hoida pidev integratsioon, mis sisaldab paljudel platvormidel iga muudatuse (tõmbetaotluse) eelkontrolli. Uue versiooni eripäraks on lisaks CPU-le, GPU-le ja Xeon Phi-le ka FPGA (FPGA) toe tekkimine.


Laudadele Ztex 1.15 a, mis sisaldas 4 FPGA kiipi ja mida algselt kasutati peamiselt Bitcoini kaevandamiseks, nüüd on rakendatud 7 tüüpi parooliräsi: bcrypt, klassikaline descrypt (sh bigcrypt), sha512crypt, sha256crypt, md5crypt (sh Apache apr1 ja AIX smd5), Drupal7 ja phpass (kasutatakse, eriti WordPressis). Mõnda neist rakendatakse FPGA-s esimest korda. Bcrypti puhul ületab saavutatud jõudlus ~119 2 c/s 5^2 iteratsiooniga ("05b $27") ja umbes XNUMX-vatise energiatarbimisega märkimisväärselt paremaid uusimaid GPU-sid plaadi, riistvarahinna ja vati kohta. Samuti toetatud klastrid seda tüüpi plaate, mis testisid kuni 16 plaati (64 FPGA-d), mida juhiti ühest Raspberry Pi 2-st. Toetatud on tavaline John the Ripper funktsionaalsus, sealhulgas kõik parooli arvamise režiimid ja suure hulga räside samaaegne allalaadimine. Töö kiirendamiseks juurutasime maski kasutamise ("--mask" režiim, sh kombineerituna teiste režiimidega) ja arvutatud räsi võrdlemise FPGA poolelt laaditutega. Rakendamise osas on paljudes kujundustes (näiteks jaoks sha512crypt ja Drupal7) kasutasid plokke, mis koosnevad mitme keermega protsessorituumadest (pehmed CPU tuumad), mis interakteeruvad krüptograafiliste tuumadega. Selle funktsionaalsuse väljatöötamist juhtis koostöös teiste jumbo arendajatega Denis Burykin.

Muud olulised muudatused:

  • Suure hulga täiendavate räsitüüpide, šifrite jms tugi, sealhulgas nii klassikalised parooliräsid (näiteks QNX uutest versioonidest) kui ka krüptoraha rahakotid, krüptitud arhiivid ja krüptitud failisüsteemid (näiteks Bitlocker ja FreeBSD geli ), samuti uute varem toetatud vormingute toetus (näiteks on lisatud OpenBSD softraidi bcrypt-pbkdf tugi) ja palju muud. Kokku on CPU-le lisatud 80 ja OpenCL-i 47 vormingut (ja väike hulk vanu on eemaldatud, kuna need on integreeritud uutesse ja aegunud vormingutesse). Vormingute koguarv on nüüd protsessoris 407 (või 262 ilma konfiguratsioonifailidest konfigureeritud "dünaamiliste" vorminguteta) ja 88 OpenCL-is.
  • CUDA keeletoe eemaldamine OpenCL-i kasuks, mis ei sega NVIDIA GPU täielikku kasutamist vähimalgi määral (ja isegi aitab tänu arendusele ja optimeerimisele keskenduda iga vormingu ühele teostusele GPU all kahe asemel varasemad rakendused).
  • Uute SIMD juhiste komplektide tugi - AVX2, AVX-512 (sealhulgas teise põlvkonna Xeon Phi jaoks) ja MIC (esimese põlvkonna jaoks) -, samuti SIMD universaalsem ja täielikum kasutamine paljude vormingute rakendustes, sealhulgas varem toetatud käsukomplektidest kuni AVX ja XOP x86(-64) ja
    NEON, ASIMD ja AltiVec vastavalt ARM-il, Aarch64-l ja POWERil. (Osaliselt GSoC 2015 raames.)
  • Arvukad optimeerimised CPU ja OpenCL jaoks, nii tõhusamaks töötamiseks suure hulga räsidega samaaegselt (näiteks 320 miljoni SHA-1 räsi laadimine GPU-le) ja räsi arvutamise kiiruse suurendamiseks. Mõned neist optimeerimistest on universaalsed, mõned hõlmavad erinevaid vormingute alamhulka ja paljud on vorminguspetsiifilised.
  • Kontrollitud paroolide optimaalse puhverdamise (automaatne) häälestamine protsessoris ("-tune=auto --verbosity=5") ja töö optimaalsed dimensioonid OpenCL-is (vaikimisi lubatud), sealhulgas võttes arvesse aeglast taastumist täielikule töörežiimile NVIDIA GTX-seeria 10xx ja uuemate GPU-de sagedus. Selliseks automaatseks häälestamiseks kasutatakse tegelikke laetud räsi ja kontrollitud paroolide tegelikku pikkust (kui see on ette teada).
  • "Dünaamiliste avaldiste" kompilaatori lisamine, mis määratakse otse käsureal ja rakendab uusi hübriidräsitüüpe, näiteks protsessoris arvutatud "--format=dynamic='sha1(md5($p).$s)'". kasutades SIMD-d. Selliste avaldiste komponentidena toetatakse kümneid kiireid räsi (alates tavalistest, nagu MD5 kuni kergelt eksootiliste, nagu Whirlpool), alamstringide ühendamine, kodeerimine ja dekodeerimine, tähemärkide teisendamine, parooliviited, soola, kasutajanime ja stringikonstandid.
  • Soovimatute erinevuste kõrvaldamine hashcatist, sealhulgas varem hashcat-spetsiifiliste sõnaloendireeglite käskude tugi, üleminek OpenCL-i seadmete nummerdamisele 1-lt, samade vaikeparoolide pikkuste (tavaliselt pikkus 7) kasutamine jõudlustestide jaoks.
  • Uued režiimid murtud paroolide genereerimiseks (krakkimisrežiimid), sealhulgas PRINCE hashcatist (genereerib "fraase" mitu sõna kogupikkuse kasvavas järjekorras), alamhulgad (toob ebapiisava arvu erinevate tähemärkidega paroolid, isegi kui need märgid pärinevad suur hulk võimalikke paroole) ja hübriidne väline (võimaldab välistel režiimidel, mida on kirjeldatud konfiguratsioonifailides C-sarnases keeles, genereerida palju kontrollitavaid paroole iga teisest režiimist saadud põhisõna põhjal). Samuti mitu uut eelmääratletud välist režiimi.
  • Lisafunktsioonid mitme režiimi samaaegseks kasutamiseks (üks teise peale – virnastamine), samuti reeglikomplektide selliseks kasutamiseks (sõnaloendireeglite virnastamine).
  • Maskirežiimide täiustused (maski järkjärguline venitamine määratud pikkusvahemikus, maski kandmine OpenCL-seadme või FPGA-plaadi küljele) ja üksik mõrandus (mõistlik käitumine seadmetes, mis arvutavad paralleelselt suurt hulka räsi, mis varem selles režiimis puudusid kontrollitavad paroolid ja ka mälutarbimise piirangud).
  • Paljud täiustused Unicode'i ja muude kodeeringute toel erinevates alamsüsteemides.
  • *2john programmide palju täiustusi (erineva vormingu failide teisendamine
    kasutada koos johniga), eriti wpapcap2john (käsitseb WiFi-liiklust).
  • Paljud uued käsurea valikud, john.conf sätted, skripti suvandite konfigureerimine ja neile vastavad uued funktsioonid, millest kõiki pole siin mainitud.
  • Koodi kvaliteedi parandamine tänu AddressSanitizeri (varem) ja UndefinedBehaviorSanitizeriga (lisatud) silumisjärkude sisseehitatud toele, sisseehitatud vormingufuzzeri lisamisele (GSoC 2015 raames), pideva integreerimise kasutamisel (järgud kümnete operatsioonisüsteemide ja kompilaatorite kombinatsioonide jaoks ja nende testimine kõigi vormingute õigeks toetamiseks).

Allikas: linux.org.ru

Lisa kommentaar