John the Ripper 1.9.0-jumbo-1 kanthi dhukungan FPGA

dirilis versi anyar saka paling tuwa sandi didhukung program guessing John the Ripper 1.9.0-jumbo-1. (Proyek wis berkembang wiwit 1996.) On kaca proyek Sumber kasedhiya kanggo diundhuh, uga rakitan siap kanggo Windows.

Kacathet yen 1.8.0 taun wis liwati wiwit rilis versi 1-jumbo-4.5, sajrone luwih saka 6000 owah-owahan (git commits) digawe saka luwih saka 80 pangembang. Sajrone periode iki, pangembang dianjurake kanggo nggunakake edisi saiki saka GitHub, negara kang maintained stabil senadyan owah-owahan digawe thanks kanggo integrasi terus-terusan, sing kalebu verifikasi awal saben owah-owahan (panyuwunan tarik) ing akeh platform. Fitur khusus versi anyar yaiku tampilan dhukungan kanggo FPGA (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 entuk ~ 119k c / s karo 2 ^ 5 iterasi ("$ 2b $ 05") kanthi konsumsi daya watara 27 watt Ngartekno ngluwihi asil kanggo GPUs 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 FPGAs) 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 "--mask", 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 utama liyane:

  • Dhukungan kanggo akeh 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. Secara total, 80 format wis ditambahake ing CPU lan 47 ing OpenCL (lan sawetara sing lawas wis dibusak minangka terpadu menyang anyar lan lungse). 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. (SebagΓ©yan minangka bagΓ©an saka GSoC 2015.)
  • 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 saka tembung sandhi sing wis dicenthang ing CPU ("-tune=auto β€”verbosity=5") lan ukuran proyek sing optimal ing OpenCL (diaktifake kanthi gawan), kalebu nganggep ramp-up alon NVIDIA GTX GPU seri kanggo frekuensi operasi lengkap 10xx lan 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: linux.org.ru

Add a comment