Ypatinga naujosios versijos ypatybė yra FPGA palaikymo atsiradimas (be procesoriaus, GPU ir Xeon Phi). Dėl lentų
Naudojant „bcrypt“, pasiektas ~119 2 c/s našumas su 5^2 iteracijomis („$05b$27“) su ~XNUMX vatų energijos sąnaudomis gerokai viršija naujausių GPU už plokštę, aparatinės įrangos kainą ir už vatą rezultatus. . Taip pat palaikoma
Norėdami pagreitinti darbą, įdiegėme kaukės („—mask“ režimą, taip pat kartu su kitais režimais) ir apskaičiuotų maišų palyginimą su įkeltomis FPGA pusėje. Įgyvendinimo požiūriu daugelis dizainų (pvz.,
Kiti svarbūs pakeitimai:
- Daugelio papildomų maišos tipų, šifrų ir kt. palaikymas, įskaitant klasikines slaptažodžių maišas (pavyzdžiui, iš naujų QNX versijų), taip pat kriptovaliutų pinigines, šifruotus archyvus ir šifruotas failų sistemas (pvz., Bitlocker ir FreeBSD geli), taip pat naujų tipų anksčiau palaikomų formatų palaikymas (pavyzdžiui, pridėtas palaikymas bcrypt-pbkdf, skirtas OpenBSD softraid) ir daug daugiau. Iš viso CPU buvo pridėta 80 formatų, o OpenCL - 47. Bendras formatų skaičius dabar yra 407 CPU (arba 262, neįskaitant "dinaminių" formatų, sukonfigūruotų iš konfigūracijos failų) ir 88 "OpenCL".
- Atsisakymas palaikyti CUDA kalbą „OpenCL“ naudai, kuri jokiu būdu netrukdo visapusiškai naudoti NVIDIA GPU (ir netgi padeda, nes kūrimas ir optimizavimas sutelkiamas į vieną kiekvieno GPU formato diegimą, o ne du anksčiau).
- Naujų SIMD instrukcijų rinkinių - AVX2, AVX-512 (įskaitant antros kartos Xeon Phi) ir MIC (pirmosios kartos) - palaikymas, taip pat universalesnis ir išsamesnis SIMD naudojimas įgyvendinant daugelį formatų, įskaitant anksčiau palaikomi instrukcijų nustatymai iki AVX ir XOP x86(-64) ir
NEON, ASIMD ir AltiVec atitinkamai ARM, Aarch64 ir POWER. - Daugybė procesoriaus ir OpenCL optimizacijų, skirtų efektyvesniam darbui su dideliu maišos skaičiumi vienu metu (pvz., buvo išbandyta 320 mln. SHA-1 maišos įkėlimas į GPU), ir siekiant padidinti maišos skaičiavimo greitį. Kai kurie iš šių optimizavimų yra universalūs, kai kurie apima skirtingus formatų pogrupius, o daugelis yra būdingi atskiriems formatams.
- Optimalaus patikrintų slaptažodžių buferio procesoriaus (“—tune=auto —verbosity=5“) ir optimalių užduočių dydžių OpenCL (įjungta pagal numatytuosius nustatymus) konfigūracija, įskaitant lėtą greitį iki viso veikimo dažnio. NVIDIA GTX serijos 10xx ir naujesnių GPU. Tokiam automatiniam derinimui naudojant faktiškai įkeltas maišas ir tikrąjį tikrinamų slaptažodžių ilgį (kai jis žinomas iš anksto).
- Tiesiogiai komandinėje eilutėje nurodytų „dinaminių išraiškų“ kompiliatoriaus pridėjimas ir naujų mišrių maišos tipų įdiegimas, pvz., „-format=dynamic='sha1(md5($p).$s)'“, apskaičiuotas CPU naudojant SIMD . Kaip tokių išraiškų komponentai palaikomos dešimtys greitų maišų (nuo įprastų, tokių kaip MD5, iki vidutiniškai egzotiškų, tokių kaip Whirlpool), eilučių sujungimas, kodavimas ir dekodavimas, simbolių didžiųjų ir mažųjų raidžių konvertavimas, nuorodos į slaptažodį, druskos, vartotojo vardo ir eilučių konstantos.
- Nepageidaujamų „hashcat“ skirtumų pašalinimas, įskaitant anksčiau „hashcat“ būdingų taisyklių (žodžių sąrašo taisyklių komandų) palaikymą, perėjimą prie OpenCL įrenginių numeravimo nuo 1, numatytąjį tų pačių slaptažodžių ilgių (paprastai 7 ilgio) naudojimą našumo testams.
- Nauji tikrinamų slaptažodžių generavimo režimai (nulaužimo režimai), įskaitant PRINCE iš hashcat (sudaro „frazes“ derindama kelis žodžius didėjančia bendro ilgio tvarka), poaibius (atkuria slaptažodžius su nepakankamu skirtingų simbolių skaičiumi, net jei šie simboliai atsiranda iš daugybės galimų) ir hibridinių išorinių (leidžia išoriniams režimams, aprašytiems konfigūracijos failuose C tipo kalba, sugeneruoti daug patikrinamų slaptažodžių pagal kiekvieną pagrindinį „žodį“, gautą iš kito režimo). Taip pat keletas naujų iš anksto nustatytų išorinių režimų.
- Papildomos funkcijos, skirtos kelių režimų naudojimui vienu metu (vienas ant kito – krovimas), taip pat taisyklių rinkinių naudojimui (žodžių sąrašo taisyklių krovimas).
- Kaukės režimų patobulinimai (laipsniškas kaukės tempimas tam tikru ilgiu, kaukės uždėjimas OpenCL įrenginio arba FPGA plokštės šone) ir vienas įtrūkimas (protingas elgesys įrenginiuose, kurie lygiagrečiai apskaičiuoja didelį maišos skaičių). , kuriems anksčiau nebuvo pakankamai patikrinamų slaptažodžių šiuo režimu, taip pat atminties sunaudojimo apribojimų).
- Daug patobulinimų, skirtų Unicode ir kitoms koduotėms skirtinguose posistemiuose.
- Daug *2john programų patobulinimų (kurios konvertuoja įvairių formatų failus, skirtus
naudoti su john), ypač wpapcap2john (tvarko WiFi srautą). - Yra daug naujų komandinės eilutės parinkčių, nustatymų john.conf, konfigūravimo scenarijaus parinkčių ir atitinkamų naujų funkcijų, iš kurių ne visos čia buvo paminėtos.
- Geresnė kodo kokybė dėl integruoto derinimo versijų palaikymo su AddressSanitizer (anksčiau) ir UndefinedBehaviorSanitizer (pridėta), pridedant įtaisytąjį formato žymeklį (kaip GSoC 2015 dalį), naudojant nuolatinį integravimą (kompiliatorių kūrimas dešimčiai operacinių sistemų ir kompiliatoriaus). derinius ir jų testavimą, ar jie tinkamai palaiko visus formatus).
Šaltinis: opennet.ru