Signed HTTP Exchanges

Kinuko Yasuda

Signed HTTP Exchange (oder "SXG") ist eine Untergruppe der neuen Technologie namens Webpakete, mit der Verlage und Webpublisher ihre Inhalte sicher übertragbar, d.h. für die Weitergabe durch andere Parteien verfügbar machen können, die Integrität und Attribution der Inhalte erhalten bleiben. Mobile Inhalte bieten viele Vorteile, beispielsweise eine schnellere Inhaltsübermittlung, ein einfacheres Teilen von Inhalten zwischen Nutzern und ein einfacheres Offlineerlebnis.

Wie funktionieren also Signed HTTP Exchanges? Mit dieser Technologie können Verlage und Webpublisher einen einzelnen HTTP-Austausch (also ein Anfrage/Antwort-Paar) signieren, sodass der Signed Exchange von einem beliebigen Caching-Server bereitgestellt werden kann. Wenn der Browser dieses Signed Exchange-Paket lädt, kann die URL des Verlags oder Webpublishers bedenkenlos in der Adressleiste angezeigt werden, da die Signatur im Austausch ein ausreichender Nachweis dafür ist, dass die Inhalte ursprünglich von der Herkunft des Verlags oder Webpublishers stammen.

Signed Exchange: Die Essenz

Dadurch wird die Herkunft der Inhalte von der Person entkoppelt, die sie verbreiten. Deine Inhalte können im Web veröffentlicht werden, ohne dass ein bestimmter Server, eine bestimmte Verbindung oder ein Hostingdienst erforderlich ist. Wir freuen uns über mögliche Einsatzmöglichkeiten von SXG wie zum Beispiel:

  • Datenschutzfreundlicher Vorabruf:Ressourcen (z.B. über Link rel=prefetch) für eine nachfolgende Navigation können zwar die Navigation deutlich schneller machen, aber auch Nachteile im Hinblick auf den Datenschutz haben. Wenn du beispielsweise Ressourcen für die ursprungsübergreifende Navigation vorab abrufst, wird der Zielwebsite mitgeteilt, dass der Nutzer möglicherweise an einer Information interessiert ist, auch wenn er die Website letztendlich nicht besucht hat. Andererseits ermöglicht SXG das Vorabrufen ursprungsübergreifender Ressourcen aus einem schnellen Cache, ohne die Zielwebsite zu erreichen. Dadurch wird nur das Nutzerinteresse während der Navigation kommuniziert. Wir sind der Meinung, dass dies für Websites nützlich sein kann, deren Ziel darin besteht, ihre Nutzer auf andere Websites weiterzuleiten. Insbesondere plant Google, diese Funktion auf den Google-Suchergebnisseiten zu nutzen, um AMP-URLs zu verbessern und Klicks auf Suchergebnisse zu beschleunigen.

  • Vorteile eines CDN, ohne die Kontrolle über den privaten Zertifikatschlüssel zu verlieren:Inhalte, die plötzlich beliebt sind und z. B. von der ersten Seite von reddit.com verlinkt werden, überlasten häufig die Website, auf der die Inhalte bereitgestellt werden. Wenn die Website relativ klein ist, wird sie tendenziell langsamer oder sogar vorübergehend nicht verfügbar. Diese Situation lässt sich vermeiden, wenn die Inhalte über schnelle, leistungsstarke Cache-Server freigegeben werden. SXG macht dies ohne Freigabe Ihrer TLS-Schlüssel möglich.

Signed Exchanges ausprobieren

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

SXG wird erstellt

Wenn du SXGs für deinen Ursprung (als Verlag oder Webpublisher) erstellen möchtest, benötigst du einen Zertifikatschlüssel zum Signieren der Signatur. Außerdem muss das Zertifikat die spezielle Erweiterung „CanSignHttpExchanges“ haben, damit es als gültiger SXG verarbeitet werden kann. Seit November 2018 ist DigiCert die einzige Zertifizierungsstelle, die diese Erweiterung unterstützt. Sie können das für SXG geeignete Zertifikat auf dieser Seite anfordern.

Sobald du ein SXG-Zertifikat erhalten hast, kannst du mit den auf GitHub veröffentlichten Referenzgenerator-Tools eigene SXGs erstellen.

Sie können sich auch die tatsächlichen SXG-Beispieldateien im Code-Repository von Chrome ansehen. Diese Datei ist die einfachste, die für eine einfache Textdatei erstellt wurde. Beachten Sie, dass sie hauptsächlich für lokale Tests generiert werden. Erwarten Sie jedoch nicht, dass die Signatur gültige Zertifikate und Zeitstempel enthält.

Funktion lokal testen

Wenn du SXGs zu Testzwecken erstellen möchtest, kannst du 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.

Wenn der Server, das Zertifikat und die SXGs korrekt eingerichtet sind, sollte Code wie der folgende funktionieren:

<!-- 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 Anchor-Tag (<a>) und link rel=prefetch unterstützt. Beachten Sie außerdem, dass die Gültigkeit der Signatur pro Spezifikation auf 7 Tage begrenzt ist, sodass Ihre signierten Inhalte relativ schnell ablaufen.

Feedback geben

Wir freuen uns auf dein Feedback zu diesem Experiment unter webpackage-dev@chromium.org. Sie können sich auch an der Diskussion zu Spezifikationen beteiligen oder dem Team einen Chrome-Fehler melden. Ihr Feedback hilft uns bei der Standardisierung und bei Problemen mit der Implementierung.

Feedback