So lesen Sie ein JWT und verstehen, was es enthält

Lernen Sie die drei Teile eines JWT kennen, was jedes Datum bedeutet und warum Dekodieren nicht dasselbe wie Validieren ist.

Praktische AnleitungAktualisiert am Geschätzte Lesezeit: 3 min
Auf dieser Seite

Die drei Teile eines JWT

Ein JWT ist eine Zeichenkette aus drei durch Punkte getrennten Teilen: Header, Payload und Signatur. Der Header nennt den Algorithmus (zum Beispiel HS256 oder RS256) und den Typ. Der Payload trägt die Daten, sogenannte Claims, wie Benutzerkennung, Aussteller oder Zeitangaben.

Die ersten beiden Teile sind in Base64URL kodiertes JSON. Sie sind nicht verschlüsselt: Jeder mit dem Token kann sie lesen. Deshalb dürfen sie keine Passwörter oder Daten enthalten, die Sie nicht preisgeben wollen.

Zeiten und Status

Die Claims iat, exp und nbf sind Zeitangaben in Sekunden seit 1970 (Unix-Zeit). Snipshed zeigt sie lesbar in UTC an und vergleicht den Ablauf mit der Uhr Ihres Geräts, um anzugeben, ob der Token gültig, abgelaufen oder noch nicht gültig ist.

Geht die Uhr Ihres Computers falsch, kann der Status falsch sein. Ein Token ohne exp läuft nie ab – etwas, das in einem Sicherheitsentwurf überprüft werden sollte.

Dekodieren ist nicht Validieren

Die Signatur garantiert, dass der Inhalt nicht verändert wurde und vom Inhaber des Schlüssels stammt. Ihre Prüfung erfordert diesen Schlüssel und muss auf dem Server erfolgen, der den Token erhält. Ein Token mit veränderter Signatur lässt sich genauso dekodieren.

Nutzen Sie das Werkzeug, um eine Integration zu debuggen, zu verstehen, was ein Token behauptet, oder einen Test vorzubereiten. Verwenden Sie es nicht, um zu entscheiden, ob eine Anfrage vertrauenswürdig ist, und gehen Sie mit echten Tokens vorsichtig um: Sie auf einer externen Seite einzufügen kann anderen Zugriff geben.

  1. Fügen Sie den vollständigen Token mit seinen drei Teilen ein.
  2. Dekodieren Sie und prüfen Sie Algorithmus, Aussteller und Benutzerdaten.
  3. Sehen Sie sich Ausstellungs- und Ablaufzeit sowie den Status an.
  4. Denken Sie daran, dass die Signatur nicht geprüft wird; validieren Sie sie auf Ihrem Server.

Kriterien für die Überprüfung und Bereitstellung des Ergebnisses

Wenn Sie häufig mit Tokens arbeiten, gewöhnen Sie sich an, drei Dinge zu prüfen: Algorithmus, Ablauf und Zielgruppe. Ein Token mit sehr langem oder ohne Ablauf vergrößert den Schaden bei einem Leak. Fügen Sie keine Produktions-Tokens in externe Werkzeuge ein und verwenden Sie in Ihren Beispielen Test-Tokens. Vermuten Sie, dass ein Token offengelegt wurde, widerrufen Sie ihn im ausstellenden Dienst, statt auf seinen Ablauf zu warten.

SELBST AUSPROBIEREN

Einen Beispiel-Token lesen

Klicken Sie auf Beispiel ausprobieren und dann auf Token dekodieren. Das Beispiel ist ein Test-Token mit einem Namen, einer Ausstellungszeit und einem Ablauf.

Angezeigt werden der Header mit dem Algorithmus HS256, der Payload mit den Daten und den Zeiten in UTC sowie der Status Abgelaufen, weil der Beispiel-Token 2018 abgelaufen ist.

Ändern Sie einen Buchstaben der Signatur und dekodieren Sie erneut: Es funktioniert weiterhin, was zeigt, dass Dekodieren nicht validiert. Ändern Sie einen Buchstaben im Payload und beobachten Sie den Fehler oder die geänderten Daten.