John the Ripper 1.9.0-jumbo-1 me te tautoko FPGA

I tukuna putanga hou o te kaupapa matapae kupuhipa tawhito rawa atu a John the Ripper 1.9.0-jumbo-1. (Kei te whanake te kaupapa mai i te tau 1996.) On wharangi kaupapa Kei te waatea nga puna mo te tango, me nga huihuinga kua rite mo Windows.

E tohuhia ana kua pahemo nga tau 1.8.0 mai i te tukunga o te putanga 1-jumbo-4.5, i te waa neke atu i te 6000 nga huringa (git commits) i mahia mai i nga kaiwhakawhanake 80 neke atu. I tenei wa, ka tūtohu nga kaihanga ki te whakamahi putanga o nāianei mai i GitHub, i mau tonu te ahua ahakoa nga huringa i mihi ki te whakauru tonu, kei roto ko te manatoko tuatahi o ia huringa (tono toia) i runga i nga papaaho maha. Ko tetahi ahuatanga motuhake o te putanga hou ko te ahua o te tautoko mo te FPGA (FPGA) i tua atu i te CPU, GPU me Xeon Phi.


Mo nga papa ZTEX 1.15y, tae atu ki te 4 maramara FPGA me te nuinga o te whakamahi mo te keri Bitcoin, e 7 nga momo o nga kupu huna kua whakatinanahia inaianei: bcrypt, descrypt matarohia (tae atu ki te bigcrypt), sha512crypt, sha256crypt, md5crypt (tae atu ki a Apache apr1 me AIX smd5), Drupal7 me te phpass (whakamahia. , ina koa i roto i te WordPress). Ko etahi o enei ka whakatinanahia ki te FPGA mo te wa tuatahi. Mo te bcrypt, ko nga mahi i tutuki o ~119k c/s me te 2^5 iterations (“$2b$05”) me te whakapau hiko tata ki te 27 Watts ka nui ake i nga hua mo nga GPU hou mo ia poari, mo ia utu taputapu me ia watt. Ka tautokohia ano tautau o nga papa o tenei momo, kua whakamatauria ki runga ki te 16 papa (64 FPGAs) te whakahaere mai i te Raspberry Pi 2 kotahi. Kei te tautokohia te mahi o mua a John the Ripper, tae atu ki nga momo tohu kupu huna katoa me te tango i te wa kotahi o te maha o nga hashes. Hei tere ake i te mahi, i whakatinanahia e matou te whakamahi i te kanohi (te aratau "--mask", tae atu ki te whakakotahi me etahi atu momo) me te whakataurite o nga tohu kua tohua me nga mea kua utaina ki te taha FPGA. Mai i te tirohanga whakatinanatanga, he maha nga hoahoa (hei tauira. sha512crypt me Drupal7) poraka kei roto i nga uho tukatuka miro-maha (nga ngohe PTM ngawari) e pahekoheko ana me nga uho cryptographic ka whakamahia. Ko te whakawhanaketanga o tenei mahi na Denis Burykin i arahi me etahi atu kaihanga jumbo.

Ko etahi atu huringa nui:

  • Tautoko mo te maha atu o nga momo momo hashes, ciphers, me etahi atu, tae atu ki nga hashes kupuhipa matarohia e rua (hei tauira, mai i nga putanga hou o QNX), tae atu ki nga putea cryptocurrency, nga purongo whakamunatia me nga punaha konae whakamunatia (hei tauira, Bitlocker me FreeBSD geli), me te tautoko mo nga momo whakatakotoranga hou i tautokohia i mua (hei tauira, taapiri tautoko mo te bcrypt-pbkdf mo OpenBSD softraid) me te maha atu. I te katoa, 80 nga whakatakotoranga kua taapirihia ki te PTM me te 47 ki OpenCL (a he iti noa nga mea tawhito kua tangohia kua whakauruhia ki nga mea hou me nga mea tawhito). Ko te tapeke o nga whakatakotoranga inaianei ko te 407 i runga i te PTM (e 262 ranei kaore e uru ki nga whakatakotoranga "kaha" i whirihorahia mai i nga konae whirihoranga) me te 88 ki OpenCL.
  • Ko te whakahē ki te tautoko i te reo CUDA mo OpenCL, e kore rawa e pokanoa ki te whakamahi katoa o NVIDIA GPUs (me te awhina ano hoki, he mihi ki te arotahi ki te whakawhanaketanga me te arotautanga ki tetahi whakatinanatanga o ia whakatakotoranga mo te GPU hei utu mo nga whakatinanatanga e rua o mua).
  • Tautoko mo nga huinga tohutohu SIMD hou - AVX2, AVX-512 (tae atu ki te reanga tuarua o Xeon Phi) me te MIC (mo te reanga tuatahi) - me te whakamahi ake i te ao katoa me te whakamahi katoa o te SIMD i roto i nga whakatinanatanga o nga whakatakotoranga maha, tae atu ki te whakamahi Ko nga tohutohu i tautokohia i mua ki te AVX me te XOP i runga i te x86(-64) me te
    NEON, ASIMD me AltiVec i runga i ARM, Aarch64 me POWER, ia. (He wahanga o GSoC 2015.)
  • He maha nga arotautanga mo te PTM me te OpenCL, kia pai ake te mahi me te maha o nga hashes i te wa kotahi (hei tauira, i whakamatauria te uta 320 miriona SHA-1 i runga i te GPU), me te whakanui ake i te tere o te tatauranga o te hash. Ko etahi o enei arotautanga kei te ao katoa, ko etahi ka hipoki i nga momo waahanga rereke o nga whakatakotoranga, he maha nga mea motuhake mo nga whakatakotoranga takitahi.
  • (Aunoa-) te whirihoranga o te whakaraerae tino pai o nga kupuhipa kua takina ki runga i te PTM (“—tune=auto —verbosity=5”) me nga rahi mahi tino pai i runga i te OpenCL (whakahohea ma te taunoa), tae atu ki te whai whakaaro ki te puhoi o te pikinga o NVIDIA GTX nga GPU raupapa ki te auau mahi katoa 10xx me te mea hou ake. Ma te whakamahi i nga hashes kua utaina me te roa tonu o nga kupuhipa e tirohia ana (ka mohiohia i mua atu) mo te whakatika-aunoa.
  • Te taapiri i te kaikohi mo nga "whakapuaki hihiri" kua tohua tika ki runga i te raina whakahau me te whakatinana i nga momo hash ranu hou, hei tauira "-format=dynamic='sha1(md5($p).$s)'", kua tatauhia ki te PTM ma te whakamahi i te SIMD . Ko nga wahanga o aua korero, he maha nga hautere tere e tautokohia ana (mai i nga mea noa penei i te MD5 tae noa ki nga mea rereke penei i a Whirlpool), te whakakotahi i nga aho, te whakawaehere me te wetewete, te hurihanga o te ahua, nga tohutoro ki te kupuhipa, te tote, te ingoa kaiwhakamahi me nga aho.
  • Ko te whakakore i nga rereketanga e kore e hiahiatia mai i te hashcat, tae atu ki te tautoko mo nga ture motuhake-hashcat o mua (nga whakahau ture rarangi kupu), te whakawhiti ki te taputapu OpenCL mai i te 1, te whakamahi taunoa o nga roa o te kupuhipa (te nuinga o te waa 7) mo nga whakamatautau mahi.
  • Ko nga tikanga hou mo te whakaputa i nga kupuhipa ka taea te manatoko (nga kapiti aratau), tae atu ki a PRINCE mai i te hashcat (ka hangaia he "kianga" ma te whakakotahi i nga kupu maha kia nui ake te roanga o te roa), nga huinga-iti (ka puta nga kupuhipa he iti rawa te maha o nga momo ahua, ahakoa ka tae mai enei tohu. mai i te huinga maha o nga mea ka taea) me te ranu o waho (whakaaetia nga ahuatanga o waho, e whakaahuatia ana i roto i nga konae whirihoranga i roto i te reo C-rite, ki te whakaputa i te maha o nga kupu huna kua whakamanahia i runga i ia "kupu" taketake i riro mai i tetahi atu aratau). Ano hoki, he maha nga ahuatanga hou o waho kua tautuhia.
  • Ko etahi atu waahanga mo te whakamahi i nga momo momo rereke i te wa kotahi (kotahi ki runga ake o tetahi - tapae), me te whakamahi i nga huinga ture (whakapae ture rarangi kupu).
  • Te whakapai ake i nga tikanga whakakikorua (te toronga o te kanohi kanohi i roto i te awhe o te roa kua tohua, te whakamahi i te kanohi kanohi ki te taha o te taputapu OpenCL, te papa FPGA ranei) me te kapiti kotahi (te whanonga whaitake i runga i nga taputapu e tatau ana i te maha o nga tohu whakarara. , i mua kaore i te nui nga kupuhipa e taea te whakamana i tenei aratau, me nga here mo te kai mahara).
  • He maha nga whakapainga hei tautoko mo Unicode me etahi atu whakawaehere i roto i nga punaha iti rereke.
  • He maha nga whakapainga ki te *2john papatono (e huri ana i nga konae rerekee nga whakatakotoranga mo
    whakamahia me john), ina koa ko te wpapcap2john (te whakahaere i nga waka WiFi).
  • He maha nga whiringa raina whakahau hou, tautuhinga kei john.conf, whirihora i nga whiringa tuhinga me nga ahuatanga hou e rite ana, kaore katoa i whakahuahia i konei.
  • Ko te whakapai ake i te kounga o te waehere he mihi ki te tautoko i hangaia mo te hanga patuiro me te AddressSanitizer (i mua atu) me te UndefinedBehaviorSanitizer (kua taapirihia), me te taapiri i te whakatakotoranga fuzzer kua hangaia (hei waahanga o GSoC 2015), ma te whakamahi i te whakauru tonu (hanga mo te maha o nga punaha whakahaere me te whakahiato. nga huinga me te whakamatautau mo te tautoko tika mo nga whakatakotoranga katoa).

Source: linux.org.ru

Tāpiri i te kōrero