要約
- RFC 5204 の RVS は宛先 HIT の登録を検索して I1 を中継する初期接点であり、R1、I2、R2 の通常経路には残らない。
FROMとRVS_HMACは登録関係における書き換えの完全性を示すが、格納 locator の現時点での有効性や端点認証を示さない。- DNS 解決、登録エポック、中継送信、応答側受信、直接 R1、I2/R2、保護データ、アプリ結果を一つずつ結ぶ必要がある。
登録が正しくても現実は先に動く
架空の運用例を考える。移動端末はアドレス A を RVS に登録した後、アドレス B へ移った。更新はまだ届かず、A の登録 lifetime は残っている。I1 が来ると、RVS は正しい表を読み、A を選び、FROM と RVS_HMAC を付けて送信する。RVS の全検査は成功するが、応答側は受信しない。
ここで壊れたのは必ずしもプロトコル処理ではない。「登録済み」を「現在そこにいる」へ読み替えた運用上の判断である。
RFC 5204 は 2008 年の Experimental RFC で、後に RFC 8004 が置き換えた。目的は mobile/multihomed HIP ノードへの初回接触を助けることだ。クライアントは HIT と現在の IP アドレスを RVS に登録する。開始側は DNS などから RVS を知り、I1 を送る。RVS は適切な登録があれば locator へ転送し、なければ破棄する。
登録表の「current」は RVS が現在採用している状態を指す。問い合せ時に端末を再測定したという意味ではない。
復路は RVS を通らない
設計の重要点は経路の切替にある。I1 だけが RVS を介する。応答側は R1 を開始側へ直接返し、I2 と R2 も直接交換する。したがって RVS は association 全体の観測者ではない。
開始側が RVS に届いたこと、RVS が I1 を送ったこと、応答側が受け取ったこと、R1 が戻ったこと、base exchange が完了したこと、アプリが成功したことは別々の状態である。最初の二つだけを数える監視は、後半について「不明」と答えなければならない。
また RFC 5204 は、開始側が自分の RVS を利用して NAT や firewall を越える一般形を扱わない。拡張機能があるなら、その機能固有の契約と証拠が要る。
FROM が保存するのは書き換えの文脈
egress filtering のため、RVS は I1 の source IP を自分のアドレスに置き換えることがある。その場合、元の開始側アドレスを FROM に入れ、登録時に確立した鍵による RVS_HMAC で保護する。既存の FROM は消さず、後続 RVS が末尾に追加する。
これにより登録クライアントは、登録鍵を持つ RVS がその変換を保護したと確認できる。だが元アドレスが Host Identity そのものになったわけではない。全 IP hop を列挙したわけでも、宛先受領を証明したわけでもない。
HMAC の価値を守るには、主語を明示する必要がある。「provenance valid」ではなく「RVS-client 登録スコープの変換完全性が valid」と記録する。
端点認証は次の段階にある
I1 にはまだ HIP base exchange の end-to-end HMAC や signature がない。そのため RVS は header を変更し、parameter と checksum を追加できる。端点同士の認証は後続 exchange が担う。
登録関係の完全性と端点認証は競合する仕組みではなく、異なる層の仕組みである。前者の成功を後者の成功として表示すると、まさに保護境界が消える。
RFC 5204 は redirection、amplification、reflection、HIP 層への攻撃を検討している。RVS が強い control point であるほど、その event を過大な security verdict にしないことが重要になる。
VIA_RVS は診断用の手掛かり
中継 I1 を受けた応答側は、R1 に VIA_RVS を追加する。主目的は association 確立時の障害診断である。
この値は traceroute でも成功証明でもない。応答側が R1 を構成したことと、開始側がそれを受信・検証したことは別だ。その後の I2、R2、保護状態も別である。監視系は breadcrumb を completion へ昇格させてはならない。
DNS と登録は別の時計で動く
DNS には公開時刻、TTL、resolver cache、署名条件がある。RVS 登録には登録 ID、lifetime、renewal、最終更新がある。新しい DNS RR が古い登録を指すことも、有効な登録が使えない locator を持つこともある。
必要な receipt は、利用した DNS 証拠、要求 HIT、登録エポック、I1 fingerprint、lookup、書換前後の header、FROM 順序、HMAC context、送信時刻を保存する。さらに応答側受信、R1 の直接返送、I2/R2、association、保護データ、アプリ結果を別ソースから追加する。
obsolete は実装観測ではない
RFC 8004 は RFC 5204 を置き換え、周辺の base protocol、registration、DNS、mobility にも RFC 7401、8003、8005、8046 がある。資産台帳はどの世代を実装しているかを明記すべきだ。
しかし旧 RFC の引用だけで、ある製品が古い、脆弱、または移行済みとは断定できない。仕様は期待される振る舞いを示し、running code と packet evidence が実際の振る舞いを示す。
Sources
- RFC 5204 情報
- RFC 5204 HTML
- RFC 5204 テキスト
- RFC 5204 履歴
- RFC 5204 Datatracker
- RFC 5204 Datatracker API
- RFC 5204 errata
- RFC 8004 — HIP Rendezvous Extension
- RFC 5201 — Host Identity Protocol
- RFC 5203 — HIP Registration Extension
- RFC 5205 — HIP DNS Extensions
- RFC 5206 — HIP Mobility and Multihoming
- RFC 7401 — Host Identity Protocol Version 2
- RFC 8003 — HIP Registration Extension
- RFC 8005 — HIP DNS Extension
- RFC 8046 — HIP Mobility Support
- RFC 4423 — HIP Architecture
- On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
- Running Code Primary
- Minimum Initial Specification, Localized Future Decision
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
