Google hat die Version 91 des Webbrowsers Chrome veröffentlicht. Gleichzeitig ist die stabile Version des freien Projekts Chromium verfügbar, welches die Grundlage für Chrome bildet. Der Browser Chrome zeichnet sich durch die Verwendung des Google-Logos, ein Benachrichtigungssystem bei Abstürzen, Module zur Wiedergabe von geschütztem Videoinhalt (DRM), eine automatische Update-Installation und die Übermittlung von RLZ-Parametern bei der Suche aus. Die nächste Version, Chrome 92, ist für den 20. Juli geplant.
Die wichtigsten Änderungen in Chrome 91:
- Die Möglichkeit, die Ausführung von JavaScript in minimierten Tabgruppen zu pausieren, wurde umgesetzt. In Chrome 85 wurde die Unterstützung für die Gruppierung von Tabs eingeführt, die mit einer bestimmten Farbe und einem Label verknüpft werden können. Beim Klicken auf das Gruppenlabel werden die zugehörigen Tabs minimiert und es bleibt nur das Label sichtbar (ein erneutes Klicken auf das Label erweitert die Gruppe). In der neuen Version wurde zur Reduzierung der CPU-Last und zur Energieeinsparung die Aktivität in minimierten Tabs angehalten. Ausnahmen gelten nur für Tabs, in denen Ton abgespielt wird, die API Web Locks oder IndexedDB verwenden, eine Verbindung zu einem USB-Gerät besteht oder Video-, Audio- oder Fensterinhalte erfasst werden. Die Änderung wird schrittweise eingeführt, beginnend mit einem kleinen Prozentsatz der Nutzer.
- Die Unterstützung des quantencomputersicheren Schlüsselaustauschverfahrens ist aktiviert. Quantencomputer lösen das Problem der Zerlegung einer natürlichen Zahl in ihre Primfaktoren, welches die Grundlage moderner asymmetrischer Verschlüsselungsalgorithmen bildet, grundlegend schneller als klassische Prozessoren, was auf klassischen Systemen nicht effizient lösbar ist. Für die Verwendung in TLSv1.3 wird das Plugin CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2) bereitgestellt, das den klassischen Schlüsselaustauschmechanismus X25519 mit dem auf dem NTRU Prime Algorithmus basierenden HRSS-Schema kombiniert, das für post-quanten Krypto-Systeme entwickelt wurde.
- Die Unterstützung der Protokolle TLS 1.0 und TLS 1.1 wurde vollständig eingestellt, da sie vom IETF-Komitee (Internet Engineering Task Force) als veraltet eingestuft wurden. Dies umfasst auch die Möglichkeit, TLS 1.0/1.1 durch die Änderung der Richtlinie SSLVersionMin wiederherzustellen.
- In den Builds für die Linux-Plattform ist der Modus „DNS über HTTPS“ (DoH, DNS over HTTPS) integriert, der zuvor Nutzern von Windows, macOS, ChromeOS und Android zur Verfügung gestellt wurde. DNS-over-HTTPS wird automatisch aktiviert für Nutzer, deren Einstellungen DNS-Anbieter angeben, die diese Technologie unterstützen (für DNS-over-HTTPS wird derselbe Anbieter verwendet, der auch für DNS angewendet wird). Beispielsweise, wenn der DNS in den Systemeinstellungen auf 8.8.8.8 gesetzt ist, wird der DNS-over-HTTPS-Dienst von Google („https://dns.google.com/dns-query“) in Chrome aktiviert. Ist der DNS 1.1.1.1, wird der DNS-over-HTTPS-Dienst von Cloudflare („https://cloudflare-dns.com/dns-query“) aktiviert usw.
- Der Port 10080, der in Amanda Backup und vCenter von VMware verwendet wird, wurde zu den gesperrten Netzwerkports hinzugefügt. Zuvor waren bereits die Ports 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 und 6566 blockiert worden. Für die in der schwarzen Liste befindlichen Ports wird der Versand von HTTP-, HTTPS- und FTP-Anfragen blockiert, um Angriffe durch NAT Slipstreaming zu verhindern. Solche Angriffe ermöglichen es, beim Öffnen einer speziell präparierten Webseite im Browser eine Netzwerkverbindung vom Angreifer-Server zu beliebigen UDP- oder TCP-Ports auf dem System des Nutzers herzustellen, selbst wenn ein internes Adressgebiet (192.168.x.x, 10.x.x.x) verwendet wird.
- Es besteht die Möglichkeit, den automatischen Start von isolierten Webanwendungen (PWA – Progressive Web Apps) beim Anmelden des Benutzers im System (Windows und macOS) zu konfigurieren. Der Autostart wird auf der Seite chrome://apps konfiguriert. Diese Funktionalität wird derzeit nur einem kleinen Prozentsatz der Nutzer getestet, während sie für andere durch die Aktivierung der Einstellung „chrome://flags/#enable-desktop-pwas-run-on-os-login“ verfügbar gemacht werden muss.
- Im Rahmen der Bemühungen, den Browser auf inklusive Terminologie umzustellen, wurde die Datei „master_preferences“ in „initial_preferences“ umbenannt. Zur Wahrung der Kompatibilität wird die Unterstützung von „master_preferences“ noch einige Zeit im Browser bestehen bleiben. Der Browser hat bereits die Verwendung der Begriffe „whitelist“, „blacklist“ und „native“ abgeschafft.
- Im erweiterten Modus zum Schutz vor gefährlichen Websites (Enhanced Safe Browsing) werden zusätzliche Überprüfungen aktiviert, um vor Phishing, bösartiger Aktivität und anderen Bedrohungen im Web zu schützen. Zudem besteht die Möglichkeit, hochgeladene Dateien zur Überprüfung an Google zu senden. Darüber hinaus wird im Enhanced Safe Browsing das Tracking von Tokens, die mit dem Google-Konto verbunden sind, berücksichtigt, wenn Phishing-Versuche erkannt werden. Auch die Werte des Referrer-Headers werden an die Google-Server gesendet, um den Missbrauch durch bösartige Websites zu überprüfen.
- In der Android-Version wurde das Design von Webformularen verbessert, die für die Nutzung auf Touchscreens und für Personen mit Behinderungen optimiert wurden (für Desktop-Systeme wurde das Design in Chrome 83 überarbeitet). Ziel der Neugestaltung war die Vereinheitlichung des Formular-Designs und die Beseitigung von Stilabweichungen – zuvor waren einige Formelemente nach den Benutzeroberflächen der Betriebssysteme gestaltet, während andere die beliebtesten Designs widerspiegelten. Dadurch passten verschiedene Elemente unterschiedlich gut zu Touchscreens und Systemen für Menschen mit Behinderungen.


- Eine Umfrage zur Nutzermeinung wurde hinzugefügt, die beim Öffnen der Einstellungen für den Privacy Sandbox angezeigt wird (chrome://settings/privacySandbox).
- Beim Start der Android-Version von Chrome auf großen Tablets wird die Desktop-Version der Website angefordert, nicht die mobile Ausgabe. Das Verhalten kann über die Einstellung „chrome://flags/#request-desktop-site-for-tablets“ geändert werden.
- Der Code zur Darstellung von Tabellen wurde überarbeitet, was es ermöglicht hat, Probleme mit dem abweichenden Verhalten bei der Anzeige von Tabellen in Chrome und Firefox/Safari zu beheben.
- Die Verarbeitung von Serverzertifikaten der spanischen Zertifizierungsstelle Camerfirma wurde eingestellt, nachdem seit 2017 wiederholt Vorfälle im Zusammenhang mit Zertifikatsausgaben festgestellt wurden. Die Unterstützung für Kunden-Zertifikate bleibt erhalten, die Sperrung gilt nur für Zertifikate, die auf Websites für HTTPS verwendet werden.
- Es wird weiterhin an der Unterstützung der Netzwerksegmentierung gearbeitet, um Methoden zum Verfolgen der Benutzerbewegungen zwischen Webseiten zu schützen, die auf der Speicherung von IDs in Bereichen basieren, die nicht für die dauerhafte Speicherung von Informationen vorgesehen sind („Supercookies“). Da die im Cache gespeicherten Ressourcen im gleichen Namensraum und unabhängig von der ursprünglichen Domain abgelegt werden, kann eine Website überprüfen, ob Ressourcen von einer anderen Website über die Verfügbarkeit dieser Ressourcen im Cache geladen werden. Der Schutz basiert auf der Anwendung von Netzwerksegmentierung, die darin besteht, zusätzliche Bindungen von Einträgen zu gemeinsam genutzten Caches hinzuzufügen. Domain, über die die Startseite geöffnet wird, was den Cache-Bereich für Tracking-Skripte auf die aktuelle Website beschränkt (das Skript aus dem iframe kann nicht überprüfen, ob die Ressource von einer anderen Website geladen wurde).
Die Kosten für die Segmentierung bestehen in einer verringerten Effizienz der Zwischenspeicherung, was zu einer minimalen Erhöhung der Ladezeit der Seite führt (maximal um 1,32 %, in 80 % der Fälle jedoch um 0,09–0,75 %). Um den Segmentierungsmodus zu testen, können Sie den Browser mit der Option „—enable-features=PartitionConnectionsByNetworkIsolationKey, PartitionExpectCTStateByNetworkIsolationKey, PartitionHttpServerPropertiesByNetworkIsolationKey, PartitionNelAndReportingByNetworkIsolationKey, PartitionSSLSessionsByNetworkIsolationKey, SplitHostCacheByNetworkIsolationKey“ starten.
- Eine externe REST-API VersionHistory (https://versionhistory.googleapis.com/v1/chrome) wurde hinzugefügt, über die Informationen zu Chrome-Versionen in Bezug auf Plattformen und Branches sowie zur Aktualisierungsgeschichte des Browsers abgerufen werden können.
- In iframes, die von Domains geladen werden, die sich von der Basiswebsite unterscheiden, ist die Anzeige von JavaScript-Dialogen wie alert(), confirm() und prompt() verboten, um Benutzer vor dem Versuch zu schützen, dass ein externes Skript Nachrichten mit dem Hinweis anzeigt, dass die Benachrichtigung von der Hauptwebsite stammt.
- Der stabilisierte und standardmäßig angebotene API WebAssembly SIMD ermöglicht die Nutzung von SIMD-Befehlen in WebAssembly-Anwendungen. Um Plattformunabhängigkeit zu gewährleisten, wird ein neuer 128-Bit-Typ eingeführt, der verschiedene Arten von gepackten Daten darstellen kann, sowie mehrere grundlegende Vektoroperationen zur Verarbeitung dieser Daten. SIMD verbessert die Leistung durch die Parallelisierung der Datenverarbeitung und ist bei der Kompilierung von nativem Code nach WebAssembly von Vorteil.
- Im Origin Trials-Modus (experimentelle Funktionen, die eine separate Aktivierung erfordern) wurden mehrere neue APIs hinzugefügt. Der Origin Trial ermöglicht die Nutzung der angegebenen API aus Anwendungen, die von localhost oder 127.0.0.1 geladen werden, oder nach Registrierung und Erhalt eines speziellen Tokens, das für einen bestimmten Zeitraum für eine bestimmte Website gültig ist.
- WebTransport ist ein Protokoll und ein entsprechendes JavaScript-API zum Senden und Empfangen von Daten zwischen dem Browser und dem Server durch. Der Kommunikationskanal wird über HTTP/3 erstellt, wobei QUIC als Transportprotokoll verwendet wird, das eine Schicht über dem UDP-Protokoll darstellt und die Multiplexierung mehrerer Verbindungen unterstützt sowie Verschlüsselungsmethoden bereitstellt, die TLS/SSL entsprechen.
WebTransport kann als Ersatz für WebSockets und RTCDataChannel verwendet werden und bietet zusätzliche Funktionen wie die Organisation von Mehrfachübertragungen, einseitige Streams sowie die Lieferung von Paketen ohne Beachtung der Reihenfolge (out-of-order) sowie zuverlässige und unzuverlässige Liefermodi. Darüber hinaus kann WebTransport anstelle des Server Push-Mechanismus eingesetzt werden, von dem Google in Chrome Abstand genommen hat.
- Deklarative Schnittstelle zur Definition von Links zu isolierten Web-Anwendungen (PWA), die über den Parameter capture_links im Manifest der Web-Anwendung aktiviert wird und es Websites ermöglicht, beim Klicken auf einen Anwendungslink automatisch ein neues PWA-Fenster zu öffnen oder in einen Einfenster-Modus zu wechseln, ähnlich wie bei mobilen Anwendungen.
- Die API WebXR Plane Detection wurde hinzugefügt, um Informationen über flache Oberflächen in virtuellen 3D-Umgebungen bereitzustellen. Diese API ermöglicht es, ohne rechenintensive Datenverarbeitung auszukommen, die durch den Aufruf von MediaDevices.getUserMedia() erhalten wird, unter Verwendung eigener Implementierungen von Algorithmen für maschinelles Sehen. Erinnern wir uns daran, dass die WebXR API die Arbeit mit verschiedenen Klassen von Virtual-Reality-Geräten vereinheitlicht, von stationären 3D-Headsets bis hin zu mobilen Lösungen.
- WebTransport ist ein Protokoll und ein entsprechendes JavaScript-API zum Senden und Empfangen von Daten zwischen dem Browser und dem Server durch. Der Kommunikationskanal wird über HTTP/3 erstellt, wobei QUIC als Transportprotokoll verwendet wird, das eine Schicht über dem UDP-Protokoll darstellt und die Multiplexierung mehrerer Verbindungen unterstützt sowie Verschlüsselungsmethoden bereitstellt, die TLS/SSL entsprechen.
- Die Unterstützung für die Verwendung von WebSockets über HTTP/2 (RFC 8441) wurde implementiert. Diese funktioniert ausschließlich für sichere WebSocket-Anfragen und setzt eine bereits etablierte HTTP/2-Verbindung mit dem Server voraus, in der die Unterstützung für die Erweiterung 'WebSockets over HTTP/2' angekündigt wurde.
- Die Einschränkungen der Genauigkeit von Timerwerten, die durch den Aufruf von performance.now() bereitgestellt werden, wurden für alle unterstützten Plattformen vereinheitlicht und an die Möglichkeit der Isolation von Handlern in separaten Prozessen angepasst. Beispielsweise wurde auf Desktop-Systemen die Genauigkeit in nicht-isolierten Kontexten von 5 auf 100 Mikrosekunden verringert.
- In den Builds für Desktop-Systeme wurde die Möglichkeit implementiert, Dateien aus der Zwischenablage zu lesen (das Schreiben von Dateien in die Zwischenablage bleibt jedoch untersagt). async function onPaste(e) { let file = e.clipboardData.files[0]; let contents = await file.text(); }
- Im CSS wurde die Regel @counter-style eingeführt, die es ermöglicht, eigene Stile für Zähler und Labels in nummerierten Listen zu definieren.
- Im CSS Pseudoklassen «:host()» und «:host-context()» wurde die Möglichkeit hinzugefügt, einzelne Werte zusammengesetzter Selektoren () zusätzlich zu Listen von Selektoren () zu übergeben.
- Eine Schnittstelle für GravitySensor wurde hinzugefügt, um dreidimensionale (in drei Achsen) Daten vom Gravitation-Sensor zu bestimmen.
- Im File System Access API wurde die Möglichkeit hinzugefügt, Empfehlungen für die Auswahl von Dateinamen und Verzeichnissen zu geben, die im Dialog zum Erstellen oder Öffnen von Dateien angeboten werden.
- In von anderen Domains geladenen iframes ist der Zugriff auf die WebOTP API erlaubt, sofern der Benutzer die entsprechenden Berechtigungen erteilt. WebOTP ermöglicht das Lesen von einmaligen Bestätigungscodes, die per SMS gesendet werden.
- Es ist erlaubt, den gemeinsamen Zugang zu Anmeldedaten für Websites zu ermöglichen, die durch den DAL (Digital Asset Links) Mechanismus verbunden sind. Dieser ermöglicht die Zuordnung von Android-Anwendungen zu Websites, um den Login zu erleichtern.
- Im Service Worker ist die Verwendung von JavaScript-Modulen erlaubt. Wenn der Typ ‘module’ beim Aufruf des Konstruktors angegeben wird, werden die genannten Skripte als Module geladen und können im Kontext des Workers importiert werden. Die Unterstützung von Modulen erleichtert das Teilen von Code auf Webseiten und in Service Workern.
- In JavaScript gibt es die Möglichkeit, die Existenz geschlossener Felder in einem Objekt zu überprüfen, indem man die Syntax „#foo in obj“ verwendet. class A { static test(obj) { console.log(#foo in obj); } #foo = 0; } A.test(new A()); // true A.test({}); // false
- In JavaScript ist die Verwendung des Schlüsselworts await standardmäßig auf oberster Ebene in Modulen erlaubt, was eine sanftere Integration von asynchronen Aufrufen in den Modul-Ladeprozess ermöglicht, ohne eine „async function“ einpacken zu müssen. Zum Beispiel kann man jetzt statt (async function() { await Promise.resolve(console.log(‘test’)); }()); einfach schreiben await Promise.resolve(console.log(‘test’));
- Im JavaScript-Engine V8 wurde die Effizienz beim Caching von Vorlagen verbessert, was die Geschwindigkeit beim Speedometer2-FlightJS-Test um 4,5 % erhöhte.
- Es wurden umfangreiche Verbesserungen an den Entwicklertools vorgenommen. Ein neuer Modus zum Speichern von Daten (Memory Inspector) wurde hinzugefügt, der Werkzeuge zur Analyse von ArrayBuffer-Daten und Wasm-Speicher bereitstellt.

Im Performance-Panel wurde eine Zusammenfassungsanzeige zur Leistung hinzugefügt, um festzustellen, ob die Website optimierungsbedürftig ist oder nicht.

Beim Vorschau von Bildern im Elements-Panel und im Netzwerk-Analysepanel wird jetzt das Seitenverhältnis des Bildes sowie die Anzeigeparameter und die Dateigröße angezeigt.

Im Netzwerkinspektor gibt es nun die Möglichkeit, die Werte des Headers Content-Encoding zu ändern.

Im Styles-Panel können die berechneten Werte schnell angezeigt werden, während Sie durch die CSS-Parameter navigieren, indem Sie im Kontextmenü "Berechneten Wert anzeigen" auswählen.

Neben neuen Funktionen und der Behebung von Fehlern wurden in der neuen Version 32 Sicherheitsanfälligkeiten behoben. Viele dieser Schwachstellen wurden durch automatisierte Tests mit den Werkzeugen AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL identifiziert. Kritische Probleme, die es ermöglichen, alle Schutzebenen des Browsers zu umgehen und Code außerhalb der Sandbox-Umgebung auszuführen, wurden nicht gefunden. Im Rahmen des Programms zur Auszahlung von Belohnungen für die Entdeckung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version 21 Prämien in Höhe von 92.000 US-Dollar ausgezahlt (eine Prämie von 20.000 US-Dollar, eine Prämie von 15.000 US-Dollar, vier Prämien von 7.500 US-Dollar, drei Prämien von 5.000 US-Dollar, drei Prämien von 3.000 US-Dollar, zwei Prämien von 1.000 US-Dollar und zwei Prämien von 500 US-Dollar). Die Höhe von 5 Belohnungen ist noch nicht festgelegt.
Quelle: opennet.ru







