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

I tukuna putanga hou o te kaupapa matapae kupu huna tawhito kua tautokona John the Ripper 1.9.0-jumbo-1 (kei te whanake te kaupapa mai i te tau 1996). 1.8.0 tau kua pahemo mai i te tukunga o te putanga o mua 1-jumbo-4.5, neke atu i te 6000 nga huringa (git commits) i mahia mai i nga kaiwhakawhanake 80 neke atu. Nga mihi ki te whakauru tonu, kei roto ko te tirotiro tuatahi mo ia huringa (tono toia) i runga i nga papaaho maha, i roto i tenei waa ka tūtohu nga kaihanga ki te whakamahi putanga o nāianei mai i GitHub, i mau tonu te ahua ahakoa nga huringa i mahia. Waehere kaupapa matua tohaina e i raro i te raihana GPLv2+, a ko te waehere o etahi waahanga kei raro i te raihana BSD.

Ko tetahi ahuatanga motuhake o te putanga hou ko te ahua o te tautoko 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 whakamahia tuatahi 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 te Apache apr1 me te 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 kohi hiko o ~27 watts ka nui ake i nga hua mo nga GPU hou mo ia papa, mo ia utu taputapu, mo ia watt. . Ka tautokohia ano tautau o nga papa o tenei momo, kua whakamatauria ki runga ki te 16 papa (64 maramara FPGA) e whakahaerehia ana mai i te Raspberry Pi 2 kotahi. Ka 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. Hui katoa, 80 nga whakatakotoranga kua taapirihia ki te PTM me te 47 ki OpenCL. Ko te tapeke o nga whakatakotoranga he 407 inaianei i runga i te PTM (kaore ranei e 262 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 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 tino pai o te buffering o nga kupuhipa kua takina i 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 pikinga puhoi ki te auau mahi katoa. o NVIDIA GTX raupapa GPUs 10xx me te hou. 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.
  • Ko te taapiri i te kaikohi mo "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 waahanga o aua korero, he maha nga hashes tere e tautokohia ana (mai i nga mea noa penei i te MD5 tae noa ki nga mea rereke penei i a Whirlpool), te whakakotahitanga o nga aho, te whakawaehere me te wetewete, te hurihanga o nga keehi, nga tohutoro ki te kupuhipa, te tote, te ingoa kaiwhakamahi me te aho tonu.
  • 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: opennet.ru

Tāpiri i te kōrero