1. Einleitung
1. Einleitung
Das Web-Push-Protokoll [RFC8030] ist zwangsläufig ein vermitteltes Protokoll. Nachrichten eines Anwendungsservers werden über einen Push-Dienst (push service) an einen User-Agent (UA) zugestellt, wie Abbildung 1 zeigt.
+-------+ +--------------+ +-------------+
| UA | | Push Service | | Application |
+-------+ +--------------+ +-------------+
| | |
| Setup | |
|<====================>| |
| Provide Subscription |
|-------------------------------------------->|
| | |
: : :
| | Push Message |
| Push Message |<---------------------|
|<---------------------| |
| | |
Abbildung 1
Dieses Dokument beschreibt, wie mit diesem Protokoll gesendete Nachrichten vor Ausspähen, Veränderung und Fälschung durch den Push-Dienst geschützt werden können.
Web-Push-Nachrichten sind die Nutzlast einer HTTP-Nachricht [RFC7230]. Sie werden mit einer verschlüsselten Inhaltskodierung (encrypted content encoding) [RFC8188] geschützt. Dieses Dokument erläutert die Anwendung dieser Kodierung und ein empfohlenes Schlüsselmanagement.
Mehrere Nutzer von Web Push auf demselben User-Agent teilen sich oft einen zentralen Agenten, der Push-Funktionalität bündelt. Dieser Agent kann die Nutzung dieses Verschlüsselungsschemas für Anwendungen mit Push-Nachrichten erzwingen. Ein Agent, der nur korrekt verschlüsselte Nachrichten zustellt, fördert den Ende-zu-Ende-Schutz der Nachrichten stark.
Ein Webbrowser, der die Push API [API] implementiert, kann die Verschlüsselung erzwingen, indem er nur korrekt verschlüsselte Nachrichten weiterleitet.
1.1. Notationelle Konventionen
Die Schlüsselwörter „MUST“, „MUST NOT“, „REQUIRED“, „SHALL“, „SHALL NOT“, „SHOULD“, „SHOULD NOT“, „RECOMMENDED“, „NOT RECOMMENDED“, „MAY“ und „OPTIONAL“ in diesem Dokument sind wie in BCP 14 [RFC2119] [RFC8174] beschrieben zu interpretieren, und zwar nur, wenn sie wie hier in Großbuchstaben erscheinen.
Dieses Dokument verwendet die Terminologie aus [RFC8030], insbesondere „user agent“, „push service“ und „application server“.