Zum Inhalt springen
ecdsa.com

HS256

Der JWS-Algorithmus HMAC mit SHA-256 (RFC 7518 §3.2), bei dem sich Aussteller und Verifizierer einen geheimen Schlüssel von mindestens 256 Bit teilen, sodass jeder, der ein Token prüfen kann, auch selbst eines ausstellen kann.
Auch geschrieben alsHS256HMAC-SHA256 JWTHS512

HS256 ist der einzige JWS-Algorithmus, den JWA mit „Required“ als Pflicht für Implementierungen kennzeichnet, und der Standard vieler Tutorials und Frameworks. Das 32-Byte-Tag wird mit dem Shared Secret über header.payload berechnet; bei der Prüfung wird es neu berechnet und in konstanter Zeit verglichen.

Schwache Secrets sind das Hauptproblem: RFC 7518 verlangt Schlüssel von mindestens der Hashlänge (256 Bit), doch Tokens, die mit kurzen Secrets oder Wörterbuch-Secrets wie secret signiert sind, lassen sich offline aus einem einzigen Token knacken (hashcat-Modus 16500, jwt_tool), danach stellt der Angreifer beliebige Tokens aus. Nutze 32 oder mehr zufällige Bytes, nie ein Passwort, und prüfe das Secret mit dem JWT-Secret-Checker.

HS256 passt, wenn derselbe Dienst Tokens ausstellt und prüft. Für Verifizierer bei Dritten, Microservices oder öffentliche Clients nutze einen asymmetrischen Algorithmus, damit Verifizierer nur einen öffentlichen Schlüssel besitzen, und lege den Algorithmus pro Schlüssel fest, um eine Verwechslung mit RS256 zu vermeiden.

Standards und Quellen

Alle Begriffe