HS256 vs. RS256: symmetrische und asymmetrische JWTs
Wählen Sie den richtigen Signaturalgorithmus für Ihr Authentifizierungssystem.
HS256 vs. RS256: symmetrische und asymmetrische JWTs ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.
Algorithmusfamilien
Bei der JWT-Signierung werden entweder symmetrische (HMAC) oder asymmetrische (RSA, ECDSA) Algorithmen verwendet. HS256 = HMAC-SHA256. RS256 = RSA-PKCS1v1.5-SHA256. ES256 = ECDSA-P256-SHA256. Die Wahl wirkt sich auf die Schlüsselverteilung und das Vertrauensmodell aus.
HS256: Symmetrisches HMAC
HS256 verwendet einen einzigen gemeinsam genutzten geheimen Schlüssel zum Signieren und Verifizieren. Sowohl der Aussteller als auch jeder Verifizierer müssen denselben geheimen Schlüssel besitzen. Die Implementierung ist einfach, erfordert aber eine sichere Schlüsselverteilung an alle Verifizierer.
HS256: Anwendungsfälle
HS256 eignet sich, wenn Aussteller und Verifizierer derselbe Dienst sind, zum Beispiel eine monolithische API, die ihre eigenen Tokens signiert und verifiziert. Verwenden Sie HS256 niemals, wenn mehrere unabhängige Dienste Tokens verifizieren müssen – sie alle benötigen dann das Geheimnis.
RS256: Asymmetrisches RSA
RS256 verwendet einen privaten Schlüssel zum Signieren und einen öffentlichen Schlüssel zum Verifizieren. Nur der Authentifizierungsserver besitzt den privaten Schlüssel. Alle Ressourcenserver rufen den öffentlichen Schlüssel über den JWKS-Endpunkt ab und verifizieren lokal – eine gemeinsame Nutzung von Geheimnissen ist nicht erforderlich.
RS256: Anwendungsfälle
RS256 eignet sich ideal für Microservice-Architekturen: Der Identity Provider signiert Tokens, und jeder nachgelagerte Dienst verifiziert sie mit dem öffentlichen Schlüssel, ohne den IDP für jede Anfrage zu kontaktieren. Die Architektur lässt sich horizontal skalieren, ohne dass ein Risiko durch Schlüsselverteilung entsteht.
ES256: ECDSA-Alternative
ES256 verwendet ECDSA über P-256. Die Signaturgröße beträgt 64 Bytes gegenüber 256 Bytes bei RS256 mit einem 2048-Bit-Schlüssel. Die Verifizierung ist etwa zehnmal schneller als bei RS256. ES256 wird bevorzugt, wenn Bandbreite oder Verifizierungsgeschwindigkeit entscheidend sind, etwa bei mobilen APIs oder IoT.
Schlüsselrotation
Für RS256/ES256: Rotieren Sie die Schlüssel, indem Sie einen neuen Schlüssel (neue kid) in JWKS veröffentlichen, neue Token mit dem neuen Schlüssel signieren, eine Übergangsfrist abwarten, in der alte Token ablaufen können, und anschließend den alten Schlüssel entfernen. Bei der HMAC-Rotation muss das neue Geheimnis erneut verteilt werden.
Leistungsvergleich
HS256-Verifizierung: ca. 1 µs. RS256-Verifizierung: ca. 100 µs (2048 Bit). ES256-Verifizierung: ca. 50 µs (P-256). HS256 ist am schnellsten, erfordert aber die gemeinsame Nutzung eines Geheimnisses. ES256 bietet für verteilte Systeme das beste Gleichgewicht zwischen Sicherheit und Leistung.
Vorschau auf den alg-Header-Angriff
Eine kritische Schwachstelle: Wenn der Verifizierer dem alg-Header blind vertraut, kann ein Angreifer alg von RS256 in HS256 ändern und das Token mit dem öffentlichen Schlüssel des Servers signieren, der öffentlich ist, und ihn als HMAC-Geheimnis verwenden. Lösung: Vertrauen Sie niemals dem alg-Header.
Auswahl eines Algorithmus
Entscheidung: einzelner Dienst → HS256. Mehrere Dienste/Microservices → RS256 oder ES256. Mobile Anwendungen mit hohem Durchsatz → ES256. Im Zweifel verwenden Sie ES256 (P-256) oder RS256 mit Schlüsseln von mindestens 2048 Bit. Verwenden Sie RS512 niemals in leistungskritischen Pfaden.
Bibliotheken und Standards
Verwenden Sie PyJWT (Python), jose (Node.js) oder auth0/java-jwt. Legen Sie den erwarteten Algorithmus im Verifizierungsaufruf immer fest: jwt.decode(token, secret, algorithms=["HS256"]). Übergeben Sie niemals algorithms=None und lassen Sie den Parameter niemals weg.
Kurztest
Warum wird RS256 in Microservices-Architekturen gegenüber HS256 bevorzugt?
Zusammenfassung
HS256 ist symmetrisch (gemeinsames Geheimnis); RS256/ES256 sind asymmetrisch (privater Schlüssel zum Signieren, öffentlicher Schlüssel zum Verifizieren). Verwenden Sie asymmetrische Algorithmen für Systeme mit mehreren Parteien. Als Nächstes: das Ausnutzen von JWT-Schwachstellen.
Häufig gestellte Fragen
Ist die Lektion „HS256 vs. RS256: symmetrische und asymmetrische JWTs“ kostenlos?
Ja — der vollständige Text von „HS256 vs. RS256: symmetrische und asymmetrische JWTs“ 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 „HS256 vs. RS256: symmetrische und asymmetrische JWTs“?
Wählen Sie den richtigen Signaturalgorithmus für Ihr Authentifizierungssystem. 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 2 von 4.
Wie lange dauert die Lektion „HS256 vs. RS256: symmetrische und asymmetrische JWTs“?
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
- JWT-Aufbau: Header, Payload, Signatur
- HS256 vs. RS256: symmetrische und asymmetrische JWTs
- JWT-Schwachstellen: alg=none und Schlüsselverwechslung
- Best Practices für die sichere JWT-Implementierung