Signed HTTP Exchanges

Kinuko Yasuda

Signed HTTP Exchange (oder „SXG“) ist eine Teilmenge der neuen Technologie namens Web Packages, mit der Publisher ihre Inhalte sicher portabel machen können, d. h. für die Weiterverteilung durch andere Parteien verfügbar sind. Dabei bleiben die Integrität und Attribution der Inhalte erhalten. Mobile Inhalte bieten viele Vorteile. Sie ermöglichen beispielsweise eine schnellere Inhaltsübermittlung, einen einfacheren Austausch von Inhalten unter Nutzern und einen einfacheren Offline-Modus.

Wie funktionieren Signed HTTP Exchanges? Mit dieser Technologie kann ein Publisher einen einzelnen HTTP-Austausch signieren (d.h. ein Anfrage/Antwort-Paar) so, dass er von jedem Caching-Server bereitgestellt werden kann. Wenn der Browser Signed Exchange lädt, kann die URL des Verlags oder Webpublishers ohne Bedenken in der Adressleiste angezeigt werden, da die Signatur auf dem Austausch ausreichend beweist, dass der Inhalt ursprünglich vom Publisher stammt.

Signed Exchange: Das Wesentliche

Dadurch werden der Ursprung der Inhalte und der Vertrieb der Inhalte entkoppelt. Ihre Inhalte können im Web veröffentlicht werden, ohne dass Sie einen bestimmten Server, eine Verbindung oder einen Hostingdienst benötigen. Wir freuen uns über die Anwendungsmöglichkeiten von SXG:

  • Datenschutzfreundlicher Prefetch:Das Vorabrufen von Ressourcen (z.B. per Link rel=prefetch) für eine nachfolgende Navigation kann die Navigation wesentlich schneller machen, hat aber auch Nachteile beim Datenschutz. Beim Vorabruf von Ressourcen für ursprungsübergreifende Navigationen wird beispielsweise der Zielwebsite mitgeteilt, dass der Nutzer möglicherweise an einer Information interessiert ist, auch wenn er die Website letztlich nicht besucht hat. Mit SXG hingegen können ursprungsübergreifende Ressourcen aus einem schnellen Cache vorab abgerufen werden, ohne die Zielwebsite erreichen zu müssen. Dadurch wird das Nutzerinteresse nur im Fall der Navigation kommuniziert. Wir glauben, dass dies für Websites nützlich sein kann, die ihre Nutzer auf andere Websites weiterleiten möchten. Google plant diese Funktion insbesondere auf Google-Suchergebnisseiten zu nutzen, um AMP-URLs zu verbessern und mehr Klicks auf Suchergebnisse zu erzielen.

  • Vorteile eines CDN, ohne die Kontrolle über den privaten Zertifikatsschlüssel zu verlieren:Inhalte, die plötzlich beliebt geworden sind (z. B. über die erste Seite von reddit.com verlinkt), überlastet häufig die Website, auf der der Inhalt bereitgestellt wird. 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. Mit SXG ist dies ohne die Weitergabe Ihrer TLS-Schlüssel möglich.

Signed Exchanges testen

Signed Exchanges sind ab Chrome 73 verfügbar und waren zuvor als Ursprungstest verfügbar.

SXG wird erstellt

Um SXGs für deinen Ursprung (als Publisher) zu erstellen, benötigst du einen Zertifikatsschlü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 funktionierende Zertifikat auf dieser Seite anfordern.

Sobald Sie ein Zertifikat für SXG haben, können Sie mithilfe der 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 Datei, die für eine einfache Textdatei erstellt wurde. Sie werden hauptsächlich für lokale Tests generiert. Sie sollten daher keine gültigen Zertifikate und Zeitstempel in der Signatur haben.

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

Feedback geben

Wir freuen uns auf dein Feedback zu diesem Test unter webpackage-dev@chromium.org. Sie können auch an der Diskussion zu Spezifikationen teilnehmen oder dem Team einen Chrome-Fehler melden. Ihr Feedback hilft uns sehr beim Standardisierungsprozess und hilft uns, Implementierungsprobleme zu beheben.

Feedback