John the Ripper 1.9.0-jumbo-1 release na may suporta sa FPGA

Inilabas bagong bersyon ng pinakalumang sinusuportahang programa sa paghula ng password John the Ripper 1.9.0-jumbo-1 (ang proyekto ay nabuo mula noong 1996). 1.8.0 taon na ang nakalipas mula noong inilabas ang nakaraang bersyon 1-jumbo-4.5, kung saan mahigit 6000 pagbabago (git commits) ang ginawa mula sa mahigit 80 developer. Salamat kay patuloy na integrasyon, na kinabibilangan ng paunang pagsusuri ng bawat pagbabago (paghiling ng paghila) sa maraming platform, sa panahong ito inirerekomenda ng mga developer ang paggamit kasalukuyang edisyon mula sa GitHub, ang estado kung saan ay pinananatiling matatag sa kabila ng mga pagbabagong ginawa. Pangunahing code ng proyekto ipinamahagi ni sa ilalim ng lisensya ng GPLv2+, at ang code ng ilang bahagi ay nasa ilalim ng lisensya ng BSD.

Ang isang espesyal na tampok ng bagong bersyon ay ang hitsura ng suporta sa FPGA (bilang karagdagan sa CPU, GPU at Xeon Phi). Para sa mga board ZTEX 1.15y, kasama ang 4 na FPGA chips at orihinal na ginagamit pangunahin para sa pagmimina ng Bitcoin, 7 uri ng mga hash ng password ang ipinatupad na ngayon: bcrypt, classic descrypt (kabilang ang bigcrypt), sha512crypt, sha256crypt, md5crypt (kabilang ang Apache apr1 at AIX smd5), Drupal7 at phpass (ginamit , lalo na sa WordPress). Ang ilan sa mga ito ay ipinatupad sa FPGA sa unang pagkakataon.

Para sa bcrypt, ang nakamit na performance na ~119k c/s na may 2^5 na mga pag-ulit ("$2b$05") na may konsumo ng kuryente na ~27 watts ay higit na lumalampas sa mga resulta para sa pinakabagong mga GPU bawat board, bawat presyo ng hardware, at bawat watt . Sinusuportahan din mga kumpol ng mga board ng ganitong uri, na nasubok hanggang sa 16 na board (64 FPGA chips) na kinokontrol mula sa iisang Raspberry Pi 2. Sinusuportahan ang karaniwang pag-andar ng John the Ripper, kabilang ang lahat ng mga mode ng paghula ng password at sabay-sabay na pag-download ng malaking bilang ng mga hash .

Para mapabilis ang gawain, ipinatupad namin ang paggamit ng mask (ang "β€”mask" mode, kasama ang kumbinasyon ng iba pang mga mode) at paghahambing ng mga nakalkulang hash sa mga na-load sa gilid ng FPGA. Mula sa pananaw ng pagpapatupad, marami sa mga disenyo (hal. sha512crypt at Drupal7) mga bloke na binubuo ng mga multi-threaded na mga core ng processor (mga soft CPU core) na nakikipag-ugnayan sa mga cryptographic core ay ginagamit. Ang pagbuo ng pagpapaandar na ito ay pinangunahan ni Denis Burykin sa pakikipag-ugnayan sa iba pang mga jumbo developer.

Iba pang mahahalagang pagbabago:

  • Suporta para sa isang malaking bilang ng mga karagdagang uri ng mga hash, cipher, atbp., kabilang ang parehong mga classic na hash ng password (halimbawa, mula sa mga bagong bersyon ng QNX), pati na rin ang mga wallet ng cryptocurrency, mga naka-encrypt na archive at mga naka-encrypt na file system (halimbawa, Bitlocker at FreeBSD geli), pati na rin ang suporta para sa mga bagong uri ng mga format na dati nang sinusuportahan (halimbawa, nagdagdag ng suporta para sa bcrypt-pbkdf para sa OpenBSD softraid) at marami pang iba. Sa kabuuan, 80 format ang naidagdag sa CPU at 47 sa OpenCL. Ang kabuuang bilang ng mga format ay 407 na ngayon sa CPU (o 262 hindi kasama ang mga "dynamic" na format na na-configure mula sa mga configuration file) at 88 sa OpenCL.
  • Ang pagtanggi na suportahan ang wikang CUDA na pabor sa OpenCL, na sa anumang paraan ay hindi nakakasagabal sa buong paggamit ng mga NVIDIA GPU (at nakakatulong pa nga, salamat sa pagtutok sa pag-unlad at pag-optimize sa isang pagpapatupad ng bawat format para sa GPU sa halip na dalawang pagpapatupad dati).
  • Suporta para sa mga bagong set ng pagtuturo ng SIMD - AVX2, AVX-512 (kabilang ang para sa ikalawang henerasyong Xeon Phi) at MIC (para sa unang henerasyon) - pati na rin ang mas pangkalahatan at kumpletong paggamit ng SIMD sa mga pagpapatupad ng maraming mga format, kabilang ang paggamit ng dating sinusuportahang pagtuturo ay nagse-set up sa AVX at XOP sa x86(-64) at
    NEON, ASIMD at AltiVec sa ARM, Aarch64 at POWER, ayon sa pagkakabanggit.

  • Maraming mga pag-optimize para sa CPU at OpenCL, kapwa upang mas mahusay na gumana sa isang malaking bilang ng mga hash nang sabay-sabay (halimbawa, nasubok ang paglo-load ng 320 milyong SHA-1 na mga hash sa GPU), at upang mapataas ang bilis ng mga pagkalkula ng hash. Ang ilan sa mga pag-optimize na ito ay pangkalahatan, ang ilan ay sumasaklaw sa iba't ibang mga subset ng mga format, at marami ang partikular sa mga indibidwal na format.
  • (Awtomatikong) configuration ng pinakamainam na pag-buffer ng mga naka-check na password sa CPU (β€œβ€”tune=auto β€”verbosity=5”) at pinakamainam na laki ng trabaho sa OpenCL (pinagana bilang default), kabilang ang pagsasaalang-alang sa mabagal na pag-rampa hanggang sa buong dalas ng pagpapatakbo ng NVIDIA GTX series GPUs 10xx at mas bago. Paggamit ng aktwal na load na mga hash at ang aktwal na haba ng mga password na sinusuri (kapag alam na ito nang maaga) para sa naturang auto-tuning.
  • Pagdaragdag ng compiler para sa "dynamic na expression" na direktang tinukoy sa command line at pagpapatupad ng mga bagong hybrid na uri ng hash, halimbawa "-format=dynamic='sha1(md5($p).$s)'", na kinakalkula sa CPU gamit ang SIMD . Bilang mga bahagi ng naturang mga expression, dose-dosenang mabilis na mga hash ang sinusuportahan (mula sa mga karaniwan tulad ng MD5 hanggang sa katamtamang kakaiba tulad ng Whirlpool), substring concatenation, encoding at decoding, character case conversion, mga reference sa password, asin, username at string constants.
  • Pag-aalis ng mga hindi gustong pagkakaiba mula sa hashcat, kabilang ang suporta para sa dati nang hashcat-specific na mga panuntunan (mga wordlist rule command), paglipat sa OpenCL device numbering mula 1, default na paggamit ng parehong mga haba ng password (karaniwang haba 7) para sa mga pagsubok sa pagganap.
  • Mga bagong mode para sa pagbuo ng mga nabe-verify na password (cracking mode), kabilang ang PRINCE mula sa hashcat (bumubuo ng "mga parirala" sa pamamagitan ng pagsasama-sama ng ilang salita sa pagtaas ng pagkakasunud-sunod ng kabuuang haba), mga subset (naglalabas ng mga password na may hindi sapat na bilang ng magkakaibang mga character, kahit na dumating ang mga character na ito mula sa isang malaking hanay ng mga posible) at hybrid na panlabas (pinapayagan ang mga panlabas na mode, na inilarawan sa mga file ng pagsasaayos sa isang wikang tulad ng C, na bumuo ng maraming nabe-verify na mga password batay sa bawat pangunahing "salita" na natanggap mula sa isa pang mode). Gayundin, maraming bagong paunang-natukoy na mga panlabas na mode.
  • Karagdagang mga tampok para sa paggamit ng ilang mga mode nang sabay-sabay (isa sa ibabaw ng isa - stacking), pati na rin para sa paggamit ng mga hanay ng mga panuntunan (wordlist rules stacking).
  • Mga pagpapabuti sa mga mask mode (unti-unting pag-uunat ng mask sa isang tinukoy na hanay ng mga haba, paglalagay ng mask sa gilid ng OpenCL device o FPGA board) at single crack (makatwirang pag-uugali sa mga device na nagkalkula ng malaking bilang ng mga hash nang magkatulad. , kung saan dati ay walang sapat na nabe-verify na mga password sa mode na ito, at mga paghihigpit din sa pagkonsumo ng memorya).
  • Maraming mga pagpapabuti sa suporta para sa Unicode at iba pang mga pag-encode sa iba't ibang mga subsystem.
  • Maraming mga pagpapabuti sa *2john programs (na nagko-convert ng mga file ng iba't ibang format para sa
    gamitin kasama si john), lalo na ang wpapcap2john (pangasiwaan ang trapiko ng WiFi).

  • Maraming mga bagong opsyon sa command line, mga setting sa john.conf, i-configure ang mga opsyon sa script at mga kaukulang bagong feature, hindi lahat ay nabanggit dito.
  • Pagpapabuti ng kalidad ng code salamat sa built-in na suporta para sa mga build ng debug gamit ang AddressSanitizer (dati) at UndefinedBehaviorSanitizer (idinagdag), pagdaragdag ng built-in na format na fuzzer (bilang bahagi ng GSoC 2015), gamit ang tuluy-tuloy na pagsasama (bumubuo para sa dose-dosenang operating system at compiler mga kumbinasyon at pagsubok sa mga ito para sa tamang suporta para sa lahat ng mga format).

Pinagmulan: opennet.ru

Magdagdag ng komento