要約

  • RFC 3001はASN.1のオブジェクト識別子をurn:oidとして表現したが、一意性はURNではなく、既存のOID委任ツリーから受け継いだ。
  • 3か月後のRFC 3061は登録主体と正規構文を明確にした一方、名前解決と検証の仕組みをあえて定義しなかった。

urn:oid:1.2.3という文字列は、説明を必要としない完成品のように見える。短く、規則的で、場所に依存しない。しかし、誰がその番号を割り当てたのか、割り当ては有効なのか、何を指すのか、どこで確かめられるのかは、一文字も書かれていない。

2000年11月、Michael Meallingが公開した情報提供RFCのRFC 3001は、ASN.1オブジェクト識別子のためのURN名前空間を登録した。OIDはそれ以前から階層的に割り当てられていた。最初の枝は0がITU-T、1がISO、2がISOとITU-Tの共同割り当てを表し、あるノードを得た主体はその下をさらに割り当てられる。URNが新しい所有権を生んだのではない。既存の数値経路をURIとして持ち運べるようにしたのである。

同時代のRFC 2141は、URNを永続的で場所に依存しない資源識別子として位置づけた。名前空間識別子が、後ろの名前空間固有文字列をどう解釈するかを決める。この枠組みなら、従来の識別体系をネットワーク上の所在に変質させず、URIの世界へ入れられる。oidは解釈の領域を示し、点で区切られた数字は元のOIDを示す。どちらも接続先ではない。

RFC 3001は、一意性と永続性をOIDの割り当て規則に求めた。字句上の同値性は文字列の完全一致、適用範囲はグローバルとされた。それでも「Resolution」には仕組みを定義しないとあり、「Validation mechanism」も未定義だった。受け手は文字列を保存し、交換し、比較できるが、標準化された照会先も、正しい割り当てを証明する標準手続きも得ていない。

制度上の継ぎ目は、珍しいほど露出していた。RFC 3001の「Declared registrant」欄には、執筆者が自分を登録者とすることへの戸惑いを記した編集上の問いが、そのまま掲載されている。その直後にISO/IEC JTC1 SC6事務局が置かれた。この一文から対立や障害を推測してはならない。確実に言えるのは、機械が扱いやすい構文が完成しても、その背後の責任主体をどう記述するかは別の問題として残り得た、ということだ。

2001年2月、RFC 3061がRFC 3001を廃止した。新版は編集上の問いを取り除き、ISO/IEC JTC1 SC6がASN.1規格を解釈し変更できる主体だからこそ、適切な登録権限を持つと説明した。構文も厳密になった。各要素は10進数字、区切りはピリオド、先頭のゼロは禁止。OIDノードに付く人間向けの説明名も、名前空間固有文字列には入れない。交換されるものを、変わり得るラベルではなく、正規の数値経路に限定した。

表記の揺れは減った。だが、正規表記が権限の証明になったわけではない。完全一致は二つの文字列が同じかを答えるだけで、番号が正当に割り当てられたか、現在の申告者がノードを支配しているか、対象が存在するかを答えない。先頭の枝は制度的な位置を示すが、そこに見える数字は割り当て機関の署名ではない。

RFC 3061でも、世界共通のリゾルバーは追加されなかった。範囲はグローバルのまま、解決と検証は未定義のままだった。現在の利用者は、一つの検索窓が命名、検索、取得、認証まで処理する体験に慣れている。だからこそ、当時の切り分けは重要である。名前の世界性は、割り当ての衝突を防ぐ制度から生じる。同じ照会サービスへの世界的な依存から生じるとは限らない。

2017年のRFC 8141は、後世の言葉で境界をさらに明確にした。一般構文に合うURNらしい文字列と、個別名前空間の規則に従って有効に割り当てられたURNは同じではない。この表現を2000年の文書へ遡及させるべきではないが、構文が証明できるのは形式までだ、という問題をよく示している。

したがって、urn:oidは「未完成のグローバル検索計画」ではない。権限を分けた設計である。OIDの機関が番号を割り当て、URN仕様が可搬性を与え、アプリケーションが正規文字列を比較する。リゾルバー、ディレクトリ、証明書、登録簿が検証を担うなら、それぞれが根拠と運用範囲を示さなければならない。

最小限の共通仕様は、将来の検索サービスを一つに固定しなかった。その自由は価値であると同時に、説明責任でもある。形式の整った識別子に、仕様が与えていない証拠能力を持たせてはならない。世界共通の名前は会話をそろえる。しかし、誰が名付ける権利を持ち、現実に何が存在するかは、名前とは別の証拠で確かめる必要がある。

Sources