Google har præsenteret udgivelsen af webbrowseren Chrome 93. Samtidig er den stabile udgave af det frie projekt Chromium, som danner grundlaget for Chrome, tilgængelig. Chrome-browseren adskiller sig ved brugen af Googles logoer, en meddelelse ved nedbrud, moduler til afspilning af beskyttet videoinhold (DRM), et system til automatisk opdatering og transmittering af RLZ-parametre under søgning. Den næste udgivelse af Chrome 94 er planlagt til den 21. september (udviklingen er overført til en 4-ugers udgivelsescyklus).
De vigtigste ændringer i Chrome 93:
- Udførelsen af designet i informationsblokken om siden (page info) er opgraderet, hvor der er implementeret støtte til indlejrede blokke, og dropdown-menuer med adgangsrettigheder er blevet erstattet med vælgere. I listerne vises den mest vigtige information først. Ændringen er ikke indført for alle brugere, aktivering kan ske via indstillingen “chrome://flags/#page-info-version-2-desktop”.

- For en lille procentdel af brugerne er indikatorer for sikret forbindelse i adresselinjen eksperimentelt blevet ændret til et mere neutralt symbol (låsen er blevet erstattet af tegnet “V”). For forbindelser, der er oprettet uden kryptering, vises indikatorerne “ikke sikret” fortsat. Årsagen til udskiftningen af indikatorerne nævnes, at mange brugere associerer låseindikatoren med, at indholdet på websitet er pålideligt, i stedet for at opfatte det som et tegn på kryptering af forbindelsen. Ifølge en undersøgelse fra Google forstår kun 11 % af brugerne betydningen af låseikonet.

- I listen over nyligt lukkede faner vises indholdet af lukkede gruppefaner (tidligere blev der blot vist navnet på gruppen uden detaljer om indholdet) med mulighed for at genåbne hele gruppen eller enkelte faner fra gruppen. Muligheden er ikke aktiveret for alle brugere, så aktivering kan kræve ændring af indstillingen “chrome://flags/#tab-restore-sub-menus”.

- For businesses, new settings DefaultJavaScriptJitSetting, JavaScriptJitAllowedForSites, and JavaScriptJitBlockedForSites have been implemented, allowing management of the JIT-less mode, which disables JIT compilation during JavaScript execution (only the Ignition interpreter is used) and prohibits the allocation of executable memory during code execution. Disabling JIT can be beneficial for enhancing security when working with potentially dangerous web applications at the cost of reducing JavaScript execution performance by approximately 17%. Notably, Microsoft has gone even further and implemented an experimental 'Super Duper Secure' mode in the Edge browser, allowing users to disable JIT and activate JIT-incompatible hardware protection mechanisms such as CET (Control Flow Enforcement Technology), ACG (Arbitrary Code Guard), and CFG (Control Flow Guard) for processes handling web content. If the experiment proves successful, we can expect it to be transferred to the main version of Chrome.
- The new tab page now displays a list of the most in-demand documents saved in Google Drive. The contents of the list correspond to the Priority section in drive.google.com. You can manage the display of Google Drive content using the settings 'chrome://flags/#ntp-modules' and 'chrome://flags/#ntp-drive-module'.

- The new tab page offers new informational cards that help find recently viewed content and related information. The cards are designed to simplify the continuation of work with information that was interrupted, for instance, the cards can help find a recipe that was recently discovered online but lost after closing the page, or to continue shopping in stores. As part of an experiment, users are presented with two new cards: 'Recipes' (chrome://flags/#ntp-recipe-tasks-module) for finding culinary recipes and showing recently viewed recipes; 'Shopping' (chrome://flags/#ntp-chrome-cart-module) for reminders of items selected in online stores.
- The Android platform version has added optional support for the continuous search panel (chrome://flags/#continuous-search), allowing recent Google search results to remain visible (the panel continues to show results after navigating to other pages).

- I den version til Android-platformen er der tilføjet et eksperimentelt citatavvekslingsmiljø (chrome://flags/#webnotes-stylize), som giver mulighed for at gemme et fremhævet uddrag af siden som et citat og dele det med andre brugere.
- Når der offentliggøres nye tilføjelser eller opdateringer i Chrome Web Store, er det nu obligatorisk at anvende to-faktor-godkendelse for udviklere.
- Google-konto brugere har nu muligheden for at gemme betalingsinformation i deres Google-konto.
- I inkognitotilstand er der implementeret en ny bekræftelsesdialog, der forklarer, at sletning af navigationsdata vil føre til lukning af vinduet og afslutning af alle sessioner i inkognitotilstand, hvis muligheden for sletning af data aktiveres.
- På grund af identificerede inkompatibiliteter med firmware på nogle enheder er understøttelsen af den nye metode til nøgleudveksling, der blev tilføjet i Chrome 91, midlertidigt blevet deaktiveret. Metoden er modstandsdygtig over for brute-force-angreb på kvantecomputere og er baseret på brugen af TLSv1.3-udvidelsen CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2), som kombinerer den klassiske nøgleudvekslingsmekanisme X25519 med HRSS-scheme, baseret på NTRU Prime-algoritmen, udviklet til post-kvante kryptosystemer.
- Ports 989 (ftps-data) og 990 (ftps) er blevet tilføjet til listen over forbudte netværksporte for at blokere ALPACA-angreb. Tidligere blev porte 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061, 6566 og 10080 allerede blokeret for at beskytte mod NAT slipstreaming-angreb.
- Understøttelsen af krypteringsalgoritmen 3DES er blevet fjernet i TLS. Især er sætningen TLS_RSA_WITH_3DES_EDE_CBC_SHA, der er sårbar over for Sweet32-angrebet, blevet fjernet.
- Understøttelsen af Ubuntu-distributionen 16.04 er blevet stoppet.
- Der er mulighed for at bruge WebOTP API mellem forskellige enheder, der er knyttet via en fælles Google-konto. WebOTP tillader webapplikationen at læse engangskoder sendt via SMS. Den foreslåede ændring giver mulighed for at modtage en bekræftelseskode på en mobil enhed med Chrome til Android og anvende den på et skrivebordssystem.
- API'et User-Agent Client Hints er blevet udvidet og udvikles som en erstatning for User-Agent-headeren. User-Agent Client Hints gør det muligt at selektivt returnere data om specifikke browser- og systemparametre (version, platform osv.) kun efter anmodning. serverenBrugeren kan på sin side bestemme, hvilke oplysninger der kan gives til hjemmesideejerne. Ved brug af User-Agent Client Hints overføres browserens identifikator ikke uden en eksplicit anmodning, og som standard angives der kun basisparametre, hvilket besværliggør passiv identifikation.
I den nye version er support for parameteren Sec-CH-UA-Bitness implementeret, som returnerer oplysninger om platformens bitdybde, hvilket kan bruges til at levere optimerede binære filer. Som standard sendes parameteren Sec-CH-UA-Platform med generelle data om platformen. I værdien UADataValues, der gives ved kald af getHighEntropyValues(), leveres der som standard generiske parametre, hvis det ikke er muligt at returnere en detaljeret version. Der er tilføjet en metode toJSON til NavigatorUAData-objektet, hvilket giver mulighed for at bruge konstruktioner som JSON.stringify(navigator.userAgentData).
- Stabiliteten er forbedret, og muligheden for pakkeindpakning af ressourcer i Web Bundle-format tilbydes som standard, hvilket er passende til mere effektiv indlæsning af et stort antal tilknyttede filer (CSS-stilarter, JavaScript, billeder, iframe). Blandt ulemperne ved den nuværende support til pakker til JavaScript-filer (webpack), som der arbejder på at rette i Web Bundle: i HTTP-cachen kan selve pakken blive gemt, men ikke dens bestanddele; kompilering og udførelse kan kun begynde efter den komplette indlæsning af pakken; yderligere ressourcer såsom CSS og billeder skal kodificeres som JavaScript-strenge, hvilket fører til en stigning i størrelsen og udførelsen af endnu et parsingtrin.
- API'en til WebXR Plane Detection er inkluderet, og giver oplysninger om flade overflader i et virtuelt 3D-miljø. Den nævnte API giver mulighed for at undgå ressourcekrævende databehandling, der opnås via kald til MediaDevices.getUserMedia(), ved at bruge egne implementeringer af algoritmer til maskinlæring. Lad os minde om, at WebXR API'en muliggør en ensartet funktion med forskellige klasser af virtuelle realitets enheder, lige fra stationære 3D-hjelme til mobile løsninger.
- I Origin Trials (eksperimentelle funktioner, der kræver separat aktivering) er der tilføjet flere nye API'er. Origin Trial indebærer muligheden for at arbejde med den angivne API fra applikationer, der er indlæst fra localhost eller 127.0.0.1, eller efter tilmelding og modtagelse af et særligt token, der er gyldigt i en begrænset periode for et specifikt websted.
- Multi-Screen Window Placement API'en er foreslået, hvilket muliggør placering af vinduer på enhver skærm tilsluttet det aktuelle system samt at gemme vinduets position og eventuelt maksimere vinduet. For eksempel kan et webapplikation til præsentation ved hjælp af den nævnte API organisere visningen af dias på én skærm, mens den viser notater til præsentatoren på en anden.
- I overskriften Cross-Origin-Embedder-Policy, som styrer cross-origin isolationsindstillingen og tillader at definere regler for sikker brug af privilegerede operationer på siden, er der tilføjet støtte til parameteren „credentialless“ for at deaktivere overførsel af oplysninger, der vedrører legitimationsoplysninger, såsom cookies og klientcertifikater.
- For isoleret installerede webapplikationer (PWA, Progressive Web Apps), der styrer indholdstegningen af vinduet og håndterer input, er der givet et overlay med kontrolelementer for vinduet, såsom overskrift og knapper til udvidelse/minimering af vinduet. Overlayet udvider det tilgængelige område til ændringer til hele vinduet og tillader, at man tilføjer sine egne elementer i overskriftsområdet.

- Der er tilføjet en mulighed for at oprette PWA-applikationer, der kan anvendes som URL-håndterere. For eksempel kan applikationen music.example.com registrere sig som håndterer af URL'en https://*.music.example.com, og alle overgange fra eksterne applikationer via disse links, for eksempel fra beskedapps og e-mailklienter, vil føre til åbning af den pågældende PWA-applikation, snarere end en ny fane i browseren.
- Der er givet mulighed for at indlæse CSS-filer ved hjælp af udtrykket „import“ ligesom ved indlæsning af JavaScript-moduler, hvilket er praktisk ved oprettelse af egne elementer og tillader at undgå at tildele stilarter med kode i JavaScript. import sheet from './styles.css' assert { type: 'css' }; document.adoptedStyleSheets = [sheet]; shadowRoot.adoptedStyleSheets = [sheet];
- Der er introduceret en ny statisk metode AbortSignal.abort(), der returnerer et AbortSignal-objekt, for hvilket parameteren aborted allerede er sat. I stedet for flere linjer kode for at oprette et AbortSignal-objekt i aborted-tilstand kan man nu nøjes med en enkelt linje: „return AbortSignal.abort()“.
- I Flexbox-elementet er der tilføjet støtte til nøgleordene start, end, self-start, self-end, left og right, som supplerer nøgleordene center, flex-start og flex-end med midler til forenklet justering af positionen for flex-elementer.
- I konstruktøren Error() er der implementeret en ny valgfri egenskab „cause“, som gør det let at knytte fejl sammen. const parentError = new Error('parent'); const error = new Error('parent', { cause: parentError }); console.log(error.cause === parentError); // → true
- HTMLMediaElement.controlsList har fået understøttelse af noplaybackrate-tilstand, som gør det muligt at deaktivere elementer i browserens grænseflade til ændring af afspilningshastighed for multimedieindhold.
- Der er tilføjet en Sec-CH-Prefers-Color-Scheme-header, som gør det muligt at sende oplysninger om brugerens foretrukne farveskema ved anmodning, der anvendes i medieforespørgslerne "prefers-color-scheme", hvilket giver websites mulighed for at optimere indlæsningen af CSS relateret til det valgte skema og undgå synlige skift fra andre skemaer.
- Der er tilføjet en Object.hasOwn-egenskab, som er en forenklet version af Object.prototype.hasOwnProperty, implementeret som en statisk metode. Object.hasOwn({ prop: 42 }, 'prop') // → true
- JIT-kompilatoren Sparkplug, der er designet til meget hurtig udførelse af rå kompilering, har fået en tilstand for batchbehandling af operationer, som reducerer omkostningerne ved at skifte mellem skrive- og udførelsestilstande. Sparkplug kompilere nu flere funktioner ad gangen og kalder mprotect én gang for at ændre adgangen for hele gruppen. Den foreslåede tilstand reducerer kompileringstiden betydeligt (op til 44%) uden negativ indflydelse på udførelsespræstationen af JavaScript.

- I Android-versionen er de indbyggede beskyttelsesmekanismer i V8-motoren mod angreb via sidekanaler, som Spectre, blevet deaktiveret, da de er vurderet som mindre effektive end isolering af websites i separate processer. I desktopversionen blev de nævnte mekanismer allerede deaktiveret i Chrome 70. Deaktivering af unødvendige kontroller har øget ydeevnen med 2-15%.

- Der er foretaget forbedringer i værktøjerne til webudviklere. I inspektionsmode for stilark er der mulighed for at redigere forespørgsler, der er dannet med @container-udtryk. I netværksinspektionsmode er der implementeret en forhåndsvisning af ressourcer i Web bundle-format. I webkonsollen er der tilføjet muligheder i kontekstmenuen for at kopiere linjer som JavaScript- eller JSON-litteraler. Fejlretning af problemer relateret til CORS (Cross-Origin Resource Sharing) er blevet forenklet.

Udover nye funktioner og fejlrettelser er der i den nye version rettet 27 sårbarheder. Mange af sårbarhederne blev identificeret gennem automatiseret testning ved hjælp af værktøjer som AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer og AFL. Der er ikke fundet kritiske problemer, der kan omgå alle lag af beskyttelse i browseren og eksekvere kode i systemet uden for sandbox-miljøet. I forbindelse med programmet for belønning for opdagelse af sårbarheder har Google betalt 19 præmier for den nuværende udgivelse, hvilket beløber sig til 136500 dollars (tre præmier på $20000, én præmie på $15000, tre præmier på $10000, én præmie på $7500, tre præmier på $5000 og tre præmier på $3000). Størrelsen af 5 præmier er endnu ikke fastlagt.
Kilde: opennet.ru









