Spoločnosť Google predstavila vydanie webového prehliadača Chrome 90. Súčasne je k dispozícii stabilná verzia voľného projektu Chromium, ktorý je základom pre Chrome. Prehliadač Chrome sa vyznačuje použitím loga Google, systémom posielania oznámení v prípade havárie, modulmi na prehrávanie chráneného videobsahu (DRM), systémom automatickej inštalácie aktualizácií a prenosom RLZ-parametrov pri vyhľadávaní. Ďalšie vydanie Chrome 91 je naplánované na 25. mája.
Hlavné zmeny v Chrome 90:
- Pre všetkých používateľov je povolené otvorenie stránok predvolene cez HTTPS pri zadávaní mien hostiteľov do adresného riadku. Napríklad, pri zadaní hostiteľa example.com sa predvolene otvorí stránka https://example.com, a ak pri otvorení dôjde k problémom, vykoná sa návrat na http://example.com. Na správu predvoleného použitia „https://“ je navrhnutá nastavenie „chrome://flags#omnibox-default-typed-navigations-to-https“.
- Bola implementovaná možnosť priradenia rôznych označení oknám na ich prehľadné oddelenie na paneli pracovnej plochy. Podpora zmeny mena okna zjednoduší organizáciu práce pri používaní jednotlivých okien prehliadača na rôzne úlohy, napríklad pri otvorení samostatných okien na pracovné úlohy, osobné záujmy, zábavu, odložené materiály a podobne. Názov sa zmení cez položku „Pridať názov okna“ v kontextovej ponuke, ktorá sa objaví po kliknutí pravým tlačidlom myši na prázdnu oblasť na paneli kariet. Po zmene názvu sa na paneli aplikácií namiesto názvu stránky z aktívnej karty zobrazuje zvolený názov, čo môže byť užitočné pri otvorení rovnakých stránok v rôznych oknách s viazaním na jednotlivé účty. Väzba sa uchová medzi reláciami a po reštartovaní sa okná obnovia so zvolenými názvami.

- Pridaná možnosť skrytia zoznamu čítania bez nutnosti meniť nastavenia v „chrome://flags“ („chrome://flags#read-later“). Na skrytie je teraz možné použiť možnosť „Zobraziť zoznam čítania“ v dolnej časti kontextového menu, ktoré sa zobrazí po kliknutí pravým tlačidlom na paneli záložiek. Pripomíname, že v predchádzajúcej verzii sa niektorým používateľom pri kliknutí na hviezdičku v adresnom riadku okrem tlačidla „Pridať záložku“ objaví aj druhé tlačidlo „Pridať do zoznamu čítania“, a v pravom rohu panela záložiek sa objaví menu „Zoznam čítania“, kde sú uvedené všetky predtým pridané stránky do zoznamu. Pri otvorení stránky zo zoznamu je označená ako prečítaná. Stránky v zozname môžu byť manuálne označené ako prečítané alebo neprečítané, alebo odstránené zo zoznamu.
- Pridaná podpora segmentácie siete na ochranu pred metódami sledovania pohybov používateľa medzi stránkami, ktoré sú založené na ukladaní identifikátorov v oblastiach, ktoré nie sú určené na trvalé uchovávanie informácií („Supercookies“). Keďže zdroje v cache sú uložené v spoločnom názvovom priestore, nezávisle od pôvodného doména, jedna stránka môže zistiť načítanie zdrojov z inej stránky kontrolou prítomnosti tohto zdroja v cache. Ochrana je založená na aplikácii segmentácie siete (Network Partitioning), ktorej podstata spočíva v pridávaní ďalšej väzby záznamov do zdieľaných cache. doméne, z ktorého sa otvorila hlavná stránka, čo obmedzuje oblasť pokrytia cache pre skripty sledovania pohybov iba na aktuálnu stránku (skript z iframe nemôže skontrolovať, či bol zdroj načítaný z inej stránky). Cenou za segmentáciu je zníženie účinnosti cache, čo vedie k miernemu zvýšeniu času načítania stránky (maximálne o 1.32 %, ale pre 80 % stránok o 0.09-0.75 %).
- Doplnil sa čierny zoznam sieťových portov, pre ktoré je blokovaná odosielanie HTTP, HTTPS a FTP požiadaviek s cieľom ochrany proti útoku NAT slipstreaming, ktorý umožňuje pri otvorení špeciálne pripraveného útočníkom webového dokumentu v prehliadači vytvoriť sieťové spojenie s servera útok na akýkoľvek UDP alebo TCP port na používateľskom systéme, bez ohľadu na použitie interného rozsahu adries (192.168.x.x, 10.x.x.x). Medzi zakázané porty boli pridané 554 (protokol RTSP) a 10080 (používa sa v zálohovaní Amanda a VMWare vCenter). Predtým už boli zablokované porty 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 a 6566.
- Pridaná základná podpora otvárania PDF dokumentov s XFA formulármi v prehliadači.
- Pre časť používateľov bola aktivovaná nová sekcia nastavení „Chrome Settings > Privacy and security > Privacy sandbox“, ktorá umožňuje spravovať parametre API FLoC, zamerané na určenie kategórie záujmov používateľa bez individuálnej identifikácie a bez viazania na históriu návštev konkrétnych stránok.
- Zabezpečené zobrazenie zrozumiteľnejšieho upozornenia s prehľadom povolených akcií, ktoré sa zobrazí v prípade pripojenia používateľa k profilu, pre ktorý je zapnuté centralizované riadenie.
- Rozhranie žiadosti o oprávnenia bolo urobene menej dotieravé. Žiadosti, ktoré používateľ pravdepodobne neschváli, sú teraz automaticky blokované s zobrazením príslušného ukazovateľa v adresnom riadku, pomocou ktorého môže používateľ prejsť do rozhrania na správu oprávnení viazaných na každú stránku.

- Zahrnutá podpora rozšírení Intel CET (Intel Control-flow Enforcement Technology) pre hardvérovú ochranu proti vykonávaniu exploitov založených na technikách návratovo-orientovaného programovania (ROP, Return-Oriented Programming).
- Pokračuje práca na prechode prehliadača na použitie inkluzívnej terminológie. Súbor „master_preferences“ bol premenovaný na „initial_preferences“, aby sa necítili urazení používatelia, ktorí vnímajú slovo master ako narážku na bývalé otroctvo ich predkov. Pre zachovanie kompatibility bude podpora „master_preferences“ nejaký čas ešte zachovaná v prehliadači. Prehliadač sa už predtým zbavil používania slov „whitelist“, „blacklist“ a „native“.
- V Android verzi, pri zapnutí úsporného režimu prenosu dát „Lite“, je realizované zníženie bitrate pri prehrávaní videa pri pripojení cez mobilné dátové siete, čo umožňuje znížiť náklady používateľov, ktorí majú tarify s ohľadom na prenášané dáta. V režime „Lite“ je taktiež zabezpečené kompresia obrázkov, ktoré sú požadované z verejne dostupných zdrojov (nevyžadujúcich autentifikáciu) cez HTTPS.
- Bol pridaný kódovač video formátu AV1, špeciálne optimalizovaný pre použitie v videokonferenciách, realizovaných na báze protokolu WebRTC. Použitie AV1 vo videokonferenciách umožňuje zvýšiť efektivitu kompresie a zabezpečiť možnosť prenosu na kanáloch s prenosovou kapacitou na úrovni 30 kbit/s.
- V JavaScripte v objektoch Array, String a TypedArrays bol implementovaný metóda at(), ktorá umožňuje používanie relatívnej indexácie (ako index poľa sa uvádza relatívna pozícia), vrátane uvedenia záporných hodnôt voči koncu (napríklad „arr.at(-1)“ vráti posledný prvok poľa).
- V JavaScripte pre regulárne výrazy bolo pridané vlastnosť „.indices“, obsahujúce pole s počiatočnými a konečnými pozíciami skupín zhôd. Vlastnosť sa naplní iba pri vykonaní regulárneho výrazu s flagom „/d“. const re = /(a)(b)/d; const m = re.exec(‘ab’); console.log(m.indices[0]); // 0 — všetky skupiny zhody // → [0, 2] console.log(m.indices[1]); // 1 — prvá skupina zhody // → [0, 1] console.log(m.indices[2]); // 2 — druhá skupina zhody // → [1, 2]
- Bola vykonaná optimalizácia výkonu vlastností „super“ (napríklad super.x), pre ktoré je použitý inline-cache. Výkon používania „super“ je teraz blízky k výkonu prístupu k bežným vlastnostiam.
- Výrazne sa urýchlil zavolanie WebAssembly funkcií z JavaScriptu vďaka aplikácii inline rozbalenia. Uvedená optimalizácia zatiaľ zostáva experimentálna a vyžaduje spustenie s flagom „—turbo-inline-js-wasm-calls“.
- Pridané API WebXR Depth Sensing, ktoré umožňuje určit vzdialenosť medzi objektmi v prostredí používateľa a zariadením používateľa, napríklad na vytváranie realistickejších aplikácií rozšírenej reality. Pripomíname, že API WebXR umožňuje zjednodušiť prácu s rôznymi typmi zariadení virtuálnej reality, od stacionárnych 3D headsetov po mobilné riešenia.
- Stabilizovaná funkcia WebXR AR Lighting Estimation, ktorá umožňuje počas relácií WebXR pre rozšírenú realitu určovať parametre okolitého osvetlenia, aby modely mali prirodzenejší vzhľad a harmonickejšie sa integrovali s prostredím používateľa.
- V režime Origin Trials (experimentálne funkcie, ktoré vyžadujú osobitnú aktiváciu) bolo pridaných niekoľko nových API, ktoré sú zatiaľ obmedzené na platformu Android. Origin Trial predpokladá možnosť práce s daným API z aplikácií načítaných z localhost alebo 127.0.0.1, alebo po registrácii a získaní špeciálneho tokenu, ktorý platí obmedzený čas pre konkrétnu stránku.
- Metóda getCurrentBrowsingContextMedia(), ktorá umožňuje organizovať zachytenie video streamu MediaStream, odrážajúceho obsah aktuálnej karty. Na rozdiel od podobnej metódy getDisplayMedia() pri volaní getCurrentBrowsingContextMedia() používateľovi zobrazí jednoduchý dialóg na potvrdenie alebo zablokovanie operácie prenosu videa s obsahom karty.
- API Insertable Streams, ktoré umožňuje manipuláciu s neupravenými (raw) multimediálnymi streamami prenášanými cez API MediaStreamTrack, ako sú dáta z kamery a mikrofónu, výsledok zachytenia obrazovky alebo medzidata dekódovania kodekom. Na reprezentáciu neupravených snímok sa používajú rozhrania WebCodec, po ktorých sa vytvorí stream, podobný tomu, ktorý API WebRTC Insertable Streams generuje na základe RTCPeerConnections. Z praktického hľadiska nový API umožňuje realizovať také funkcie, ako je použitie metód strojového učenia na identifikáciu alebo anotáciu objektov v reálnom čase alebo na pridávanie efektov, ako je zostrih pozadia, pred kódovaním alebo po dekódovaní kodekom.
- Možnosť zabalit' zdroje do balíkov (Web Bundle) na efektívnejšie načítanie veľkého počtu súvisiacich súborov (CSS štýly, JavaScript, obrázky, iframe). Medzi nevýhody existujúcej podpory balíkov pre JavaScriptové súbory (webpack), ktoré sa snažia odstrániť v Web Bundle, patrí: v HTTP cache môže zostať celý balík, ale nie jeho zložky; kompilácia a vykonávanie sa môže začať až po úplnom načítaní balíka; ďalšie zdroje, ako CSS a obrázky, musia byť kódované ako JavaScriptové reťazce, čo vedie k zvýšeniu veľkosti a vykonaniu ďalšej fázy analýzy.
- Podpora spracovania výnimiek v WebAssembly.
- Stabilizovaný API Deklaratívneho Shadow DOM na vytváranie nových koreňových vetiev v Shadow DOM, napríklad na oddelenie importovaného externého štýlu prvku a súvisiacej podvetvy DOM od hlavného dokumentu. Navrhnutý deklaratívny API umožňuje oddeliť vetvy DOM len pomocou HTML bez potreby písania kódu v JavaScripte.
- Vo vlastnosti CSS aspect-ratio, ktorá umožňuje explicitne priradiť pomer strán k akémukoľvek prvku (na automatické vypočítanie chýbajúcej veľkosti pri uvedení len výšky alebo šírky), bola implementovaná možnosť interpolácie hodnôt pri animácii (hladký prechod z jedného pomeru strán na iný).
- Pridaná možnosť odrážať stav vlastných HTML prvkov (custom element) v CSS pomocou pseudo- triedy „:state()“. Funkcionalita je implementovaná analogicky k možnosti štandardných HTML prvkov meniť svoj stav na základe interakcie s používateľom.
- Vo vlastnosti CSS ‘appearance’ bola pridaná podpora hodnoty ‘auto’, ktorá je predvolene nastavená pre <input type=color> a <select>, a na platforme Android navyše pre <input type=date>, <input type=datetime-local>, <input type=month>, <input type=time> a <input type=week>.
- Do vlastnosti CSS ‘overflow’ bola pridaná podpora hodnoty ‘clip’, pri ktorej sa obsah presahujúci okraj bloku orezáva podľa hranice povoleného pretekania bloku bez možnosti posúvania. Hodnota, ktorá určuje, ako ďaleko môže obsah presahovať skutočnú hranicu bloku pred začiatkom orezávania, je stanovená prostredníctvom novej vlastnosti CSS ‘overflow-clip-margin’. V porovnaní s ‘overflow: hidden’ používanie ‘overflow: clip’ umožňuje dosiahnuť vyšší výkon.


- Na miesto HTTP hlavičky Feature-Policy prichádza nová hlavička Permissions-Policy na riadenie delegovania právomocí a zapínania rozšírených funkcií, ktorá podporuje štruktúrované hodnoty polí (napríklad teraz je možné uviesť „Permissions-Policy: geolocation=()“ namiesto „Feature-Policy: geolocation ‘none'“).
- Bola posilnená ochrana pred používaním Protocol Buffers na vykonávanie útokov spôsobených špekulatívnym vykonávaním inštrukcií v procesoroch. Ochrana je implementovaná pridaním MIME typu „application/x-protobuffer“ do zoznamu MIME typov, ktoré sa nikdy nesmú odpočúvať (sniffed), pričom jeho spracovanie sa uskutočňuje prostredníctvom mechanizmu Cross-Origin-Read-Blocking. Predtým bol do podobného zoznamu už zaradený MIME typ „application/x-protobuf“, ale „application/x-protobuffer“ bol opomenutý.
- V API File System Access bola implementovaná možnosť posunúť aktuálnu pozíciu v súbore za jeho koniec s vyplnením medzery nulami pri následnom zápise prostredníctvom volania FileSystemWritableFileStream.write(). Táto funkcia umožňuje vytváranie riedkych súborov s prázdnymi miestami a podstatne uľahčuje organizáciu zápisu do súboru prúdov, ktoré majú neusporiadaný príchod blokov dát (napríklad to sa praktizuje v BitTorren).
- Bol pridaný konštruktor StaticRange s realizáciou ľahkých typov Range, ktoré nevyžadujú aktualizáciu všetkých súvisiacich objektov pri každej zmene stromu DOM.
- Bola implementovaná možnosť určiť parametre width a height pre prvky <source>, uvedené vo vnútri elementu <picture>. Táto funkcia umožňuje vypočítať pomer strán pre prvky <picture>, podobne ako je to realizované pre <img>, <canvas> a <video>.
- Z WebRTC bola odstránená neschválená podpora RTP dátových kanálov (RTP Data Channels), namiesto ktorých je odporúčané používať dátové kanály na báze SCTP.
- Vlastnosti navigator.plugins a navigator.mimeTypes teraz vždy vracajú prázdnu hodnotu (po odstránení podpory Flash sa potreba týchto vlastností vytratila).
- Do nástrojov pre webových vývojárov bola zavedená veľká porcia drobných vylepšení a pridaný nový nástroj na ladenie CSS flexbox.

Okrem nových funkcií a opravy chýb vo verzii bolo odstránených 37 zraniteľností. Mnohé z týchto zraniteľností boli identifikované prostredníctvom automatizovaného testovania pomocou nástrojov AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Neobjavili sa žiadne kritické problémy, ktoré by umožnili obísť všetky úrovne ochrany prehliadača a vykonávať kód v systéme mimo prostredia sandboxu. V rámci programu odmien za objavenie zraniteľností pre aktuálnu verziu spoločnosť Google vyplatila 19 odmien v celkovej sume 54 000 dolárov (jedna odmena 20 000 dolárov, jedna odmena 10 000 dolárov, dve odmeny 5 000 dolárov, tri odmeny 3 000 dolárov, jedna odmena 2 000 dolárov, jedna 1 000 dolárov a štyri odmeny 500 dolárov). Výška 6 odmien zatiaľ nie je stanovená.
Zvlášť treba zdôrazniť, že včera, po vydaní opravy verzie 89.0.4389.128, no pred vydaním Chrome 90, bol publikovaný ďalší exploit, ktorý využíval novú 0-day zraniteľnosť, ktorá nebola opravená vo verzii Chrome 89.0.4389.128. Zatiaľ nie je jasné, či bola táto chyba odstránená v Chrome 90. Rovnako ako v prvom prípade, exploit pokrýva iba jednu zraniteľnosť a neobsahuje kód na obídenie izolácie sandboxu (po spustení prehliadača chrome s pr flagom „—no-sandbox“ zabezpečuje pri otvorení webovej stránky na platforme Windows spustenie notepad). Zraniteľnosť spojená s novým exploitom sa týka technológie WebAssembly.
Zdroj: opennet.ru





