我一直在阅读 JSON Web 加密 (JWE) 规范,最新的草案是 08,因为我们正在考虑在我们的身份验证服务器中支持 JSON Web 令牌 (JWT)。
使用它定义的非对称加密方法,对称密钥(内容主密钥)使用收件人公钥进行加密。这是有道理的,因此只有接收者才能解密它,并确保令牌是为他们准备的。
通常我还希望看到一些可以证明令牌来自谁的东西,例如使用发行者的私钥创建的签名,可以使用他们的公钥进行验证。但是,签名似乎也来自内容主密钥或接收者的公钥,没有提及发行者的私钥。
如果没有这个,在我看来——只要知道预期的令牌格式——任何拥有接收者公钥的人(即任何人)都可以生成一个有效的令牌;不仅仅是受信任的身份验证服务器。
我不是密码学专家(远非如此),所以我确定我在这里遗漏了一些东西。接收方如何验证非对称加密令牌是否来自受信任的发行者?
鉴于 JSON Web 签名 (JWS) 规范确实定义了使用颁发者的私钥并且可以使用其公钥进行验证的签名,我想知道这个想法是否是 JWE 令牌的有效负载应该是 JWS 令牌?