認証サーバーでJSONWebトークン(JWT)をサポートすることを検討しているため、最新のドラフトは08であるJSON Web暗号化(JWE)仕様を読んでいます。
定義されている非対称暗号化方式を使用して、対称鍵(コンテンツマスター鍵)は受信者の公開鍵を使用して暗号化されます。これは、受信者だけがそれを復号化でき、トークンが受信者向けであることを確認できるようにするために意味があります。
通常、トークンの出所を証明するものも表示されると思います。たとえば、公開鍵を使用して検証できる発行者の秘密鍵を使用して作成された署名などです。ただし、署名は、コンテンツマスターキーまたは受信者の公開キーのいずれかから派生しているように見え、発行者の秘密キーについては言及されていません。
これがないと、予想されたトークンの形式がわかっている限り、受信者の公開鍵を持っている人(つまり誰でも)が有効なトークンを生成できるように思えます。信頼できる認証サーバーだけではありません。
私は暗号化の専門家ではないので(それからはほど遠い)、ここで何かが欠けていると確信しています。受信者は、非対称に暗号化されたトークンが信頼できる発行者からのものであることをどのように確認しますか?
JSON Web Signatures(JWS)仕様では、発行者の秘密鍵を使用し、公開鍵で検証できる署名が定義されていることを考えると、JWEトークンのペイロードをJWSトークンにする必要があるのではないかと思います。