it-swarm.com.de

JSON Web Token - Warum ist die Nutzlast öffentlich?

Ich kann die Gründe nicht verstehen, warum die Ansprüche/Nutzdaten eines JWT nach der Decodierung durch base64 öffentlich sichtbar gemacht werden.

Warum?

Es scheint viel nützlicher zu sein, es mit dem Geheimnis verschlüsseln zu lassen.

Kann jemand erklären, warum oder in welcher Situation es nützlich ist, diese Daten öffentlich zu halten?

33
ineedhelp

Sie entscheiden sich dafür, die Nutzdaten aus den gleichen Gründen nicht zu verschlüsseln, aus denen Sie nichts anderes verschlüsseln: Die Kosten (so gering sie auch sein mögen) übersteigen den Nutzen, und viele Daten müssen einfach nicht auf diese Weise gesichert werden.

Was Sie meistens schützen müssen, sind Personen, die an den Daten manipulieren, damit der falsche Datensatz aktualisiert wird, oder dass das Girokonto einer Person Geld darin erhält, das es nicht haben sollte. Die Signatur des JSON-Web-Tokens erreicht dies, da durch Ändern eines Teils der Kombination aus Header, Nutzlast und Signatur das Paket ungültig wird.

Beachten Sie, dass Sie die Pakete weiterhin auf der Transportschicht mit SSL sichern können.

29
Robert Harvey

Die Verwendung des Begriffs Signatur im RFC entspricht einer digitalen Signatur ) in der asymmetrischen Kryptographie. Wenn bei der asymmetrischen Kryptografie der Absender eine Nachricht mit seinem privaten Schlüssel verschlüsselt, kann jeder, der über die Nachricht verfügt, diese mit dem öffentlichen Schlüssel des Absenders entschlüsseln. Das Ziel mit dem Begriff Signatur besteht also nicht darin, eine Nachricht geheim zu halten, sondern die Integrität/den Absender der Nachricht zu überprüfen, dh nicht wurde geändert.

Im Fall von JWTs ist das sendende System sowohl der Ersteller als auch der Verbraucher der Nachricht (siehe Abbildung unten), und das Ziel besteht darin, sicherzustellen, dass das an den Benutzer übergebene Token nicht manipuliert wurde (z. B. mit erhöhten Berechtigungen).

Und wie @Robert erwähnt hat, können/sollten die JWTs weiterhin mit TLS verschlüsselt werden.

Hier finden Sie eine gute Erklärung der Zeugen Jehovas und Signaturen, aus denen das folgende Bild stammt. 5 einfache Schritte zum Verständnis von JSON-Web-Tokens (JWT)

(asdfasdf

4
Micah B.

Um die Antwort von Robert Harveys zu ergänzen, hat die Verschlüsselung der Nutzdaten einen erheblichen Nachteil: Der Empfänger des Dienstes muss ein Geheimnis mit dem Authentifizierungsserver (dem Verschlüsselungsschlüssel) teilen, um zu verstehen, ob der Träger des Tokens autorisiert ist oder nicht oder nicht. Im Gegensatz dazu kann jeder eine JWT nur mit dem vom Authentifizierungsserver veröffentlichten öffentlichen Schlüssel validieren.

Dies ist ein wichtiger Bestandteil der OpenID-Verbindungsspezifikation, da Clientanwendungen vom Authentifizierungsserver ausgestellte Identitätstoken validieren und die Bereitstellung von Ressourcenservern vereinfachen können (da diese nicht mit Zugriff auf die geheime Verschlüsselung bereitgestellt werden müssen) Schlüssel) und hilft auch beim Versuch, Probleme mit einem ausgestellten JWT zu diagnostizieren.

2
Justin