versioni i ri i programit më të vjetër të mbështetur për gjetjen e fjalëkalimeve (projekti është në zhvillim që nga viti 1996). Nga lëshimi i versionit të kaluar 1.8.0-jumbo-1 kanë kaluar 4.5 vjet, gjatë të cilave janë bërë më shumë se 6000 ndryshime (git commits) nga mbi 80 zhvillues. Falë , duke përfshirë kontrollin paraprak të çdo ndryshimi (pull request) në shumë plataforma, gjatë kësaj periudhe zhvilluesit rekomanduan përdorimin e , gjendja e të cilit është mbajtur e qëndrueshme pavarësisht ndryshimeve. Kodi kryesor i projektit është nën licencën GPLv2+, ndërsa kodi i disa komponentëve është nën licencën BSD.
Veçoria e re e versionit është shfaqja e mbështetjes për FPGA (në përveç CPU, GPU dhe Xeon Phi). Për plaka , përfshirëse 4 çipa FPGA dhe që fillimisht janë përdorur kryesisht për minierat e Bitcoin, tani janë implementuar 7 lloje hash fjalëkalimesh: bcrypt, descrypt klasike (duke përfshirë bigcrypt), sha512crypt, sha256crypt, md5crypt (duke përfshirë Apache apr1 dhe AIX smd5), Drupal7 dhe phpass (i përdorur, për shembull, në WordPress). Disa prej tyre janë implementuar në FPGA për herë të parë.
Për bcrypt, të arriturat e performancës janë ~119k c/s me 2^5 iteracione ("$2b$05") me një konsumi energjie rreth ~27 vat, që tejkalon ndjeshëm rezultatet për GPU më të rinj në përllogaritje për plakat, për çmimin e pajisjeve dhe për vat. nga këto lloje plakash, gjë që është testuar deri në 16 plaka (64 çipa FPGA), të kontrolluara nga një Raspberry Pi 2. Mbështetet funksionaliteti i zakonshëm i John the Ripper, duke përfshirë të gjitha modet e gjetjes së fjalëkalimeve dhe ngarkimin e shumtë të hash-eve.
PĂ«r tĂ« pĂ«rshpejtuar punĂ«n, Ă«shtĂ« implementuar pĂ«rdorimi i maskave (modi "âmask", pĂ«rfshirĂ« nĂ« kombinim me moda tĂ« tjera) dhe krahasimi i hash-eve tĂ« llogaritur me ato tĂ« ngarkuara nĂ« anĂ«n e FPGA. Nga pikĂ«pamja e zbatimit, nĂ« shumĂ« nga dizajnet (pĂ«r shembull, pĂ«r ) janĂ« pĂ«rdorur blloqe qĂ« pĂ«rbĂ«hen nga bĂ«rthama procesori shumĂ«fishta (soft CPU cores), qĂ« bashkĂ«punojnĂ« me bĂ«rthamat kriptografike. Zhvillimi i kĂ«saj funksionaliteti Ă«shtĂ« kryer nga Denis Burykin nĂ« koordinim me zhvillues tĂ« tjerĂ« jumbo.
Ndryshime të tjera të rëndësishme:
- Mbështetje për një numër të madh llojesh të tjera të hash-eve, algoritmeve të enkriptimit, etj., duke përfshirë si hash-e klasike të fjalëkalimeve (për shembull, nga versionet e reja të QNX), ashtu edhe portofolat e kriptomonedhave, arkivat e enkriptuara dhe sistemet e skedarëve të enkriptuara (për shembull, Bitlocker dhe FreeBSD geli), si dhe mbështetje për varianta të reja të formateve që ishin mbështetur më parë (për shembull, është shtuar mbështetje 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. Numri total i formateve tani është 407 në CPU (ose 262 pa përfshirë formatet "dynamic", që janë të konfiguruara nga skedarët e konfiguracionit) dhe 88 në OpenCL.
- Dorëheqje nga mbështetja e gjuhës CUDA në favor të OpenCL, e cila nuk pengon përdorimin e plotë të GPU-ve nga NVIDIA (dhe madje ndihmon, falë fokusimit të zhvillimit dhe optimizimeve në një zbatim të çdo formati për GPU në vend të dy zbatimeve më parë).
- MbĂ«shtetje pĂ«r grupe tĂ« reja instruksionesh 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Ă«rdorimi mĂ« universale dhe i plotĂ« i SIMD nĂ« zbatimin e shumĂ« formateve, duke pĂ«rfshirĂ« pĂ«rdorimin e grupeve tĂ« instruksioneve qĂ« ishin mbĂ«shtetur mĂ« parĂ« deri nĂ« AVX dhe XOP nĂ« x86(-64) dhe
NEON, ASIMD dhe AltiVec në ARM, Aarch64 dhe POWER, përkatësisht. - Numerous optimizations for CPU and OpenCL, both for more efficient handling of a large number of hashes simultaneously (for example, loading 320 million SHA-1 hashes on a GPU was tested) and for increased hash computation speed. Some of these optimizations are universal, some cover various subsets of formats, and many are specific to individual formats.
- (Auto-) tuning of optimal buffering of checked passwords on CPU ("âtune=auto âverbosity=5") and optimal task sizes on OpenCL (enabled by default), including considering the slow ramp-up to full working frequency of NVIDIA GTX 10xx series and newer. Real loaded hashes and the real length of checked passwords (when known in advance) are used for such auto-tuning.
- Addition of a compiler for "dynamic expressions" specified directly on the command line, implementing new hybrid types of hashes, for example, "âformat=dynamic='sha1(md5($p).$s)'", computed on CPU using SIMD. Dozens of fast hashes (from common ones like MD5 to moderately exotic ones like Whirlpool) are supported as components of such expressions, along with substring concatenation, encoding and decoding, character case transformation, references to password, salt, username and string constants.
- Eliminimi i dallimeve të padëshiruara nga hashcat, përfshirë mbështetje për rregullat specifike për hashcat (komanda të rregullave të listës së fjalëve), kalimi në numërimin e pajisjeve OpenCL nga 1, zbatimi si parazgjedhje i të njëjtave gjatësi fjalësh (zakonisht gjatësi 7) gjatë testeve të performancës.
- Modalitete tĂ« reja tĂ« gjenerimit tĂ« fjalĂ«ve kaluese (modalitete skelimi), duke pĂ«rfshirĂ« PRINCE nga hashcat (formon âfrazaâ, duke lidhur disa fjalĂ« nĂ« rendin e rritjes sĂ« gjatĂ«si totale), subsets (gjen fjalĂ« kaluese me numĂ«r tĂ« pamjaftueshĂ«m tĂ« simboleve tĂ« ndryshĂ«m, edhe nĂ«se kĂ«to simbole vijnĂ« nga njĂ« grup i madh mundĂ«sish) dhe hybrid external (lejon modalitete tĂ« jashtme, tĂ« pĂ«rshkruara nĂ« skedarĂ«t e konfigurimit nĂ« njĂ« gjuhĂ« tĂ« ngjashme me C, tĂ« formojnĂ« shumĂ« fjalĂ« kaluese tĂ« kontrolluara mbi çdo âfjalĂ«â tĂ« bazĂ«s qĂ« vjen nga njĂ« modalitet tjetĂ«r). Gjithashtu, disa modalitete tĂ« reja tĂ« paracaktuar tĂ« jashtme.
- MundĂ«si shtesĂ« pĂ«r pĂ«rdorimin e disa modaliteteve nĂ« tĂ« njĂ«jtĂ«n kohĂ« (njĂ« mbi tjetrin â stacking), si dhe pĂ«r pĂ«rdorimin e tillĂ« tĂ« grupeve tĂ« rregullave (stacking tĂ« rregullave tĂ« listĂ«s sĂ« fjalĂ«ve).
- Përmirësime në modalitetet mask (shtrirja graduale e maskës brenda një gamë gjatësi të caktuar, zbatimi i maskës në anën e pajisjes OpenCL ose bordit FPGA) dhe single crack (sjellje inteligjente në pajisjet që llogarisin një numër të madh të hash-eve në mënyrë paralelisht, për të cilat më parë në këtë modalitet mungonin fjalët kaluese të kontrolluara dhe kufizimet në shpenzimin e memories).
- Shumë përmirësime në mbështetje të Unicode dhe kodimeve të tjera në sisteme të ndryshme.
- Shumë përmirësime në programet *2john (që konvertojnë skedarët në forma të ndryshme për
përdorim me john), veçanërisht wpapcap2john (në procesin e trafikimit të WiFi). - Shumë mundësi të reja të komandës në linjë, konfigurim në john.conf, opsione të skenarit configure dhe mundësi të reja përkatëse, shumë nga të cilat nuk arritën të përmenden këtu.
- Rritja e cilësisë së kodit falë mbështetjes së integruar për ndihmës të debugimit me AddressSanitizer (e pranishme më parë) dhe UndefinedBehaviorSanitizer (shtuar), shtimit të një fuzzers të integruar për formate (në kuadër të GSoC 2015), zbatimit të integrimit të vazhdueshëm (ndërtesa për dhjetëra kombinime të sistemeve operative dhe kompajlerëve dhe testimi në to për mbështetje të saktë të të gjitha formateve).
Burimi: opennet.ru
