API-Einstellungen und -Entfernungen in Chrome 56

Joe Medley
Joe Medley

In fast jeder Version von Chrome gibt es eine beträchtliche Anzahl von Updates und Verbesserungen des Produkts, seiner Leistung und auch der Funktionen der Web-Plattform. In diesem Artikel werden die Einstellungen in Chrome 56 beschrieben, die sich am 8. Dezember in der Betaphase befinden. Diese Liste kann sich jederzeit ändern.

Unterstützung für SHA-1-Zertifikate entfernen

Der kryptografische Hash-Algorithmus SHA-1 zeigte vor mehr als elf Jahren zum ersten Mal Anzeichen von Schwachstelle. Kürzliche Untersuchungen deuten jedoch auf die unmittelbare Möglichkeit von Angriffen hin, die sich direkt auf die Integrität der Public-Key-Infrastruktur (PKI) für das Web auswirken könnten.

Um Nutzer vor solchen Angriffen zu schützen, unterstützt Chrome ab Chrome 56 keine SHA-1-Zertifikate mehr. Die stabile Version ist im Januar 2017 verfügbar. Wenn Sie eine Website mit einem solchen Zertifikat besuchen, wird eine Interstitial-Warnung angezeigt. Mehr dazu erfahren Sie im Blog zur Chrome-Sicherheit.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

ECDSA-Chiffren im CBC-Modus in TLS entfernen

Die Konstruktion im CBC-Modus von TLS ist fehlerhaft, was die sichere Implementierung instabil und sehr schwierig macht. Obwohl die Verschlüsselung im CBC-Modus bei RSA immer noch weit verbreitet ist, sind sie bei ECDSA praktisch nicht vorhanden. Auch andere Browser unterstützen diese Chiffren. Wir gehen jedoch davon aus, dass das Risiko gering ist. Darüber hinaus wird ECDSA in TLS von wenigen Organisationen und in der Regel mit einer komplexeren Einrichtung verwendet (einige ältere Clients unterstützen nur RSA). Daher erwarten wir, dass ECDSA-Websites besser gepflegt werden und im Fall von Problemen schneller reagieren.

Mit TLS 1.2 wurden neue auf AEADs basierende Chiffren hinzugefügt, um diese Probleme zu vermeiden, insbesondere AES_128_GCM, AES_256_GCM oder CHACHA20_POLY1305. Obwohl dies derzeit nur für ECDSA-basierte Websites erforderlich ist, wird sie allen Administratoren empfohlen. AEAD-basierte Chiffren verbessern nicht nur die Sicherheit, sondern auch die Leistung. AES-GCM unterstützt neuere CPUs und ChaCha20-Poly1305 unterstützt schnelle Softwareimplementierungen. Währenddessen erfordern CBC-Chiffren langsame, komplexe Risikominderungen und einen PRNG-Zugriff auf jeden ausgehenden Datensatz. AEAD-basierte Chiffren sind auch eine Voraussetzung für HTTP/2- und Falschstart-Optimierungen.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

Nutzergesten vom Scrollen durch Berührung entfernen

Wir haben mehrere Beispiele für schlecht geschriebene oder schädliche Anzeigen gesehen, die bei touchstart- oder allen touchend-Ereignissen eine Navigation durch Touch-Scrollen auslösen. Wenn durch ein Wheel-Ereignis kein Pop-up geöffnet werden kann, sollte das Scrollen durch Tippen nicht funktionieren. Dadurch können einige Szenarien beeinträchtigt werden, z. B. wenn Medien bei Berührung nicht abgespielt werden oder Pop-ups bei Berührung nicht geöffnet werden. In all diesen Fällen kann Safari keine Pop-ups mehr öffnen.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

Alle Abrufe von Skripts mit ungültigen Typ-/Sprachattributen nicht zulassen

Derzeit ruft der Vorabladescanner von Chrome Elemente in <scripts>-Elementen unabhängig vom Wert des Attributs type oder language ab. Das Skript wird jedoch beim Parsen nicht ausgeführt. Wenn Sie den Abruf verwerfen, haben der Vorabladescanner und der Parser die gleiche Semantik und wir initiieren keine Abrufe für Skripts, die nicht verwendet werden. Damit sollen Daten für Nutzer gespeichert werden, die Websites mit vielen benutzerdefinierten Script-Tags aufrufen, die nachbearbeitet werden (z. B. type="text/template").

Der Anwendungsfall für die Verwendung ungültiger Skripts an Ping-Server wird von der sendBeacon API angemessen abgedeckt.

Durch diese Änderung stimmen Chrome mit Safari überein, obwohl Firefox weiterhin Skripts anfordert, unabhängig von Typ oder Sprache.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

MediaStreamTrack.getSources() entfernen

Diese Methode ist nicht mehr Teil der Spezifikation und wird von keinem anderen großen Browser unterstützt. Sie wurde durch MediaDevices.enumerateDevices() ersetzt, das Blink seit Version 47 ohne Flags unterstützt und auch von anderen Browsern unterstützt wird. Ein Beispiel dafür sehen Sie unten. Diese hypothetische Funktion getCameras() verwendet zuerst die Featureerkennung, um enumerateDevices() zu finden und zu verwenden. Wenn die Featureerkennung fehlschlägt, wird in MediaStreamTrack nach getSources() gesucht. Wenn keine API-Unterstützung vorhanden ist, geben Sie schließlich das leere cameras-Array zurück.

    function getCameras(camerasCallback) {
      var cameras = [];
      if('enumerateDevices' in navigator.mediaDevices) {
         navigator.mediaDevices.enumerateDevices()
          .then(function(sources) {
            return sources.filter(function(source) { 
              return source.kind == 'videoinput' 
            });
          })
          .then(function(sources) {
            sources.forEach(function(source) {
              if(source.label.indexOf('facing back') >= 0) {
                // move front facing to the front.
                cameras.unshift(source);
              }
              else {
                cameras.push(source);
              }
            });
            camerasCallback(cameras);
          });
      }
      else if('getSources' in MediaStreamTrack) {
        MediaStreamTrack.getSources(function(sources) {

          for(var i = 0; i < sources.length; i++) {
            var source = sources[i];
            if(source.kind === 'video') {

              if(source.facing === 'environment') {
                // cameras facing the environment are pushed to the front of the page
                cameras.unshift(source);
              }
              else {
                cameras.push(source);
              }
            }
          }
          camerasCallback(cameras);
        });
      }
      else {
        // We can't pick the correct camera because the API doesn't support it.
        camerasCallback(cameras);
      }
    };

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

CSP-Anweisung „reflektierte Xss“ entfernen

Frühe Entwürfe der Spezifikation Content Security Policy Level 2 enthielten eine reflected-xss-Anweisung, die lediglich eine andere Syntax als den Header X-XSS-Protection bot. Diese Anweisung wurde 2015 aus der Spezifikation entfernt, jedoch nicht vor der Implementierung in Chrome. Diese Anweisung wird nicht mehr unterstützt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

CSP-Anweisung „referrer“ ersetzen

Mit der CSP-Anweisung referrer konnten Websiteinhaber eine Verweisrichtlinie aus einem HTTP-Header festlegen. Diese Funktion wird nicht nur sehr wenig genutzt, sie ist auch nicht mehr Teil einer W3C-Spezifikation.

Websites, für die diese Funktion weiterhin erforderlich ist, sollten <meta name="referrer"> oder den neuen Referrer-Policy-Header verwenden.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

Feld „PaymentAddress.careOf“ entfernen

Die Schnittstelle PaymentAddress hat ein nicht standardmäßiges careOf-Feld, das von keinem bekannten Adressstandard unterstützt wird. Das Feld careOf ist ebenfalls nicht erforderlich. Die Felder für Empfänger und Organisation unterstützen alle erforderlichen Anwendungsfälle ausreichend. Das Hinzufügen von careOf verursacht erhebliche Probleme in Bezug auf die Interoperabilität mit vorhandenen Adressschemas und APIs. Eine ausführlichere Beschreibung finden Sie im Vorschlag zur Entfernung von Spezifikationen auf GitHub (in englischer Sprache).

Absicht der Entfernung | Chromium-Fehler

„SVGViewElement.viewTarget“ entfernen

Das Attribut SVGViewElement.viewTarget ist nicht Teil der Spezifikation SVG 2.0 und wird nur selten oder gar nicht verwendet. Dieses Attribut wurde in Chrome 54 eingestellt und ist nun entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler