要約
- RFC 3327では、選ばれたプロキシがREGISTERにPath URIを加え、レジストラがアドレス・オブ・レコードと個別Contactの組み合わせに順序付きベクトルを保存し、ホームプロキシが後の要求のRouteへ展開できるようにした。
- Pathは完全な通過履歴ではない。通過したプロキシが自分を残さない場合も、別ノードを指す値を入れる場合もあり、レジストラの変換や後段のローカル方針も加わる。これは未来への制約であって、過去の証明ではない。
登録された位置だけでは配達できなかった
利用者端末が訪問先ネットワークから自分の公開SIP識別子を登録する。Contactは現在の到達先を表し、レジストラは対応関係を受理する。しかし端末がエッジプロキシ、境界装置、訪問網の必須サービスの向こう側にあれば、Contactへの直接送信は必要な制御を迂回するか、そもそも到達しない。
REGISTERは直前に必要な中継点を通ってきた。それでも通常の登録意味論は、その並びをContactの状態として保持するよう要求していなかった。トランザクションが終わると、現在位置は残るのに、そこへ戻る方法が消える。成功した登録と成功する配達の間には、別の記憶が必要だった。
Pathヘッダーはその記憶を明示した。REGISTERを扱うプロキシは、将来この端末宛ての要求で利用してほしいURIを追加できる。複数の値は順序付きベクトルになり、レジストラはアドレス・オブ・レコードと特定Contactに結び付けて保存する。成功応答では受理した値を反射する。後にホームプロキシがそのContactを選ぶと、ベクトルをRoute集合へ事前に入れてから転送する。
Contact単位であることは細部ではない。一つの公開識別子が、携帯端末、デスクトップ、ゲートウェイを同時に登録でき、それぞれ異なるアクセス経路を持ち得る。ある端末のPathを別端末へ流用してはならない。別のエッジから更新すればベクトルは変わり、登録が失効すれば経路状態も失効すべきだった。
RFC 3263はDNSを用いてドメインのSIPサーバーを見つける。これはサービスの入口を探す仕組みであり、ホーム網から一つの登録Contactまでの一時的な中継列を表さない。Pathはサーバー発見の後に残る、バインディング固有の問題を扱った。
Pathという名前でも、足跡とは限らない
URI列を見ると、REGISTERが実際にたどった順路だと解釈したくなる。RFC 3327はその等式を置かなかった。REGISTERを処理したプロキシが自分のURIを追加しないこともある。将来の処理を別ノードへ任せるため、その別ノードのURIを追加することもある。レジストラは保存時に値を変換でき、ホームプロキシは既存Routeや既定経路と組み合わせられる。
したがってPathは記述より規定に近い。過去のパケットがどこを通ったかではなく、未来のパケットをどこへ向けるべきかを示す。ある地点のキャプチャは、そこで見えた値を証明できる。しかし全通過プロキシが列挙されたこと、列挙ノードが過去に通過されたこと、将来も同じ順に通ることは証明しない。
運用証跡では、少なくとも四つを分ける必要がある。観測されたREGISTERの通過、宣言されたPath、レジストラが受理または変換して保存した状態、そして後の要求で実現したRouteである。差異を一つのきれいな経路へ圧縮すると、意図と観測を混同する。
Viaは一つのトランザクションで応答を戻すための通過情報を担う。Record-Routeはダイアログ開始要求から、そのダイアログの経路集合を作る。Pathは登録時に学び、まだ存在しない将来ダイアログへの入口を準備する。RFC 3608のService-Routeは、端末が将来外向きのサービス要求を送る経路を端末へ知らせる。Pathは逆に、ホーム側がContactへ向かう経路を得る。似た名前でも方向と権限が異なる。
応答への反射は監査窓であり、保証書ではなかった
成功したREGISTER応答には保存されたPathが返された。通常の利用者端末はそれを自分のRouteに使わず、無視もできた。それでも値を検査する意味はある。見覚えのないプロキシがあれば、その登録への将来要求すべてに第三者が居座ろうとしている可能性を発見できる。
悪意ある挿入の影響はREGISTER一回に終わらない。バインディングが有効な間、攻撃者のURIは継続的な傍受位置になり得る。URIの削除は必須制御を迂回させ、並べ替えは最初に観測する組織を変え、記録されない正規化は誤設定を受理済み状態に見せる。
RFC 3327は適切な完全性保護と相互認証を論じた。ただし証明範囲は限られる。完全性検証は識別された相手の間で保護対象のバイトが変わらなかったことを示せるが、ノードの誠実さ、可用性、別ノードを代表する権限、過去または未来の実通過までは示さない。反射は比較可能性を生むが、真実性の承認ではない。
端末自身によるPath挿入への警告も重要である。後段プロキシはそのURIをプロキシ由来の命令と見なし、将来その端末にプロキシとしての動作を期待するかもしれない。正しい構文でも、話者の役割が違えば意味は壊れる。挿入主体と信頼関係を値から切り離してはならない。
後続仕様は周辺を整えた
RFC 3327は2002年12月に公開され、後にRFC 5626で更新された。SIP Outboundはネットワーク境界の背後にいる端末が維持するフローとエッジプロキシを体系化し、登録と実際に使える戻り道の関係を精緻化した。それでもPathが完全な履歴へ変わったわけではない。
RFC 5627は端末インスタンスを経路可能に識別するGRUUを定義した。RFC 3680は登録イベント通知を、RFC 5922はSIPドメイン証明書を扱った。IANAのSIP Parametersレジストリは標準名と割当を記録する。これらはプロトコル契約の存在を裏付けるが、普及率、実装状況、現在の到達性や信頼性を裏付けない。
RFC 3327が残した設計原則は、識別子、現在位置、必須経路、観測履歴を別々の状態として扱うことだ。最初の二つを知っていても配達に失敗し、未来の経路を知っていても過去を知らない場合がある。Pathは欠けていた状態を保存可能にした。その価値を守るには、未来への宣言を過去の証拠へ変えてはならない。
出典
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
