John the Ripper 1.9.0-jumbo-1 mat FPGA Ënnerstëtzung

Verëffentlecht nei Versioun vum eelste ënnerstëtzte Passwuert roden Programm John the Ripper 1.9.0-jumbo-1. (De Projet entwéckelt zënter 1996.) On Projet Säit Quelle si verfügbar fir erofzelueden, souwéi fäerdeg Versammlungen fir Windows.

Et gëtt bemierkt datt 1.8.0 Joer zënter der Verëffentlechung vun der Versioun 1-jumbo-4.5 vergaange sinn, wärend méi wéi 6000 Ännerungen (git commits) vu méi wéi 80 Entwéckler gemaach goufen. Wärend dëser Period hunn d'Entwéckler recommandéiert ze benotzen aktuell Editioun vu GitHub, den Zoustand vun deem trotz den Ännerungen, déi duerchgefouert goufen, stabil gehal ginn kontinuéierlech Integratioun, déi virleefeg Verifizéierung vun all Ännerung (Pull Ufro) op ville Plattformen enthält. Eng speziell Feature vun der neier Versioun ass d'Erscheinung vun der Ënnerstëtzung fir FPGA (FPGA) zousätzlech zu CPU, GPU an Xeon Phi.


Fir Brieder ZTEX 1.15y, dorënner 4 FPGA Chips an ursprénglech haaptsächlech fir Bitcoin Biergbau benotzt, 7 Aarte vu Passwuert-Hashes sinn elo ëmgesat: bcrypt, classic descrypt (inklusiv bigcrypt), sha512crypt, sha256crypt, md5crypt (inklusiv Apache apr1 an AIX smd5), Drupal7 a phpass (benotzt). , besonnesch a WordPress). E puer vun hinnen ginn op FPGA fir d'éischte Kéier implementéiert. Fir bcrypt ass déi erreecht Leeschtung vun ~119k c/s mat 2^5 Iteratiounen ("$2b$05") mat engem Stroumverbrauch vu ronn 27 Watt däitlech méi wéi d'Resultater fir déi lescht GPUs pro Board, pro Hardwarepräis a pro Watt. Och ënnerstëtzt Stärekéip vun Brieder vun dëser Zort, déi getest gouf bis zu 16 Brieder (64 FPGAs) vun engem eenzege Raspberry Pi kontrolléiert haten 2. Déi üblech John de Ripper Funktionalitéit ënnerstëtzt, dorënner all Passwuert roden Modi a simultan eroflueden vun enger grousser Zuel vun hashes. Fir d'Aarbecht ze beschleunegen, hu mir d'Benotzung vun enger Mask implementéiert (de "--Mask" Modus, och a Kombinatioun mat anere Modi) a Verglach vun de berechent Hashes mat deenen op der FPGA Säit gelueden. Aus enger Implementéierungsperspektiv, vill vun den Designen (z. sha512crypt an Drupal7) Blocks, déi aus Multi-threaded Prozessor Cores (mëll CPU Cores) besteet, déi mat kryptografesche Cores interagéieren, ginn benotzt. D'Entwécklung vun dëser Funktionalitéit gouf vum Denis Burykin a Koordinatioun mat anere Jumbo-Entwéckler gefouert.

Aner grouss Ännerungen:

  • Ënnerstëtzung fir eng grouss Zuel vun zousätzlech Zorte vun hashes, Chiffer, etc., dorënner souwuel klassesch Passwuert hashes (zum Beispill, aus nei Versiounen vun QNX), wéi och cryptocurrency Portemonnaien, verschlësselte Archiver a verschlësselte Fichier Systemer (zum Beispill, Bitlocker an FreeBSD geli), souwéi Ënnerstëtzung fir nei Aarte vu Formater déi virdru ënnerstëtzt goufen (zum Beispill, zousätzlech Ënnerstëtzung fir bcrypt-pbkdf fir OpenBSD Softraid) a vill méi. Am Ganzen sinn 80 Formater op der CPU a 47 op OpenCL bäigefüügt (an eng kleng Unzuel vun alen goufen ewechgeholl als integréiert an nei an eeler). D'Gesamtzuel vun de Formater ass elo 407 op der CPU (oder 262 net "dynamesch" Formater, déi aus Konfiguratiounsdateien konfiguréiert sinn) an 88 op OpenCL.
  • Refus d'CUDA Sprooch zugonschte vun OpenCL z'ënnerstëtzen, déi op kee Fall mat der voller Notzung vun NVIDIA GPUs interferes (a souguer hëlleft, merci fir Schwéierpunkt Entwécklung an Optimisatioun op eng Ëmsetzung vun all Format fir d'GPU amplaz vun zwou Implementatioune virdrun).
  • Ënnerstëtzung fir nei SIMD Instruktiounssets - AVX2, AVX-512 (inklusiv fir déi zweet Generatioun Xeon Phi) a MIC (fir déi éischt Generatioun) - souwéi méi universell a komplett Notzung vun SIMD an Implementatioune vu ville Formater, dorënner d'Benotzung vun virdrun ënnerstëtzt Instruktioun setzt op AVX an XOP op x86 (-64) an
    NEON, ASIMD an AltiVec op ARM, Aarch64 a POWER, respektiv. (Deelweis als Deel vum GSoC 2015.)
  • Vill Optimisatiounen fir CPU an OpenCL, souwuel fir méi effizient mat enger grousser Unzuel vun Hashes gläichzäiteg ze schaffen (zum Beispill, 320 Milliounen SHA-1 Hashes op der GPU lueden gouf getest), an d'Geschwindegkeet vun den Hash Berechnungen ze erhéijen. E puer vun dësen Optimisatiounen sinn universell, e puer decken verschidden Ënnerdeeler vu Formater, a vill si spezifesch fir eenzel Formater.
  • (Auto-) Konfiguratioun vun der optimaler Pufferung vu gepréiften Passwierder op der CPU ("—tune=auto —verbosity=5") an optimal Aarbechtsgréissten op OpenCL (Standard aktivéiert), inklusiv de luesen Opbau vun NVIDIA GTX berücksichtegt Serie GPUs zu voll Betribssystemer Frequenz 10xx a méi nei. Benotzt tatsächlech gelueden Hashes an déi aktuell Längt vun de Passwierder déi gepréift ginn (wann et am Viraus bekannt ass) fir sou Autotuning.
  • Füügt e Compiler fir "dynamesch Ausdréck" direkt op der Kommandozeil uginn an implementéiert nei Hybrid Hash-Typen, zum Beispill "-format=dynamic='sha1(md5($p).$s)'", berechent op der CPU mat SIMD . Als Komponente vun esou Ausdrock ginn Dosende vu schnelle Hashes ënnerstëtzt (vu gemeinsame wéi MD5 bis mëttelméisseg exotesch wéi Whirlpool), Ënnersträichkoncatenatioun, Kodéierung an Decodéierung, Charakter Case Konversioun, Referenzen op Passwuert, Salz, Benotzernumm a Stringkonstanten.
  • Eliminatioun vun ongewollten Differenzen aus hashcat, dorënner Ënnerstëtzung fir virdrun hashcat-spezifesch Regelen (wordlist Regel commandéiert), Iwwergank zu OpenCL Apparat Nummer vun 1, Standard Notzung vun der selwechter Passwuert Längt (normalerweis Längt 7) fir Leeschtung Tester.
  • Nei Modi fir verifizéierbar Passwierder ze generéieren (Knackenmodi), dorënner PRINCE aus hashcat (formt "Sätze" andeems Dir e puer Wierder an enger Erhéijung vun der Reiefolleg vun der Gesamtlängt kombinéiert), Ënnersätz (bréngt Passwierder mat enger net genuch Zuel vu verschiddene Charakteren op, och wann dës Zeechen kommen aus enger grousser Rei vu méiglechen) an Hybrid extern (erlaabt extern Modi, beschriwwen an Konfiguratiounsdateien an enger C-ähnlecher Sprooch, fir vill verifizéierbar Passwierder ze generéieren op Basis vun all Basis "Wuert" aus engem anere Modus kritt). Och e puer nei virdefinéiert extern Modi.
  • Zousätzlech Funktiounen fir e puer Modi gläichzäiteg ze benotzen (een op der anerer - Stacking), wéi och fir Sets vu Reegelen ze benotzen (Wordlist Reegele Stacking).
  • Verbesserunge fir d'Maskemodi (graduell Ausdehnung vun der Mask an engem spezifizéierte Gamme vu Längt, Uwendung vun enger Mask op der Säit vum OpenCL-Apparat oder FPGA-Board) an eenzege Rëss (raisonnabel Verhalen op Apparater déi eng grouss Unzuel vun Hashes parallel berechent , fir déi virdru net genuch verifizéierbar Passwierder an dësem Modus waren, an och Restriktiounen op Erënnerungsverbrauch).
  • Vill Verbesserunge fir Unicode an aner Kodéierungen a verschiddene Subsystemer z'ënnerstëtzen.
  • Vill Verbesserunge fir * 2john Programmer (déi Dateie vu verschiddene Formater konvertéieren fir
    benotzt mam John), besonnesch wpapcap2john (handhabt WiFi Traffic).
  • Et gi vill nei Kommandozeiloptiounen, Astellungen an john.conf, Skriptoptiounen konfiguréieren an entspriechend nei Fonctiounen, net all déi hei ernimmt goufen.
  • D'Verbesserung vun der Codequalitéit dank der agebauter Ënnerstëtzung fir Debug Builds mat AddressSanitizer (virdrun) an UndefinedBehaviorSanitizer (bäigefüügt), andeems en agebaute Format Fuzzer (als Deel vum GSoC 2015) benotzt, kontinuéierlech Integratioun benotzt (baut fir Dosende vu Betribssystem a Compiler Kombinatiounen a testen se fir korrekt Ënnerstëtzung fir all Formater).

Source: linux.org.ru

Setzt e Commentaire