Zum Hauptinhalt springen

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:

  1. Befolgen Sie die Schritte in Abschnitt 5.1, um ein JWS zu erstellen
  2. 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:

  1. Beziehen Sie den abgetrennten Payload-Inhalt aus dem Anwendungskontext
  2. Berechnen Sie die base64url-Codierung des Payloads
  3. Fügen Sie den codierten Payload an der Position des leeren Payloads in die JWS-Darstellung ein
  4. 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