Lëshuar Versioni e re e përmendore e programit më të vjetër të mbështetur për përzgjedhjen e fjalëkalimeve John the Ripper 1.9.0-jumbo-1. (Projekti po zhvillohet që nga viti 1996.) Në faqen e projektit janë të disponueshme për shkarkim kodet burimore, si dhe ndërtimet e gatshme për Windows.
Vërehet se nga përfundimi i versionit 1.8.0-jumbo-1 kanë kaluar 4.5 vjet, gjatë të cilave janë bërë më shumë se 6000 ndryshime (git commits) nga më shumë se 80 zhvillues. Gjatë kësaj kohe, zhvilluesit rekomanduan përdorimin redaktimit current nga GitHub, i cili u mbajt stabil pavarësisht ndryshimeve falë integrimit të vazhdueshëm, duke përfshirë verifikimin paraprak të çdo ndryshimi (pull request) në shumë platforma. Një veçori e re e versionit të ri është mbështetje për FPGA (PLIS) përveç CPU, GPU dhe Xeon Phi.
PĂ«r kartat ZTEX 1.15y, tĂ« pĂ«rfshira 4 çipe FPGA dhe qĂ« fillimisht janĂ« pĂ«rdorur kryesisht pĂ«r minimin e Bitcoin, tani janĂ« realizuar 7 lloje hash fjalĂ«kalimi: bcrypt, descrypt klasik (pĂ«rfshirĂ« bigcrypt), sha512crypt, sha256crypt, md5crypt (pĂ«rfshirĂ« Apache apr1 dhe AIX smd5), Drupal7 dhe phpass (pĂ«rdoret, pĂ«r shembull, nĂ« WordPress). Disa prej tyre janĂ« realizuar pĂ«r herĂ« tĂ« parĂ« nĂ« FPGA. PĂ«r bcrypt, performanca e arritur Ă«shtĂ« ~119k c/s me 2^5 iterae ("$2b$05") me njĂ« konsum prej rreth 27 vatesh, Ă«shtĂ« dukshĂ«m superiore ndaj rezultateve pĂ«r GPU-tĂ« mĂ« tĂ« reja nĂ« pĂ«rllogaritje pĂ«r kartĂ«n, çmimin e pajisjeve dhe pĂ«r vat. Po ashtu mbĂ«shteten klastere nga kartat e kĂ«tij tipi, qĂ« Ă«shtĂ« verifikuar deri nĂ« 16 karta (64 FPGA), tĂ« kontrolluara nga njĂ« Raspberry Pi 2. MbĂ«shtetet funksionaliteti standard i John the Ripper, duke pĂ«rfshirĂ« tĂ« gjitha modet e pĂ«rzgjedhjes sĂ« fjalĂ«kalimeve dhe ngarkimin e njĂ« sĂ«rĂ« tĂ« madhe hashesh. PĂ«r tĂ« pĂ«rshpejtuar punĂ«n, Ă«shtĂ« realizuar aplikimi i maskĂ«s (modi "âmask", pĂ«rfshirĂ« nĂ« kombinim me modality tĂ« tjera) dhe krahasimi i hash-eve tĂ« llogaritura me ato tĂ« ngarkuara nĂ« anĂ«n e FPGA. Nga perspektiva e zbatimit, nĂ« shumĂ« nga dizajnet (pĂ«r shembull, pĂ«r sha512crypt dhe Drupal7) janĂ« pĂ«rdorur blloqe qĂ« pĂ«rbĂ«hen nga bĂ«rthama soft CPU tĂ« shumta, qĂ« bashkĂ«veprojnĂ« me bĂ«rthamat kriptografike. Zhvillimi i kĂ«tij funksionaliteti Ă«shtĂ« udhĂ«hequr nga Denis Burikin nĂ« koordinim me zhvillues tĂ« tjerĂ« jumbo.
Ndryshime të tjera të rëndësishme:
- Mbështetje për një numër të madh të tipave shtesë të hash-eve, enkriptimit etj., duke përfshirë si hash-et klasike të fjalëkalimeve (për shembull, nga versionet e reja të QNX), ashtu si dhe portofolat e kriptovalutave, arkivat e enkriptuara dhe sistemet e skedarëve të enkriptuara (për shembull, Bitlocker dhe FreeBSD geli), si dhe mbështetje për variante të reja të formatit që ishin mbështetur më parë (për shembull, mbështetje e shtuar për bcrypt-pbkdf për OpenBSD softraid) dhe shumë më tepër. Në total, janë shtuar 80 formate në CPU dhe 47 në OpenCL (dhe një numër i vogël i vjetër janë hequr si të integruar në të reja dhe të vjetra). Numri total i formateve tani është 407 në CPU (ose 262 pa përfshirë formatet "dynamic", të ndryshueshme nga skedarët e konfigurimit) dhe 88 në OpenCL.
- Heqja e mbështetjes për gjuhën CUDA në favor të OpenCL, e cila nuk pengon në përdorimin e plotë të GPU-ve nga NVIDIA (përkundrazi ndihmon falë fokusi në zhvillim dhe optimizimin për një implementim të vetëm të secilit format për GPU, në vend të dy implementimeve më përpara).
- MbĂ«shtetje pĂ«r grupe tĂ« reja tĂ« instrukcioneve SIMD â AVX2, AVX-512 (pĂ«rfshirĂ« pĂ«r gjeneratĂ«n e dytĂ« tĂ« Xeon Phi) dhe MIC (pĂ«r gjeneratĂ«n e parĂ«) â si dhe pĂ«rdorim mĂ« universale dhe tĂ« plotĂ« tĂ« SIMD nĂ« implementimet e shumĂ« formateve, duke pĂ«rfshirĂ« aplikimin e grupeve tĂ« instrukcioneve qĂ« ishin mbĂ«shtetur mĂ« parĂ« deri nĂ« AVX dhe XOP nĂ« x86(-64) dhe
NEON, ASIMD dhe AltiVec në ARM, Aarch64 dhe POWER, respektivisht. (Pjesërisht brenda GSoC 2015.) - Optimizime të shumta për CPU dhe OpenCL, si për një funksionim më efikas me një numër të madh hash-esh njëkohësisht (p.sh., u testua ngarkesa e 320 milionëve hash SHA-1 në GPU), ashtu edhe për rritjen e shpejtësisë së llogaritjes së hash-eve. Disa nga këto optimizime janë universale, disa përfshijnë nëngrupe të ndryshme formatesh, ndërsa shumë janë specifike për formate të veçanta.
- (Autogjenializim) i optimalit tĂ« buferimit tĂ« fjalĂ«kalimeve tĂ« kontrolluara nĂ« CPU ("âtune=auto âverbosity=5") dhe dimensioneve optimale tĂ« punĂ«s nĂ« OpenCL (e pĂ«rfshirĂ« si standard), duke marrĂ« parasysh pĂ«rfundimin e ngadaltĂ« nĂ« frekuencĂ«n e plotĂ« tĂ« punĂ«s tĂ« GPU-ve tĂ« serive NVIDIA GTX 10xx dhe mĂ« tĂ« reja. PĂ«rdorimi i hash-eve tĂ« ngarkuara realisht dhe gjatĂ« vĂ«rtetĂ« tĂ« fjalĂ«kalimeve tĂ« kontrolluara (kur ajo dihet paraprakisht) pĂ«r njĂ« autogjenializim tĂ« tillĂ«.
- Shtimi i kompilatorit "shprehjeve dinamike", tĂ« specifikuara direkt nĂ« linjĂ«n e komandĂ«s dhe qĂ« realizojnĂ« lloje tĂ« reja hibride tĂ« hash-eve, pĂ«r shembull "âformat=dynamic=âsha1(md5($p).$s)â", tĂ« llogaritura nĂ« CPU duke pĂ«rdorur SIMD. Si komponime tĂ« kĂ«tyre shprehjeve mbĂ«shteten dhjetra hash-e tĂ« shpejtĂ« (nga tĂ« zakonshmet si MD5 deri nĂ« ato disi ekzotike si Whirlpool), bashkimi i nĂ«nstringjeve, kodimi dhe dekodimi, konvertimi i regjistrit tĂ« simboleve, referencat pĂ«r fjalĂ«kalimin, kriptopasti, emrin e pĂ«rdoruesit dhe konstantet e vargjeve.
- Eliminimi i dallimeve të padëshiruara nga hashcat, përfshirë mbështetje për rregulla që ishin specifike për hashcat (komandat për rregullat e listës së fjalëve), kalimi në numerimin e pajisjeve OpenCL nga 1, aplikimi automatik i të njëjtave gjatësi fjalëshkalimi (zakonisht gjatësi 7) gjatë testeve të performancës.
- Rejime tĂ« reja pĂ«r gjenerimin e fjalĂ«vekalimeve tĂ« kontrollueshme (reĆŸim krashimi), duke pĂ«rfshirĂ« PRINCE nga hashcat (formon «fraza» duke bashkuar disa fjalĂ« nĂ« rendin e rritjes sĂ« gjatĂ«si sĂ« pĂ«rgjithshme), subsets (pĂ«rzgjedh fjalĂ«kalime me njĂ« numĂ«r tĂ« pamjaftueshĂ«m tĂ« simboleve tĂ« ndryshme, edhe nĂ«se kĂ«to simbole kanĂ« ardhur nga njĂ« grup i madh tĂ« mundshĂ«m) dhe hybrid external (lejon rejimet eksternale, tĂ« pĂ«rshkruara nĂ« skedarĂ«t e konfigurarit nĂ« njĂ« gjuhĂ« tĂ« ngjashme me C, tĂ« formojnĂ« shumĂ« fjalĂ«kalime tĂ« kontrollueshme nĂ« bazĂ« tĂ« çdo «fjale» themelore qĂ« vjen nga njĂ« regjim tjetĂ«r). Gjithashtu, disa mĂ«nyra tĂ« reja tĂ« parapara nga jashtĂ«.
- MundĂ«si tĂ« tjera pĂ«r pĂ«rdorimin e disa rejimeve njĂ«herĂ«sh (njĂ« mbi tjetĂ«r â stacking), si dhe pĂ«r kĂ«tĂ« pĂ«rdorim tĂ« grupeve tĂ« rregullave (stacking i rregullave tĂ« listĂ«s sĂ« fjalĂ«ve).
- Përmirësime të rejimeve maskë (zgjatja graduale e maskës në një gamë të specifikuar të gjatësi, aplikimi i maskës në pajisjet OpenCL ose plakat FPGA) dhe single crack (sjellje logjike në pajisjet që llogaritin shumë hash-e paralelisht, për të cilat në këtë regjim përpara kishte mungesë të fjalëvekalimeve të kontrollueshme, si dhe kufizime mbi përdorimin e memories).
- Shumë përmirësime të mbështetjes Unicode dhe encoding-ut të tjerë në sisteme të ndryshme.
- Shumë përmirësime të programeve *2john (që transformojnë skedarët e formateve të ndryshme për
përdorim me john), sidomos wpapcap2john (trajton trafikun WiFi). - Shumë opsione të reja të komandave në rresht, konfigurimeve në john.conf, skenarëve të opsioneve të konfigurimit dhe mundësive të reja përkatëse, shumë prej të cilave nuk arritëm t'i përmendim këtu.
- Përmirësimi i cilësisë së kodit përmes mbështetjes së integruar për ndërtimet e debug me AddressSanitizer (e cila është ekzistuar më parë) dhe UndefinedBehaviorSanitizer (shtuar), shtimit të një fuzzersi të integruar për formate (në kuadër të GSoC 2015), aplikimi i integrimit të vazhdueshëm (ndërtime për dhjetëra kombinime të sistemit operativ dhe kompajlerit dhe testimi i mbështetjes korrekte për të gjitha formatet).
Burimi: linux.org.ru
