John the Ripper 1.9.0-jumbo-1 dirilis kanthi dhukungan FPGA

dirilis versi anyar saka program guessing sandi paling tuwa sing didhukung John the Ripper 1.9.0-jumbo-1 (proyek kasebut wis dikembangake wiwit taun 1996). 1.8.0 taun wis liwati wiwit release saka versi sadurungé 1-jumbo-4.5, sajrone luwih saka 6000 owah-owahan (git commits) digawe saka luwih saka 80 pangembang. Matur nuwun kanggo integrasi terus-terusan, sing kalebu mriksa awal saben owah-owahan (panyuwunan tarik) ing akeh platform, sajrone wektu iki para pangembang dianjurake nggunakake edisi saiki saka GitHub, negara sing tetep stabil sanajan ana owah-owahan. Kode proyek utama disebarake dening ing lisensi GPLv2 +, lan kode sawetara komponen ana ing lisensi BSD.

Fitur khusus saka versi anyar yaiku tampilan dhukungan FPGA (saliyane CPU, GPU lan Xeon Phi). Kanggo papan ZTEX 1.15y, kalebu 4 Kripik FPGA lan asline digunakake utamane kanggo pertambangan Bitcoin, 7 jinis hash sandi saiki ditindakake: bcrypt, descrypt klasik (kalebu bigcrypt), sha512crypt, sha256crypt, md5crypt (kalebu Apache apr1 lan AIX smd5), Drupal7 lan phpass (digunakake. , utamane ing WordPress). Sawetara dileksanakake ing FPGA kanggo pisanan.

Kanggo bcrypt, kinerja sing diraih ~119k c/s kanthi iterasi 2^5 ("$2b$05") kanthi konsumsi daya ~27 watt ngluwihi asil kanggo GPU paling anyar saben papan, saben rega hardware, lan saben watt. . Uga didhukung kluster saka Papan saka jinis iki, kang wis dites nganti 16 Papan (64 Kripik FPGA) kontrol saka siji Raspberry Pi 2. Biasane John fungsi Ripper didhukung, kalebu kabeh sandi mode guessing lan download simultaneous saka nomer akeh hashes. .

Kanggo nyepetake karya, kita ngetrapake panggunaan topeng (mode "-topeng", kalebu kombinasi karo mode liyane) lan mbandhingake hash sing diwilang karo sing dimuat ing sisih FPGA. Saka perspektif implementasine, akeh desain (contone. sha512crypt lan Drupal7) pamblokiran dumadi saka inti prosesor multi-Utas (inti CPU alus) sesambungan karo inti cryptographic digunakake. Pangembangan fungsi iki dipimpin dening Denis Burykin kanthi koordinasi karo pangembang jumbo liyane.

Owah-owahan penting liyane:

  • Dhukungan kanggo macem-macem jinis tambahan hash, ciphers, lan sapiturute, kalebu loro hash sandi klasik (contone, saka versi anyar saka QNX), uga dompet cryptocurrency, arsip ndhelik lan sistem file ndhelik (contone, Bitlocker lan FreeBSD geli), uga dhukungan kanggo jinis format anyar sing didhukung sadurunge (contone, dhukungan tambahan kanggo bcrypt-pbkdf kanggo softraid OpenBSD) lan liya-liyane. Total, 80 format wis ditambahake ing CPU lan 47 ing OpenCL. Jumlah total format saiki ana 407 ing CPU (utawa 262 ora kalebu format "dinamis" sing dikonfigurasi saka file konfigurasi) lan 88 ing OpenCL.
  • Nolak ndhukung basa CUDA kanggo OpenCL, sing ora bisa ngganggu panggunaan GPU NVIDIA (malah mbantu, amarga fokus ing pangembangan lan optimalisasi ing siji implementasine saben format kanggo GPU tinimbang rong implementasine sadurunge).
  • Dhukungan kanggo set instruksi SIMD anyar - AVX2, AVX-512 (kalebu kanggo Xeon Phi generasi kapindho) lan MIC (kanggo generasi pisanan) - uga panggunaan SIMD sing luwih universal lan lengkap ing implementasine akeh format, kalebu panggunaan instruksi sadurunge didhukung mranata nganti AVX lan XOP ing x86 (-64) lan
    NEON, ASIMD lan AltiVec ing ARM, Aarch64 lan POWER.

  • Akeh optimasi kanggo CPU lan OpenCL, loro kanggo luwih irit bisa karo nomer akeh hash bebarengan (contone, loading 320 yuta SHA-1 hash ing GPU dites), lan kanggo nambah kacepetan petungan hash. Sawetara optimasi iki universal, sawetara nyakup subset format sing beda, lan akeh sing spesifik kanggo format individu.
  • (Otomatis) konfigurasi buffering optimal sandhi sing wis dicenthang ing CPU ("-tune = otomatis -verbosity = 5") lan ukuran proyek sing optimal ing OpenCL (diaktifake kanthi gawan), kalebu njupuk ramp alon nganti frekuensi operasi lengkap. saka GPU seri NVIDIA GTX 10xx lan luwih anyar. Nggunakake hash sing bener dimuat lan dawa sandhi sing dicenthang (yen wis dingerteni sadurunge) kanggo nyetel otomatis kasebut.
  • Nambahake compiler kanggo "ekspresi dinamis" sing ditemtokake langsung ing baris printah lan ngleksanakake jinis hash hibrida anyar, contone "-format=dynamic='sha1(md5($p).$s)'", diwilang ing CPU nggunakake SIMD . Minangka komponen saka ekspresi kasebut, puluhan hash cepet didhukung (saka sing umum kaya MD5 nganti sing cukup eksotis kaya Whirlpool), concatenation substring, enkoding lan dekoding, konversi huruf cilik, referensi kanggo sandi, uyah, jeneng pangguna lan konstanta string.
  • Ngilangi beda sing ora dikarepake saka hashcat, kalebu dhukungan kanggo aturan khusus hashcat sadurunge (prentah aturan wordlist), transisi menyang piranti OpenCL sing nomer saka 1, panggunaan standar sing dawa sandi padha (biasane dawa 7) ing tes kinerja.
  • Mode anyar kanggo ngasilake tembung sandhi sing bisa diverifikasi (mode cracking), kalebu PRINCE saka hashcat (wujud "frasa" kanthi nggabungake sawetara tembung kanthi nambahi urutan total dawa), subset (nggawe tembung sandhi kanthi jumlah karakter sing ora cukup, sanajan karakter kasebut teka. saka pesawat gedhe bisa) lan external Sato (ngidini mode external, diterangake ing file konfigurasi ing basa C-kaya, kanggo generate akeh sandhi verifiable adhedhasar saben "tembung" dhasar ditampa saka mode liyane). Uga, sawetara mode eksternal sing wis ditemtokake anyar.
  • Kapabilitas tambahan kanggo nggunakake sawetara mode bebarengan (siji ing ndhuwur liyane - numpuk), uga kanggo nggunakake set aturan (wordlist aturan numpuk).
  • Dandan kanggo mode topeng (regangan bertahap saka topeng ing sawetara dawa sing ditemtokake, aplikasi topeng ing sisih pinggir piranti OpenCL utawa papan FPGA) lan retak tunggal (prilaku sing wajar ing piranti sing ngetung pirang-pirang hashes kanthi podo karo. , sing sadurunge ora cukup tembung sandhi sing bisa diverifikasi ing mode iki, lan uga watesan babagan konsumsi memori).
  • Akeh dandan kanggo ndhukung Unicode lan enkoding liyane ing macem-macem subsistem.
  • Akeh dandan kanggo program *2john (sing ngowahi file saka macem-macem format kanggo
    gunakake karo john), utamane wpapcap2john (nangani lalu lintas WiFi).

  • Ana akeh opsi baris printah anyar, setelan ing john.conf, ngatur opsi script lan fitur anyar sing cocog, ora kabeh sing kasebut ing kene.
  • Ngapikake kualitas kode thanks kanggo dhukungan dibangun ing debug mbangun karo AddressSanitizer (sadurunge) lan UndefinedBehaviorSanitizer (ditambahake), nambah fuzzer format dibangun ing (minangka bagéan saka GSoC 2015), nggunakake integrasi terus-terusan (dibangun kanggo puluhan sistem operasi lan compiler. kombinasi lan nyoba kanggo dhukungan sing bener kanggo kabeh format).

Source: opennet.ru

Add a comment