Spoločnosť Google predstavila vydanie webového prehliadača Chrome 91. Súčasne je k dispozícii stabilná verzia voľného projektu Chromium, ktorý slúži ako základ pre Chrome. Prehliadač Chrome sa vyznačuje použitím loga Google, systémom notifikácií pri páde, modulmi na prehrávanie chráneného videoobsahu (DRM), automatickou aktualizáciou a prenášaním RLZ-parametrov pri vyhľadávaní. Nasledujúce vydanie Chrome 92 je naplánované na 20. júla.
Hlavné zmeny v Chrome 91:
- Bol zavedený spôsob zastavenia vykonávania JavaScriptu v zminimalizovanej skupine záložiek. V Chrome 85 bola pridaná podpora pre zhromažďovanie záložiek do skupín, ktoré môžu byť spojené s konkrétnou farbou a etiketou. Po kliknutí na etiketku skupiny sa súvisiace záložky zminimalizujú a zostane len jedna etiketka (opätovným kliknutím na etiketku sa skupina rozbalí). V novom vydaní, s cieľom znížiť záťaž na CPU a šetriť energiu, bola zavedená pauza v aktivite minimalizovaných záložiek. Výnimku tvoria len záložky, v ktorých sa prehráva zvuk, je použité API Web Locks alebo IndexedDB, je vytvorené pripojenie k USB zariadeniu alebo sa zachytáva video, zvuk alebo obsah okien. Táto zmena bude implementovaná postupne, počnúc malým percentom používateľov.
- Bola pridaná podpora kvantovo-odolnej metódy dohadovania kľúčov. Kvantové počítače dramaticky rýchlejšie riešia problém rozkladu prirodzeného čísla na prvočísla, čo je základ moderných asymetrických šifrovacích algoritmov, a efektívne nemožno vyriešiť na klasických procesoroch. Pre použitie v TLSv1.3 bol poskytnutý plugin CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2), ktorý kombinuje klasický mechanizmus výmeny kľúčov X25519 s HRSS schémou, založenou na algoritme NTRU Prime, vyvinutej pre postkvantové kryptosystémy.
- Podpora protokolov TLS 1.0 a TLS 1.1 bola úplne zrušená, pričom tieto boli klasifikované komitétom IETF (Internet Engineering Task Force) ako zastarané. Navyše bola odstránená aj možnosť vrátiť sa k TLS 1.0/1.1 zmenou politiky SSLVersionMin.
- V zostavách pre platformu Linux je zahrnuté používanie režimu „DNS cez HTTPS“ (DoH, DNS over HTTPS), ktorý bol predtým sprístupnený používateľom Windows, macOS, ChromeOS a Android. DNS-over-HTTPS bude automaticky aktivovaný pre používateľov, ktorých nastavenia obsahujú DNS poskytovateľov podporujúcich túto technológiu (pre DNS-over-HTTPS sa používa ten istý poskytovateľ, ktorý bol použitý pre DNS). Napríklad, ak má používateľ v systémových nastaveniach nastavené DNS 8.8.8.8, v Chrome bude aktivovaný DNS-over-HTTPS servis Google (https://dns.google.com/dns-query), ak DNS je 1.1.1.1, tak DNS-over-HTTPS servis Cloudflare (https://cloudflare-dns.com/dns-query) a pod.
- Do zoznamu zakázaných sieťových portov bol pridaný port 10080, ktorý sa používa v Amanda backup a VMWare vCenter. Predtým už boli zablokované porty 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 a 6566. Pre porty na čiernej listine je blokovaná odosielanie HTTP, HTTPS a FTP požiadaviek s cieľom ochrany pred útokom NAT slipstreaming, ktorý umožňuje pri otvorení špeciálne pripravené útočníkom webovej stránky v prehliadači ustanoviť sieťové spojenie zo servera útočníka na akýkoľvek UDP alebo TCP port na systéme používateľa, bez ohľadu na použitie interného rozsahu adries (192.168.x.x, 10.x.x.x).
- Bola poskytnutá možnosť nastavenia automatického spustenia izolovaných webových aplikácií (PWA — Progressive Web Apps) pri prihlásení používateľa do systému (Windows a macOS). Automatické spustenie sa nastavuje na stránke chrome://apps. Funkcionalita sa momentálne testuje na malom percentu používateľov, a pre ostatných si vyžaduje aktiváciu nastavenia „chrome://flags/#enable-desktop-pwas-run-on-os-login“.
- V rámci práce na prechode prehliadača na používanie inkluzívnej terminológie bol súbor „master_preferences“ premenovaný na „initial_preferences“. Pre zachovanie kompatibility bude podpora „master_preferences“ ešte nejaký čas zachovaná v prehliadači. Predtým sa prehliadač už zbavil používania slov „whitelist“, „blacklist“ a „native“.
- V rozšírenom režime ochrany pred nebezpečnými stránkami (Enhanced Safe Browsing), v ktorom sú aktivované dodatočné kontroly na ochranu pred phishingom, škodlivou činnosťou a inými hrozbami na webe, bola implementovaná možnosť odosielania nahrávaných súborov na kontrolu na strane Google. Okrem toho je v Enhanced Safe Browsing zohľadňovaná aj evidencia tokenov viazaných na účet v Google pri odhaľovaní pokusov o phishing, ako aj zasielanie hodnôt hlavičky Referrer na servery Google na kontrolu presmerovania z nebezpečnej stránky.
- Vo verzii pre platformu Android bolo vylepšené zobrazenie prvkov webových formulárov, ktoré boli optimalizované na použitie na dotykových obrazovkách a pre systémy pre osoby so zdravotným postihnutím (pre desktopové systémy bolo zobrazenie upravené v Chrome 83). Cieľom prerábky bola unifikácia vzhľadu prvkov formulárov a odstránenie nesúladov v štýloch – predtým časť prvkov formulárov bola navrhnutá v súlade s prvkami rozhrania operačných systémov, zatiaľ čo iná časť bola navrhnutá podľa najpopulárnejších štýlov. Z tohto dôvodu sa rôzne prvky rôzne hodili pre dotykové obrazovky a systémy pre osoby so zdravotným postihnutím.


- Pridaný prieskum názoru používateľov, ktorý sa zobrazuje pri otvorení nastavení Privacy Sandbox (chrome://settings/privacySandbox).
- Pri spustení verzie Chrome pre Android na tabletových počítačoch s veľkým displejom je zabezpečené vyžiadanie desktopovej verzie stránky namiesto verzie pre mobilné zariadenia. Toto správanie je možné zmeniť pomocou nastavenia „chrome://flags/#request-desktop-site-for-tablets“.
- Prepracovaný kód pre vykresľovanie tabuliek, čo umožnilo vyriešiť problémy s nesúladom správania pri výstupe tabuliek v Chrome a vo Firefox/Safari.
- Spracovanie serverových certifikátov španielskeho certifikačného centra Camerfirma bolo zastavené z dôvodu opakujúcich sa incidentov súvisiacich s porušením pri vydávaní certifikátov, ktoré prebiehali od roku 2017. Podpora klientskych certifikátov bola zachovaná, blokácia sa uplatňuje len pre certifikáty používané na stránkach pre HTTPS.
- Pokračuje implementácia podpory segmentácie siete na ochranu pred metódami sledovania pohybu používateľa medzi webovými stránkami, ktoré sa zakladajú na uchovávaní identifikátorov v oblastiach, ktoré nie sú určené na trvalé uchovávanie informácií („Supercookies“). Keďže zdroje v cache sú uložené vo spoločnom mennom priestore, nezávisle od pôvodnej domény, jedna stránka môže určiť načítanie zdrojov z inej stránky prostredníctvom kontroly prítomnosti tohto zdroja v cache. Ochrana sa zakladá na použití segmentácie siete (Network Partitioning), ktorej podstatou je pridať do zdieľaných cache dodatočné viazanie záznamov na doméne, z ktorého bola otvorená hlavná stránka, čo obmedzuje rozsah pokrytia cache pre skripty sledovania pohybu len na aktuálnu stránku (skript z iframe nebude schopný skontrolovať, či bol zdroj načítaný z inej stránky).
Cena segmentácie je zníženie efektivity cache, čo vedie k nepatrnému zvýšeniu času načítania stránky (maximálne o 1,32%, ale pre 80% stránok o 0,09-0,75%). Na testovanie režimu segmentácie je možné spustiť prehliadač s možnosťou „—enable-features=PartitionConnectionsByNetworkIsolationKey, PartitionExpectCTStateByNetworkIsolationKey, PartitionHttpServerPropertiesByNetworkIsolationKey, PartitionNelAndReportingByNetworkIsolationKey, PartitionSSLSessionsByNetworkIsolationKey, SplitHostCacheByNetworkIsolationKey“.
- Pridaný externý REST API VersionHistory (https://versionhistory.googleapis.com/v1/chrome), prostredníctvom ktorého je možné získať informácie o verziách Chrome v súvislosti s platformami a vetvami, ako aj históriu aktualizácie prehliadača.
- V iframe, načítaných z domén, ktoré sú odlišné od domény základnej stránky, je zakázané zobrazovanie JavaScript dialógov alert(), confirm() a prompt(), čo ochrání používateľov pred pokusmi o zobrazenie správ cudzím skriptom pod zámienkou, že oznámenie bolo vyvedené hlavným webom.
- Stabilizovaný a predložený ako predvolené API WebAssembly SIMD na použitie vektorových SIMD-inštrukcií v aplikáciách vo formáte WebAssembly. Na zabezpečenie platformovej nezávislosti sa navrhuje nový 128-bitový typ, ktorý môže reprezentovať rôzne typy zabalených údajov, a niekoľko základných vektorových operácií na spracovanie zabalených údajov. SIMD umožňuje zvýšiť výkon vďaka paralelnému spracovaniu dát a bude užitočné pri kompilácii natívneho kódu do WebAssembly.
- Do režimu Origin Trials (experimentálne funkcie, ktoré vyžadujú samostatnú aktiváciu) bolo pridaných niekoľko nových API. Origin Trial umožňuje prístup k uvedenému 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.
- WebTransport — protokol a sprievodné JavaScript API na odosielanie a prijímanie údajov medzi prehliadačom a serverom. Komunikácia je organizovaná nad HTTP/3 s použitím protokolu QUIC ako transportu, ktorý je na druhej strane nadstavbou nad protokolom UDP, podporujúcou multiplexovanie viacerých pripojení a zabezpečujúcou metódy šifrovania ekvivalentné TLS/SSL.
WebTransport môže byť použitý namiesto mechanizmov WebSockets a RTCDataChannel, ponúkajúci dodatočné možnosti, ako sú organizácia prenosu v niekoľkých prúdoch, jednosmerné prúdy, doručenie bez ohľadu na poradie odosielania paketov (out-of-order), spoľahlivé a nespoľahlivé režimy doručenia. Okrem toho, WebTransport môže byť použitý namiesto mechanizmu Server Push, z ktorého v Chrome spoločnosť Google odstúpila.
- Deklaratívne rozhranie na definovanie odkazov na samostatné webové aplikácie (PWA), zapojené pomocou parametra capture_links v manifeste webovej aplikácie, ktoré umožňuje stránkam automaticky otvárať nové PWA-okno pri kliknutí na odkaz aplikácie alebo prechádzať do jednovrstvého režimu podobne ako mobilné aplikácie.
- Bol pridaný API WebXR Plane Detection, poskytujúci informácie o plochých povrchoch vo virtuálnom 3D prostredí. Uvedený API umožňuje obísť náročnú spracovanie údajov získaných cez volanie MediaDevices.getUserMedia, pomocou vlastných implementácií algoritmov strojového videnia. Pripomeňme, že API WebXR umožňuje unifikovať prácu s rôznymi triedami zariadení virtuálnej reality, od stacionárnych 3D headsetov po riešenia na báze mobilných zariadení.
- WebTransport — protokol a sprievodné JavaScript API na odosielanie a prijímanie údajov medzi prehliadačom a serverom. Komunikácia je organizovaná nad HTTP/3 s použitím protokolu QUIC ako transportu, ktorý je na druhej strane nadstavbou nad protokolom UDP, podporujúcou multiplexovanie viacerých pripojení a zabezpečujúcou metódy šifrovania ekvivalentné TLS/SSL.
- Implementovaná podpora práce s WebSockets nad HTTP/2 (RFC 8441), ktorá funguje len pre zabezpečené požiadavky na WebSockets a pri existujúcom pripojení HTTP/2 so serverom, v ktorom je oznámená podpora rozšírenia „WebSockets over HTTP/2“.
- Obmedzenia presnosti hodnôt časovača poskytovaných volaním performance.now() sú unifikované pre všetky podporované platformy a prispôsobené s ohľadom na možnú izoláciu spracovateľov v samostatných procesoch. Napríklad na desktopových systémoch bola presnosť pri spracovaní v neizolovaných kontextoch zredukovaná z 5 na 100 mikrosekúnd.
- Vo verziách pre desktopové systémy bola implementovaná možnosť čítania súborov z clipboardu (zápis súborov do clipboardu zostáva zakázaný). async function onPaste(e) { let file = e.clipboardData.files[0]; let contents = await file.text(); }
- V CSS bolo implementované pravidlo @counter-style, ktoré umožňuje definovať vlastný štýl čítačov a značiek v číslovaných zoznamoch.
- V CSS pseudoklasy „:host()“ a „:host-context()“ pridali možnosť prenosu jednotlivých hodnôt zložených selektorov () okrem zoznamov selektorov ().
- Bol pridaný rozhranie GravitySensor na detekciu objemových (v troch osiach súradníc) dát z gravitačného senzora.
- V API File System Access bola poskytnutá možnosť definovania odporúčaní na výber názvu súboru a adresára, ktoré sú navrhnuté v dialógu vytvorenia alebo otvorenia súboru.
- V iframe načítaných z iných domén je povolené pristupovanie k API WebOTP s príslušnými oprávneniami od používateľa. WebOTP umožňuje čítať jednorazové overovacie kódy odosielané prostredníctvom SMS.
- Bola povolená zdieľanie poverení pre webové stránky, ktoré sú prepojené pomocou mechanizmu DAL (Digital Asset Links), ktorý umožňuje asociáciu aplikácií pre Android so stránkami na zjednodušenie prihlásenia.
- V Service worker je povolené používanie JavaScript modulov. Pri uvedení typu ‘module’ počas volania konštruktora budú uvedené skripty načítané vo forme modulov a dostupné na importovanie v kontexte worker-a. Podpora modulov zjednodušuje zdieľanie kódu na webových stránkach a v Service worker-och.
- V JavaScripte bola poskytnutá možnosť kontroly existencie uzavretých polí v objekte, s použitím syntaxe „#foo in obj“. class A { static test(obj) { console.log(#foo in obj); } #foo = 0; } A.test(new A()); // true A.test({}); // false
- V JavaScripte je predvolene dovolené používanie kľúčového slova await na najvyššej úrovni modulov, čo umožňuje hladšie integrovať asynchrónne volania do procesu načítania modulov a obehať sa bez zabalenia do „async function“. Napríklad namiesto (async function() { await Promise.resolve(console.log(‘test’)); }()); teraz môžete písať await Promise.resolve(console.log(‘test’));
- V JavaScriptovom engíne V8 bola zvýšená efektívnosť cachovania šablón, čo umožnilo zvýšiť rýchlosť testu Speedometer2-FlightJS o 4.5%.
- Bolo pridaných veľa vylepšení do nástrojov pre webových vývojárov. Bol pridaný nový režim kontroly pamäte (Memory inspector), ktorý poskytuje prostriedky na skúmanie údajov ArrayBuffer a pamäte Wasm.

Na paneli Performance bol pridaný súhrnný indikátor výkonu, ktorý umožňuje posúdiť, či stránka vyžaduje optimalizáciu alebo nie.

Pri náhľade obrázkov v paneli Elements a v paneli analýzy sieťových požiadaviek sú poskytované informácie o pomere strán obrázka, parametroch vizualizácie a veľkosti súboru.

V paneli pre inšpekciu siete sa objavila možnosť zmeny prijímaných hodnôt hlavičky Content-Encoding.

V paneli práce so štýlmi sa objavila možnosť rýchlej prehliadky vypočítanej hodnoty pri navigácii po parametroch CSS, výberom v kontextovom menu 'View computed value'.

Okrem noviniek a opravy chýb, nová verzia odstránila 32 zraniteľností. Mnohé z zraniteľností boli identifikované prostredníctvom automatizovaného testovania nástrojmi AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Neboli zistené kritické problémy, ktoré by umožnili obísť všetky úrovne ochrany prehliadača a vykonať kód v systéme mimo sandboxového prostredia. V rámci programu na vyplácanie finančných odmien za zistenie zraniteľností spoločnosť Google vyplatila 21 odmien v celkovej výške 92 000 dolárov (jedna odmena 20 000 dolárov, jedna odmena 15 000 dolárov, štyri odmeny 7 500 dolárov, tri odmeny 5 000 dolárov, tri odmeny 3 000 dolárov, dve odmeny 1 000 dolárov a dve odmeny 500 dolárov). Veľkosť 5 odmien zatiaľ nebola určená.
Zdroj: opennet.ru







