Appendix E. Negative Test Case for "crit" Header Parameter ("crit" Header Parameterの否定的テストケース)
実装者は、次のテストケースを使用して、"crit" (critical、クリティカル) Header Parameterを正しく処理していることを検証できます。以下のJWSは、未定義のクリティカルヘッダーパラメータが含まれているため、拒否されるべきです:
JWS Protected Headerの例:
{"alg":"HS256","crit":["http://example.invalid/UNDEFINED"],"http://example.invalid/UNDEFINED":true}
このJWSは次の理由で拒否されるべきです:
- "crit"配列に値"http://example.invalid/UNDEFINED"が含まれている
- このヘッダーパラメータがJOSE Headerに存在する
- しかし、実装はこの拡張ヘッダーパラメータを理解していない
セクション4.1.11の規定により、受信者が"crit"リストにある拡張Header Parametersのいずれかを理解およびサポートしていない場合、JWSは無効です。
テストの目的
このテストケースは、実装が次のことを行うことを確認します:
- "crit" Header Parameterを正しく解析する
- "crit"配列にリストされているすべてのヘッダーパラメータを検証する
- 未知のクリティカルヘッダーパラメータを含むJWSを拒否する
- セクション4.1.11で指定されたセキュリティ要件を実装する
実装は、クリティカルヘッダーパラメータを正しく処理し、潜在的なセキュリティ脆弱性を防ぐために、このJWSを拒否しなければなりません (MUST)。