Die neueste Version Chrome 86 und das stabile Release von Chromium sind erschienen.
Die wichtigsten Änderungen in Chrome 86:
- Schutz vor unsicheren Eingabeformularübertragungen auf Seiten, die über HTTPS geladen werden, aber Daten über HTTP senden.
- Die Blockierung unsicherer Downloads (http) von ausführbaren Dateien wurde um das Blockieren unsicherer Downloads von Archivdateien (zip, iso usw.) erweitert, mit Warnmeldungen bei unsicheren Downloads von Dokumenten (docx, pdf usw.). In der nächsten Version wird die Blockierung von Dokumenten und die Ausgabe von Warnungen für Bilder, Text- und Multimedia-Dateien erwartet. Die Blockierung wurde eingeführt, da das Herunterladen von Dateien ohne Verschlüsselung für böswillige Aktivitäten verwendet werden kann, indem der Inhalt während MITM-Angriffen manipuliert wird.
- Im Kontextmenü wird standardmäßig die Option „URL immer vollständig anzeigen“ angezeigt, die zuvor eine Änderung der Einstellungen auf der Seite about:flags erforderte. Die vollständige URL kann auch durch zweimaliges Klicken auf die Adressleiste angezeigt werden. Seit Chrome 76 wird standardmäßig die Adresse ohne Protokoll und ohne Subdomain www angezeigt. In Chrome 79 wurde die Einstellung zur Wiederherstellung des alten Verhaltens entfernt, aber nach Unzufriedenheit der Nutzer wurde in Chrome 83 ein neuer experimenteller Flag hinzugefügt, der einen Punkt im Kontextmenü zum Ausschalten der Ausblendung und zum Anzeigen der vollständigen URL unter allen Bedingungen hinzufügt.
- Die Initiative zur Entfernung der Unterstützung von FTP wurde wieder aufgenommen. In Chrome 86 ist FTP standardmäßig für etwa 1 % der Nutzer deaktiviert, und in Chrome 87 wird der Umfang der Deaktivierung auf 50 % erhöht. Die Unterstützung kann jedoch mit dem Flag "—enable-ftp" oder "—enable-features=FtpProtocol" wiederhergestellt werden. In Chrome 88 wird die FTP-Unterstützung vollständig deaktiviert.
- In der Android-Version wurde analog zur Desktop-Version im Passwortmanager eine Überprüfung der gespeicherten Logins und Passwörter anhand einer Datenbank mit kompromittierten Konten implementiert, mit einer Warnmeldung im Falle von Problemen oder beim Versuch, triviale Passwörter zu verwenden. Die Überprüfung erfolgt anhand einer Datenbank, die über 4 Milliarden kompromittierte Konten umfasst, die in Benutzer-Datenlecks aufgetaucht sind. Um die Privatsphäre zu wahren, wird ein Hash-Präfix-Abgleich auf der Benutzerseite verwendet, und die Passwörter sowie deren vollständigen Hashes werden nicht extern übertragen.
- In die Android-Version wurden auch die Schaltfläche "Sicherheitsüberprüfung" (Safety check) und der erweiterte Schutzmodus gegen gefährliche Websites (Enhanced Safe Browsing) übertragen. Die Schaltfläche "Sicherheitsüberprüfung" zeigt eine Zusammenfassung möglicher Sicherheitsprobleme an, wie die Verwendung kompromittierter Passwörter, den Status der Überprüfung unsicherer Websites (Safe Browsing), verfügbare Updates und die Erkennung schädlicher Erweiterungen. Der erweiterte Schutzmodus aktiviert zusätzliche Prüfungen zum Schutz vor Phishing, schädlichem Verhalten und anderen Bedrohungen im Web und bietet zudem zusätzlichen Schutz für das Google-Konto und Google-Dienste (Gmail, Drive usw.). Während im normalen Safe Browsing-Modus die Überprüfungen lokal anhand einer auf das Client-System heruntergeladenen Datenbank durchgeführt werden, wird im erweiterten Safe Browsing die Informationen über Seiten und Downloads in Echtzeit zur Überprüfung an Google gesendet, was ein schnelles Reagieren auf Bedrohungen ermöglicht, unmittelbar nach deren Entdeckung, ohne darauf zu warten, dass die lokale schwarze Liste aktualisiert wird.
- Die Unterstützung für die Datei-Anzeige ".well-known/change-password" wurde hinzugefügt, mit deren Hilfe Website-Besitzer die Adresse eines Webformulars zur Passwortänderung angeben können. Im Falle einer Kompromittierung der Benutzerdaten wird Chrome nun dem Benutzer sofort ein Formular zur Änderung des Passworts vorschlagen, basierend auf den Informationen aus dieser Datei.
- Eine neue Warnmeldung „Safety Tip“ wurde implementiert, die beim Öffnen von Websites angezeigt wird, deren Domains sehr ähnlich sind wie eine andere Website, und die Heuristik zeigt, dass die Wahrscheinlichkeit eines Spoofings hoch ist (zum Beispiel wurde goog0le.com anstelle von google.com geöffnet).
* Die Unterstützung für den Back-forward Cache wurde implementiert, die einen sofortigen Wechsel beim Verwenden der Tasten „Zurück“ und „Vorwärts“ oder beim Navigieren zu zuvor besuchten Seiten der aktuellen Website ermöglicht. Der Cache wird durch die Einstellung chrome://flags/#back-forward-cache aktiviert.
- Optimierung des CPU-Ressourcenverbrauchs durch Fenster außerhalb des sichtbaren Bereichs. Chrome überprüft, ob das Browserfenster von anderen Fenstern überlappt wird, und schließt die Pixel-Rendering in den überlappenden Bereichen aus. Diese Optimierung wurde für einen kleinen Prozentsatz der Benutzer in Chrome 84 und 85 aktiviert und ist jetzt allgemein verfügbar. Im Vergleich zu früheren Versionen wurde auch eine Inkompatibilität mit Virtualisierungssystemen behoben, die leere weiße Seiten anzeigte.
- Die Ressourcennutzung für Hintergrund-Tabs wurde weiter eingeschränkt. Solche Tabs können jetzt nicht mehr als 1 % der CPU-Ressourcen verbrauchen und dürfen nicht häufiger als einmal pro Minute aktiviert werden. Nach fünf Minuten im Hintergrund werden die Tabs eingefroren, mit Ausnahme von Tabs, in denen Multimedia-Inhalte wiedergegeben oder aufgenommen werden.
- Die Arbeiten zur Vereinheitlichung des HTTP-Headers User-Agent wurden wieder aufgenommen. In der neuen Version wurde für alle Benutzer die Unterstützung für den User-Agent Client Hints-Mechanismus aktiviert, der als Ersatz für User-Agent entwickelt wird. Der neue Mechanismus sieht die selektive Bereitstellung von Daten zu bestimmten Browser- und Systemparametern (Version, Plattform usw.) nur auf Anfrage des Servers vor und ermöglicht es den Benutzern, solche Informationen selektiv den Websitebesitzern zur Verfügung zu stellen. Bei der Verwendung von User-Agent Client Hints wird die ID standardmäßig nicht ohne ausdrückliche Anfrage übermittelt, was eine passive Identifizierung unmöglich macht (standardmäßig wird nur der Name des Browsers angegeben).
Die Anzeige für verfügbare Updates und die Notwendigkeit, den Browser zum Installieren neu zu starten, wurde geändert. Statt einem farbigen Pfeil im Profil-Aavatar-Feld wird nun die Meldung „Update“ angezeigt. - Es wurde Arbeit geleistet, um den Browser auf die Verwendung inklusiver Terminologie umzustellen. In den Bezeichnungen der Richtlinien wurden die Wörter „whitelist“ und „blacklist“ durch „allowlist“ und „blocklist“ ersetzt (bereits hinzugefügte Richtlinien werden weiterhin funktionieren, allerdings wird eine Warnung zum Umstieg auf veraltete Begriffe angezeigt). Im Code und in den Dateinamen wurden die Erwähnungen von „blacklist“ durch „blocklist“ ersetzt. Sichtbare Erwähnungen von „blacklist“ und „whitelist“ wurden bereits Anfang 2019 geändert.
Eine experimentelle Möglichkeit zum Bearbeiten gespeicherter Passwörter wurde hinzugefügt, die über den Schalter „chrome://flags/#edit-passwords-in-settings“ aktiviert werden kann. - Der Native File System API wurde auf stabile und öffentliche Versionen umgestellt, die das Erstellen von Webanwendungen ermöglichen, die mit Dateien im lokalen Dateisystem interagieren. Dieser neue API könnte beispielsweise in integrierten Entwicklungsumgebungen, Text-, Bild- und Videoschnittprogrammen, die im Browser laufen, nachgefragt werden. Um direkten Zugriff auf das Lesen und Schreiben von Dateien zu erhalten oder Dialoge zum Öffnen und Speichern von Dateien zu nutzen sowie durch Verzeichnisse zu navigieren, benötigt die Anwendung eine spezielle Bestätigung des Nutzers.
- Ein CSS-Selektor „:focus-visible“ wurde hinzugefügt, der die gleiche Heuristik verwendet, die der Browser bei der Entscheidung über die Anzeige des Fokusindikators anwendet (der Indikator erscheint, wenn der Fokus mit Tastenkombinationen auf eine Schaltfläche verschoben wird, jedoch nicht bei einem Mausklick). Der zuvor verfügbare CSS-Selektor „:focus“ hebt den Fokus immer hervor. Darüber hinaus wurde eine Option „Quick Focus Highlight“ in die Einstellungen eingefügt, bei der bei Aktivierung neben aktiven Elementen ein zusätzlicher Indikator für den Fokus angezeigt wird, der sichtbar bleibt, selbst wenn auf der Seite über CSS die Sichtbarkeit der Stil-Elemente für die visuelle Hervorhebung des Fokusses deaktiviert wurde.
- Im Modus der Origin Trials (experimentelle Funktionen, die eine separate Aktivierung erfordern) wurden mehrere neue APIs hinzugefügt. Origin Trial bedeutet die Möglichkeit, mit der angegebenen API aus Anwendungen zu arbeiten, die von localhost oder 127.0.0.1 geladen werden, oder nach erfolgreicher Registrierung und Erhalt eines speziellen Tokens, der für eine begrenzte Zeit für eine bestimmte Website gültig ist.
- API WebHID für den Low-Level-Zugriff auf HID-Geräte (Human Interface Device, Tastaturen, Mäuse, Gamepads, Touchpanels), die es ermöglichen, Logik zur Arbeit mit HID-Geräten in JavaScript zu implementieren, um die Funktionalität seltener HID-Geräte ohne spezifische Treiber im System zu gestalten. Der neue API zielt in erster Linie darauf ab, die Unterstützung für Gamepads bereitzustellen.
- API Screen Information erweitert die Möglichkeiten des API Window Placement durch die Unterstützung von Konfigurationen mit mehreren Bildschirmen. Im Gegensatz zu window.screen erlaubt der neue API die Manipulation der Fensterplatzierung im gemeinsamen Bildschirmraum von Multi-Monitor-Systemen, ohne sich auf den aktuellen Bildschirm zu beschränken.
- Meta-Tag battery-savings, mit dem die Website den Browser darüber informieren kann, dass Energiesparmodi aktiviert und die CPU-Belastung optimiert werden muss.
- API COOP Reporting zur Information über potenzielle Verstöße gegen die Isolationsmodi der Cross-Origin-Embedder-Policy (COEP) und der Cross-Origin-Opener-Policy (COOP), ohne tatsächliche Beschränkungen anzuwenden.
- Im API Credential Management wurde ein neuer Typ von Anmeldeinformationen, PaymentCredential, eingeführt, der eine zusätzliche Bestätigung einer Zahlungsoperation ermöglicht. Die prüfende Seite, zum Beispiel die Bank, kann einen öffentlichen Schlüssel PublicKeyCredential generieren, der vom Verkäufer für eine zusätzliche sichere Bestätigung der Zahlung angefordert werden kann.
- Im API PointerEvents wurde die Unterstützung für die Neigung des Stylus* um Höhenwinkel (Winkel zwischen Stylus und Bildschirm) und Azimut (Winkel zwischen der X-Achse und der Projektion des Stylus auf den Bildschirm) anstelle von TiltX und TiltY (Winkel zwischen der Ebene des Stylus und einer der Achsen sowie der Ebene der Achsen Y und Z) erweitert. Außerdem wurden Funktionen zur Umrechnung zwischen Höhe/Azimut und TiltX/TiltY hinzugefügt.
- Die Codierung von Leerzeichen in URLs wurde geändert. Bei der Berechnung in den Protokollverarbeitern ersetzt die Methode navigator.registerProtocolHandler() jetzt Leerzeichen durch "" anstelle von "+". Dies vereinheitlicht das Verhalten mit anderen Browsern wie Firefox.
- Im CSS wurde das Pseudo-Element "::marker" hinzugefügt, das es ermöglicht, Farbe, Größe, Form und Typ von Zahlen und Punkten für Aufzählungen in <ul> und <ol> zu konfigurieren.
- Die Unterstützung für den HTTP-Header Document-Policy wurde hinzugefügt, der Regeln für den Zugang zu Dokumenten festlegt, die ähnlich wie der Sandbox-Isolationsmechanismus für iFrames funktionieren, jedoch universeller sind. Beispielsweise kann über die Document-Policy die Verwendung minderwertiger Bilder eingeschränkt, langsame JavaScript-APIs deaktiviert, Regeln für das Laden von iFrames, Bildern und Skripten konfiguriert, die gesamte Dokumentgröße und den Datenverkehr limitiert sowie Methoden, die zu einer Neuladung der Seite führen, verboten werden. Genauer gesagt, kann die Funktion Scroll-To-Text abgeschaltet werden.
- Im Element
- Die Methode ParentNode.replaceChildren() wurde hinzugefügt, um alle Kind-Elemente eines übergeordneten Knotens durch einen anderen DOM-Knoten zu ersetzen. Zuvor konnte man zur Ersetzung von Knoten eine Kombination der Methoden node.removeChild() und node.append() oder node.innerHTML und node.append() verwenden.
- Das Spektrum der URL-Schemata, die zur Überschreibung mit registerProtocolHandler() zulässig sind, wurde erweitert. Die Liste der Schemata umfasst dezentrale Protokolle wie cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns und ssb, was es ermöglicht, Links zu Elementen unabhängig von der Website oder dem Gateway, das den Zugriff auf die Ressource bereitstellt, zu definieren.
- Im API Asynchronous Clipboard wurde die Unterstützung für das Format text/html für das Kopieren und Einfügen von HTML über die Zwischenablage hinzugefügt (beim Schreiben und Lesen in die Zwischenablage werden gefährliche HTML-Konstrukte bereinigt). Diese Änderung ermöglicht es beispielsweise, in Web-Editoren das Einfügen und Kopieren von formatiertem Text mit Bildern und Links zu organisieren.
- In WebRTC wurde die Möglichkeit hinzugefügt, eigene Datenhandler zu verbinden, die in den Phasen der Kodierung oder Dekodierung von WebRTC MediaStreamTrack aufgerufen werden. Diese Funktion kann zum Hinzufügen von Unterstützung für End-to-End-Verschlüsselung von Daten, die über Zwischenserver übertragen werden, verwendet werden.
Im JavaScript-Engine V8 wurde die Implementierung von Number.prototype.toString um 75% beschleunigt. Den asynchronen Klassen wurde die Eigenschaft .name mit einem leeren Wert hinzugefügt. Die Methode Atomics.wake wurde entfernt, die zu einem Zeitpunkt in Atomics.notify umbenannt wurde, um der ECMA-262-Spezifikation zu entsprechen. Der Code des Fuzzing-Testwerkzeugs JS-Fuzzer wurde offenbart. - Im im letzten Update verwendeten Ausgangscompiler Liftoff für WebAssembly ist die Möglichkeit zur Nutzung von SIMD-Vektorbefehlen zur Beschleunigung von Berechnungen integriert. Laut den Tests hat diese Optimierung die Durchführung einiger Tests um das 2,8-fache beschleunigt. Eine weitere Optimierung hat die Aufrufe von in WebAssembly importierten JavaScript-Funktionen erheblich beschleunigt.
- Die Werkzeuge für Webentwickler wurden erweitert: Im Medien-Bereich wurden Informationen über die Player hinzugefügt, die für die Video-Wiedergabe auf der Seite verwendet werden, einschließlich Daten zu Ereignissen, Protokollen, Eigenschaftswerten und Frame-Dekodierungsparametern (zum Beispiel kann man die Ursachen für Frame-Verluste und Probleme bei der Interaktion aus JavaScript heraus ermitteln).
- Im Kontextmenü des Elements-Bereichs wurde die Möglichkeit hinzugefügt, Screenshots des ausgewählten Elements zu erstellen (zum Beispiel kann man einen Screenshot des Inhaltsverzeichnisses oder der Tabelle erstellen).
- Im Webkonsole wurde die Warnung über Probleme durch eine normale Nachricht ersetzt, und Probleme mit Drittanbieter-Cookies sind standardmäßig im Tab "Issues" ausgeblendet und können mit einer speziellen Checkbox aktiviert werden.
- Im Tab Rendering wurde die Schaltfläche „Lokale Schriftarten deaktivieren“ hinzugefügt, die es ermöglicht, das Fehlen lokaler Schriftarten zu simulieren, und im Tab Sensoren gibt es die Möglichkeit, inaktive Benutzer zu simulieren (für Anwendungen, die die API Idle Detection verwenden).
- Im Anwendungs-Bereich werden detaillierte Informationen zu jedem iframe, geöffneten Fenstern und Pop-ups bereitgestellt, einschließlich Daten zur Cross-Origin-Isolierung mittels COEP und COOP.
Der Austausch der QUIC-Protokollimplementierung hat begonnen, um die Variante zu verwenden, die in der IETF-Spezifikation entwickelt wird, anstatt die Google-Variante von QUIC.
Neben Neuerungen und Fehlerbehebungen wurden in der neuen Version 35 Sicherheitsanfälligkeiten behoben. Viele dieser Schwachstellen wurden durch automatisierte Tests mit den Werkzeugen AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer und AFL festgestellt. Eine Schwachstelle (CVE-2020-15967, der Zugriff auf einen freigegebenen Speicherbereich im Code für die Interaktion mit Google Payments) wurde als kritisch markiert, d.h. sie erlaubt es, alle Browserschutzebenen zu umgehen und Code außerhalb der Sandbox-Umgebung im System auszuführen. Im Rahmen des Programms zur Belohnung für die Entdeckung von Sicherheitsanfälligkeiten hat Google für die aktuelle Version 27 Prämien in Höhe von 71.500 US-Dollar ausgezahlt (eine Prämie von 15.000 $, drei Prämien von 7.500 $, fünf Prämien von 5.000 $, zwei Prämien von 3.000 $, eine Prämie von 200 $ und zwei Prämien von 500 $). Die Höhe von 13 Prämien ist noch nicht festgelegt.
Entnommen von Opennet.ru
Quelle: linux.org.ru
