Zum Hauptinhalt springen
Sicherheit & Datenschutz

JWK-/JWKS-Inspektor

Füge einen JWK oder ein JWKS ein und erhalte eine Tabelle pro Schlüssel (kid, kty, alg, use, key_ops, SHA-256-Thumbprint nach RFC 7638) sowie Warnungen: fehlendes kty oder kid, doppelte kid, versehentlich veröffentlichtes privates Schlüsselmaterial.

  • Zwischenablage

Dieses Widget einbetten

Passe die Darstellung an, prüfe die Vorschau und kopiere anschließend den Code.

Vorschau

Art des Einbettungscodes

Zu kopierender Code

Responsive und automatisch von Bethemesh in der Größe angepasst.

War dieses Werkzeug hilfreich?

Wie funktioniert dieses Tool?

Der JWK-/JWKS-Inspektor macht ein JSON Web Key Set lesbar, etwa das, das ein OpenID-Connect-Anbieter unter seiner jwks_uri veröffentlicht. Er richtet sich an Entwickler und Security-Teams, die ein JWKS veröffentlichen oder nutzen und auf einen Blick sehen wollen, welche Schlüssel es enthält, wie sie gekennzeichnet sind und ob versehentlich private Daten darin stehen.

Ein JWK (RFC 7517) beschreibt einen Schlüssel in JSON: kty nennt die Familie (RSA, EC, oct), kid die Kennung, alg den vorgesehenen Algorithmus, use den Zweck (sig für Signaturen, enc für Verschlüsselung) und key_ops die erlaubten Operationen. Ein JWKS ist einfach ein Objekt {"keys":[…]}, das mehrere davon bündelt. Das Tool akzeptiert beide Formen, zeigt eine Zeile pro Schlüssel und fasst Anzahl der Schlüssel, vorhandene Typen und unterschiedliche kid-Werte zusammen. Außerdem berechnet es für jeden Schlüssel den Thumbprint nach RFC 7638: den Base64URL-kodierten SHA-256-Hash eines kanonischen JSON, das nur die Pflichtfelder in alphabetischer Reihenfolge enthält, also e, kty und n bei RSA, crv, kty, x und y bei EC sowie k und kty bei einem symmetrischen Schlüssel.

Die Warnungen zielen auf echte Veröffentlichungsfehler: fehlendes kty (der Schlüssel ist unbrauchbar), fehlender kid bei mehreren Schlüsseln (der Prüfer weiß nicht, welchen er nehmen soll), doppelte kid und vor allem privates Schlüsselmaterial. Bei RSA bilden die Felder d, p, q, dp, dq und qi den privaten Schlüssel, bei EC ist es d, und bei einem symmetrischen oct-Schlüssel ist das Feld k selbst das Secret. Ein öffentliches JWKS darf nur öffentliche Schlüssel enthalten, sonst kann jeder in deinem Namen Tokens signieren. Das Ergebnis lässt sich als JSON exportieren.

So verwenden Sie dieses Tool

  1. JWK oder JWKS einfügen

    Füge einen einzelnen Schlüssel {"kty":…} oder ein vollständiges Set {"keys":[…]} ein, zum Beispiel aus der jwks_uri deines Anbieters kopiert.

  2. Schlüsseltabelle lesen

    Sieh dir für jeden Schlüssel kid, kty, alg, use, key_ops und den SHA-256-Thumbprint nach RFC 7638 an, dazu die Übersicht mit Anzahl, Typen und unterschiedlichen kid-Werten.

  3. Warnungen abarbeiten

    Ergänze fehlende kty- oder kid-Werte, beseitige doppelte kid, entferne alle privaten Daten und exportiere das Ergebnis bei Bedarf als JSON.

Anwendungsfälle

Ein JWKS vor der Veröffentlichung prüfen

Bevor du /.well-known/jwks.json online stellst, stellst du sicher, dass kein Schlüssel d oder k enthält und jeder einen eindeutigen kid hat.

Eine Schlüsselrotation verfolgen

Füge während einer Rotation das JWKS deines Anbieters (Auth0, Keycloak, Entra ID, Google) ein und sieh alten und neuen Schlüssel nebeneinander, mit kid und Thumbprint.

Den Schlüssel finden, der ein Token signiert hat

Vergleiche den kid aus dem Header eines JWT mit denen im JWKS, um den erwarteten Schlüssel zu finden, und prüfe dann die Signatur mit dem JWT-Verifizierer.

Tipps und bewährte Vorgehensweisen

  • Erscheint die Warnung zu privatem Schlüsselmaterial bei einem bereits veröffentlichten JWKS, musst du den Schlüssel widerrufen und ersetzen: Ihn nur aus der Datei zu löschen reicht nicht, er könnte schon kopiert worden sein.
  • Verzichte auf einen kid aus Zähler oder vorhersehbarem Datum, wenn du den Thumbprint nach RFC 7638 nutzen kannst: Er ist stabil und unabhängig von der JSON-Formatierung immer gleich.
  • Ein symmetrischer oct-Schlüssel gehört nie in ein öffentliches JWKS: HMAC-Secrets werden auf anderem Weg geteilt, über einen Secrets-Manager.

Häufig gestellte Fragen

Was ist der Unterschied zwischen JWK und JWKS?

Ein JWK ist ein einzelner Schlüssel in JSON-Darstellung mit Feldern wie kty, n, e oder x und y. Ein JWKS (JSON Web Key Set) ist ein Objekt {"keys":[…]} mit einer Liste von JWKs, das meist ein Autorisierungsserver veröffentlicht, damit Clients seine Tokens prüfen können.

Was ist ein JWK-Thumbprint?

Das ist eine Kennung nach RFC 7638: der Base64URL-kodierte SHA-256-Hash eines kanonischen JSON, das nur die Pflichtfelder des öffentlichen Schlüssels enthält. Zwei Darstellungen desselben Schlüssels ergeben immer denselben Thumbprint, und der Thumbprint eines privaten Schlüssels ist der seines öffentlichen. Viele Anbieter nutzen ihn als kid.

Ist der kid in einem JWKS Pflicht?

RFC 7517 macht ihn optional, doch sobald ein JWKS mehrere Schlüssel enthält, ist er unverzichtbar: Über den kid im JWT-Header wird der richtige Schlüssel ausgewählt. Ohne ihn muss der Prüfer jeden Schlüssel durchprobieren, was viele Bibliotheken verweigern.

Woran erkenne ich, dass ein JWK einen privaten Schlüssel enthält?

Ein RSA-JWK ist privat, wenn er d enthält (oft auch p, q, dp, dq, qi); ein EC-JWK ist privat, wenn er d enthält; ein oct-Schlüssel trägt das Secret immer in k. Das Tool markiert diese Felder. Ein öffentlicher RSA-Schlüssel enthält nur kty, n und e sowie optionale Metadaten.

Was bedeuten kty RSA, EC und oct?

RSA ist ein RSA-Schlüssel, etwa für RS256 oder PS256; EC ist ein Schlüssel auf einer elliptischen Kurve (P-256, P-384, P-521) für ES256, ES384 oder ES512; oct ist ein symmetrischer Schlüssel, also eine geheime Bytefolge für HS256 oder AES-Verschlüsselung.

Was ist der Unterschied zwischen use und key_ops?

use gibt den allgemeinen Zweck des Schlüssels an: sig für Signaturen, enc für Verschlüsselung. key_ops listet die genau erlaubten Operationen auf, etwa verify, sign, encrypt oder wrapKey. RFC 7517 empfiehlt, nicht beide gleichzeitig zu verwenden oder sie andernfalls konsistent zu halten.

Verwandte Werkzeuge

Werkzeuge, die diesem ähnlich sind oder es ergänzen.

Passt gut zu

Prüfe die Signatur eines JWT mit einem HMAC-Secret oder einem öffentlichen Schlüssel als JWK, JWKS oder PEM und kontrolliere exp, nbf, iss und aud.

Sicherheit & DatenschutzDieses Werkzeug verwenden

Dekodiere ein JWT und lies Header, Payload, Claims und Ablaufdaten.

Sicherheit & DatenschutzEmpfohlenDieses Werkzeug verwenden

Erzeuge einen PKCE-code_verifier, die zugehörige S256-code_challenge und einen state für deine OAuth-Autorisierungsanfrage.

Sicherheit & DatenschutzNeuDieses Werkzeug verwenden