John the Ripper 1.9.0-jumbo-1 yakaburitswa neFPGA rutsigiro

Yakasunungurwa vhezheni itsva yekare yakatsigirwa password yekufungidzira chirongwa John the Ripper 1.9.0-jumbo-1 (purojekiti yave ichikudziridzwa kubva 1996). Makore 1.8.0 apfuura kubva pakaburitswa vhezheni yapfuura 1-jumbo-4.5, panguva iyo inodarika 6000 shanduko (git commits) yakagadzirwa kubva kune vanopfuura makumi masere vanogadzira. Thanks to kuenderera mberi kubatanidzwa, iyo inosanganisira yekutanga cheki yekuchinja kwega kwega (kudhonza chikumbiro) pamapuratifomu mazhinji, panguva ino vagadziri vakurudzira kushandisa. yazvino edition kubva kuGitHub, mamiriro ezvinhu akachengetwa akagadzikana pasinei nekuchinja kwakaitwa. Main project code inoparadzirwa ne pasi peGPLv2+ rezinesi, uye kodhi yezvimwe zvikamu iri pasi perezinesi reBSD.

Chinhu chakakosha cheiyo vhezheni nyowani kutaridzika kweFPGA rutsigiro (kuwedzera kune CPU, GPU uye Xeon Phi). Zvemapuranga ZTEX 1.15y, kusanganisira 4 FPGA chips uye yakatanga kushandiswa kunyanya kuBitcoin mining, 7 marudzi e password hashes ave kushandiswa: bcrypt, classic descrypt (kusanganisira bigcrypt), sha512crypt, sha256crypt, md5crypt (kusanganisira Apache apr1 uye AIX smd5), Drupal7 uye phpass (yakashandiswa , kunyanya muWordPress). Mamwe acho anoitwa paFPGA kekutanga.

Kune bcrypt, iyo yakaitwa ye ~ 119k c/s ine 2 ^ 5 iterations ("$ 2b $ 05") ine simba rekushandisa ~ 27 watts inodarika zvakanyanya mhedzisiro yeazvino maGPU pabhodhi, pamutengo wehardware, uye pawatt. . Uyewo inotsigirwa masumbu yemapuranga emhando iyi, iyo yakaedzwa kusvika kumapuranga e16 (64 FPGA chips) inodzorwa kubva kune imwe chete Raspberry Pi 2. Izvo zvinowanzoitwa naJohn the Ripper kushanda kunotsigirwa, kusanganisira nzira dzose dzekufungidzira password uye panguva imwe chete kurodha kwenhamba yakawanda yehashes. .

Kuti tikurumidze basa, takashandisa kushandiswa kwemask (iyo "-mask" modhi, kusanganisira pamwe nemamwe modhi) uye kuenzanisa kweakaverengerwa hashes neaya akaremerwa parutivi rweFPGA. Kubva pakuona kwekuita, akawanda emagadzirirwo (e.g. sha512crypt uye Drupal7) zvidhinha zvinosanganisira multi-threaded processor cores (soft CPU cores) inopindirana nekriptographic cores inoshandiswa. Kuvandudzwa kwekushanda uku kwakatungamirirwa naDenis Burykin mukubatana nevamwe vanogadzira jumbo.

Dzimwe shanduko dzakakosha:

  • Tsigiro yehuwandu hukuru hwemamwe marudzi ehashes, ciphers, nezvimwewo, kusanganisira ese ari maviri echinyakare password hashes (semuenzaniso, kubva kushanduro itsva dzeQNX), pamwe nekriptocurrency wallet, encrypted archives uye encrypted file system (semuenzaniso, Bitlocker uye. FreeBSD geli), pamwe nerutsigiro rwemhando nyowani dzefomati dzakambotsigirwa (semuenzaniso, yakawedzera rutsigiro rwebcrypt-pbkdf yeOpenBSD softraid) nezvimwe zvakawanda. Pakazara, makumi masere mafomati akawedzerwa paCPU uye makumi mana nemanomwe paOpenCL. Huwandu hwemafomati hwave 80 paCPU (kana 47 isingasanganisire "simba" mafomati akagadziriswa kubva kumafaira ekugadzirisa) uye 407 paOpenCL.
  • Kuramba kutsigira mutauro weCUDA uchifarira OpenCL, iyo isingakanganise kushandiswa kwakazara kweNVIDIA GPUs (uye inotobatsira, nekuda kwekutarisa kusimudzira uye optimization pane imwe chete yekuitwa kwega rega fomati yeGPU pane maviri ekuita kare).
  • Tsigiro yemaseti matsva emirairo yeSIMD - AVX2, AVX-512 (kusanganisira yechizvarwa chechipiri Xeon Phi) uye MIC (yechizvarwa chekutanga) - pamwe nekushandiswa kwepasirese uye kwakazara kweSIMD mukuita mafomati akawanda, kusanganisira kushandiswa kwe. raimbo rakatsigirwa rairo rinoisa kuAVX uye XOP pa x86 (-64) uye
    NEON, ASID uye AltiVec paARM, Aarch64 uye POWER, zvichiteerana.

  • Kwakawanda optimizations yeCPU neOpenCL, zvese kushanda nesimba nehuwandu hukuru hwehashi panguva imwe chete (semuenzaniso, kurodha 320 miriyoni SHA-1 hashes paGPU yakaedzwa), uye kuwedzera kukurumidza kwekuverenga hashi. Mamwe eaya ma optimizations ari epasirese, mamwe anovhara akasiyana mafomati mafomati, uye mazhinji akananga kune ega mafomati.
  • (Otomatiki-) gadziriso yeyakakwana buffering yemapassword akatariswa paCPU (β€œβ€”tune=otoβ€”verbosity=5”) uye akakwana saizi yebasa paOpenCL (inogoneswa neyakagadzika), kusanganisira kurangarira inononoka rampu kusvika kuzere kushanda frequency. yeNVIDIA GTX yakatevedzana GPUs 10xx uye nyowani. Kushandisa maheshi akaremerwa uye hurefu chaihwo hwemapassword ari kutariswa (kana achinge azivikanwa pachine nguva) kune akadaro auto-tuning.
  • Kuwedzera compiler ye "dynamic expressions" inotsanangurwa zvakananga pamutsetse wekuraira uye kushandisa mhando nyowani dzehybrid hashi, semuenzaniso "-format=dynamic='sha1(md5($p).$s)'", yakaverengerwa paCPU uchishandisa SIMD. . Sezvikamu zvekutaura kwakadaro, akawanda ekukurumidza hashe anotsigirwa (kubva kune akajairwa seMD5 kune ane mwero ekunze seWhirlpool), substring concatenation, encoding uye decoding, hunhu kutendeuka, mareferensi epassword, munyu, zita rekushandisa uye tambo zvinoramba.
  • Kubvisa misiyano isingadikanwi kubva kuhashcat, kusanganisira tsigiro yeyaimbova hashcat-yakananga mitemo (wordlist mutemo mirairo), shanduko kuenda kuOpenCL mudziyo wenhamba kubva pa1, default kushandiswa kwehurefu hwepasiwedhi imwechete (kazhinji kureba 7) yebvunzo dzekuita.
  • Mamiriro matsva ekugadzira mapassword anovimbiswa (mamodhi ekupwanya), kusanganisira PRINCE kubva kuhashcat (mafomu "mitsara" nekubatanidza mazwi akati wandei mukuwedzera kurongeka kwehurefu hwakazara), subsets (inounza mapassword ane nhamba isina kukwana yemavara akasiyana, kunyangwe mavara aya akauya. kubva kune yakakura seti yezvinogona kuitika) uye yakasanganiswa yekunze (inobvumira ekunze modhi, inotsanangurwa mumafaira ekugadzirisa mumutauro wakafanana neC, kuburitsa akawanda evhavhavha anovimbika zvichibva pane imwe neimwe yekutanga "izwi" rinogamuchirwa kubva kune imwe modhi). Zvakare, akati wandei matsva akafanotsanangurwa ekunze modhi.
  • Kuwedzera masimba ekushandisa akawanda modes panguva imwe chete (imwe pamusoro peimwe - stacking), pamwe nekushandisa seti yemitemo (wordlist mitemo stacking).
  • Kuvandudzwa kwemasiki modhi (zvishoma nezvishoma kutambanudza mask mune yakatarwa huwandu hwehurefu, kushandiswa kwemask padivi peOpenCL mudziyo kana FPGA bhodhi) uye kutsemuka kamwe chete (kune musoro maitiro pamidziyo inoverenga nhamba huru yehashi zvakafanana. , iyo yaimbove isina mapassword akakwana anogoneka mune iyi modhi, uye zvakare kurambidzwa pakushandisa ndangariro).
  • Mazhinji kuvandudzwa kutsigira Unicode uye mamwe encodings mune akasiyana subsystems.
  • Magadzirirwo mazhinji kune *2john zvirongwa (zvinoshandura mafaera emhando dzakasiyana dze
    shandisa naJohn), kunyanya wpapcap2john (inobata WiFi traffic).

  • Kune mitsva mitsva yemirairo sarudzo, marongero mujohn.conf, gadzirisa script sarudzo uye inoenderana maitiro matsva, kwete ese akataurwa pano.
  • Kuvandudza kodhi yemhando yekutenda kune yakavakirwa-mukati tsigiro yedebug inovaka neAddressSanitizer (yaimbova) uye UndefinedBehaviorSanitizer (yakawedzerwa), ichiwedzera yakavakirwa-mukati fomati fuzzer (sechikamu cheGSoC 2015), uchishandisa inoenderera kubatanidzwa (inovaka akawanda ekushandisa system uye compiler. kusanganisa uye kudziyedza kuti iwane rutsigiro rwakakwana kune ese mafomati).

Source: opennet.ru

Voeg