5.1. Specific Compatibility Notes on ASN.1 (ASN.1に関する特定の互換性上の注意)
5.1. Specific Compatibility Notes on ASN.1 (ASN.1に関する特定の互換性上の注意)
概要
本節では, 相互運用を確保するために実装者が留意すべきASN.1の符号化および互換性に関する事項を扱います。
5.1.1. ASN.1 Distinguished Encoding Rules (ASN.1識別符号化規則)
すべてのKerberosメッセージの符号化にはDistinguished Encoding Rules (DER, 識別符号化規則) を用います。DERはBasic Encoding Rules (BER, 基本符号化規則) のsubsetであり, 各値に対して一意の符号化を保証します。
主な要件
- すべてのメッセージにDER符号化を用いること
- 任意の符号化選択肢を置かないこと
- 確定長符号化が必須であること
- SETおよびSET OFの順序に関する特定の規則
5.1.2. オプションの整数フィールド
Kerberosメッセージ内のオプション整数フィールドには, 次の符号化規則があります:
- 存在する場合は符号化しなければならない
- 欠落している場合はフィールド全体を省略しなければならない
- フィールドが存在する場合, ゼロ値は明示的に符号化すべきである
- 実装は, 存在と欠落の両方を正しく処理しなければならない
5.1.3. 空のSEQUENCE OF型
SEQUENCE OF型に要素がない場合:
- 一部の実装はゼロ長として符号化する場合がある
- 他の実装はフィールド自体を完全に省略する場合がある
- 実装は両方の形式を受け入れなければならない
- 生成時はDER規則に従うこと
5.1.4. 認識されないタグ番号
認識されないタグ番号に遭遇した場合:
- 受信者は符号化を保持すべきである (SHOULD)
- 受信者はその存在を無視すべきである (SHOULD)
- 受信者は未知のタグのみを理由にメッセージを拒否してはならない (MUST NOT)
- 例外: 未知の認可データ (authorization data) には特別な扱いが必要な場合がある
5.1.5. 30より大きいタグ番号
30を超えるASN.1タグ番号はマルチバイト符号化を用います:
- 実装はマルチバイトタグをサポートしなければならない
- 長形式のタグ符号化を正しく処理しなければならない
- これによりプロトコルの拡張性が確保される
実装上の指針
- ASN.1の復号を慎重に検証すること
- 可能であれば未知の拡張を保持すること
- DER符号化規則を厳密に守ること
- 互換性のため, さまざまなASN.1符号化器・復号器でテストすること
参照
完全な技術詳細はRFC 4120 セクション5.1を参照してください。