John the Ripper 1.9.0-jumbo-1 s podporou FPGA

Byla vydána Nová verze nejstarší podporované aplikace pro lámání hesel John the Ripper 1.9.0-jumbo-1. (Projekt se vyvíjí od roku 1996.) Na stránce projektu jsou k dispozici ke stažení zdrojové kódy a také hotové verze pro Windows.

Je poznamenáno, že od vydání verze 1.8.0-jumbo-1 uběhlo 4,5 roku, během kterého bylo provedeno více než 6000 změn (git commits) od více než 80 vývojářů. Během této doby vývojáři doporučovali používat aktuální edici na GitHubu, jejíž stav byl udržován stabilní, navzdory provedeným změnám díky nepravidelné integrace, která zahrnuje předběžné ověřování každé změny (pull request) na mnoha platformách. Zvláštností nové verze je přidání podpory FPGA (d programmable logic devices) kromě CPU, GPU a Xeon Phi.


Pro desky ZTEX 1.15y, které obsahují 4 čipy FPGA a původně se používaly převážně pro těžbu Bitcoinů, jsou nyní implementovány 7 typy hashů hesel: bcrypt, klasický descrypt (včetně bigcrypt), sha512crypt, sha256crypt, md5crypt (včetně Apache apr1 a AIX smd5), Drupal7 a phpass (používá se zejména ve WordPressu). Některé z nich byly na FPGA implementovány poprvé. Pro bcrypt byla dosažena výkonnost přibližně 119k c/s při 2^5 iteracích („$2b$05“) s příkonem kolem 27 wattů, což výrazně překonává výsledky pro nejnovější GPU v poměru na desku, cenu hardwaru a watt. Dále jsou podporovány klastry z těchto desek, což bylo ověřeno až do 16 desek (64 FPGA), ovládaných jedním Raspberry Pi 2. Podporována je běžná funkčnost John the Ripper, včetně všech režimů lámání hesel a současného načítání velkého množství hashů. Pro urychlení práce byla realizována aplikace masky (režim "—mask", včetně kombinace s jinými režimy) a porovnávání vypočítaných hashů s načtenými na straně FPGA. Z hlediska implementace bylo v mnoha návrzích (například pro sha512crypt a Drupal7) aplikováno blokové uspořádání složené z vícetré procesorových jader (soft CPU cores), které spolupracují s kryptografickými jádry. Vývoj této funkčnosti vedl Denis Burykin ve spolupráci s dalšími vývojáři jumbo.

Další důležité změny:

  • Podpora velkého počtu dalších typů hashů, šifrování atd., včetně klasických hashů hesel (například z nových verzí QNX), kryptoměnových peněženek, šifrovaných archivů a šifrovaných souborových systémů (například Bitlocker a FreeBSD geli), stejně jako podpora nových variant formátů, které byly dříve podporovány (například přidána podpora bcrypt-pbkdf pro OpenBSD softraid) a mnoha dalších. Celkově bylo přidáno 80 formátů na CPU a 47 na OpenCL (a malé množství starých bylo odstraněno jako integrováno do nových a zastaralých). Celkový počet formátů je nyní 407 na CPU (nebo 262 bez „dynamických“ formátů, nastavovaných z konfiguračních souborů) a 88 na OpenCL.
  • Odmítnutí podpory jazyka CUDA ve prospěch OpenCL, což nijak nebrání plnému využití GPU od NVIDIA (a dokonce to pomáhá, díky zaměření vývoje a optimalizacím na jedno provedení každého formátu pro GPU místo dvou provedení dříve).
  • Podpora nových sad instrukcí SIMD — AVX2, AVX-512 (včetně pro druhou generaci Xeon Phi) a MIC (pro první generaci) — a také obecnější a úplnější využití SIMD v implementacích mnoha formátů, včetně aplikace dříve podporovaných sad instrukcí až po AVX a XOP na x86(-64) a
    NEON, ASIMD a AltiVec na ARM, Aarch64 a POWER, resp. (Částečně v rámci GSoC 2015.)
  • Několik optimalizací pro CPU a OpenCL, jak pro efektivnější práci s velkým počtem hashů současně (například byla testována zátěž 320 milionů hashů SHA-1 na GPU), tak pro zvýšení rychlosti výpočtu hashů. Některé z těchto optimalizací jsou univerzální, některé pokrývají různé podmnožiny formátů, a mnohé jsou specifické pro jednotlivé formáty.
  • (Auto-)nastavení optimálního bufferování kontrolovaných hesel na CPU ("—tune=auto —verbosity=5") a optimálních velikostí úloh na OpenCL (zahrnuto ve výchozím nastavení), včetně zohlednění pomalého dosažení plné pracovní frekvence GPU série NVIDIA GTX 10xx a novějších. Použití skutečně zatížených hashů a reálné délky kontrolovaných hesel (když je známá předem) pro takové auto-nastavení.
  • Přidání kompilátoru 'dynamických výrazů', které jsou přímo uvedeny v příkazovém řádku a implementují nové hybridní typy hashů, například '--format=dynamic='sha1(md5($p).$s)''', počítané na CPU s využitím SIMD. Jako komponenty takových výrazů jsou podporovány desítky rychlých hashů (od běžných jako MD5 po mírně exotické jako Whirlpool), spojování podřetězců, kódování a dekódování, změna velikosti písmen, odkazy na hesla, sůl, uživatelská jména a řetězcové konstanty.
  • Odstranění nežádoucích rozdílů od hashcat, včetně podpory dříve specifických pravidel pro hashcat (příkazy pro pravidla wordlist), přechod na číslování zařízení OpenCL od 1, použití stejných délek hesel (obvykle délka 7) jako výchozí při testech výkonu.
  • Nové režimy generování testovaných hesel (cracking modes), včetně PRINCE z hashcat (tvoří 'fráze' spojením několika slov v pořadí vzrůstající celkové délky), subsets (načítá hesla s nedostatečným počtem různých znaků, i když tyto znaky pocházejí z velké sady možných) a hybrid external (umožňuje externím režimům, popsaným v konfiguračních souborech v jazyce podobném C, generovat mnoho testovaných hesel na základě každého základního 'slova' pocházejícího z jiného režimu). Také několik nových předdefinovaných externích režimů.
  • Další možnosti využívání několika režimů současně (jeden nad druhým - stacking), stejně jako takovéto využívání sad pravidel (stacking pravidel wordlist).
  • Vylepšení režimů mask (postupné rozšiřování masky v určeném rozsahu délky, aplikace masky na straně zařízení OpenCL nebo FPGA desky) a single crack (rozumné chování na zařízeních, která počítají velké množství hashů současně, na což dříve v tomto režimu chyběly testované hesla, a také omezení na spotřebu paměti).
  • Mnoho vylepšení podpory Unicode a jiných kódování v různých subsystémech.
  • Mnoho vylepšení programů *2john (převádějících soubory různých formátů pro
    použití s john), zejména wpapcap2john (zpracovává WiFi provoz).
  • Mnoho nových možností příkazového řádku, nastavení v john.conf, možností konfiguračního skriptu a odpovídajících nových funkcí, z nichž nebylo možné všechny zmínit zde.
  • Zvýšení kvality kódu díky integrované podpoře ladicích sestavení s AddressSanitizer (předtím) a UndefinedBehaviorSanitizer (přidáno), zavedení integrovaného fuzzera formátů (v rámci GSoC 2015), a aplikaci kontinuální integrace (sestavení pro desítky kombinací operačního systému a překladače a testování jejich správné podpory všech formátů).

Zdroj: linux.org.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster