要約
- RFC 2154 は OSPF LSA ごとに持続する電子署名を付け、Public Key LSA で認証済みルータ鍵を配布し、隣接一ホップを越えて出所と対象バイトの完全性を残した。
- 証明書は Router ID、役割、広告可能なアドレス範囲を示せても、リンクの実在、メトリックの正しさ、外部経路の承認、宛先到達性は測定しない。
- 運用上の結論には、信頼アンカー、鍵世代、LSA の鮮度、方針承認、相互確認、SPF、FIB、実パケットの結果を別々に記録する必要がある。
正しい印鑑が、空の接続先を指す
一つの LSA が発信ルータで封印され、複数の中継ルータを通過する。どの受信側でも署名は一致し、保護された内容に改変はない。それでも現地で確認すると、広告された stub ネットワークには何も接続されていない。署名は壊れていない。誤った主張の出所を正確に示している。
1997 年 6 月に Experimental として公開された RFC 2154 は、この違いを OSPF の構造に組み込んだ。従来の暗号認証は隣接ルータ間のパケットを守る。提案は Link State Update の中にある各 LSA を発信ルータの鍵で署名し、伝播先まで同じ証拠を運んだ。Hello や Database Description などのパケット保護とは別の層である。
検証成功が示すのは、対象バイトが Advertising Router に結び付いた鍵から出され、途中で別のルータに改変されていないことだ。中継者は作者にならずに転送できる。しかし、最初から間違っていた内容を正す機能ではない。
鍵にも来歴が必要だった
公鍵を配るだけなら、誰でも任意の Router ID を名乗れる。そこで RFC 2154 は Router Public Key LSA(PKLSA)を導入した。Trusted Entity(TE)が署名する証明書には、Router ID、ルータの役割、許可されたネットワーク範囲、作成時刻、アルゴリズム、公鍵が入る。受信側は TE の認証とルータ自身による PKLSA 署名の両方を確認し、どちらか一方でも失敗すれば捨てる。
ここで信頼は一個の属性ではなく手順になる。TE 公鍵は OSPF の外で設定される。PKLSA は現在の世代でなければならない。LSA は対応するルータ鍵を指定する。鍵より先に到着した LSA は MAX_TRANSIT_DELAY の間だけ待てる。新しい証明済み鍵が旧鍵を置き換えれば、ルータは自己起源 LSA を新しい鍵で出し直し、旧鍵の情報を退場させる。
証明書のアドレス範囲は主張できる領域を制限する。しかしポート状態を見てはいない。メトリックが承認済みか、宛先が存在するかを証言するものでもない。
Age は署名の外側で動く
LSA Age は伝播中に変わるため、通常は署名対象にならない。例外は発信者が MaxAge を設定して作る LSA で、その場合だけ Age まで署名される。発信者は自分の情報を同期的に消去できる一方、中継ルータは他者の署名付き撤回を捏造できない。
発信元が停止した孤児 LSA は、各 LSDB で個別に MaxAge まで古くなり、そこで捨てられる。標準 OSPF の同期的な flush より収束は遅くなる。RFC は削除権限を守るため、その代価を明記した。
したがって「署名は有効」という表示だけでは足りない。どの TE 鍵を信頼したのか。どのルータ鍵世代か。新鍵への移行中ではないか。Age は発信者署名の MaxAge か、それともローカルな経時変化か。暗号計算には、その周辺状態が見えない。
仕様は、正しく署名する誤りを認めていた
第 9 節は残る脆弱性を率直に列挙する。内部ルータは実在するリンクに誤ったメトリックを付け、down のリンクを up と言い、存在しない stub や host route を広告できる。transit link なら相手側の対応する広告が SPF の利用条件になり得るが、stub には確認する反対端がない。
ABR は他エリアや backbone について偽の Summary LSA を生成できる。複数 ABR の照合案は処理量と通信量のため採用されなかった。ASBR の外部経路はさらに難しく、文書は AS 内に広告可能ネットワークを承認する同等の仕組みがないと述べる。
署名は矛盾が見つかった後の帰属を改善するが、矛盾を必ず発見するわけではない。RFC 2154 はデータパケット転送も対象外とした。LSDB と SPF が署名済み情報を正しく扱っても、次ホップがパケットを捨てればサービスは届かない。
一つの判定ではなく、九つの記録
TE 鍵とその導入者、ルータ証明書と許可範囲、鍵世代、LSA の識別子・sequence・対象バイト hash、鍵更新と Age、変更承認、transit の反対端や独立観測、SPF の入力世代、RIB/FIB、最後に宛先別 probe とアプリケーション結果を同じ時間軸に残すべきだ。
RFC Editor、Datatracker、履歴は Experimental 文書の系譜を示し、errataは綴り一か所だけを直す。RFC 2328は OSPFv2 の基礎である。RFC 6039は当時の運用経験がないと報告し、RFC 6863は経路データ保護と packet replay 防御を分離した。RFC 7474は再起動を越えるパケット鮮度という別問題を扱う。期限切れの個人 Internet-Draftは insider 問題を批判したが、IETF の合意ではない。
Heng Lu の Running-Code Primacy、Minimum Initial Specification、Reality Layersは、文書、検証可能な共通条件、実行結果を分けるための公開された編集上の視点であり、RFC 2154 の要求ではない。
出典
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加

