John the Ripper 1.9.0-jumbo-1 kwa usaidizi wa FPGA

Imetolewa toleo jipya la programu kongwe zaidi ya kubahatisha nenosiri inayotumika John the Ripper 1.9.0-jumbo-1. (Mradi umekuwa ukiendelezwa tangu 1996.) On ukurasa wa mradi Vyanzo vinapatikana kwa kupakuliwa, pamoja na makusanyiko yaliyotengenezwa tayari kwa Windows.

Imebainika kuwa miaka 1.8.0 imepita tangu kutolewa kwa toleo la 1-jumbo-4.5, ambapo zaidi ya mabadiliko 6000 (git commits) yalifanywa kutoka kwa watengenezaji zaidi ya 80. Katika kipindi hiki, watengenezaji walipendekeza kutumia toleo la sasa kutoka GitHub, hali ambayo ilidumishwa shwari licha ya mabadiliko yaliyofanywa shukrani kwa ushirikiano unaoendelea, ambayo inajumuisha uthibitishaji wa awali wa kila mabadiliko (ombi la kuvuta) kwenye majukwaa mengi. Kipengele maalum cha toleo jipya ni kuonekana kwa msaada kwa FPGA (FPGA) pamoja na CPU, GPU na Xeon Phi.


Kwa bodi ZTEX 1.15y, ikiwa ni pamoja na chips 4 za FPGA na zilizotumiwa awali hasa kwa madini ya Bitcoin, aina 7 za heshi za nenosiri sasa zinatekelezwa: bcrypt, descrypt classic (pamoja na bigcrypt), sha512crypt, sha256crypt, md5crypt (ikiwa ni pamoja na Apache apr1 na AIX smd5), Drupal7 na phpass (iliyotumiwa , haswa katika WordPress). Baadhi yao hutekelezwa kwenye FPGA kwa mara ya kwanza. Kwa bcrypt, utendakazi uliofikiwa wa ~119k c/s na marudio 2^5 (β€œ$2b$05”) na matumizi ya nishati ya takriban wati 27 huzidi kwa kiasi kikubwa matokeo ya GPU za hivi punde kwa kila ubao, kwa bei ya maunzi na kwa wati. Pia mkono makundi ya bodi za aina hii, ambayo imejaribiwa hadi bodi 16 (64 FPGAs) zinazodhibitiwa kutoka kwa Raspberry Pi 2 moja. Utendaji wa kawaida wa John the Ripper unasaidiwa, ikiwa ni pamoja na njia zote za kubahatisha nenosiri na kupakua kwa wakati mmoja kwa idadi kubwa ya heshi. Ili kuharakisha kazi, tulitekeleza matumizi ya mask (modi ya "--mask", ikiwa ni pamoja na pamoja na njia nyingine) na kulinganisha heshi zilizohesabiwa na zile zilizopakiwa upande wa FPGA. Kwa mtazamo wa utekelezaji, miundo mingi (k.m. sha512crypt na Drupal7) vitalu vinavyojumuisha cores za processor zenye nyuzi nyingi (cores laini za CPU) zinazoingiliana na alama za siri hutumiwa. Ukuzaji wa utendakazi huu uliongozwa na Denis Burykin kwa uratibu na watengenezaji wengine wa jumbo.

Mabadiliko mengine makubwa:

  • Msaada kwa idadi kubwa ya aina za ziada za heshi, ciphers, nk, ikiwa ni pamoja na heshi zote mbili za nenosiri (kwa mfano, kutoka kwa matoleo mapya ya QNX), pamoja na pochi za cryptocurrency, kumbukumbu zilizosimbwa na mifumo ya faili iliyosimbwa (kwa mfano, Bitlocker na FreeBSD geli), pamoja na usaidizi wa aina mpya za fomati zilizotumika hapo awali (kwa mfano, usaidizi ulioongezwa kwa bcrypt-pbkdf kwa OpenBSD softraid) na mengi zaidi. Kwa jumla, fomati 80 zimeongezwa kwenye CPU na 47 kwenye OpenCL (na idadi ndogo ya zile za zamani zimeondolewa kama zilivyounganishwa katika mpya na ambazo hazitumiki). Jumla ya idadi ya umbizo sasa ni 407 kwenye CPU (au 262 bila kujumuisha fomati "zinazobadilika" zilizosanidiwa kutoka kwa faili za usanidi) na 88 kwenye OpenCL.
  • Kukataa kuunga mkono lugha ya CUDA kwa kupendelea OpenCL, ambayo haiingiliani na matumizi kamili ya NVIDIA GPU (na hata husaidia, shukrani kwa kulenga maendeleo na uboreshaji katika utekelezaji mmoja wa kila umbizo la GPU badala ya utekelezaji mbili hapo awali).
  • Msaada kwa seti mpya za maagizo ya SIMD - AVX2, AVX-512 (pamoja na kizazi cha pili Xeon Phi) na MIC (kwa kizazi cha kwanza) - pamoja na matumizi ya kimataifa na kamili ya SIMD katika utekelezaji wa fomati nyingi, pamoja na matumizi ya maagizo yaliyotumika hapo awali huweka AVX na XOP kwenye x86(-64) na
    NEON, ASID na AltiVec kwenye ARM, Aarch64 na POWER, mtawalia. (Sehemu kama sehemu ya GSoC 2015.)
  • Uboreshaji mwingi wa CPU na OpenCL, ili kufanya kazi kwa ufanisi zaidi na idadi kubwa ya heshi kwa wakati mmoja (kwa mfano, kupakia heshi milioni 320 za SHA-1 kwenye GPU kulijaribiwa), na kuongeza kasi ya hesabu za heshi. Baadhi ya uboreshaji huu ni wa ulimwengu wote, zingine hufunika aina ndogo tofauti za umbizo, na nyingi ni mahususi kwa umbizo la mtu binafsi.
  • (Otomatiki) usanidi wa uakibishaji bora wa manenosiri yaliyoangaliwa kwenye CPU (β€œβ€”tune=auto β€”verbosity=5”) na saizi bora za kazi kwenye OpenCL (imewezeshwa kwa chaguomsingi), ikijumuisha kuzingatia upangaji polepole wa NVIDIA GTX. mfululizo GPU hadi mzunguko kamili wa uendeshaji 10xx na mpya zaidi. Kutumia heshi zilizopakiwa haswa na urefu halisi wa manenosiri yanayoangaliwa (inapojulikana mapema) kwa urekebishaji kiotomatiki kama huo.
  • Kuongeza mkusanyaji wa "maneno yanayobadilika" iliyobainishwa moja kwa moja kwenye safu ya amri na kutekeleza aina mpya za heshi mseto, kwa mfano "-format=dynamic='sha1(md5($p).$s)'", iliyokokotolewa kwenye CPU kwa kutumia SIMD. . Kama vipengee vya semi kama hizo, heshi nyingi za haraka zinaauniwa (kutoka zile za kawaida kama MD5 hadi zile za kigeni kama vile Whirlpool), uunganishaji wa kamba ndogo, usimbaji na kusimbua, ubadilishaji wa herufi, marejeleo ya nenosiri, chumvi, jina la mtumiaji na viambatisho vya kamba.
  • Kuondoa tofauti zisizohitajika kutoka kwa hashcat, ikiwa ni pamoja na usaidizi wa sheria maalum za hashcat (amri za kanuni za orodha ya maneno), mpito hadi nambari ya kifaa cha OpenCL kutoka 1, matumizi chaguo-msingi ya urefu sawa wa nenosiri (kawaida urefu wa 7) kwa majaribio ya utendaji.
  • Njia mpya za kutengeneza nywila zinazoweza kuthibitishwa (njia za kupasuka), ikiwa ni pamoja na PRINCE kutoka kwa hashcat (fomu za "misemo" kwa kuchanganya maneno kadhaa katika kuongeza urefu wa jumla), vikundi vidogo (huleta nywila zisizo na idadi ya kutosha ya herufi tofauti, hata kama herufi hizi zinakuja. kutoka kwa seti kubwa ya zile zinazowezekana) na mseto wa nje (huruhusu hali za nje, zilizoelezwa katika faili za usanidi katika lugha inayofanana na C, kuzalisha nywila nyingi zinazoweza kuthibitishwa kulingana na kila "neno" la msingi lililopokelewa kutoka kwa hali nyingine). Pia, aina kadhaa mpya za nje zilizofafanuliwa awali.
  • Vipengele vya ziada vya kutumia njia kadhaa wakati huo huo (moja juu ya nyingine - stacking), na pia kwa kutumia seti za sheria (kuweka sheria za orodha ya maneno).
  • Maboresho ya njia za mask (kunyoosha hatua kwa hatua ya barakoa katika urefu maalum, utumiaji wa barakoa kando ya kifaa cha OpenCL au bodi ya FPGA) na ufa mmoja (tabia ya busara kwenye vifaa vinavyohesabu idadi kubwa ya heshi sambamba. , ambayo hapo awali hapakuwa na nywila za kutosha za kuthibitishwa katika hali hii, na pia vikwazo vya matumizi ya kumbukumbu).
  • Maboresho mengi ya kutumia Unicode na usimbaji mwingine katika mifumo ndogo tofauti.
  • Maboresho mengi kwa programu za *2john (ambazo hubadilisha faili za umbizo tofauti kwa
    tumia na john), haswa wpapcap2john (hushughulikia trafiki ya WiFi).
  • Kuna chaguo nyingi mpya za mstari wa amri, mipangilio katika john.conf, sanidi chaguo za hati na vipengele vipya vinavyolingana, sio vyote vilivyotajwa hapa.
  • Kuboresha ubora wa msimbo kutokana na usaidizi uliojengewa ndani wa utatuzi wa miundo na AddressSanitizer (hapo awali) na UndefinedBehaviorSanitizer (imeongezwa), na kuongeza fuzzer ya umbizo iliyojengewa ndani (kama sehemu ya GSoC 2015), kwa kutumia ujumuishaji unaoendelea (huunda mifumo mingi ya uendeshaji na mkusanyaji. mchanganyiko na kuzijaribu kwa usaidizi sahihi wa miundo yote).

Chanzo: linux.org.ru

Kuongeza maoni