11. Security Considerations (安全考虑)
本规范所有安全考虑都来自JWS [JWS] 和JWE [JWE] 规范。因此,实现者应该仔细阅读这些规范的安全考虑部分。
11.1. Trust Decisions (信任决策)
JWT的内容用于进行信任决策的能力取决于这些内容的真实性和完整性。当使用数字签名或MAC保护JWT时,可以验证JWT内容的真实性和完整性。
但是,对JWT进行签名或使用MAC保护不提供有关JWT内容来源的任何保证。签名或MAC只能验证内容自签名或MAC创建以来未被更改。签名或MAC的验证不确定签名或MAC的创建者——只是用于签名或MAC的密钥的持有者执行了该操作。
因此,实现必须 (MUST) 在JWT的内容和执行签名或MAC操作的一方之间建立信任关系。例如,对于使用公钥加密的JW
T,这可能涉及验证用于签名的公钥的证书链,以确定签名者的身份。
11.2. Signing and Encryption Order (签名和加密顺序)
当同时应用签名和加密到JWT时,通常应该先对JWT进行签名,然后对签名的JWT进行加密。这可以防止攻击者剥离签名并替换为他们自己的签名。
当JWT可能暴露于多个受众时,使用"aud" (audience) 声明来限制JWT的预期接收者尤为重要。