Vyšiel ďalší release Chrome 86 a stabilné vydanie Chromium.
Hlavné zmeny v Chrome 86:
- ochrana pred nebezpečným odosielaním formulárov na stránkach načítaných cez HTTPS, ale odosielajúcich údaje cez HTTP.
- Zablokovanie nebezpečného načítania (http) spustiteľných súborov je doplnené o zablokovanie nebezpečného načítania archívov (zip, iso a pod.) a výstrahy pri nebezpečnom načítaní dokumentov (docx, pdf a pod.). V ďalšom vydaní sa očakáva zablokovanie dokumentov a výstrahy pre obrázky, textové a multimediálne súbory. Zablokovanie je realizované, pretože načítanie súborov bez šifrovania môže byť použité na vykonanie škodlivých akcií prostredníctvom podvrhu obsahu pri MITM útokoch.
- V kontextovom menu je predvolene zobrazená možnosť „Vždy zobrazovať URL úplne“, ktorú bolo predtým potrebné zapnúť zmenou nastavení na stránke about:flags. Úplné URL si môžete tiež pozrieť dvojitým kliknutím na adresný riadok. Pripomenieme, že od verzie Chrome 76 sa predvolene adresa zobrazuje bez protokolu a poddomény www. V Chrome 79 bola odstránená možnosť obnoviť staré správanie, ale po nespokojnosti používateľov bola v Chrome 83 pridaná nová experimentálna funkcia, ktorá do kontextového menu pridáva položku na vypnutie skrývania a zobrazovania úplného URL za všetkých okolností.
- Bola obnovená iniciatíva na odstránenie podpory FTP. V Chrome 86 bola podpora FTP predvolene vypnutá pre približne 1 % používateľov, a v Chrome 87 sa tento rozsah zvýši na 50 %, ale podpora sa bude dať obnoviť pomocou voľby "—enable-ftp" alebo "—enable-features=FtpProtocol". V Chrome 88 bude podpora FTP úplne vypnutá.
- V verzii pre Android je podobne ako v desktopovej verzii implementovaná kontrola uložených prihlasovacích údajov a hesiel voči databáze s kompromitovanými účtami, pričom sa zobrazí varovanie v prípade identifikácie problémov alebo pokusu o použitie triviálnych hesiel. Kontrola sa vykonáva voči databáze, ktorá pokrýva viac ako 4 miliardy kompromitovaných účtov, ktoré sa objavili v únikoch používateľských databáz. Na ochranu súkromia sa používa porovnávanie hash prefixu na strane užívateľa, pričom samotné heslá a ich kompletné hashe sa neprenášajú von.
- Do verzie pre Android bola taktiež prenesená tlačidlo „Kontrola bezpečnosti“ (Safety check) a rozšírený režim ochrany pred nebezpečnými stránkami (Enhanced Safe Browsing). Tlačidlo „Safety check“ poskytuje prehľad možných bezpečnostných problémov, ako je používanie kompromitovaných hesiel, stav kontroly malvérových stránok (Safe Browsing), nedostatočne nainštalované aktualizácie a identifikácia malvérových rozšírení. Rozšírený režim ochrany aktivuje dodatočné kontroly na ochranu pred phishingom, malvérovou aktivitou a inými hrozbami na webe, a zahŕňa aj dodatočnú ochranu pre účet Google a služby Google (Gmail, Drive atď.). Ak v bežnom režime Safe Browsing kontroly prebiehajú lokálne cez periodicky sťahovanú databázu na klientskom systéme, potom v Enhanced Safe Browsing sa informácie o stránkach a sťahovaniach v reálnom čase posielajú na kontrolu na stranu Google, čo umožňuje rýchlu reakciu na hrozby hneď po ich zistení bez čakania na aktualizáciu lokálneho čierneho zoznamu.
- Bola pridaná podpora pre súbor-indikátor ".well-known/change-password", pomocou ktorého môžu vlastníci webových stránok určiť adresu webového formulára pre zmenu hesla. V prípade zistenia kompromitácie prihlasovacích údajov používateľa Chrome teraz okamžite ponúkne používateľovi formulár na zmenu hesla, ktorý je definovaný na základe informácií z tohto súboru.
- Zavedenie nového upozornenia „Bezpečnostná rada“, ktoré sa zobrazuje pri návšteve webových stránok, ktorých domény sú veľmi podobné iným stránkam a heuristika naznačuje vysokú pravdepodobnosť podvodov (napríklad otvorený goog0le.com namiesto google.com).
* Zavedená podpora predchádzajúcej a nasledujúcej pamäte (Back-forward cache), ktorá zabezpečuje okamžitý prechod pri použití tlačidiel „Späť“ a „Ďalej“ alebo pri navigácii po predtým navštívených stránkach aktuálneho webu. Cache sa zapína pomocou nastavenia chrome://flags/#back-forward-cache.
- Optimalizácia využívania CPU zdrojov oknami mimo viditeľnej oblasti. Chrome kontroluje, či okno prehliadača nie je zakryté inými oknami, a vylučuje vykresľovanie pixelov v prekrývajúcich sa oblastiach. Uvedená optimalizácia bola zapnutá pre malé percento používateľov v Chrome 84 a 85, a teraz je aktivovaná všade. V porovnaní s predchádzajúcimi verziami bola tiež odstránená nekompatibilita so systémami virtualizácie, ktorá spôsobovala zobrazenie prázdnych bielych stránok.
- Posilnené obmedzenie zdrojov pre pozadové karty. Tieto karty teraz nemôžu spotrebovať viac ako 1% CPU zdrojov a môžu sa aktivovať najviac raz za minútu. Po piatich minútach v pozadí sú karty zmrazené, s výnimkou kariet, na ktorých sa prehráva multimediálny obsah alebo prebieha nahrávanie.
- Pokračuje práca na unifikácii HTTP hlavičky User-Agent. V novej verzii je pre všetkých používateľov aktivovaná podpora mechanizmu User-Agent Client Hints, vyvíjaného ako náhrada za User-Agent. Nový mechanizmus zahŕňa selektívne poskytovanie údajov o konkrétnych parametroch prehliadača a systému (verzia, platforma atď.) iba na požiadanie serverom a dáva používateľom možnosť selektívne poskytovať podobné informácie vlastníkom webových stránok. Pri používaní User-Agent Client Hints sa identifikátor predvolene neprenáša bez výslovného požiadania, čo znemožňuje pasívnu identifikáciu (predvolene je uvedené iba meno prehliadača).
Zmenila sa indikácia dostupnosti aktualizácie a potreby reštartovať prehliadač na jej inštaláciu. Namiesto farebnej šípky v poli avatara účtu sa teraz objavuje nápis „Update“. - Bol vykonaná práca na preklade prehliadača s cieľom používať inkluzívnu terminológiu. V názvoch politík boli slová „whitelist“ a „blacklist“ nahradené výrazmi „allowlist“ a „blocklist“ (už pridané politiky budú naďalej fungovať, ale dostanú varovanie o prechode do kategórie zastarané). V kóde a názvoch súborov boli zmienky o „blacklist“ nahradené výrazom „blocklist“. Viditeľné zmienky pre používateľa „blacklist“ a „whitelist“ boli vymenené už na začiatku roka 2019.
Pridaná experimentálna možnosť úpravy uložených hesiel, ktorú je možné aktivovať pomocou praporca „chrome://flags/#edit-passwords-in-settings“. - API Native File System bolo prevedené do stabilného a verejne prístupného stavu, ktorý umožňuje vytvárať webové aplikácie, ktoré interagujú so súbormi v miestnej súborovej sústave. Napríklad toto nové API môže byť užitočné v integrovaných vývojových prostrediach, textových editoroch, editoroch obrázkov a videa spustených v prehliadači. Na získanie možnosti priamého čítania a zápisu súborov alebo používania dialógov na otváranie a ukladanie súborov, ako aj na navigáciu po obsahu adresárov, aplikácia požaduje od používateľa špeciálne potvrdenie.
- Pridaný CSS selektor ":focus-visible", ktorý používa tú istú heuristiku, akú prehliadač využíva pri rozhodovaní o zobrazení indikátora zmeny fokusu (pri presune fokusu na tlačidlo pomocou klávesových skratiek sa indikátor zobrazuje, ale pri kliknutí myšou – nie). Predtým dostupný CSS selektor ":focus" vždy zvýrazňuje fokus. Okrem toho bola do nastavení pridaná možnosť „Rýchle zvýraznenie fokusu“, pri jej zapnutí sa vedľa aktívnych prvkov zobrazí ďalší indikátor fokusu, ktorý zostáva viditeľný aj v prípade, že sú na stránke cez CSS vypnuté prvky štýlu na vizuálne zvýraznenie fokusu.
- 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.
- API WebHID pre nízkoúrovňový prístup k HID zariadeniam (Human interface device, klávesnice, myši, herné ovládače, dotykové panely), ktoré umožňuje implementovať logiku práce s HID zariadením v JavaScripte na organizáciu funkčnosti so zriedkavými HID zariadeniami bez potreby špecifických ovládačov v systéme. Predovšetkým je nové API zamerané na poskytovanie podpory pre herné ovládače.
- API Screen Information rozširuje možnosti API Window Placement s podporou konfigurácií viacerých obrazoviek. Na rozdiel od window.screen nový API umožňuje manipuláciu s umiestnením okna v spoločnom obrazovom prostredí systémov s viacerými monitormi, bez obmedzenia na aktuálnu obrazovku.
- Meta-tag battery-savings, ktorý umožňuje webovej stránke informovať prehliadač o potrebe aktivovať režimy zníženia spotreby energie a optimalizácie záťaže na CPU.
- API COOP Reporting na informovanie o potenciálnych porušeniach režimov izolácie Cross-Origin-Embedder-Policy (COEP) a Cross-Origin-Opener-Policy (COOP), bez použitia skutočných obmedzení.
- V API Credential Management bol navrhnutý nový typ údajov PaymentCredential, ktorý poskytuje dodatočné overenie vykonávaných platieb. Overujúca strana, napríklad banka, má možnosť vygenerovať verejný kľúč PublicKeyCredential, ktorý môže byť požadovaný predajcom na dodatočné bezpečné potvrdenie platby.
- V API PointerEvents bola pridaná podpora uhlu sklonu stylusu* pri stanovení výšky (uhol medzi stylusom a obrazovkou) a azimutu (uhol medzi osou X a projekciou stylusu na obrazovku), namiesto uhlov TiltX a TiltY (uhly medzi rovinou stylusu a jednou z osí a rovinou osí Y a Z). Takisto boli pridané funkcie na prevod medzi výškou/azimutom a TiltX/TiltY.
- Kódovanie medzery v URL bolo zmenené; pri jeho spracovaní vo funkcii navigator.registerProtocolHandler() sa teraz medzery nahrádzajú za „“ namiesto „+“, čo zjednocuje správanie s inými prehliadačmi, ako je Firefox.
- V CSS bol pridaný pseudo-element "::marker", umožňujúci nastaviť farbu, veľkosť, tvar a typ čísel a bodiek pre výčty v blokoch
- a
- .
- Pridaná podpora HTTP hlavičky Document-Policy, ktorá umožňuje nastaviť pravidlá prístupu k dokumentom, podobne ako mechanizmus sandbox izolácie pre iframe, ale univerzálnejšie. Napríklad, prostredníctvom Document-Policy je možné obmedziť používanie nekvalitných obrázkov, vypnúť pomalé JavaScript API, nastaviť pravidlá pre načítanie iframe, obrázkov a skriptov, obmedziť celkovú veľkosť dokumentu a prenos, zakázať metódy vedúce k prekresleniu stránky a vypnúť funkciu Scroll-To-Text.
- Do elementu
- Pridaná metóda ParentNode.replaceChildren() na nahradenie všetkých podriadených prvkov rodičovského uzla iným DOM uzlom. Predtým sa na nahradenie uzlov mohlo použiť kombinácia metód node.removeChild() a node.append() alebo node.innerHTML a node.append().
- Rozšíril sa rozsah schém URL povolených na prepísanie pomocou registerProtocolHandler(). Do zoznamu schém boli pridané decentralizované protokoly cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns a ssb, čo umožňuje určovať odkazy na prvky nezávisle od stránky alebo brány, ktorá poskytuje prístup k zdroju.
- Do API Asynchronous Clipboard bola pridaná podpora formátu text/html na kopírovanie a vkladanie HTML cez schránku (pri zapisovaní a čítaní do schránky sa vykonáva čistenie nebezpečných HTML konštrukcií). Zmena, ktorá napríklad umožňuje organizovať v webových editoroch vkladanie a kopírovanie naformátovaného textu s obrázkami a odkazmi.
- Do WebRTC bola pridaná možnosť pripojiť vlastné spracovateľské funkcie, ktoré sa volajú v štádiách kódovania alebo dekódovania WebRTC MediaStreamTrack. Napríklad, túto možnosť je možné využiť na prídanie podpory end-to-end šifrovania údajov prenášaných cez medzičlánkové servery.
V JavaScriptovom engíne V8 bola o 75 % zrýchlená implementácia Number.prototype.toString. Do asynchrónnych tried bolo pridané vlastnosť .name s prázdnou hodnotou. Metóda Atomics.wake, ktorá bola predtým premenovaná na Atomics.notify na základe špecifikácie ECMA-262, bola odstránená. Bol otvorený kód nástroja fuzzing-testovania JS-Fuzzer. - Vo svojho času využívaných počátečnom (baseline) kompilátore Liftoff pre WebAssembly bola pridaná možnosť používania vektorových inštrukcií SIMD na urýchlenie výpočtov. Podľa testov táto optimalizácia urýchlila výkon niektorých testov 2,8-krát. Iná optimalizácia zase výrazne zrýchlila volanie importovaných funkcií JavaScript z WebAssembly.
- Nástroje pre webových vývojárov boli rozšírené: Do panelu Media boli pridané informácie o prehrávačoch používaných na reprodukciu videa na stránke, vrátane údajov o udalostiach, logoch, hodnotách vlastností a parametroch dekódovania snímok (napríklad, je možné určiť príčiny straty snímok a problémy pri interakcii z JavaScriptu).
- V kontextovom menu panelu Elements bola pridaná možnosť vytvoriť screenshot vybraného prvku (napríklad je možné vytvoriť screenshot obsahu alebo tabuľky).
- V webovej konzole bola panel s upozorneniami na problémy nahradená bežnou správou, a problémy so stranovými cookies sú predvolene skryté v záložke Issues a aktivujú sa špeciálnym začiarkavacím políčkom.
- V záložke Rendering bola pridaná tlačidlo „Disable local fonts“, ktoré umožňuje simulovať absenciu lokálnych písiem, a v záložke Sensors sa objavila možnosť simulovať neaktívnosť používateľa (pre aplikácie, ktoré používajú API Idle Detection).
- V paneli Application sú k dispozícii podrobné informácie o každom iframe, otvorenom okne a pop-up-och, vrátane údajov o izolácii Cross-Origin pomocou COEP a COOP.
Začala sa výmena implementácie protokolu QUIC na variant vyvíjaný špecifikáciou IETF, namiesto Google variantu QUIC.
Okrem noviniek a opravy chýb v novej verzii bolo odstránených 35 zraniteľností. Mnohé z týchto zraniteľností boli odhalené v dôsledku automatizovaného testovania nástrojmi AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer a AFL. Jedna zraniteľnosť (CVE-2020-15967, prístup k uvoľnenej oblasti pamäte v kóde pre interakciu s Google Payments) je označená ako kritická, t.j. umožňuje obísť všetky úrovne ochrany prehliadača a vykonať kód v systéme mimo sandboxového prostredia. V rámci programu odmien za objavovanie zraniteľností pre aktuálnu verziu spoločnosť Google vyplatila 27 odmien v celkovej sume 71500 dolárov (jedna odmena 15000, tri odmeny 7500, päť odmien 5000, dve 3000, jedna 200 a dve odmeny 500). Veľkosť 13 odmien zatiaľ nebola určená.
Prevzaté z Opennet.ru
Zdroj: linux.org.ru
