要約

  • RFC 3508 は h323: URL にセミコロン区切りのパラメーター欄を許す一方、個々の定義を将来検討とし、文字集合と大文字小文字規則も各定義へ委ねた。
  • 文字列保存、構文受理、搬送、解決、機能要素への到達、gatekeeper 許可、呼設定、メディア、受信者結果は別々の証拠であり、未知値の転送から命令権限を推論できない。

送信ログと受信ログの URL は一致していた。にもかかわらず、送信側が要求した処理は実行されなかった。障害報告は「相手が命令を無視した」と結論したが、共有されていたのはパラメーターの置き場所だけだった。

RFC 3508 は 2003 年 4 月に Informational RFC として公開された。H.323 第 4 版の H323-URL 定義を参照しやすくし、IANA 登録するために再掲した文書であり、Internet Standard を定めるものではない。

IANA 登録が固定するのはスキーム名である

現在の IANA URI Schemes レジストリは h323 を Permanent として RFC 3508 に結び付ける。RFC が述べる効果は、h323 というスキーム名の重複を防ぐことだった。

これは名前空間の調整であり、実装、配備、別名所有、サービス稼働や通話成功の証明ではない。レジストリの永続性と実行時の対応状況は別の台帳に属する。

登録済みという事実は、パーサーがどの文書を参照すべきかを示す。ある URL が現在どこへ届くかは示さない。

三つのアドレス形が異なる空白を残す

アドレスは user のみ、@hostport、または user と hostport の組合せを取れる。host はホスト名、IPv4、角括弧付き IPv6 で、port は省略可能である。

user はユーザー、装置、サービスの別名であり、位置情報を含まない。外部の解決コンテキストが必要になる。hostport は Endpoint、Gatekeeper、Border Element などの機能要素を指し得るが、その要素が別名を所有することを証明しない。

構文上完全であることと、運用上十分な解決情報を持つことは同じではない。パーサーは欠けている権限とコンテキストを明示すべきである。

パラメーター定義が比較規則を所有する

基礎文法は ; に続く一つ以上のパラメーターを許す。しかし具体的なパラメーターは将来検討とされ、その文字集合と大文字小文字の扱いは各定義が決める。

したがって、基礎パーサーが知るのは境界であって意味ではない。未知パラメーターが必須か、無視可能か、転送すべきか、セキュリティに関わるかを独自に決めてはならない。

証跡は生の名前と値、参照した定義、バージョン、サポート判定、未知値ポリシー、実際の効果を含む。文字列が残ったことは、意味が保存された証明ではない。

user の比較も単純な文字列比較ではない

user は Unicode 文字列を UTF-8 にし、必要に応じて escape する。値が 0x80 未満の文字は大文字小文字を区別せず、それ以上は区別する。host は大文字小文字を区別しない。

全 Unicode を小文字化する実装は RFC が分ける別名を併合できる。受信オクテットだけを比較する実装は ASCII の同一扱いを失う。percent decoding やディレクトリ固有の正規化も別の変換である。

受信オクテット、escape 後のバイト、UTF-8 文字列、比較キーを保存し、アルゴリズムと版を記録する。比較一致は手続き上の一致であって本人性ではない。

搬送はパラメーターの権限を作らない

H.323 URL は H.225.0、SIP、TRIP、ウェブページ、XML で運べる。RFC 3508 は H.225.0 の安全性を H.235 に、他の搬送を対応するプロトコルへ委ねる。

SIP の完全性保護は、保護された URI が SIP peer から来たことを示せる。未知 H.323 パラメーターの標準意味や別名所有者の許可までは示さない。

TRIP が値を運び、XML が文字を保持しても、受信側の解釈は別である。搬送 peer、保護フィールド、信頼領域、変換履歴を記録する必要がある。

別名は位置も所有権も含まない

user 部は別名であり、場所を含まない。同じ綴りが異なる gatekeeper zone で別の装置を指すことがある。サービス別名は一人ではなくプールへ向くこともある。

URL 自体に発行者、有効期間、所有証明はない。ディレクトリ応答には管理者、スコープ、版、鮮度、認証済み応答者を結び付ける。

最終 IP だけを保存すると、どの台帳が文字列を経路へ変えたかが失われる。

相互接続機能は翻訳元を選ぶ

RFC 4123 は SIP-H.323 相互接続機能が gatekeeper、SIP registrar、他のデータベース、LDAP、DNS、TRIP などを使ってアドレスを翻訳できるとする。

これは等価な権威の列挙ではない。ソースごとに管理者、時間、スコープ、衝突規則が異なる。同じ URL が二つの IWF で別方向へ変換されても、構文は両方正しい場合がある。

入力、出力、マッピング元、レコード版、優先順位、選択時刻を保存する。古い表に忠実な変換は、現在の権限に忠実とは限らない。

解決後に許可と結果が待っている

機能要素を見つけた後も、接続、登録、gatekeeper admission、呼シグナリング、能力とメディアの交渉、受信者認証、アプリ結果、資源解放が残る。

解決は成功しても admission は拒否される。シグナリングは成立してもメディアが流れない。メディアは別人へ届く。相手が応答しても要求サービスは失敗する。

状態表示は「解決」「到達」「許可」「呼設定」「メディア確立」「受信者確認」「結果確認」を分けるべきである。

必要な証跡

元 URL、出所、搬送、オクテット、escape、UTF-8、構造フィールド、比較キーを保存する。パラメーターごとの定義、版、未知値処理と効果を加える。

次に別名ディレクトリ、鮮度、DNS/TRIP/LDAP/registrar/gatekeeper の問い合わせ、選択された機能役割と接続を残す。IWF なら変換入出力とルールが要る。

最後に registration、admission、最終シグナリング、メディアアドレスと鍵、受信者の本人性と許可、認証済み結果、teardown と代替解決の再実行を結ぶ。

証拠の境界

この記事は現在の製品、endpoint、gatekeeper、運用者、通話、利用者、事件、採用率、相互接続率、メディア品質を主張しない。IANA の Permanent はレジストリ状態だけである。

RFC 3305 の URL/URN、ipn、Gopher、VEMMI、SIP voicemail の既存記事とも重複しない。ここで扱うのは RFC 3508 が残したパラメーター意味の局所性と、搬送された文字列から共有命令を推論しない境界である。

Heng Lu の最小初期仕様と running code は、開示した編集上の視点である。細い共通構文と実行経路の証拠を重視するが、H.323 の配備測定ではない。

限定した結論はこうである。未知パラメーターを一字も落とさず届けても、意味と権限が共有されたことにはならない。

Sources