John the Ripper 1.9.0-jumbo-1 gyda chefnogaeth FPGA

Rhyddhawyd fersiwn newydd o'r rhaglen ddyfalu cyfrinair hynaf â chymorth John the Ripper 1.9.0-jumbo-1. (Mae'r prosiect wedi bod yn datblygu ers 1996.) Ar tudalen prosiect Mae ffynonellau ar gael i'w lawrlwytho, yn ogystal â gwasanaethau parod ar gyfer Windows.

Nodir bod 1.8.0 mlynedd wedi mynd heibio ers rhyddhau fersiwn 1-jumbo-4.5, pan wnaed mwy na 6000 o newidiadau (git yn ymrwymo) gan fwy na 80 o ddatblygwyr. Yn ystod y cyfnod hwn, argymhellodd y datblygwyr ddefnyddio rhifyn cyfredol o GitHub, y cadwyd ei gyflwr yn sefydlog er gwaethaf y newidiadau a wnaed diolch i integreiddio parhaus, sy'n cynnwys dilysiad rhagarweiniol o bob newid (cais tynnu) ar lawer o lwyfannau. Nodwedd arbennig o'r fersiwn newydd yw ymddangosiad cefnogaeth i FPGA (FPGA) yn ogystal â CPU, GPU a Xeon Phi.


Ar gyfer byrddau ZTEX 1.15y, gan gynnwys 4 sglodion FPGA ac a ddefnyddiwyd yn wreiddiol yn bennaf ar gyfer mwyngloddio Bitcoin, mae 7 math o hashes cyfrinair bellach yn cael eu gweithredu: bcrypt, descrypt clasurol (gan gynnwys bigcrypt), sha512crypt, sha256crypt, md5crypt (gan gynnwys Apache apr1 ac AIX smd5), Drupal7 a phpass (defnyddir , yn arbennig yn WordPress). Mae rhai ohonynt yn cael eu gweithredu ar FPGA am y tro cyntaf. Ar gyfer bcrypt, mae'r perfformiad a gyflawnwyd o ~119k c/s gyda 2^5 iteriadau (“$ 2b$05”) gyda defnydd pŵer o tua 27 wat yn sylweddol uwch na'r canlyniadau ar gyfer y GPUs diweddaraf fesul bwrdd, fesul pris caledwedd a fesul wat. Cefnogir hefyd clystyrau o fyrddau o'r math hwn, sydd wedi'i brofi hyd at 16 bwrdd (64 FPGAs) a reolir o un Raspberry Pi 2. Cefnogir swyddogaeth arferol John the Ripper, gan gynnwys yr holl ddulliau dyfalu cyfrinair a lawrlwytho nifer fawr o hashes ar yr un pryd. Er mwyn cyflymu'r gwaith, fe wnaethom weithredu'r defnydd o fwgwd (y modd "--mwgwd", gan gynnwys mewn cyfuniad â moddau eraill) a chymharu'r hashes wedi'u cyfrifo â'r rhai sydd wedi'u llwytho ar ochr FPGA. O safbwynt gweithredu, mae llawer o’r dyluniadau (e.e. sha512crypt a Drupal7) defnyddir blociau sy'n cynnwys creiddiau prosesydd aml-edau (creiddiau CPU meddal) sy'n rhyngweithio â creiddiau cryptograffig. Arweiniwyd datblygiad y swyddogaeth hon gan Denis Burykin mewn cydweithrediad â datblygwyr jumbo eraill.

Newidiadau mawr eraill:

  • Cefnogaeth ar gyfer nifer fawr o fathau ychwanegol o hashes, seiffrau, ac ati, gan gynnwys hashes cyfrinair clasurol (er enghraifft, o fersiynau newydd o QNX), yn ogystal â waledi cryptocurrency, archifau wedi'u hamgryptio a systemau ffeiliau wedi'u hamgryptio (er enghraifft, Bitlocker a Geli FreeBSD), yn ogystal â chefnogaeth ar gyfer mathau newydd o fformatau a gefnogwyd yn flaenorol (er enghraifft, cefnogaeth ychwanegol ar gyfer bcrypt-pbkdf ar gyfer OpenBSD softraid) a llawer mwy. At ei gilydd, mae fformatau 80 wedi'u hychwanegu ar CPU a 47 ar OpenCL (ac mae nifer fach o hen rai wedi'u dileu fel rhai newydd a darfodedig). Mae cyfanswm nifer y fformatau bellach yn 407 ar y CPU (neu 262 heb gynnwys fformatau "deinamig" wedi'u ffurfweddu o ffeiliau ffurfweddu) ac 88 ar OpenCL.
  • Gwrthod cefnogi'r iaith CUDA o blaid OpenCL, nad yw mewn unrhyw ffordd yn ymyrryd â'r defnydd llawn o GPUs NVIDIA (a hyd yn oed yn helpu, diolch i ganolbwyntio datblygiad ac optimeiddio ar un gweithrediad pob fformat ar gyfer y GPU yn lle dau weithrediad blaenorol).
  • Cefnogaeth i setiau cyfarwyddiadau SIMD newydd - AVX2, AVX-512 (gan gynnwys ar gyfer yr ail genhedlaeth Xeon Phi) a MIC (ar gyfer y genhedlaeth gyntaf) - yn ogystal â defnydd mwy cyffredinol a chyflawn o SIMD wrth weithredu llawer o fformatau, gan gynnwys y defnydd o setiau cyfarwyddiadau a gefnogwyd yn flaenorol hyd at AVX a XOP ar x86 (-64) a
    NEON, ASIMD ac AltiVec ar ARM, Aarch64 a POWER, yn y drefn honno. (Yn rhannol fel rhan o GSoC 2015.)
  • Optimeiddiadau niferus ar gyfer CPU ac OpenCL, y ddau i weithio'n fwy effeithlon gyda nifer fawr o hashes ar yr un pryd (er enghraifft, profwyd llwytho 320 miliwn o hashes SHA-1 ar y GPU), ac i gynyddu cyflymder cyfrifiadau hash. Mae rhai o'r optimeiddiadau hyn yn gyffredinol, mae rhai yn ymdrin â gwahanol is-setiau o fformatau, ac mae llawer yn benodol i fformatau unigol.
  • (Awto-) ffurfweddu byffro gorau posibl o gyfrineiriau wedi'u gwirio ar y CPU (“—tune=auto —verbosity=5”) a'r meintiau swyddi gorau posibl ar OpenCL (wedi'i alluogi yn ddiofyn), gan gynnwys cymryd i ystyriaeth ramp-up araf NVIDIA GTX cyfres GPUs i amledd gweithredu llawn 10xx a mwy newydd. Defnyddio hashes wedi'u llwytho mewn gwirionedd a hyd gwirioneddol y cyfrineiriau yn cael eu gwirio (pan fydd yn hysbys ymlaen llaw) ar gyfer awto-diwnio o'r fath.
  • Ychwanegu casglwr ar gyfer "ymadroddion deinamig" a nodir yn uniongyrchol ar y llinell orchymyn a gweithredu mathau hash hybrid newydd, er enghraifft "-format=dynamic='sha1(md5($p).$s)'", wedi'i gyfrifo ar y CPU gan ddefnyddio SIMD . Fel cydrannau ymadroddion o'r fath, cefnogir dwsinau o hashes cyflym (o rai cyffredin fel MD5 i rai gweddol egsotig fel Whirlpool), cydgadwyn is-linyn, amgodio a datgodio, trosi cas nodau, cyfeiriadau at gyfrinair, halen, enw defnyddiwr a chysonion llinynnol.
  • Dileu gwahaniaethau diangen o hashcat, gan gynnwys cefnogaeth ar gyfer rheolau hashcat-benodol yn flaenorol (gorchmynion rheol rhestr eiriau), trosglwyddo i rifo dyfeisiau OpenCL o 1, defnydd rhagosodedig o'r un hyd cyfrinair (hyd 7 fel arfer) ar gyfer profion perfformiad.
  • Moddau newydd ar gyfer cynhyrchu cyfrineiriau gwiriadwy (modiau cracio), gan gynnwys PRINCE o hashcat (yn ffurfio “ymadroddion” trwy gyfuno sawl gair yn nhrefn cynyddu cyfanswm hyd), is-setiau (yn dod â chyfrineiriau i fyny gyda nifer annigonol o nodau gwahanol, hyd yn oed os daw'r nodau hyn o set fawr o rai posibl) ac allanol hybrid (yn caniatáu i foddau allanol, a ddisgrifir mewn ffeiliau cyfluniad mewn iaith tebyg i C, gynhyrchu llawer o gyfrineiriau gwiriadwy yn seiliedig ar bob “gair” sylfaenol a dderbynnir o fodd arall). Hefyd, nifer o ddulliau allanol rhagosodol newydd.
  • Nodweddion ychwanegol ar gyfer defnyddio sawl dull ar yr un pryd (un ar ben y llall - pentyrru), yn ogystal ag ar gyfer defnyddio setiau o reolau (pentyrru rheolau rhestr eiriau).
  • Gwelliannau i'r moddau mwgwd (ymestyn y mwgwd yn raddol mewn ystod benodol o hyd, cymhwyso mwgwd ar ochr y ddyfais OpenCL neu fwrdd FPGA) a hollt sengl (ymddygiad rhesymol ar ddyfeisiau sy'n cyfrifo nifer fawr o hashes yn gyfochrog , nad oedd digon o gyfrineiriau gwiriadwy ar eu cyfer o'r blaen yn y modd hwn, a hefyd cyfyngiadau ar y defnydd o gof).
  • Llawer o welliannau i gefnogaeth ar gyfer Unicode ac amgodiadau eraill mewn amrywiol is-systemau.
  • Llawer o welliannau i raglenni *2john (sy'n trosi ffeiliau o fformatau gwahanol ar gyfer
    defnyddio gyda john), yn enwedig wpapcap2john (yn trin traffig WiFi).
  • Mae yna lawer o opsiynau llinell orchymyn newydd, gosodiadau yn john.conf, ffurfweddu opsiynau sgript a nodweddion newydd cyfatebol, na chrybwyllwyd pob un ohonynt yma.
  • Gwella ansawdd cod diolch i gefnogaeth adeiledig ar gyfer adeiladau dadfygio gyda AddressSanitizer (yn flaenorol) ac UndefinedBehaviorSanitizer (ychwanegwyd), gan ychwanegu ffwdwr fformat adeiledig (fel rhan o GSoC 2015), gan ddefnyddio integreiddio parhaus (adeiladau ar gyfer dwsinau o systemau gweithredu a chasglwr cyfuniadau a'u profi am gefnogaeth gywir ar gyfer pob fformat).

Ffynhonnell: linux.org.ru

Ychwanegu sylw