Lëshuar versioni i ri i programit më të vjetër të mbështetur për thyerjen e fjalëkalimeve John the Ripper 1.9.0-jumbo-1. (Projekti është duke u zhvilluar 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 dalja e versionit 1.8.0-jumbo-1 kanë kaluar 4.5 vite, gjatë të cilave janë bërë më shumë se 6000 ndryshime (git commits) nga më shumë se 80 zhvillues. Gjatë kësaj kohe, zhvilluesit kanë rekomanduar përdorimin redaktimit aktual nga GitHub, gjendja e të cilës është mbajtur e qëndrueshme pavarësisht ndryshimeve falë integrimit të vazhdueshëm, duke përfshirë kontrollin paraprak të çdo ndryshimi (pull request) në shumë platforma. Një veçori e re e versionit është mbështetje për FPGA (PLIS) përveç CPU, GPU dhe Xeon Phi.
PĂ«r kartat ZTEX 1.15y, tĂ« cilat pĂ«rfshijnĂ« 4 çipe FPGA dhe fillimisht janĂ« pĂ«rdorur kryesisht pĂ«r minimin e Bitcoin, tani janĂ« implementuar 7 lloje tĂ« hash-eve tĂ« fjalĂ«kalimeve: bcrypt, descrypt klasik (pĂ«rfshirĂ« bigcrypt), sha512crypt, sha256crypt, md5crypt (pĂ«rfshirĂ« Apache apr1 dhe AIX smd5), Drupal7 dhe phpass (i pĂ«rdorur, midis tĂ« tjerash, nĂ« WordPress). Disa nga kĂ«to janĂ« implementuar pĂ«r herĂ« tĂ« parĂ« nĂ« FPGA. PĂ«r bcrypt, performanca e arritur Ă«shtĂ« ~119k c/s me 2^5 iteracione ("$2b$05") me njĂ« energji tĂ« konsumuar rreth 27 vat, duke kaluar ndjeshĂ«m rezultatet pĂ«r GPU-tĂ« mĂ« tĂ« reja nĂ« raport me kartĂ«n, dyzinĂ« e pajisjeve dhe vatĂ«t. Po ashtu mbĂ«shteten klastere nga kartat e kĂ«tij tipi, e cila Ă«shtĂ« verifikuar deri nĂ« 16 karta (64 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 thyerjes sĂ« fjalĂ«kalimeve dhe ngarkimin e njĂ« numri tĂ« madh hash-eve. PĂ«r tĂ« pĂ«rshpejtuar punĂ«n, Ă«shtĂ« realizuar aplikimi i maskĂ«s (modi "âmask", duke pĂ«rfshirĂ« nĂ« kombinim me moda tĂ« tjera) dhe krahasimi i hash-eve tĂ« llogaritura me ato tĂ« ngarkuara nĂ« anĂ«n e FPGA. Nga kĂ«ndvĂ«shtrimi i realizimit, nĂ« shumĂ« nga dizajnet (pĂ«r shembull, pĂ«r sha512crypt dhe Drupal7) 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 të llojeve të hash-eve shtesë, enkripcioneve etj., përfshirë si hash-et klasike të fjalëkalimeve (për shembuj, 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 lloje të reja formatesh, të mbështetura më parë (për shembull, është shtuar mbështetje bcrypt-pbkdf për OpenBSD softraid) dhe shumë të tjera. Në total, janë shtuar 80 formate në CPU dhe 47 në OpenCL (dhe një numër i vogël të vjetër janë fshirë si të integruar në të rinjtë dhe të vjetruar). Numri i përgjithshëm i formateve tani është 407 në CPU (ose 262 duke përjashtuar format "dinamike", të cilat janë të konfigurueshme nga skedarët e konfigurimit) 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. (Pjesërisht në kuadër të GSoC 2015.) - 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-)konfigurimi i buferimit optimal pĂ«r fjalĂ«kalimet e kontrolluara nĂ« CPU ("âtune=auto âverbosity=5") dhe dimensioneve optimale tĂ« detyrĂ«s nĂ« OpenCL (e cila Ă«shtĂ« e aktivizuar si parazgjedhje), pĂ«rfshirĂ« duke marrĂ« parasysh daljen e ngadaltĂ« nĂ« frekuencĂ«n e plotĂ« tĂ« punĂ«s sĂ« GPU-ve tĂ« serisĂ« NVIDIA GTX 10xx dhe mĂ« tĂ« reja. PĂ«rdorimi i hash-eve tĂ« ngarkuara nĂ« realitet dhe gjatĂ«sa reale tĂ« fjalĂ«kalimeve tĂ« kontrolluara (kur ajo Ă«shtĂ« e njohur paraprakisht) pĂ«r njĂ« auto-konfigurim tĂ« tillĂ«.
- Shtimi i kompilatorit "ndinamik tĂ« shprehive", tĂ« treguara drejtpĂ«rdrejt nĂ« linjĂ«n e komandĂ«s dhe qĂ« realizojnĂ« lloje tĂ« reja hibride hash-eje, pĂ«r shembull "âformat=dynamic=âsha1(md5($p).$s)â", tĂ« llogaritura nĂ« CPU duke pĂ«rdorur SIMD. Si komponentĂ« tĂ« tillĂ« shprehish mbĂ«shteten dhjetĂ«ra hash-e tĂ« shpejta (nga ato tĂ« zakonshmet si MD5 deri tek ato mĂ« ekzotike si Whirlpool), bashkimi i nĂ«nstrukturove, kodimi dhe dekodimi, transformimi i regjistrit tĂ« simboleve, referencat nĂ« fjalĂ«kalim, kripton, emrin e pĂ«rdoruesit dhe konstantet e zinxhirĂ«ve.
- 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: linux.org.ru
