Ein JSON Web Token (JWT) ist ein standardisiertes Format, um Claims als JSON zwischen Parteien zu übertragen. JWTs werden häufig für Access- und ID-Tokens in APIs, OAuth 2.0 und OpenID Connect eingesetzt. Das Format allein macht eine Anwendung weder zustandslos noch sicher.
Wie ist ein JWT aufgebaut?
Die kompakte Darstellung besteht typischerweise aus drei Base64url-kodierten Teilen: Header, Payload und Signatur, getrennt durch Punkte. Der Header benennt etwa Algorithmus und Schlüssel-ID. Der Payload enthält Claims wie Aussteller (iss), Empfänger (aud), Subjekt (sub) und Ablaufzeit (exp). Die Signatur schützt bei einem JWS die Integrität von Header und Payload.
Sind JWTs verschlüsselt?
Meist nicht. Base64url ist nur eine Kodierung; jeder Tokeninhaber kann Header und Payload lesen. Ein signiertes JWS verhindert unbemerkte Manipulation, aber keine Einsicht. Verschlüsselte JWTs verwenden JWE, sind jedoch seltener. Sensible Daten gehören grundsätzlich nur dann in ein Token, wenn Offenlegung, Protokollierung und lange Kopien ausdrücklich berücksichtigt wurden.
Wofür werden JWTs verwendet?
| Token | Aufgabe |
|---|---|
| Access Token | Erlaubt einem Client den Zugriff auf eine API; muss für den konkreten Resource Server bestimmt sein. |
| ID Token | Teilt einem OpenID-Connect-Client das Ergebnis der Authentifizierung mit; ist kein allgemeines API-Token. |
| Refresh Token | Beschafft neue Access Tokens und benötigt besonders geschützte Speicherung; muss kein JWT sein. |
| Anwendungs-Token | Transportiert signierte Zustände oder kurzlebige Aktionen, wenn das Protokoll dies sauber definiert. |
Welche JWT-Schwachstellen gibt es?
- Die Anwendung dekodiert das Token, verifiziert die Signatur aber nicht zuverlässig.
- Unerwartete oder unsichere Algorithmen werden akzeptiert, einschließlich Algorithmusverwechslung.
- Schwache HMAC-Geheimnisse lassen sich offline erraten.
kid,jkuoder eingebettete Schlüssel beeinflussen unkontrolliert die Schlüsselauswahl.iss,aud,exp,nbfoder Token-Typ werden nicht geprüft.- Tokens gelangen in URLs, Logs, Browser-Speicher oder an den falschen Dienst.
- Lange Laufzeiten und fehlender Widerruf verlängern die Wirkung eines Diebstahls.
Wie verwendet man JWTs sicher?
Eine gepflegte Bibliothek muss mit fest vorgegebenem Algorithmus verifizieren. Schlüssel werden ausreichend stark erzeugt, getrennt verwaltet, rotiert und über vertrauenswürdige Metadaten bezogen. Aussteller, Empfänger, Zeitangaben, erlaubte Nutzung und Signatur werden gemeinsam geprüft. Access Tokens bleiben kurzlebig; Refresh Tokens erhalten Rotation und Wiederverwendungserkennung. Autorisierung erfolgt weiterhin serverseitig für jedes Objekt und jede Funktion.
Codebeispiel: Dekodieren ist keine Verifikation
Verwundbares Pseudocode-Beispiel:
claims = base64url_decode(token.payload)
currentUser = claims.sub
Sicherer Ablauf:
claims = verifyJwt(token, {
algorithms: ['RS256'],
issuer: 'https://identity.example',
audience: 'orders-api',
requiredClaims: ['sub', 'exp', 'iat']
})
currentUser = loadActiveUser(claims.sub)
Die konkrete Bibliotheks-API unterscheidet sich, die Sicherheitsentscheidung nicht: Algorithmus, Schlüssel, Aussteller, Empfänger, Zeitangaben und Token-Typ werden gemeinsam geprüft. Rollen im Token dürfen außerdem nicht dauerhaft eine aktuellere serverseitige Berechtigungsentscheidung ersetzen.
JWT oder klassische Session?
JWTs sind nützlich, wenn mehrere Dienste standardisierte, überprüfbare Claims benötigen. Eine serverseitige Session ist häufig einfacher zu widerrufen und hält Berechtigungsdaten zentral aktuell. Wer nur eine klassische Webanmeldung umsetzt, gewinnt durch JWT nicht automatisch Sicherheit oder Skalierbarkeit. Die Wahl sollte aus Architektur und Bedrohungsmodell folgen, nicht aus dem Wunsch nach einem modischen Format.
Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.
Hast du Feedback zum Thema JSON Web Token (JWT)? Schreib uns!
Weitere Dienstleistungen
Zusätzliche IT-Sicherheitslösungen für umfassenden Schutz
Red Teaming
Simulation echter Angriffe auf Ihr Unternehmen inklusive Personen, Infrastruktur und Prozesse. Ein umfassender Ansatz zur Überprüfung Ihrer gesamten Sicherheitsstrategie.
Mehr erfahrenPhishing-Übungen
Praxisnahe Phishing-Simulationen zur Sensibilisierung Ihrer Mitarbeiter. Erhöhen Sie die Awareness und reduzieren Sie das Risiko erfolgreicher E-Mail-basierter Angriffe.
Mehr erfahren