0Pricing
Cryptology Academy · Lektion

JWT-Aufbau: Header, Payload, Signatur

Dekodieren Sie base64url-Bestandteile und verstehen Sie jedes JWT-Feld.

JWT-Aufbau: Header, Payload, Signatur ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein JWT?

Ein JSON Web Token (JWT) ist ein kompaktes, URL-sicheres Tokenformat, das in RFC 7519 definiert ist. Es codiert Claims (Aussagen über ein Subjekt) und eine kryptografische Signatur in einer einzigen Zeichenkette und ermöglicht dadurch zustandslose Authentifizierung.

Struktur aus drei Teilen

Ein JWT hat die Form: base64url(header).base64url(payload).base64url(signature). Der Punkt trennt die Teile. Header und Payload sind lesbar (base64url, nicht verschlüsselt). Nur die Signatur ist kryptografisch.

Header

Der Header ist ein JSON-Objekt: {"alg":"HS256","typ":"JWT"}. alg gibt den Signaturalgorithmus an (HS256, RS256, ES256, none). typ ist immer "JWT". Weitere Header enthalten beispielsweise kid (Schlüssel-ID) zur Schlüsselauswahl.

Payload / Claims

Registrierte Standard-Claims: iss (Aussteller), sub (Subjekt), aud (Zielgruppe), exp (Ablaufzeit als Unix-Zeitstempel), nbf (nicht gültig vor), iat (ausgestellt am), jti (JWT-ID für den Widerruf). Benutzerdefinierte Claims sind beliebige zusätzliche Schlüssel-Wert-Paare.

Ein JWT decodieren

import base64, json token = "eyJ..." parts = token.split(".") header = json.loads(base64.urlsafe_b64decode(parts[0]+"==")) payload = json.loads(base64.urlsafe_b64decode(parts[1]+"==")) print(header, payload)

Signaturprüfung

Für HS256: HMAC-SHA256(base64url(header)+"."+base64url(payload), secret). Der Empfänger berechnet dies neu und vergleicht es mit dem Signaturteil. Wenn beides übereinstimmt und das Token nicht abgelaufen ist, ist das Token gültig.

Asymmetrische Signaturen

Für RS256 signiert der private Schlüssel die Zeichenkette header.payload mit RSA-SHA256. Jede Partei mit dem öffentlichen Schlüssel kann die Signatur ohne den privaten Schlüssel prüfen. Öffentliche Schlüssel werden über JWKS-Endpunkte (JSON Web Key Set) verteilt, zum Beispiel über /.well-known/jwks.json.

Base64url-Codierung

Base64url ersetzt + durch - und / durch _ und lässt das =-Padding weg. Dadurch sind JWTs in URLs, HTTP-Headern und Cookies ohne Prozentcodierung sicher verwendbar. Die Rohbytes sind weiterhin nicht verschlüsselt, sondern lediglich codiert.

JWTs sind standardmäßig nicht verschlüsselt

Der Payload eines JWT ist für jeden sichtbar, der ihn mit base64url decodiert. Legen Sie niemals Geheimnisse (Passwörter, SSNs) in einem JWT-Payload ab, es sei denn, Sie verwenden JWE (JSON Web Encryption) mit dem "enc"-Algorithmus zur tatsächlichen Verschlüsselung.

Token-Gültigkeitsdauer

Setzen Sie exp auf eine kurze Gültigkeitsdauer (15–60 Minuten für Access-Tokens). Langlebige JWTs erhöhen das Risiko: Wenn sie gestohlen werden, bleiben sie bis zum Ablauf gültig. Verwenden Sie sicher gespeicherte Refresh-Tokens, um neue, kurzlebige Access-Tokens auszustellen.

JWKS-Ermittlung

Auth-Anbieter (Auth0, Keycloak, Google) veröffentlichen eine JWKS-URL. Der Verifizierer ruft öffentliche Schlüssel anhand von kid ab, speichert sie im Cache und prüft Signaturen, ohne den Aussteller für jede Anfrage zu kontaktieren. Bei einer Schlüsselrotation wird der JWKS-Endpunkt aktualisiert.

Kurztest

Welcher Teil eines JWT enthält die kryptografische Signatur?

Zusammenfassung

Ein JWT besteht aus drei base64url-codierten JSON-Teilen: Header (Algorithmus), Payload (Claims) und Signatur. Der Payload ist lesbar und nicht verschlüsselt. Als Nächstes geht es um die Auswahl zwischen HS256 und RS256.

Häufig gestellte Fragen

Ist die Lektion „JWT-Aufbau: Header, Payload, Signatur“ kostenlos?

Ja — der vollständige Text von „JWT-Aufbau: Header, Payload, Signatur“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „JWT-Aufbau: Header, Payload, Signatur“?

Dekodieren Sie base64url-Bestandteile und verstehen Sie jedes JWT-Feld. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „JWT-Aufbau: Header, Payload, Signatur“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. JWT-Aufbau: Header, Payload, Signatur
  2. HS256 vs. RS256: symmetrische und asymmetrische JWTs
  3. JWT-Schwachstellen: alg=none und Schlüsselverwechslung
  4. Best Practices für die sichere JWT-Implementierung
← Zurück zu Cryptology Academy