Signed HTTP Exchanges

Kinuko Yasuda

Signed HTTP Exchange (oder „SXG“) ist eine Untergruppe der neuen Technologie Web-Pakete. Mit dieser Technologie können Publisher ihre Inhalte sicher übertragen oder für die Weiterverwendung durch andere Parteien verfügbar machen, während die Integrität und Zuordnung der Inhalte erhalten bleiben. Übertragbare Inhalte haben viele Vorteile, z. B. schnellere Bereitstellung von Inhalten, einfachere Freigabe von Inhalten zwischen Nutzern und einfachere Offlinenutzung.

Wie funktionieren Signed HTTP Exchanges? Mit dieser Technologie kann ein Publisher einen einzelnen HTTP-Austausch (d.h. ein Anfrage/Antwort-Paar) signieren, sodass der signierte Austausch von jedem Caching-Server ausgeliefert werden kann. Wenn der Browser diesen Signed Exchange-Datensatz lädt, kann er die URL des Publishers in der Adressleiste anzeigen, da die Signatur im Exchange-Datensatz ausreichenden Nachweis dafür liefert, dass die Inhalte ursprünglich vom Publisher stammen.

Signed Exchange: Das Wesentliche

So wird der Ursprung der Inhalte von demjenigen getrennt, der sie verteilt. Ihre Inhalte können im Web veröffentlicht werden, ohne dass Sie einen bestimmten Server, eine bestimmte Verbindung oder einen bestimmten Hosting-Dienst benötigen. Wir sind gespannt auf die möglichen Einsatzmöglichkeiten von SXG, z. B.:

  • Datenschutzfreundliches Prefetching: Das Prefetching von Ressourcen (z.B. durch den Link „rel=prefetch“) für eine nachfolgende Navigation kann die Navigation zwar viel schneller erscheinen lassen, hat aber auch Nachteile in Bezug auf den Datenschutz. Wenn beispielsweise Ressourcen für plattformübergreifende Navigationen vorab abgerufen werden, wird der Zielwebsite mitgeteilt, dass der Nutzer möglicherweise an einer Information interessiert ist, auch wenn er die Website letztendlich nicht besucht hat. Mit SXG hingegen können plattformübergreifende Ressourcen aus einem schnellen Cache vorab abgerufen werden, ohne dass die Zielwebsite kontaktiert wird. Das Nutzerinteresse wird also nur dann übermittelt, wenn die Navigation erfolgt. Wir sind der Meinung, dass dies für Websites nützlich sein kann, deren Ziel es ist, Nutzer auf andere Websites weiterzuleiten. Google möchte diese Funktion insbesondere auf den Suchergebnisseiten der Google Suche verwenden, um AMP-URLs zu verbessern und Klicks auf Suchergebnisse zu beschleunigen.

  • Vorteile eines CDN ohne Übergabe der Kontrolle über den privaten Schlüssel Ihres Zertifikats: Inhalte, die plötzlich beliebt geworden sind (z. B. über die erste Seite von reddit.com verlinkt), überlasten häufig die Website, auf der die Inhalte gesendet werden. Wenn die Website relativ klein ist, wird sie in der Regel verlangsamt oder ist sogar vorübergehend nicht verfügbar. Diese Situation kann vermieden werden, wenn die Inhalte über schnelle, leistungsstarke Cache-Server freigegeben werden. SXG ermöglicht dies, ohne dass deine TLS-Schlüssel weitergegeben werden.

Signed Exchanges ausprobieren

Signierte Anzeigenplattformen sind in Chrome 73 und höher verfügbar und waren zuvor als Ursprungstest verfügbar.

SXG erstellen

Wenn du als Publisher SXGs für deine Quelle erstellen möchtest, benötigst du einen Zertifikatschlüssel, um die Signatur zu signieren. Das Zertifikat muss außerdem die spezielle Erweiterung „CanSignHttpExchanges“ haben, damit es als gültiges SXG verarbeitet werden kann. Stand November 2018 ist DigiCert die einzige Zertifizierungsstelle, die diese Erweiterung unterstützt. Das für SXG geeignete Zertifikat können Sie auf dieser Seite anfordern.

Sobald Sie ein Zertifikat für SXG erhalten haben, können Sie eigene SXGs mithilfe der auf GitHub veröffentlichten Referenzgenerator-Tools erstellen.

Sie können sich auch die SXG-Beispieldateien im Code-Repository von Chrome ansehen. Diese Datei ist beispielsweise die einfachste, die für eine einfache Textdatei erstellt wurde. Hinweis: Sie werden hauptsächlich für lokale Tests generiert. Es ist nicht davon auszugehen, dass sie gültige Zertifikate und Zeitstempel in der Signatur enthalten.

Funktion lokal testen

Wenn Sie SXGs zu Testzwecken erstellen möchten, können Sie ein selbst signiertes Zertifikat erstellen und chrome://flags/#allow-sxg-certs-without-extension aktivieren, damit Chrome die mit dem Zertifikat erstellten SXGs ohne die spezielle Erweiterung verarbeitet.

Code wie der folgende sollte funktionieren, wenn Ihr Server, Ihr Zertifikat und Ihre SXGs richtig eingerichtet sind:

<!-- prefetch the sample.sxg -->
<link rel="prefetch" href="https://your-site.com/sample.sxg" />

<!-- clicking the link below should make Chrome navigate to the inner
     response of sample.sxg (and the prefetched SXG is used) -->
<a href="https://your-site.com/sample.sxg">Sample</a>

SXG wird in Chrome 73 und höher nur vom Anker-Tag (<a>) und link rel=prefetch unterstützt. Die Gültigkeit der Signatur ist auf 7 Tage pro Spezifikation begrenzt. Die signierten Inhalte laufen also relativ schnell ab.

Feedback geben

Wir freuen uns über Ihr Feedback zu diesem Test unter webpackage-dev@chromium.org. Sie können sich auch an der Diskussion zur Spezifikation beteiligen oder dem Team einen Chrome-Fehler melden. Ihr Feedback hilft uns bei der Standardisierung und bei der Behebung von Implementierungsproblemen.

Feedback