Die Firma Google hat die Veröffentlichung des Webbrowsers Chrome 98 vorgestellt. Zugleich steht eine stabile Version des freien Projekts Chromium zur Verfügung, das die Grundlage von Chrome bildet. Der Browser Chrome zeichnet sich durch die Verwendung der Google-Logos, ein Benachrichtigungssystem im Falle eines Absturzes, Module zur Wiedergabe von urheberrechtlich geschütztem Video-Content (DRM), ein System zur automatischen Installation von Updates und die Übertragung von RLZ-Parametern bei Suchanfragen aus. Die nächste Version, Chrome 99, ist für den 1. März geplant.
Wesentliche Änderungen in Chrome 98:
- Der Browser enthält einen eigenen Speicher für die Root-Zertifikate von Zertifizierungsstellen (Chrome Root Store), der anstelle von externen Speichern, die spezifisch für jedes Betriebssystem sind, verwendet wird. Der Speicher wurde analog zu dem unabhängigen Root-Zertifikatspeicher in Firefox implementiert, der als erste Instanz zur Überprüfung der Zertifikatvertrauensketten beim Öffnen von Websites über HTTPS dient. Der neue Speicher wird derzeit noch nicht standardmäßig verwendet. Um die Übertragung von Konfigurationen zu erleichtern, die auf die Systemspeicher angewiesen sind, und um die Portabilität zu gewährleisten, wird es eine Übergangszeit geben, in der der Chrome Root Store eine vollständige Sammlung von Zertifikaten umfasst, die auf den meisten unterstützten Plattformen genehmigt sind.
- Die Umsetzung des Plans zur Erhöhung des Schutzes vor Angriffen, die sich auf den Zugriff auf Ressourcen im lokalen Netzwerk oder auf dem Computer des Benutzers (localhost) aus Skripten beziehen, die beim Öffnen der Website geladen werden, wird fortgesetzt. Solche Anfragen werden von Angreifern genutzt, um CSRF-Angriffe auf Router, Zugangspunkte, Drucker, Unternehmens-Webschnittstellen und andere Geräte und Dienste durchzuführen, die nur Anfragen aus dem lokalen Netzwerk annehmen.
Zum Schutz vor solchen Angriffen wird der Browser im Falle von Anfragen an beliebige Subressourcen im internen Netzwerk eine explizite Anfrage nach Berechtigungen zum Laden solcher Subressourcen senden. Die Berechtigungsanfrage wird durch den Versand an Server Hauptseite der CORS-Anfrage (Cross-Origin Resource Sharing) mit dem Header „Access-Control-Request-Private-Network: true“ vor dem Zugriff auf das interne Netzwerk oder localhost. Bei Bestätigung der Aktion sollte der Server in der Antwort auf diese Anfrage den Header „Access-Control-Allow-Private-Network: true“ zurückgeben. In Chrome 98 wird die Überprüfung im Testmodus implementiert, und bei fehlender Bestätigung wird in der Web-Konsole eine Warnung angezeigt, jedoch wird die Anfrage des Subressourcen nicht blockiert. Eine Blockierung ist frühestens mit der Veröffentlichung von Chrome 101 geplant.
- In die Kontoeinstellungen wurden Funktionen zur Verwaltung der Aktivierung des erweiterten Schutzmodus gegen gefährliche Websites (Enhanced Safe Browsing) integriert, bei dem zusätzliche Prüfungen aktiviert werden, um vor Phishing, schädlichen Aktivitäten und anderen Bedrohungen im Web zu schützen. Bei Aktivierung des Modus wird jetzt in dem Google-Konto angeboten, diesen Modus auch in Chrome zu aktivieren.
- Ein Modell zur Erkennung von Phishing-Versuchen auf der Client-Seite wurde hinzugefügt, das mit der TFLite (TensorFlow Lite)-Maschinellen Lernplattform realisiert wurde und keine Daten zur Überprüfung an Google senden muss (stattdessen wird Telemetrie mit Informationen über die Modellversion und die berechneten Gewichtungsfaktoren für jede Kategorie gesendet). Bei Erkennung eines Phishing-Versuchs wird dem Nutzer vor dem Öffnen der verdächtigen Website eine Warnseite angezeigt.
- Im API Client Hints, das als Ersatz für den User-Agent-Header entwickelt wird und es ermöglicht, selektiv Daten zu spezifischen Browser- und Systemparametern (Version, Plattform usw.) nur auf Anfrage zu übermitteln. Server, wurde die Möglichkeit implementiert, fiktive Namen in die Liste der Browser-IDs einzufügen, ähnlich dem verwendeten GREASE-Mechanismus (Generate Random Extensions And Sustain Extensibility) in TLS. Zum Beispiel kann neben ‘»Chrome»; v=»98″‘ und ‘»Chromium»; v=»98″‘ eine zufällige ID eines nicht existierenden Browsers ‘»(Not;Browser»; v=»12″‘ zur Liste hinzugefügt werden. Eine solche Substitution wird es ermöglichen, Probleme bei der Verarbeitung von IDs unbekannter Browser zu erkennen, die dazu führen, dass alternative Browser sich als andere beliebte Browser ausgeben müssen, um die Überprüfung in den zulässigen Browserlisten zu umgehen.
- Ab dem 17. Januar wurden im Chrome Web Store keine Erweiterungen mehr akzeptiert, die die zweite Version des Chrome-Manifests verwenden. Neue Erweiterungen werden nun nur noch mit der dritten Version des Manifests akzeptiert. Entwickler von zuvor hinzugefügten Erweiterungen können wie bisher Updates mit der zweiten Version des Manifests veröffentlichen. Die vollständige Einstellung der Unterstützung für die zweite Version des Manifests ist für Januar 2023 geplant.
- Unterstützung für farbige Vektorschriften im COLRv1-Format (ein Teilmenge von OpenType-Schriften, die neben Vektorglyphen eine Schicht mit Farbinformationen enthält) wurde hinzugefügt, die beispielsweise zur Erstellung mehrfarbiger Emojis verwendet werden können. Im Gegensatz zum zuvor unterstützten COLRv0-Format ermöglicht COLRv1 den Einsatz von Verläufen, Überlagerungen und Transformationen. Das Format bietet auch eine kompakte Speicherform, ermöglicht effiziente Komprimierung und erlaubt die Wiederverwendung von Konturen, was die Schriftgröße erheblich reduziert. So benötigt die Noto Color Emoji-Schrift im Rasterformat 9 MB, im Vektorformat COLRv1 hingegen nur 1,85 MB.

- Im Origin Trials-Modus (experimentelle Funktionen, die eine separate Aktivierung erfordern) wurde die API Region Capture implementiert, die es ermöglicht, aufgezeichnetes Video zuzuschneiden. Beispielsweise kann das Zuschneiden in Webanwendungen erforderlich sein, die Video-Inhalte von ihrem Tab erfassen, um bestimmte Inhalte vor dem Versenden auszuschneiden. Der Origin Trial ermöglicht die Verwendung der angegebenen API in Anwendungen, die von localhost oder 127.0.0.1 geladen werden, oder nach Registrierung und Erhalt eines speziellen Tokens, das für eine begrenzte Zeit auf einer bestimmten Website gültig ist.
- Im CSS-Eigenschaft «contain-intrinsic-size» wurde die Unterstützung für den Wert «auto» hinzugefügt. Bei Angabe dieses Wertes wird die letzte gespeicherte Größe des Elements verwendet (bei Verwendung mit «content-visibility: auto» muss der Entwickler die gerenderte Größe des Elements nicht erraten).
- Die Eigenschaft AudioContext.outputLatency wurde hinzugefügt, über die Informationen zur vorhergesagten Verzögerung vor der Wiedergabe von Audio abgerufen werden können (die Verzögerung zwischen der Anforderung von Audio und dem Beginn der Verarbeitung der empfangenen Daten durch das Ausgabegerät).
- Die CSS-Eigenschaft color-scheme ermöglicht es, die Farbthemen zu definieren, in denen ein Element korrekt angezeigt werden kann ("light", "dark", "day mode" und "night mode"). Ein zusätzlicher Parameter "only" wurde hinzugefügt, um die erzwungene Änderung des Farbthemas für einzelne HTML-Elemente auszuschließen. Zum Beispiel, wenn "div { color-scheme: only light }" angegeben wird, wird für das Element div nur das helle Thema verwendet, selbst wenn im Browser das dunkle Design gezwungen aktiviert ist.
- CSS unterstützt jetzt die media-Anfragen ‚dynamic-range‘ und ‚video-dynamic-range‘, um die Existenz eines Bildschirms zu bestimmen, der HDR (High Dynamic Range) unterstützt.
- Die Funktion window.open() hat die Möglichkeit erhalten, einen Link in einem neuen Tab, in einem neuen Fenster oder in einem Popup-Fenster zu öffnen. Zudem gibt die Eigenschaft window.statusbar.visible jetzt „false“ für Popups und „true“ für Tabs und Fenster zurück. const popup = window.open(‘_blank’,»,’popup=1′); // In einem Popup-Fenster öffnen const tab = window.open(‘_blank’,»,’popup=0′); // In einem Tab öffnen
- Für Fenster und Worker wurde die Methode structuredClone() implementiert, die rekursive Kopien von Objekten erstellt, die nicht nur die Eigenschaften des angegebenen Objekts, sondern auch aller anderen Objekte umfassen, auf die das aktuelle Objekt verweist.
- Im Web Authentication API wurde die Unterstützung für die Erweiterung der FIDO CTAP2-Spezifikation hinzugefügt, die die Angabe der minimalen zulässigen PIN-Länge (minPinLength) ermöglicht.
- Für installierte eigenständige Webanwendungen wurde die Komponente Window Controls Overlay hinzugefügt, die den Anwendungsbereich des Bildschirms über das gesamte Fenster einschließlich der Kopfzeile erweitert, auf die die Standardfenstersteuerungsschaltflächen (Schließen, Minimieren, Maximieren) gelegt werden. Die Webanwendung kann die Renderausgabe und die Eingabeverarbeitung im gesamten Fenster steuern, mit Ausnahme des überlagerten Blocks mit den Fenstersteuerungsschaltflächen.
- Im WritableStreamDefaultController wurde eine Signalverarbeitungsbeschaffenheit hinzugefügt, die ein AbortSignal-Objekt zurückgibt, mit dem Schreiboperationen in WritableStream sofort gestoppt werden können, ohne auf deren Abschluss zu warten.
- In WebRTC wurde die Unterstützung des SDES-Schlüsselverhandlungsmechanismus entfernt, der 2013 von der IETF aufgrund von Sicherheitsproblemen als veraltet erklärt wurde.
- Standardmäßig ist die U2F API (Cryptotoken) deaktiviert, die zuvor als veraltet erklärt wurde und durch die Web Authentication API ersetzt wurde. Die U2F API wird in Chrome 104 vollständig entfernt.
- Im API-Verzeichnis wurde das veraltete Feld installed_browser_version bekannt gegeben, das durch das neue Feld pending_browser_version ersetzt wird, das die Information über die Browser-Version enthält, unter Berücksichtigung von heruntergeladenen, aber nicht angewendeten Updates (d.h. die Version, die nach einem Neustart des Browsers aktiv sein wird).
- Die Parameter, die die Unterstützung von TLS 1.0 und 1.1 zurückgaben, wurden entfernt.
- Es wurden Verbesserungen an den Werkzeugen für Web-Entwickler vorgenommen. Ein Tab zur Bewertung der Leistung des Back-forward Cache wurde hinzugefügt, der einen sofortigen Zugriff bei der Nutzung der Tasten „Zurück“ und „Vorwärts“ ermöglicht. Die Möglichkeit zur Emulation von Medientypen für forced-colors wurde hinzugefügt. Im Flexbox-Editor wurden Schaltflächen zur Unterstützung der Eigenschaften row-reverse und column-reverse hinzugefügt. Im Tab „Änderungen“ wird eine Anzeige der Änderungen nach der Formatierung des Codes bereitgestellt, was die Analyse von minimierten Seiten erleichtert.

Die Implementierung des Codeansichtspanels wurde auf die Veröffentlichung des Code-Editors CodeMirror 6 aktualisiert, der die Leistung beim Umgang mit sehr großen Dateien (WASM, JavaScript) erheblich verbessert hat, die Probleme mit zufälligen Verschiebungen bei der Navigation gelöst wurden und die Empfehlungen des Autocomplete-Systems beim Bearbeiten von Code optimiert wurden. Im Bereich mit CSS-Eigenschaften wurde die Möglichkeit zur Filterung der Ausgabe nach dem Namen oder Wert der Eigenschaft hinzugefügt.

Neben den Neuerungen und Bugfixes wurden in der neuen Version 27 Schwachstellen behoben. Viele dieser Schwachstellen wurden durch automatisierte Tests mit den Werkzeugen AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL entdeckt. Kritische Probleme, die es ermöglichen, alle Schutzebenen des Browsers zu umgehen und Code im System außerhalb der Sandbox-Umgebung auszuführen, wurden nicht festgestellt. Im Rahmen des Programms zur Auszahlung von Geldprämien für das Auffinden von Schwachstellen hat Google für das aktuelle Release 19 Prämien in Höhe von 88.000 US-Dollar ausgezahlt (zwei Prämien in Höhe von 20.000 US-Dollar, eine Prämie von 12.000 US-Dollar, zwei Prämien von 7.500 US-Dollar, vier Prämien von 1.000 US-Dollar und jeweils eine Prämie von 7.000 US-Dollar, 5.000 US-Dollar, 3.000 US-Dollar und 2.000 US-Dollar).
Quelle: opennet.ru



