John the Ripper 1.9.0-jumbo-1 FPGA támogatással

Megjelent a legrégebbi támogatott jelszókitaláló program, John the Ripper 1.9.0-jumbo-1 új verziója. (A projekt 1996 óta fejlődik.) On projekt oldala A források letölthetők, valamint kész összeállítások Windowshoz.

Megjegyzendő, hogy 1.8.0 év telt el az 1-jumbo-4.5 verzió megjelenése óta, amely során több mint 6000 változtatást (git commit) hajtott végre több mint 80 fejlesztő. Ebben az időszakban a fejlesztők javasolták a használatát aktuális kiadás a GitHubról, melynek állapotát a köszönhetően végrehajtott változtatások ellenére stabilan tartották folyamatos integráció, amely magában foglalja az egyes változtatások előzetes ellenőrzését (lehívási kérés) számos platformon. Az új verzió különlegessége, hogy a CPU, a GPU és a Xeon Phi mellett megjelenik az FPGA (FPGA) támogatása is.


Deszkákhoz ZTEX 1.15 év, amely 4 FPGA chipet tartalmaz, és eredetileg elsősorban Bitcoin bányászathoz használták, 7 féle jelszókivonat került megvalósításra: bcrypt, klasszikus descrypt (beleértve a bigcryptet is), sha512crypt, sha256crypt, md5crypt (beleértve az Apache apr1-et és AIX smd5-öt), Drupal7 és phpass (használt). , különösen a WordPressben). Némelyikük FPGA-n valósul meg először. A bcrypt esetében az elért ~119 2 c/s teljesítmény 5^2 iterációval („$05b$27”) körülbelül XNUMX watt energiafogyasztás mellett jelentősen meghaladja a legújabb GPU-k eredményeit kártyánként, hardveráronként és wattonként. Szintén támogatott klaszterek az ilyen típusú kártyák közül, amelyet 16 kártyán (64 FPGA) teszteltek, amelyek egyetlen Raspberry Pi 2-ről vezérelhetők. A szokásos John the Ripper funkció támogatott, beleértve az összes jelszókitaláló módot és nagyszámú hash egyidejű letöltését. A munka felgyorsítása érdekében bevezettük a maszk használatát (a "--maszk" módot, más módokkal kombinálva is) és a számított hash-ek összehasonlítását az FPGA oldalon betöltöttekkel. A megvalósítás szempontjából sok terv (pl. sha512crypt és Drupal7) többszálú processzormagokból (lágy CPU magokból) álló blokkokat használnak, amelyek kölcsönhatásba lépnek a kriptográfiai magokkal. Ennek a funkciónak a fejlesztését Denis Burykin vezette más jumbo fejlesztőkkel együttműködve.

További jelentős változások:

  • Számos további típusú hash, titkosítás stb. támogatása, beleértve a klasszikus jelszókivonatokat (például a QNX új verzióiból), valamint a kriptovaluta pénztárcákat, a titkosított archívumokat és a titkosított fájlrendszereket (például Bitlocker és FreeBSD geli), valamint a korábban támogatott új típusú formátumok támogatása (például a bcrypt-pbkdf támogatása az OpenBSD softraidhez) és még sok más. Összesen 80 formátumot adtak hozzá a CPU-hoz és 47-et az OpenCL-hez (és néhány régit eltávolítottak, mivel az újakba és az elavultakhoz integrálták). A formátumok teljes száma jelenleg 407 a CPU-n (vagy 262 a konfigurációs fájlokból konfigurált "dinamikus" formátumok nélkül), és 88 az OpenCL-en.
  • A CUDA nyelv támogatásának megtagadása az OpenCL javára, ami semmilyen módon nem akadályozza az NVIDIA GPU-k teljes körű használatát (sőt még segít is, köszönhetően annak, hogy a fejlesztés és az optimalizálás a GPU minden formátumának egy-egy implementációjára összpontosított a korábbi két megvalósítás helyett).
  • Az ú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óhoz) -, valamint a SIMD univerzálisabb és teljesebb használata számos formátum megvalósításában, beleértve a korábban támogatott utasításkészletek AVX-re és XOP-ra x86(-64) és
    NEON, ASIMD és AltiVec az ARM-en, Aarch64-en és POWER-en. (Részben a GSoC 2015 részeként.)
  • Számos optimalizálás a CPU-hoz és az OpenCL-hez, mind a nagyszámú hash-el egyidejűleg történő hatékonyabb munkavégzés érdekében (például 320 millió SHA-1-kivonat GPU-ra való betöltését tesztelték), mind a hash-számítások sebességének növelése érdekében. Ezen optimalizálások némelyike ​​univerzális, némelyik a formátumok különböző részhalmazait fedi le, és sok egyedi formátumra vonatkozik.
  • Az ellenőrzött jelszavak optimális pufferelésének (automatikus) konfigurálása a CPU-n („—tune=auto —verbosity=5”) és az optimális feladatméretek OpenCL-en (alapértelmezés szerint engedélyezve), beleértve az NVIDIA GTX lassú felfutását is. sorozatú GPU-k teljes működési frekvenciájára 10xx és újabb. A ténylegesen betöltött hash-ek és az ellenőrzött jelszavak tényleges hosszának használata (ha ez előre ismert) az ilyen automatikus hangoláshoz.
  • Fordító hozzáadása a közvetlenül a parancssorban megadott „dinamikus kifejezésekhez”, és új hibrid hash-típusok megvalósítása, például „-format=dynamic='sha1(md5($p).$s)'”, amelyet a CPU-n SIMD használatával számítanak ki. . Az ilyen kifejezések összetevőjeként több tucat gyors hash támogatott (az általánostól, mint az MD5 a mérsékelten egzotikusakig, mint a Whirlpool), a részlánc-összefűzést, a kódolást és a dekódolást, a karakterek kis- és nagybetűk konverzióját, a jelszóra, a felhasználónévre és a karakterlánc állandókra való hivatkozásokat.
  • A hashcattól való nem kívánt különbségek kiküszöbölése, beleértve a korábban hashcat-specifikus szabályok támogatását (szólista szabályparancsok), átállás az OpenCL eszközszámozásra 1-ről, az azonos hosszúságú (általában 7-es) jelszó alapértelmezett használata a teljesítménytesztekhez.
  • Új módok az ellenőrizhető jelszavak generálására (feltörési módok), beleértve a PRINCE-t a hashcatből ("kifejezéseket" képez több szó kombinálásával a teljes hossz növekvő sorrendjében), részhalmazok (nem elegendő számú különböző karakterből álló jelszavakat hoz létre, még akkor is, ha ezek a karakterek jönnek a lehetségesek nagy halmazából) és a hibrid külső (lehetővé teszi, hogy a konfigurációs fájlokban C-szerű nyelven leírt külső módok sok ellenőrizhető jelszót generáljanak egy másik módból kapott minden alapvető „szó” alapján). Ezenkívül számos új, előre definiált külső mód.
  • További funkciók több mód egyidejű használatához (egymás tetején - halmozás), valamint szabálykészletek használatához (szólista-szabályok halmozása).
  • Fejlesztések a maszk módokban (a maszk fokozatos nyújtása meghatározott hossztartományban, maszk alkalmazása az OpenCL eszköz vagy FPGA kártya oldalán) és egyszeri repedés (ésszerű viselkedés olyan eszközökön, amelyek párhuzamosan nagyszámú hash-t számolnak , amelyhez korábban nem volt elegendő ellenőrizhető jelszó ebben a módban, valamint a memóriafogyasztás korlátozása is).
  • Számos fejlesztés a Unicode és más kódolások támogatásához a különböző alrendszerekben.
  • Számos fejlesztés a *2john programokban (amelyek a különböző formátumú fájlokat konvertálják
    használata john-nal), különösen a wpapcap2john (kezeli a WiFi forgalmat).
  • Számos új parancssori opció, beállítás található a john.conf fájlban, konfigurálási parancsfájl-beállítások és a megfelelő új szolgáltatások, amelyekről itt nem mindegyik került szóba.
  • A kód minőségének javítása az AddressSanitizer (korábban) és az UndefinedBehaviorSanitizer (hozzáadott) hibakereső buildek beépített támogatásának köszönhetően, beépített formátumfuzzer hozzáadásával (a GSoC 2015 részeként), folyamatos integrációval (több tucat operációs rendszerhez és fordítóhoz) kombinációk és tesztelésük minden formátum megfelelő támogatására).

Forrás: linux.org.ru

Hozzászólás