Was ist ein JWT
Ein JSON Web Token (JWT) ist ein offener Standard (RFC 7519) zur sicheren Übermittlung von Informationen als digital signiertes JSON-Objekt. Weit verbreitet für Authentifizierung und Autorisierung in Web-APIs.
Struktur eines JWT
- Header: Token-Typ und Signaturalgorithmus (HS256, RS256…)
- Payload: JSON-Daten über den Nutzer und die Sitzung (sub, exp, iat, Rollen…)
- Signatur: kryptografischer Hash von Header + Payload, signiert mit einem Geheimnis oder privatem Schlüssel
Wichtig: Der Payload ist nur Base64-kodiert, nicht verschlüsselt. Speichern Sie niemals Passwörter oder sensible Daten im Payload.
Signaturalgorithmen
- HS256: symmetrisch — gleicher geheimer Schlüssel zum Signieren und Verifizieren
- RS256: asymmetrisch — privater Schlüssel signiert, öffentlicher verifiziert
- ES256: asymmetrisch mit elliptischen Kurven — kürzere Schlüssel, in modernen Systemen bevorzugt
Sicherheits-Best-Practices
- Kurze exp (15 Min.) für Access-Token
- Separate Refresh-Token mit Rotation
- HttpOnly + Secure + SameSite=Strict Cookies gegen XSS
- Widerrufsliste (JTI deny-list) oder Schlüsselrotation