Appendix E. Negative Test Case for "crit" Header Parameter
Appendix E. "crit" Header Parameter 的反面测试用例 (Negative Test Case for "crit" Header Parameter)
本附录提供一个测试用例, 用于演示实现遇到无法理解的 "crit" (critical) Header Parameter 值时所要求的行为.
目的 (Purpose)
"crit" Header Parameter 表示正在使用 JWS 规范的扩展, 且这些扩展 MUST 被理解并处理. 如果接收方不理解 "crit" 数组中列出的任何扩展, 则 MUST 拒绝该 JWS.
测试用例 (Test Case)
如果某个 JWS 的 "crit" 值列出了实现不支持的 Header Parameter, 则实现应拒绝该 JWS, 即使该 JWS 在其他方面格式良好且签名有效.
预期行为 (Expected Behavior)
- 如果理解: 正常处理 JWS, 并验证所有关键参数
- 如果不理解: 完全拒绝 JWS, 不考虑签名是否有效
这可以确保使用强制扩展的 JWS 不会被无法正确处理这些扩展的实现处理, 从而防止潜在的安全漏洞.
实现说明 (Implementation Note)
生产方 MUST NOT 在 "crit" 列表中包含:
- 基础 JWS/JWA 规范定义的 Header Parameter 名称
- 重复名称
- 未出现在 JOSE Header 中的名称
- 空数组 "[]"