John the Ripper 1.9.0-jumbo-1 ndi thandizo la FPGA

Zatulutsidwa mtundu watsopano wa pulogalamu yakale kwambiri yolozera mawu achinsinsi John the Ripper 1.9.0-jumbo-1. (Ntchitoyi yakhala ikukula kuyambira 1996.) Pa tsamba la polojekiti Magwero alipo kuti atsitsidwe, komanso misonkhano yokonzekera ya Windows.

Zadziwika kuti zaka 1.8.0 zapita kuchokera kutulutsidwa kwa mtundu wa 1-jumbo-4.5, pomwe zosintha zopitilira 6000 (git commits) zidapangidwa kuchokera kwa opanga oposa 80. Panthawi imeneyi, opanga adalimbikitsa kugwiritsa ntchito kusindikiza kwaposachedwa kuchokera ku GitHub, zomwe zidakhalabe zokhazikika ngakhale kusintha komwe kunapangidwa kuthokoza kuphatikiza mosalekeza, zomwe zimaphatikizapo kutsimikizira koyambirira kwa kusintha kulikonse (koka pempho) pamapulatifomu ambiri. Mbali yapadera ya mtundu watsopano ndi mawonekedwe a chithandizo cha FPGA (FPGA) kuwonjezera pa CPU, GPU ndi Xeon Phi.


Za matabwa ZTEX 1.15y, kuphatikiza tchipisi 4 za FPGA ndipo zomwe zidagwiritsidwa ntchito makamaka pamigodi ya Bitcoin, mitundu 7 ya mawu achinsinsi akugwiritsidwa ntchito: bcrypt, classic descrypt (kuphatikiza bigcrypt), sha512crypt, sha256crypt, md5crypt (kuphatikiza Apache apr1 ndi AIX smd5), Drupal7 ndi phpass (yogwiritsidwa ntchito , makamaka mu WordPress). Zina mwazo zimayikidwa pa FPGA koyamba. Kwa bcrypt, magwiridwe antchito a ~ 119k c/s ndi 2 ^ 5 iterations ("$ 2b $ 05") pogwiritsa ntchito mphamvu pafupifupi 27 watts amaposa zotsatira za ma GPU aposachedwa pa bolodi, pamtengo wa Hardware ndi watt. Amathandizidwanso masango a matabwa amtundu uwu, omwe ayesedwa mpaka matabwa a 16 (64 FPGAs) olamulidwa kuchokera ku Raspberry Pi 2 imodzi. Zomwe zimagwiritsidwa ntchito nthawi zonse za John the Ripper zimathandizidwa, kuphatikizapo mitundu yonse yongoganizira zachinsinsi komanso kutsitsa panthawi imodzi ya ma hashes ambiri. Kuti tifulumizitse ntchitoyi, tidagwiritsa ntchito chigoba (mawonekedwe a "--mask", kuphatikiza ndi mitundu ina) ndikuyerekeza ma hashes owerengeka ndi omwe adapakidwa mbali ya FPGA. Kutengera momwe mungakhazikitsire, zambiri zamapangidwe (mwachitsanzo. sha512crypt ndi Drupal7) midadada yokhala ndi ma processor cores amitundu yambiri (soft CPU cores) yolumikizana ndi ma cryptographic cores amagwiritsidwa ntchito. Kukula kwa magwiridwe antchito awa adatsogozedwa ndi Denis Burykin mogwirizana ndi opanga ma jumbo ena.

Zosintha zina zazikulu:

  • Kuthandizira mitundu yambiri yowonjezera ya ma hashes, ma ciphers, ndi zina zambiri, kuphatikiza ma hashes achinsinsi (mwachitsanzo, kuchokera kumitundu yatsopano ya QNX), komanso ma wallet a cryptocurrency, zolemba zakale ndi mafayilo osungidwa (mwachitsanzo, Bitlocker ndi FreeBSD geli), komanso kuthandizira mitundu yatsopano yamitundu yomwe idathandizidwa kale (mwachitsanzo, thandizo lowonjezera la bcrypt-pbkdf la OpenBSD softraid) ndi zina zambiri. Pazonse, mawonekedwe a 80 awonjezedwa pa CPU ndi 47 pa OpenCL (ndipo ochepa akale achotsedwa monga ophatikizidwa mu zatsopano ndi zosatha). Chiwerengero chonse cha mafomu tsopano ndi 407 pa CPU (kapena 262 osaphatikiza ma "dynamic" opangidwa kuchokera kumafayilo osintha) ndi 88 pa OpenCL.
  • Kukana kuthandizira chilankhulo cha CUDA mokomera OpenCL, zomwe sizimasokoneza kugwiritsa ntchito kwathunthu kwa NVIDIA GPU (ndipo zimathandiza, chifukwa choyang'ana chitukuko ndi kukhathamiritsa pa kukhazikitsa kumodzi kwa mtundu uliwonse wa GPU m'malo mwa kukhazikitsa kuwiri koyambirira).
  • Kuthandizira kwa ma seti atsopano a malangizo a SIMD - AVX2, AVX-512 (kuphatikiza m'badwo wachiwiri Xeon Phi) ndi MIC (m'badwo woyamba) - komanso kugwiritsa ntchito konsekonse komanso kwathunthu kwa SIMD pakukhazikitsa mitundu yambiri, kuphatikiza kugwiritsa ntchito malangizo omwe adathandizidwa kale amakhazikitsa AVX ndi XOP pa x86 (-64) ndi
    NEON, ASID ndi AltiVec pa ARM, Aarch64 ndi POWER, motsatana. (Pamodzi ngati gawo la GSoC 2015.)
  • Kukhathamiritsa kochulukirapo kwa CPU ndi OpenCL, zonse kuti zigwire ntchito bwino ndi kuchuluka kwa ma hashi nthawi imodzi (mwachitsanzo, kutsitsa ma hashi 320 miliyoni a SHA-1 pa GPU kudayesedwa), ndikuwonjezera kuthamanga kwa mawerengedwe a hashi. Zina mwazinthu izi ndi zapadziko lonse lapansi, zina zimakhala ndi magawo osiyanasiyana amitundu, ndipo zambiri zimakhala zamtundu uliwonse.
  • (Auto-) kasinthidwe ka kusungika koyenera kwa mawu achinsinsi osungidwa pa CPU (β€œβ€”tune=auto β€”verbosity=5”) ndi makulidwe oyenera a ntchito pa OpenCL (yothandizidwa mwachisawawa), kuphatikizapo kuganizira pang'onopang'ono kwa NVIDIA GTX mndandanda wa ma GPU mpaka ma frequency ogwiritsira ntchito 10xx ndi atsopano. Kugwiritsa ntchito ma hashes odzaza ndi kutalika kwenikweni kwa mawu achinsinsi omwe akufufuzidwa (pamene amadziwika pasadakhale) pakukonzekera kotere.
  • Kuwonjezera chojambulira cha "mawu amphamvu" otchulidwa mwachindunji pamzere wolamula ndikukhazikitsa mitundu yatsopano ya hashi yosakanizidwa, mwachitsanzo "-format=dynamic='sha1(md5($p).$s)'", yowerengedwa pa CPU pogwiritsa ntchito SIMD . Monga zigawo za mawu oterowo, ma hashes othamanga ambiri amathandizidwa (kuchokera ku wamba ngati MD5 kupita kuzinthu zachilendo monga Whirlpool), kulumikizana kwa substring, encoding ndi decoding, kutembenuka kwa mawonekedwe, mawu achinsinsi, mchere, dzina lolowera ndi zingwe zokhazikika.
  • Kuchotsa kusiyana kosafunika kuchokera ku hashcat, kuphatikizapo kuthandizira malamulo enieni a hashcat (malamulo a malamulo a mawu), kusintha kupita ku OpenCL chiwerengero cha chipangizo kuchokera ku 1, kugwiritsa ntchito kosasintha kwa kutalika kwa mawu achinsinsi omwewo (nthawi zambiri kutalika kwa 7) kwa mayesero a ntchito.
  • Mitundu yatsopano yopangira mawu achinsinsi otsimikizika (machitidwe osweka), kuphatikiza PRINCE kuchokera ku hashcat (mawonekedwe "mawu" pophatikiza mawu angapo pakuchulukira kwa utali wonse), magawo ang'onoang'ono (amabweretsa mawu achinsinsi okhala ndi zilembo zosakwanira, ngakhale zilembo izi zibwera. kuchokera kumagulu akuluakulu omwe angatheke) ndi hybrid kunja (amalola mitundu yakunja, yofotokozedwa m'mafayilo osinthika m'chinenero chofanana ndi C, kuti apange mawu achinsinsi ambiri ovomerezeka kutengera "mawu" oyambirira omwe alandiridwa kuchokera kumtundu wina). Komanso, zingapo zatsopano predefined kunja modes.
  • Zowonjezerapo zogwiritsira ntchito mitundu ingapo nthawi imodzi (imodzi pamwamba pa inzake - stacking), komanso kugwiritsa ntchito malamulo (mawu a mawu a stacking).
  • Kusintha kwa mitundu ya chigoba (kutambasula pang'onopang'ono kwa chigoba muutali wodziwika, kugwiritsa ntchito chigoba kumbali ya chipangizo cha OpenCL kapena bolodi la FPGA) ndi kuthyola kamodzi (makhalidwe oyenera pazida zomwe zimawerengera kuchuluka kwa ma hashes mofananira. , zomwe m'mbuyomu zinalibe mawu achinsinsi otsimikizirika munjira iyi, komanso zoletsa kugwiritsa ntchito kukumbukira).
  • Zosintha zambiri zothandizira Unicode ndi ma encoding ena m'magawo osiyanasiyana.
  • Zosintha zambiri pamapulogalamu a * 2john (omwe amasintha mafayilo amitundu yosiyanasiyana
    gwiritsani ntchito ndi john), makamaka wpapcap2john (imagwira ntchito za WiFi).
  • Pali zosankha zambiri zatsopano za mzere wamalamulo, zoikamo mu john.conf, sinthani script zosankha ndi zofananira zatsopano, osati zonse zomwe zatchulidwa pano.
  • Kupititsa patsogolo kachidindo chifukwa chothandizira kukonza zolakwika ndi AddressSanitizer (kale) ndi UndefinedBehaviorSanitizer (yowonjezedwa), ndikuwonjezera fuzzer yomangidwa (monga gawo la GSoC 2015), pogwiritsa ntchito kuphatikiza kosalekeza (kumanga makina ambiri ogwiritsira ntchito ndi compilers. kuphatikiza ndikuwayesa kuti athandizidwe bwino pamawonekedwe onse).

Source: linux.org.ru

Kuwonjezera ndemanga