Appendix F. Detached Content (Abgetrennter Inhalt)
In einigen Situationen kann es wünschenswert sein, dass der integritätsgeschützte Inhalt nicht in der JWS-Darstellung enthalten ist, sondern separat übertragen wird. Dieser Anwendungsfall wird "detached content" (abgetrennter Inhalt) genannt. Um ein JWS mit abgetrenntem Inhalt zu erstellen oder zu verifizieren:
Erstellen eines JWS mit abgetrenntem Inhalt
Um ein JWS mit abgetrenntem Inhalt zu erstellen:
- Befolgen Sie die Schritte in Abschnitt 5.1, um ein JWS zu erstellen
- Ersetzen Sie in der serialisierten Ausgabe die base64url-codierte Darstellung des JWS Payload durch einen leeren String
JWS Compact Serialization-Format:
BASE64URL(UTF8(JWS Protected Header)) || '.' || '' || '.' || BASE64URL(JWS Signature)
Beachten Sie den leeren String in der Mitte, der den abgetrennten Payload repräsentiert.
Beispiel (mit abgetrenntem Inhalt):
eyJhbGciOiJIUzI1NiJ9..dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
Beachten Sie die beiden aufeinanderfolgenden Punkt-Zeichen, die anzeigen, dass der Payload entfernt wurde.
Verifizieren eines JWS mit abgetrenntem Inhalt
Um ein JWS mit abgetrenntem Inhalt zu verifizieren:
- Beziehen Sie den abgetrennten Payload-Inhalt aus dem Anwendungskontext
- Berechnen Sie die base64url-Codierung des Payloads
- Fügen Sie den codierten Payload an der Position des leeren Payloads in die JWS-Darstellung ein
- Befolgen Sie die Schritte in Abschnitt 5.2, um das JWS zu verifizieren
Anwendungsszenarien
Abgetrennter Inhalt ist in folgenden Szenarien nützlich:
- Große Payloads: Wenn der Payload sehr groß ist, kann es wünschenswert sein, ihn separat zu übertragen
- Mehrfachsignaturen: Wenn derselbe Payload mehrere Signaturen benötigt, vermeidet dies die wiederholte Übertragung des Payloads
- Vorhandener Inhalt: Wenn der Inhalt bereits auf andere Weise verfügbar ist, muss nur die Signatur übertragen werden
- Bandbreitenoptimierung: In bandbreitenbeschränkten Umgebungen kann dies die Menge der übertragenen Daten reduzieren
Sicherheitsüberlegungen
Bei Verwendung von abgetrenntem Inhalt:
- Die Anwendung muss sicherstellen, dass der Empfänger den korrekten Payload-Inhalt zuverlässig beziehen kann
- Payload-Substitutionsangriffe müssen verhindert werden
- Zusätzliche Mechanismen (wie Content-Hashing) sollten (SHOULD) verwendet werden, um Signatur und Payload zu verknüpfen
- Die Methode zur Verknüpfung von Signatur und Payload sollte (SHOULD) im Anwendungsprotokoll klar definiert werden