跳到主要内容

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 中的名称
  • 空数组 "[]"