John the Ripper 1.9.0-jumbo-1 bi piştgiriya FPGA

berdan guhertoya nû ya bernameya texmînkirina şîfreya piştgirî ya herî kevn John the Ripper 1.9.0-jumbo-1. (Proje ji sala 1996-an vir ve pêşve diçe.) Li ser rûpela projeyê Çavkaniyên ji bo dakêşanê hene, û her weha ji bo Windows-ê civînên amade hene.

Tê zanîn ku 1.8.0 sal di ser serbestberdana guhertoya 1-jumbo-4.5 re derbas bûne, di dema ku ji zêdetirî 6000 pêşdebiran zêdetirî 80 guhertin (git commits) hatine çêkirin. Di vê heyamê de, pêşdebiran pêşniyar kirin ku bikar bînin çapa niha ji GitHub, dewleta ku tevî guhertinên ku bi saya wan hatine kirin aram bû entegrasyona berdewam, ku verastkirina pêşîn a her guhertinê (daxwaza vekişînê) li ser gelek platforman vedihewîne. Taybetmendiyek taybetî ya guhertoya nû xuyangkirina piştgiriya FPGA (FPGA) ji bilî CPU, GPU û Xeon Phi ye.


Ji bo panelan ZTEX 1.15y, di nav de 4 çîpên FPGA û bi eslê xwe bi giranî ji bo kanankirina Bitcoin têne bikar anîn, 7 cûreyên şîfreyên şîfreyê niha têne bicîh kirin: bcrypt, şîfreya klasîk (bigcrypt jî tê de), sha512crypt, sha256crypt, md5crypt (di nav de Apache apr1 û AIX smd5), Drupal7 û phpass (bikaranîn). , bi taybetî di WordPress de). Hin ji wan cara yekem li ser FPGA têne bicîh kirin. Ji bo bcrypt, performansa bidestxistî ya ~119k c/s bi 2^5 dubareyan ("$2b$05") bi xerckirina hêzê ya bi qasî 27 watt bi girîngî ji encamên GPU-yên herî paşîn ên her panelê, her bihayê hardware û her watt derbas dibe. Her weha piştgirî kirin komên tabloyên bi vî rengî, ku heya 16 panelan (64 FPGA) hatine ceribandin, ku ji yek Raspberry Pi 2 têne kontrol kirin. Fonksiyona asayî ya John the Ripper tê piştgirî kirin, di nav de hemî awayên texmînkirina şîfreyê û dakêşana hevdem a hejmareke mezin a haş. Ji bo lezkirina xebatê, me karanîna maskek (moda "--mask", di nav de bi modên din re jî tê de) û berhevdana haşeyên hesabkirî bi yên ku li aliyê FPGA-yê hatine barkirin, bicîh anîn. Ji xala pêkanînê, gelek sêwiranan (mînak. sha512crypt û Drupal7) blokên ku ji navokên pêvajoyê yên pir-tehlî (navokên CPU-ya nerm) pêk tên, ku bi navgînên krîptografîk re têkildar in, têne bikar anîn. Pêşveçûna vê fonksiyonê ji hêla Denis Burykin ve bi hevrêziya bi pêşdebirên din ên jumbo re hate rêve kirin.

Guhertinên din ên sereke:

  • Piştgiriya hejmareke mezin ji celebên din ên haş, şîfre, û hwd., di nav de hem şîfreyên klasîk ên şîfreyê (mînak, ji guhertoyên nû yên QNX), hem jî berîkên diravên krîpto, arşîvên şîfrekirî û pergalên pelan ên şîfrekirî (mînak, Bitlocker û FreeBSD geli), û her weha piştgirî ji bo celebên nû yên formatên ku berê hatine piştgirî kirin (mînak, piştgiriya bcrypt-pbkdf ji bo OpenBSD softraid zêde kir) û hêj bêtir. Bi tevahî, 80 format li ser CPU û 47 li OpenCL hatine zêdekirin (û hejmarek hindik ji yên kevin wekî yekbûyî li yên nû û kevnar hatine rakirin). Hejmara giştî ya formatan naha li ser CPU-yê 407 e (an 262 ne di nav wan de formatên "dînamîk" ên ku ji pelên veavakirinê hatine mîheng kirin) û 88 li OpenCL ye.
  • Redkirina piştgirîkirina zimanê CUDA di berjewendiya OpenCL de, ku bi tu awayî destwerdanê li karanîna tevahî GPU-yên NVIDIA nake (û tewra jî dibe alîkar, spas ji ber balkişandina pêşkeftin û xweşbîniyê li ser yek pêkanîna her formatê ji bo GPU-yê li şûna du pêkanînên berê).
  • Piştgiriya komên rêwerzên SIMD yên nû - AVX2, AVX-512 (di nav de ji bo nifşa duyemîn Xeon Phi) û MIC (ji bo nifşa yekem) - û her weha karanîna gerdûnî û bêkêmasî ya SIMD-ê di pêkanîna gelek formatan de, tevî karanîna talîmatên ku berê hatine piştgirî kirin AVX û XOP li ser x86 (-64) saz dike û
    NEON, ASIMD û AltiVec bi rêzdarî li ser ARM, Aarch64 û POWER. (Qismek wekî beşek ji GSoC 2015.)
  • Gelek xweşbîniyên ji bo CPU û OpenCL, hem ji bo ku bi hevdemî bi hejmareke mezin haşeyan re bi bandortir bixebitin (mînakî, barkirina 320 mîlyon SHA-1 hash li ser GPU hate ceribandin), hem jî ji bo zêdekirina leza hesabên hash. Hin ji van optimîzasyonan gerdûnî ne, hin binkeyên cûda yên formatan vedigirin, û gelek jî ji bo formên kesane taybetî ne.
  • (Oto-) veavakirina tamponkirina herî baş a şîfreyên kontrolkirî yên li ser CPU ("—tune=auto —verbosity=5") û mezinahiyên kar ên çêtirîn li ser OpenCL (ji hêla xwerû ve hatî çalak kirin), di nav de girtina hêdî hêdî ya NVIDIA GTX. GPU-yên rêzê heya frekansa xebatê ya tevahî 10xx û nûtir. Bikaranîna haşeyên bi rastî barkirî û dirêjahiya rastîn a şîfreyên ku têne kontrol kirin (gava ku ew ji berê ve tê zanîn) ji bo birêkûpêkkirina wusa bixweber bikar bînin.
  • Zêdekirina berhevkarek ji bo "îfadekirinên dînamîkî" yên ku rasterast li ser rêza fermanê hatine destnîşan kirin û bicîhkirina celebên hash ên hîbrid ên nû, mînakî "-format=dynamic='sha1(md5($p).$s)'", ku li ser CPU-yê bi karanîna SIMD tê hesibandin. . Wekî hêmanên biwêjên weha, bi dehan heşeyên bilez têne piştgirî kirin (ji yên hevpar ên mîna MD5 bigire heya yên hûrgelî biyanî yên mîna Whirlpool), girêdana binesaziyê, şîfrekirin û deşîfrekirin, veguheztina doza karakterê, referansên şîfre, xwê, navê bikarhêner û berdewamên rêzê.
  • Rakirina cûdahiyên nedilxwaz ji hashcat, di nav de piştgirîkirina qaîdeyên berê-hashcat-ê (fermanên rêzika peyvan), derbasbûna ji jimareya cîhaza OpenCL ji 1, karanîna xwerû ya heman dirêjahiya şîfreyê (bi gelemperî dirêjahiya 7) ji bo ceribandinên performansê.
  • Modên nû yên ji bo çêkirina şîfreyên verastkirî (modên şikandinê), di nav de PRINCE ji hashcat (bi berhevkirina çend peyvan li gorî dirêjahiya giştî ya zêde "biwêjan" çêdike), jêrkomet (şîfreyên bi hejmareke kêm tîpên cihêreng derdixe, tevî ku ev tîp werin. ji komek mezin a gengaz) û derveyî hybrid (destûrê dide modên derveyî, ku di pelên vesazkirinê de bi zimanek mîna C-yê têne vegotin, li ser bingeha her "peyv"ek bingehîn a ku ji modek din hatî wergirtin, gelek şîfreyên verastkirî biafirînin). Di heman demê de, çend modên derveyî yên nû yên pêş-dîyarkirî.
  • Taybetmendiyên pêvek ji bo karanîna çend awayan bi hevdemî (yek li ser ya din - stûnkirin), û her weha ji bo karanîna rêzikên rêzikan (qeydeyên rêzikên peyvan li hev kom kirin).
  • Pêşveçûn di modên maskê de (dirêjkirina gav bi gav maskê di navberek diyarkirî de, serîlêdana maskek li kêleka cîhaza OpenCL an panela FPGA) û yek şikestî (tevgera maqûl li ser cîhazên ku hejmareke mezin a heşeyan bi paralel dihesibînin. , ji bo ku berê di vê modê de têra şîfreyên verastkirî tune bûn, û her weha sînorkirinên li ser vexwarina bîranînê jî hebûn).
  • Gelek pêşkeftinên ji bo piştgirîkirina Unicode û şîfreyên din ên di bin pergalên cihêreng de.
  • Gelek pêşkeftinên bernameyên *2john (ku pelên ji formên cihêreng vediguherînin
    bi john re bikar bînin), nemaze wpapcap2john (bi seyrûsefera WiFi ve mijûl dibe).
  • Di john.conf de gelek vebijarkên rêza fermanê, mîhengên nû, vebijarkên skrîptê mîheng bikin û taybetmendiyên nû yên têkildar hene, ku ne hemî li vir hatine behs kirin.
  • Başkirina qalîteya kodê bi saya piştgirîya çêkirî ya ji bo avakirina debug bi AddressSanitizer (berê) û UndefinedBehaviorSanitizer (zêdekirî), lê zêdekirina fuzzerek binavkirî (wek beşek ji GSoC 2015), bi karanîna entegrasyona domdar (ji bo bi dehan pergalên xebitandinê û berhevkar ava dike. kombînasyonan û ceribandina wan ji bo piştgirîya rast ji bo hemî formatan).

Source: linux.org.ru

Add a comment