az idős, támogatott jelszókereső program új verziója (a projekt 1996 óta fejlődik). A 1.8.0-jumbo-1 verzió megjelenése óta 4,5 év telt el, amely idő alatt több mint 6000 változtatás (git commits) történt több mint 80 fejlesztő által. Köszönhetően , a változtatások előzetes ellenőrzésének (pull request) sok platformon, ez idő alatt a fejlesztők azt javasolták, hogy használják , amelynek állapota stabil maradt a változások ellenére. A projekt alapkódja GPLv2+ licenc alatt áll, míg néhány komponens BSD licenc alatt.
Az új verzió egyik jellemzője az FPGA támogatás megjelenése (a CPU, GPU és Xeon Phi mellett). Az olyan kártyák számára, , amelyek 4 FPGA chipet tartalmaznak és eredetileg főként Bitcoin bányászásra használták, most 7 típusú jelszó hash megvalósítása történt: bcrypt, klasszikus descrypt (beleértve a bigcrypt-ot), sha512crypt, sha256crypt, md5crypt (beleértve az Apache apr1-et és az AIX smd5-öt), Drupal7 és phpass (amelyet különösen a WordPress használ). Ezek közül néhányat először valósítottak meg FPGA-n.
A bcrypt esetében a teljesítmény körülbelül 119k c/s 2^5 iterációnál („$2b$05”) körülbelül 27 wattos energiafogyasztással lényegesen meghaladja a legújabb GPU eredményeit a kártyák, az eszköz ár és a wattok tekintetében. Továbbá támogatottak az ilyen típusú kártyák, amit akár 16 kártyáig (64 FPGA chip) teszteltek, egy Raspberry Pi 2-őn keresztül vezérelve. A John the Ripper szokásos funkciói is támogatottak, beleértve az összes jelszókeresési módot és a sok hash egyidejű betöltését.
A munka felgyorsítása érdekében maszk használatát valósították meg (a „—mask” mód, beleértve más módokkal együtt) és a számolt hash-ek összehasonlítását a FPGA oldalán betöltöttekkel. A megvalósítás szempontjából sok dizájnban (például Más fontos változások:
Más fontos változások:
- Támogatás sokféle további hash típushoz, titkosításhoz stb., beleértve a klasszikus jelszok hash-eit (például az újabb QNX verziók esetén), a kriptovaluta tárcákat, titkosított archívumokat és titkosított fájlrendszereket (például Bitlocker és FreeBSD geli), valamint újfajta formátumok támogatását, amelyeket korábban támogattak (például a bcrypt-pbkdf támogatása az OpenBSD softraid számára) és még sok mást. Összesen 80 formátum került hozzáadásra CPU-hoz és 47 OpenCL-hez. Az összes formátum száma most 407 CPU-n (vagy 262 a „dynamic” formátumok nélkül, amelyek a konfigurációs fájlokból állíthatók be) és 88 OpenCL-en.
- A CUDA nyelv támogatásáról való lemondás az OpenCL javára, ami egyáltalán nem zavarja a NVIDIA GPU-k teljes körű használatát (sőt, elősegíti, mivel a fejlesztés és optimalizálások a két megvalósítás helyett most egyetlen GPU-formátumra összpontosítanak).
- Új SIMD utasításkészletek támogatása — AVX2, AVX-512 (beleértve a második generációs Xeon Phi-t) és MIC (az első generációra) — valamint a SIMD szélesebb körű és teljesebb kihasználása számos formátum megvalósításában, beleértve a korábban támogatott utasításkészleteket, egészen AVX-ig és XOP-ig x86(-64) és
NEON, ASIMD és AltiVec ARM, Aarch64 és POWER architektúrákhoz, respektíve. - Számos optimalizálás CPU-ra és OpenCL-re, mind a hash-ek egyidejű kezelésének hatékonyságának növelésére (például 320 millió SHA-1 hash GPU-ra történő betöltésének ellenőrzésével), mind a hash-k számításának sebességének növelésére. Ezen optimalizálások egy része univerzális, más része különböző formátumok részhalmazait célozza, és sok esetben egyes formátumokra jellemző.
- (Automatikus) beállítása a vizsgált jelszavak optimális pufferezésének CPU-n („--tune=auto --verbosity=5”) és az optimális feladatméreteknek OpenCL-en (alapértelmezés szerint bekapcsolva), figyelembe véve a NVIDIA GTX 10xx és újabb sorozatú GPU-k lassú maximális órajel elérését. Valóban betöltődött hash-ek és a vizsgált jelszavak valós hossza (amikor az előre ismert) használata az ilyen automatikus beállításhoz.
- Új „dinamikus kifejezések” fordító hozzáadása, amelyeket közvetlenül a parancssorból lehet megadni, és amelyek új hibrid hash típusokat valósítanak meg, például „--format=dynamic='sha1(md5($p).$s)'”, amelyeket CPU-n számítanak ki SIMD használatával. Az ilyen kifejezések összetevői között gyors hash-ek tucatjai találhatók (a közismert MD5-től a mérsékelten egzotikus Whirlpool-ig), részstringek egyesítése, kódolás és dekódolás, karakterek regiszterének átalakítása, jelszóra, sóra, felhasználónévre és sztring konstansokra való hivatkozás.
- A hashcat-től való nem kívánt eltérések kiküszöbölése, beleértve a hashcat-specifikus szabályok (szólistás szabályparancsok) támogatását, az OpenCL eszközök számának 1-től való kezdését, valamint a teljesítménytesztek során alapértelmezés szerint használt jelszóhosszak (általában 7) alkalmazását.
- Új módok a ellenőrzött jelszavak előállítására (cracking modes), beleértve a hashcat PRINCE módját (mely „kifejezéseket” alkotva több szót kapcsol össze a teljes hosszúság növekvő sorrendjében), részhalmazokat (jelentkező jelszavakat kiválasztva a kevés különböző karakterrel, még akkor is, ha ezek a karakterek egy nagy lehetséges tartományból származnak) és hibrid külső (lehetővé téve a külső, C-szerű nyelven leírt módszereket, hogy sok ellenőrzött jelszót alkossanak minden egyes alap „szóból”, amely más módból származik). Továbbá, néhány előre definiált külső mód is.
- Újabb lehetőségek több mód egyidejű alkalmazására (egymásra építve - stacking), valamint a szavakkal kapcsolatos szabályok (wordlist rules stacking) ilyen módon történő felhasználására.
- Fejlesztések a maszk üzemmódban (a maszk fokozatos kiterjesztése a megadott hossztartományon, a maszk alkalmazása az OpenCL-eszköz vagy FPGA oldalon) és egyetlen crack (értelmes viselkedés olyan eszközökön, amelyek párhuzamosan számítanak nagy számú hash-t, amely korábban nem elegendő ellenőrzött jelszót jelentett ebben a módban, valamint a memóriahasználat korlátozásával).
- Sok fejlesztés a Unicode és más karakterkódolások támogatásában különböző rendszerekben.
- Sok fejlesztés a *2john programokkal kapcsolatban (különböző formátumú fájlok átalakítására
a john felhasználásához), különösképpen a wpapcap2john (WiFi forgalom feldolgozására). - Sok új parancssori opció, beállítás a john.conf fájlban, configure-script opciók és a hozzájuk tartozó új lehetőségek, amelyek közül nem mindet sikerült itt említeni.
- A kód minőségének javítása a beépített hibakeresési build támogatásának köszönhetően az AddressSanitizer (korábban volt) és az UndefinedBehaviorSanitizer (hozzáadva), a beépített mintavizsgáló formátumok hozzáadásával (a GSoC 2015 keretében), valamint folyamatos integráció alkalmazásával (buildelés számos operációs rendszer és fordító kombinációjához és azokban minden formátum helyes támogatásának tesztelése).
Forrás: opennet.ru
