SomeeLab.tools

JWT-Decoder

Header und Payload eines JSON Web Token lesen und den Ablaufzeitpunkt prüfen. Kostenlos, ohne Anmeldung, direkt im Browser dekodiert.

Die Signatur wird angezeigt, aber nicht geprüft. Zum Prüfen bräuchte es den Signaturschlüssel, und der gehört nicht in eine Webseite. Dekodieren beweist nicht, wer das Token ausgestellt hat.

Was in einem Token steckt

Ein JWT besteht aus drei durch Punkte getrennten Teilen. Die ersten beiden sind Base64url-kodiertes JSON, das jeder lesen kann; der dritte ist die Signatur.

  • Header — der Signaturalgorithmus (alg) und der Typ (typ). Dienste, die Schlüssel rotieren, führen zusätzlich ein kid mit, das auf den verwendeten Schlüssel zeigt.
  • Payload — die Claims. sub benennt den Nutzer, iss den Aussteller, aud den vorgesehenen Empfänger, und exp, iat sowie nbf tragen Zeitangaben.
  • Signatur — die beiden ersten Teile, mit einem Schlüssel signiert.

Die Spezifikation legt die Zeit-Claims als ganze Sekunden fest. Ein Token, das dort Millisekunden abgelegt hat, erscheint hier Tausende Jahre in der Zukunft — ein Fehler auf Seiten des Ausstellers.

Dekodieren ist kein Prüfen

Dass sich der Inhalt hier lesen lässt, sagt nichts über die Echtheit des Tokens. Der Payload ist nicht verschlossen, jeder kann ihn umschreiben, und nur wer den Schlüssel hat, merkt, dass die Signatur nicht mehr passt.

Deshalb muss der Server die Signatur bei jeder Anfrage prüfen — und darf dabei dem Feld alg nicht vertrauen. Legen Sie den erwarteten Algorithmus serverseitig fest und weisen Sie jedes Token zurück, das none angibt oder von der Erwartung abweicht. Implementierungen, die dem Header blind folgen, sind der klassische Weg, auf dem unsignierte Tokens durchrutschen.

Keine Geheimnisse in den Payload

Wer das Token hat, liest den Payload — auch mit nichts weiter als den Entwicklerwerkzeugen des Browsers. Stehen dort eine Ausweisnummer, eine interne Verwaltungsnotiz oder Zahlungsdaten, gelten sie als veröffentlicht.

Hinein gehört nur, was der Inhaber ruhig sehen darf: eine Nutzer-ID, Rollennamen, ein Ablaufzeitpunkt. Alles Weitere bleibt auf dem Server und wird bei Bedarf nachgeschlagen.

Bevor Sie ein fremdes Token einfügen

Dieses Werkzeug schickt das Token nirgendwohin. Ein noch gültiges Token ist aber selbst ein Zugangsnachweis: In einen Chat oder ein Ticketsystem eingefügt, kann es jeder Mitlesende verwenden. Ist eines abgeflossen, widerrufen Sie die Sitzung, statt auf den Ablauf zu warten.