验证使用JSON Web加密(JWE)加密的安全令牌的颁发者?

时间:2013-03-19 11:24:45

标签: security encryption jwt jwe

我一直在阅读带有latest draft being 08的JSON Web加密(JWE)规范,因为我们正在考虑在我们的身份验证服务器中支持JSON Web令牌(JWT)。

使用它定义的非对称加密方法,使用收件人公钥加密对称密钥(内容主密钥)。这是有道理的,这样只有收件人才能对其进行解密,并确保该令牌适用于他们。

通常情况下,我也希望看到一些证明来自的令牌的内容,例如:使用发行者的私钥创建的签名,可以使用其公钥进行验证。但是,签名似乎也来自内容主密钥或收件人的公钥,而没有提及发行者的私钥。

如果没有这个,在我看来 - 只要知道预期的令牌格式是已知的 - 拥有收件人公钥的任何人(即任何人)都可以生成有效令牌;不只是受信任的身份验证服务器。

我不是密码学方面的专家(远非它)所以我确定我在这里遗漏了一些东西。收件人如何验证非对称加密令牌是否来自受信任的颁发者?

鉴于JSON Web签名(JWS)规范确实定义了使用发行者私钥的签名,并且可以使用他们的公钥进行验证,我想知道这个想法是否是有效载荷JWE令牌应该是JWS令牌吗?

1 个答案:

答案 0 :(得分:4)

JWT肯定允许嵌套的有效负载。事实上,规范中有一个specific reference,其中cty(内容类型)头参数可以设置为JWT,以指示有效负载实际上是另一个JWT。 / p>

因此,您很可能会创建一个JWE并将其包装在JWS中,并使用您的私钥进行签名。这似乎也是JOSE邮件列表中this thread的结论(或至少一个解决方案)。减少有效负载大小还有另一个related thread。一般来说,邮件列表可能值得关注,因为它是规范背后的人们所在的地方。