John the Ripper 1.9.0-jumbo-1 e lokollotsoe ka tšehetso ea FPGA

E lokollotsoe mofuta o mocha oa lenaneo la khale ka ho fetesisa la ho noha li-password John the Ripper 1.9.0-jumbo-1 (morero o ntse o tsoela pele ho tloha ka 1996). Ho se ho fetile lilemo tse 1.8.0 ho tloha ha ho lokolloa mofuta o fetileng oa 1-jumbo-4.5, moo liphetoho tse fetang 6000 (git commits) li entsoeng ho tsoa ho bahlahisi ba fetang 80. Kea leboha kopanyo e tsoelang pele, e kenyelletsang tlhahlobo ea pele ea phetoho e 'ngoe le e' ngoe (kopo ea hula) lipolaneteng tse ngata, nakong ena bahlahisi ba khothalelitse ho sebelisa khatiso ea hajoale ho tsoa ho GitHub, eo boemo ba eona bo ileng ba lula bo tsitsitse ho sa tsotellehe liphetoho tse entsoeng. Khoutu ea morero e ka sehloohong ajoa ke tlasa laesense ya GPLv2+, mme khoutu ya dikarolo tse ding e tlasa laesense ya BSD.

Karolo e ikhethang ea mofuta o mocha ke ponahalo ea tšehetso ea FPGA (ho kenyelletsa CPU, GPU le Xeon Phi). Bakeng sa mapolanka ZTEX 1.15y, ho kenyelletsa le li-chips tsa 4 FPGA 'me qalong e ne e sebelisoa haholo-holo bakeng sa merafo ea Bitcoin, mefuta e 7 ea li-password hashes e se e sebelisoa: bcrypt, classic descrypt (ho akarelletsa le bigcrypt), sha512crypt, sha256crypt, md5crypt (ho akarelletsa le Apache apr1 le AIX smd5), Drupal7 le phpass (e sebelisitsoeng). , haholo-holo ka WordPress). Tse ling tsa tsona li kengoa tšebetsong ho FPGA lekhetlo la pele.

Bakeng sa bcrypt, ts'ebetso e fihletsoeng ea ~ 119k c/s ka 2^ 5 iterations ("$2b $05") ka tšebeliso ea matla ea ~ 27 watts e feta haholo liphetho tsa li-GPU tsa morao-rao ka boto, ka theko ea hardware, le watt ka 'ngoe. . E boetse e tšehetsoa lihlopha ea liboto tsa mofuta ona, tse lekiloeng ho fihlela liboto tsa 16 (64 FPGA chips) tse laoloang ho tloha ho Raspberry Pi 2 e le 'ngoe. Ts'ebetso e tloaelehileng ea John the Ripper e tšehetsoa, ​​​​ho kenyelletsa mekhoa eohle ea ho nahana ka password le ho khoasolla ka nako e le 'ngoe ha li-hashes tse ngata. .

Ho potlakisa mosebetsi, re sebelisitse ts'ebeliso ea mask (mokhoa oa "-mask", ho kenyeletsoa hammoho le mekhoa e meng) le ho bapisa li-hashes tse baloang le tse jereng lehlakoreng la FPGA. Ho latela pono ea ts'ebetsong, meralo e mengata (mohlala. sha512crypt le Drupal7) li-blocks tse nang le li-processor cores tse nang le likhoele tse ngata (li-soft CPU cores) tse sebelisanang le li-cryptographic cores li sebelisoa. Nts'etsopele ea ts'ebetso ena e etelletsoe pele ke Denis Burykin ka tšebelisano le bahlahisi ba bang ba jumbo.

Liphetoho tse ling tsa bohlokoa:

  • Ts'ehetso bakeng sa palo e kholo ea mefuta e meng ea li-hashes, li-ciphers, joalo-joalo, ho kenyelletsa le li-hashes tsa khale tsa password (mohlala, ho tsoa liphetolelong tse ncha tsa QNX), hammoho le li-wallet tsa cryptocurrency, li-archives tse patiloeng le litsamaiso tsa faele tse patiloeng (mohlala, Bitlocker le FreeBSD geli), hammoho le ts'ehetso ea mefuta e mecha ea lifomate tse neng li tšehetsoa pele (mohlala, tšehetso e ekelitsoeng bakeng sa bcrypt-pbkdf bakeng sa OpenBSD softraid) le tse ling tse ngata. Ka kakaretso, liforomo tse 80 li kentsoe ho CPU le 47 ho OpenCL. Palo eohle ea lifomate e se e le 407 ho CPU (kapa 262 e sa kenyelletse lifomate tse "dynamic" tse hlophisitsoeng ho tsoa lifaeleng tsa tlhophiso) le 88 ho OpenCL.
  • Ho hana ho ts'ehetsa puo ea CUDA molemong oa OpenCL, eo ho hang ha e sitise ts'ebeliso e felletseng ea NVIDIA GPUs (ebile e thusa, ka lebaka la ho tsepamisa maikutlo ho nts'etsopele le ntlafatso ts'ebetsong e le 'ngoe ea sebopeho ka seng bakeng sa GPU ho fapana le ts'ebetsong tse peli tse fetileng).
  • Ts'ehetso bakeng sa lisebelisoa tse ncha tsa litaelo tsa SIMD - AVX2, AVX-512 (ho kenyeletsoa moloko oa bobeli Xeon Phi) le MIC (bakeng sa moloko oa pele) - hammoho le ts'ebeliso e felletseng le e felletseng ea SIMD ts'ebetsong ea liforomo tse ngata, ho kenyelletsa ts'ebeliso ea taeo e neng e tšehetsoa pele e theha ho AVX le XOP ho x86 (-64) le
    NEON, ASID le AltiVec ho ARM, Aarch64 le POWER, ka ho latellana.

  • Lintlafatso tse ngata bakeng sa CPU le OpenCL, ka bobeli ho sebetsa ka katleho le palo e kholo ea li-hashe ka nako e le 'ngoe (mohlala, ho lekoa ho kenya li-hashe tse limilione tse 320 ho GPU), le ho eketsa lebelo la lipalo tsa hash. Tse ling tsa lintlafatso tsena ke tsa bokahohleng, tse ling li koahela liforomo tse fapaneng, 'me tse ngata li tobane le lifomate tsa motho ka mong.
  • (Auto-) tlhophiso ea ho boloka li-password tse hlahlobiloeng ho CPU (“—tune=auto —verbosity=5”) le boholo bo nepahetseng ba mosebetsi ho OpenCL (e nolofalitsoeng ke kamehla), ho kenyeletsoa ho ela hloko tsela e tsamaeang butle e fihlang ho lebelo le felletseng la ts'ebetso. ea letoto la NVIDIA GTX GPUs 10xx le ho feta. Ho sebelisa li-hashes tse laetsoeng le bolelele ba 'nete ba li-password tse hlahlojoang (ha li tsejoa esale pele) bakeng sa tokiso e joalo ea boiketsetso.
  • Ho kenya sekopanyi bakeng sa "dynamic expressions" e boletsoeng ka kotloloho moleng oa taelo le ho kenya ts'ebetsong mefuta e mecha ea li-hash, mohlala "-format=dynamic='sha1(md5($p).$s)'", e baloang ho CPU ho sebelisoa SIMD. . E le likarolo tsa lipolelo tse joalo, li-hashe tse ngata tse potlakileng li tšehetsoa (ho tloha ho tse tloaelehileng tse kang MD5 ho ea ho tse sa tloaelehang tse kang Whirlpool), concatenation ea substring, encoding le decoding, phetoho ea litlhaku, litemana tsa password, letsoai, lebitso la mosebedisi le likhoele tse tsitsitseng.
  • Ho felisoa ha liphapang tse sa batleheng ho tloha ho hashcat, ho kenyelletsa le ts'ehetso bakeng sa melao e tobileng ea hashcat (litaelo tsa melao ea mantsoe), ho fetela ho nomoro ea sesebelisoa sa OpenCL ho tloha ho 1, tšebeliso ea kamehla ea bolelele bo tšoanang ba password (hangata bolelele ba 7) bakeng sa liteko tsa ts'ebetso.
  • Mekhoa e mecha ea ho hlahisa li-passwords tse netefalitsoeng (mekhoa ea ho qhekella), ho kenyelletsa le PRINCE ho tloha hashcat (liforomo "lipoleloana" ka ho kopanya mantsoe a 'maloa ka tatellano e ntseng e eketseha ea bolelele bohle), li-subsets (ho hlahisa li-password tse nang le palo e sa lekaneng ea litlhaku tse fapaneng, leha litlhaku tsena li tla. ho tloha sehlopheng se seholo sa tse ka khonehang) le lebasetere la ka ntle (e lumella mekhoa ea ka ntle, e hlalositsoeng lifaeleng tsa tlhophiso ka puo e kang C, ho hlahisa li-passwords tse ngata tse ka netefatsoang ho latela "lentsoe" le leng le le leng la motheo le amoheloang ho tsoa mokhoeng o mong). Hape, mekhoa e mengata e mecha e hlalositsoeng esale pele.
  • Likarolo tse eketsehileng bakeng sa ho sebelisa mekhoa e mengata ka nako e le 'ngoe (e' ngoe ka holim'a e 'ngoe - stacking), hammoho le ho sebelisa lihlopha tsa melao (lenane la mantsoe la melao ea stacking).
  • Lintlafatso tsa mekhoa ea mask (ho otlolla mask butle-butle ka bolelele bo itseng, ts'ebeliso ea mask ka lehlakoreng la sesebelisoa sa OpenCL kapa boto ea FPGA) le crack e le 'ngoe (boitšoaro bo loketseng ho lisebelisoa tse balang palo e kholo ea li-hashes ka ho tšoana. , eo pele ho moo ho neng ho se na li-passwords tse netefalitsoeng ka mokhoa ona, hammoho le lithibelo tsa tšebeliso ea memori).
  • Lintlafatso tse ngata ho ts'ehetsa Unicode le li-encodings tse ling lits'ebetsong tse fapaneng tse fapaneng.
  • Lintlafatso tse ngata ho mananeo a *2john (a fetolelang lifaele tsa lifomate tse fapaneng bakeng sa
    sebelisa le john), haholo-holo wpapcap2john (e sebetsana le sephethephethe sa WiFi).

  • Ho na le likhetho tse ngata tse ncha tsa taelo, litlhophiso ho john.conf, lokisa likhetho tsa script le likarolo tse ncha tse tsamaisanang, eseng kaofela tse boletsoeng mona.
  • Ho ntlafatsa boleng ba khoutu ka lebaka la ts'ehetso e hahelletsoeng bakeng sa meaho ea debug e nang le AddressSanitizer (pele) le UndefinedBehaviorSanitizer (e kenyellelitsoe), e kenyelletsa fuzzer e hahelletsoeng kahare (e le karolo ea GSoC 2015), e sebelisa khokahano e tsoelang pele (e hahela lits'ebetso tse ngata tsa ts'ebetso le komporo. kopanya le ho li leka bakeng sa tšehetso e nepahetseng bakeng sa lifomate tsohle).

Source: opennet.ru

Eketsa ka tlhaloso