Google heeft de release van webbrowser Chrome 98 aangekondigd. Tegelijkertijd is er een stabiele release van het open-source project Chromium, dat de basis vormt voor Chrome. De browser Chrome onderscheidt zich door het gebruik van Google-logo's, een systeem voor het verzenden van meldingen bij crashes, modules voor het afspelen van kopieerbeveiligde video-inhoud (DRM), een systeem voor automatische updates en het doorgeven van RLZ-parameters tijdens zoekopdrachten. De volgende release van Chrome 99 staat gepland voor 1 maart.
Belangrijkste veranderingen in Chrome 98:
- De browser bevat een eigen opslag voor rootcertificaten van certificaatautoriteiten (Chrome Root Store), die gebruikt zal worden in plaats van externe opslagplaatsen die specifiek zijn voor elk besturingssysteem. De opslag is geïmplementeerd naar analogie van de onafhankelijke opslag voor rootcertificaten in Firefox, dat als eerste schakel dient voor de verificatie van de vertrouwensketen van certificaten bij het openen van websites via HTTPS. Deze nieuwe opslag wordt voorlopig niet standaard gebruikt. Om de vertaling van configuraties die aan systeemopslagplaatsen zijn gekoppeld te vereenvoudigen en voor de waarborging van overdraagbaarheid, zal er een overgangsperiode zijn waarin de Chrome Root Store een volledige verzameling certificaten zal bevatten die is goedgekeurd op de meeste ondersteunde platforms.
- De uitvoering van het plan ter versterking van de bescherming tegen aanvallen met betrekking tot het aanspreken van bronnen in het lokale netwerk of op de computer van de gebruiker (localhost) vanuit scripts die worden geladen bij het openen van de website, gaat door. Dergelijke verzoeken worden door aanvallers gebruikt voor het uitvoeren van CSRF-aanvallen op routers, toegangspunten, printers, bedrijfswebinterfaces en andere apparaten en diensten die verzoeken alleen uit het lokale netwerk accepteren.
Om dergelijke aanvallen te beschermen, zal de browser bij het aanspreken van subbronnen in het interne netwerk expliciet een aanvraag voor de machtiging doen om dergelijke subbronnen te laden. De aanvraag voor machtiging wordt gedaan door het verzenden naar server de belangrijkste site voor CORS (Cross-Origin Resource Sharing) met de header "Access-Control-Request-Private-Network: true" voordat verbinding wordt gemaakt met een intern netwerk of localhost. Bij bevestiging van de actie als reactie op dit verzoek, moet de server de header "Access-Control-Allow-Private-Network: true" retourneren. In Chrome 98 is de controle geïmplementeerd in een testmodus en als er geen bevestiging is, verschijnt er een waarschuwing in de webconsole, maar het subresource-verzoek wordt niet geblokkeerd. De blokkering is pas gepland om ingeschakeld te worden na de release van Chrome 101.
- In de accountinstellingen zijn middelen geïntegreerd voor het beheer van de inschakeling van de uitgebreide bescherming tegen gevaarlijke websites (Enhanced Safe Browsing), waarbij extra controles worden geactiveerd ter bescherming tegen phishing, kwaadaardige activiteiten en andere bedreigingen op het web. Bij activatie van deze modus in de Google-account, zal nu de suggestie verschijnen om de modus ook in Chrome te activeren.
- Er is een model toegevoegd voor het detecteren van phishingpogingen aan de clientzijde, geïmplementeerd met behulp van het machine learning-platform TFLite (TensorFlow Lite) en dat geen gegevens hoeft te verzenden voor de controle aan de zijde van Google (waarbij telemetrie met informatie over de modelversie en berekende gewichten voor elke categorie wordt verzonden). Bij het detecteren van een phishingpoging krijgt de gebruiker een waarschuwingspagina te zien voordat een verdachte website wordt geopend.
- In de Client Hints API, ontwikkeld als vervanging voor de User-Agent header, kunnen selectief gegevens over specifieke browser- en systeemparameters (versie, platform, enz.) alleen na een verzoek worden verstrekt. server, is de mogelijkheid geïmplementeerd om vervalste namen in de lijst met browseridentifiers te substitueren, vergelijkbaar met het in TLS gebruikte GREASE-mechanisme (Generate Random Extensions And Sustain Extensibility). Bijvoorbeeld, naast ‘"Chrome"; v="98"‘ en ‘"Chromium"; v="98"‘, kan een willekeurige identifier van een niet-bestaande browser ‘"(Not;Browser"; v="12"‘ aan de lijst worden toegevoegd. Deze vervangingen maken het mogelijk om problemen te identificeren bij de verwerking van identificatoren van onbekende browsers, wat ertoe leidt dat alternatieve browsers zich als andere populaire browsers moeten voordoen om de controle op toegestane browserlijsten te omzeilen.
- Vanaf 17 januari worden er geen nieuwe extensies meer geaccepteerd in de Chrome Web Store die gebruikmaken van versie twee van het Chrome-manifest. Nieuwe extensies worden nu alleen geaccepteerd met versie drie van het manifest. Ontwikkelaars van eerder toegevoegde extensies kunnen, zoals voorheen, updates publiceren met versie twee van het manifest. Volledige stopzetting van de ondersteuning voor versie twee van het manifest is gepland voor januari 2023.
- Ondersteuning voor gekleurde vectorlettertypen in het COLRv1-formaat is toegevoegd (een subset van OpenType-lettertypen die naast vectorglyphs ook een laag met kleurinformatie bevat), die bijvoorbeeld kan worden gebruikt voor het maken van veelkleurige emoji's. In tegenstelling tot het eerder ondersteunde COLRv0-formaat, biedt COLRv1 de mogelijkheid om vijfde kleurgradaties, overlays en transformaties te gebruiken. Het formaat biedt ook een compacte opslagvorm, zorgt voor efficiënte compressie en staat hergebruik van contouren toe, wat de bestandsgrootte van het lettertype aanzienlijk vermindert. Bijvoorbeeld, het Noto Color Emoji-lettertype in rasterweergave is 9MB groot, terwijl het in vectorformaat COLRv1 slechts 1.85MB is.

- In de Origin Trials-modus (experimenten die afzonderlijke activatie vereisen) is de API Region Capture geïmplementeerd, waarmee video die wordt vastgelegd kan worden bijgesneden. Bijvoorbeeld, bijsnijden kan nodig zijn in webapplicaties die video vastleggen met inhoud van hun tabblad, om specifieke inhoud eruit te snijden voordat deze wordt verzonden. Origin Trial houdt in dat de aangegeven API kan worden gebruikt vanuit applicaties die zijn geladen vanaf localhost of 127.0.0.1, of na registratie en het verkrijgen van een speciale token die voor een beperkte tijd geldig is voor een specifieke site.
- In de CSS-eigenschap "contain-intrinsic-size" is ondersteuning voor de waarde "auto" toegevoegd, waarbij de laatst onthouden grootte van het element wordt gebruikt (bij gebruik samen met "content-visibility: auto" hoeft de ontwikkelaar niet te raden wat de gerenderde grootte van het element is).
- De eigenschap AudioContext.outputLatency is toegevoegd, waarmee informatie over de verwachte vertraging vóór het afspelen van geluid kan worden verkregen (de vertraging tussen het verzoek om geluid en het begin van de verwerking van de ontvangen gegevens door het uitvoerapparaat).
- De CSS-eigenschap color-scheme, die de mogelijkheid biedt om te bepalen in welke kleurschema's een element correct kan worden weergegeven ('light', 'dark', 'day mode' en 'night mode'), heeft een parameter 'only' toegevoegd, waardoor het mogelijk is om gedwongen wijzigingen in het kleurschema voor specifieke HTML-elementen uit te sluiten. Bijvoorbeeld, als 'div { color-scheme: only light }' wordt opgegeven, zal het element div alleen het lichte thema gebruiken, zelfs als de donkere modus in de browser gedwongen is ingeschakeld.
- In CSS is ondersteuning voor media-query's 'dynamic-range' en 'video-dynamic-range' toegevoegd om te bepalen of er een scherm is dat HDR (High Dynamic Range) ondersteunt.
- De functie window.open() heeft de mogelijkheid toegevoegd om een link te openen in een nieuw tabblad, een nieuw venster of een pop-upvenster. Bovendien retourneert de eigenschap window.statusbar.visible nu 'false' voor pop-upvensters en 'true' voor tabbladen en vensters. const popup = window.open('_blank', '', 'popup=1'); // Openen in een pop-upvenster const tab = window.open('_blank', '', 'popup=0'); // Openen in een tabblad
- Voor vensters en workers is de methode structuredClone() geïmplementeerd, waarmee recursieve kopieën van objecten kunnen worden gemaakt, inclusief eigenschappen van niet alleen het gespecificeerde object, maar ook van alle andere objecten waarop het huidige object verwijst.
- In de Web Authentication API is ondersteuning voor de uitbreiding van de FIDO CTAP2-specificatie toegevoegd, waardoor de minimale toegestane grootte van de PIN-code (minPinLength) kan worden ingesteld.
- Voor geïnstalleerde zelfstandige web-applicaties is het component Window Controls Overlay toegevoegd, waardoor het toepassingsschermgebied over het hele venster wordt uitgebreid, inclusief het kopgebied, waarop de standaard vensterbedieningselementen (sluiten, minimaliseren, maximaliseren) worden gelegd. De web-applicatie kan het tekenen en de invoerverwerking in het volledige venster beheren, met uitzondering van het bovenliggende blok met de vensterbedieningselementen.
- In WritableStreamDefaultController is een signaalafhandelingsattribuut toegevoegd, dat een AbortSignal-object retourneert, waarmee schrijftaken in WritableStream onmiddellijk kunnen worden gestopt, zonder te wachten op hun voltooiing.
- In WebRTC is de ondersteuning voor het SDES-sleuteluitwisselingsmechanisme verwijderd, dat in 2013 door de IETF als verouderd werd verklaard vanwege beveiligingsproblemen.
- Standaard is de U2F API (Cryptotoken) uitgeschakeld, die eerder als verouderd werd verklaard en is vervangen door de Web Authentication API. De U2F API zal volledig worden verwijderd in Chrome 104.
- In de API Directory is het veld installed_browser_version verouderd verklaard, en in plaats daarvan is er een nieuw veld pending_browser_version geïntroduceerd, dat informatie over de browserversie bevat rekening houdend met gedownloade maar nog niet toegepaste updates (d.w.z. de versie die van kracht zal zijn na het opnieuw opstarten van de browser).
- De parameters waarmee ondersteuning voor TLS 1.0 en 1.1 kon worden hersteld, zijn verwijderd.
- Er zijn verbeteringen aangebracht voor webontwikkelaars. Een tabblad is toegevoegd voor het evalueren van de werking van de back-forward cache, die onmiddellijke overgangen mogelijk maakt bij gebruik van de knoppen 'Terug' en 'Verder'. Mogelijkheid om mediaquery's te emuleren met forced-colors is toegevoegd. In de Flexbox-editor zijn knoppen toegevoegd ter ondersteuning van de eigenschappen row-reverse en column-reverse. Op het tabblad 'Wijzigingen' is de weergave van wijzigingen na het formatteren van de code verbeterd, wat het analyseren van geminimaliseerde pagina's vergemakkelijkt.

De implementatie van het codeview-paneel is bijgewerkt naar de release van de CodeMirror 6 code-editor, waarmee de prestaties bij het werken met zeer grote bestanden (WASM, JavaScript) aanzienlijk zijn verbeterd, problemen met willekeurige verschuivingen tijdens navigatie zijn opgelost, en de aanbevelingen van het autocompletion-systeem zijn verbeterd bij het bewerken van code. In het paneel met CSS-eigenschappen is de mogelijkheid toegevoegd om uitvoer te filteren op naam of waarde van de eigenschap.

Naast innovaties en foutoplossingen zijn in de nieuwe versie 27 kwetsbaarheden verholpen. Veel van de kwetsbaarheden zijn ontdekt door geautomatiseerd testen met behulp van tools zoals AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Er zijn geen kritische problemen vastgesteld die alle niveaus van browserbeveiliging zouden kunnen omzeilen en code buiten de sandbox-omgeving zouden kunnen uitvoeren. Binnen het beloningsprogramma voor het ontdekken van kwetsbaarheden heeft Google voor deze release 19 bonussen uitbetaald ter waarde van 88.000 dollar (twee bonussen van $20.000, één bonus van $12.000, twee bonussen van $7.500, vier bonussen van $1.000 en één bonus van $7.000, $5.000, $3.000 en $2.000).
Bron: opennet.ru



