オブジェクト識別子

**オブジェクト識別子**（オブジェクトしきべつし、、**OID**）とは、あらゆるオブジェクト、概念、または「モノ」に世界的に重複しない一意な識別子（番号）を割り当てるために作られた識別子メカニズムである。国際電気通信連合（ITU）およびISO/IECにより、共同で標準化されている。

## 構成
OIDの構成はITU標準X.660で正式に定義されており、木構造（OID tree）となっている。標準文書上では、識別子を構成する個々の最小ラベルをアーク（arc）と呼び、アークは整数値（primary integer values）で表す。オプションとして英字（Unicode labels）で表すこともできる。あるアークに更に下位のアークを定義した場合、アーク間は空白（space）で区切り、下位アークを右端に表示する。左端のルートアーク（レベル1）から目的とするアークまでの完全なパスをノード（node）と呼び、{ }で囲んで一意なOIDとして識別使用する。

### 構成例
たとえば、Intel Corporationを表すOIDは次のようになる。 
* 整数表記：`{1 3 6 1 4 1 343}`
** 整数表記は、全ての登録機関（RA）が必ず登録する。
* 英字表記：`{iso identified-organization dod internet private enterprise intel}`
** 登録機関によっては、英字表記を登録しない場合があり、この場合、当該箇所は整数表記で表示する。
* 混在表記：`{iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) intel(343)}`
* OID-URI表記：`/iso/identified-organization/dod/internet/private/enterprise/intel`
* 実装表記：`1.3.6.1.4.1.343`
** アプリケーションなどへの実装表記は、ITU X.680文書及びRFC1778文書にて各レベルをピリオドで区切った表記又は、OID-URI表記の使用が定められている。本稿ではピリオドで区切った表記で統一する。

### 特有の制限事項
* 標準文書では、OIDの長さやアーク数（全体の文字数）の上限は規定されていないが、アプリケーションなどの実装で制限がかかっていることがあるので、それらを踏まえたツリーの構成が必要である。
* IPアドレスに採用されている、プライベートアドレス空間のような自由に利用できるアークはないため、新たなOIDを使用したい場合は、必ずRAから登録を受けるか、アークの権限移譲を受けた上で自ら登録しなければならない。架空のOIDの使用はできない。
* RFCなどの標準文書により、特定のオブジェクトを示すものとして登録済みの標準OIDの中には、他者でも利用可能なOIDがあり、そのようなOIDは当該標準文書の定める範囲内で利用することができる。
* OIDは、特定のオブジェクトを示す世界的に重複しない一意な識別子であるため、特定のオブジェクト（A）を示すものとして一度でも登録されたOIDを、再度、別のオブジェクト（B）を示すものとして定義しなおすことは、一つのOIDが、AとBの両方を示すことになり一意性を毀損するもので望ましくない。新たなオブジェクト（B）を定義する場合は、新たなOIDを登録する必要がある。

### ルート
前述のとおり、ITUとISOが共同で標準化したものである経緯から、ルートアークには以下の3種類が定義されており、すべてのOIDの起点となる。

* 0 : ITU-T
* 1 : ISO
* 2 : joint-iso-itu-t

### 権限の委譲
OIDツリーは、権限委譲の連鎖によって分散管理されている。移譲の連鎖を、先ほどのIntel CorporationのOIDを例にすると、以下のようになる。

# ルートレベル`1`は、標準文書によりISOが権限を有するので`1`の下に`3.6`（レベル2、3）を定義して、米国国防総省に`1.3.6`の権限を委譲
# 米国国防総省は、権限を委譲された`1.3.6`アークの下に`1.4.1`（レベル4、5、6）を定義し、IANAに`1.3.6.1.4.1`の権限を委譲
# IANAは、権限を委譲された`1.3.6.1.4.1`アークの下に`343`（レベル7）を定義し、Intel Corporationに`1.3.6.1.4.1.343`の権限を委譲
# Intel Corporationは、権限を委譲された`1.3.6.1.4.1.343`を起点とした下位アーク（レベル８以降）に、標準文書の規則の範囲内で新たなアークを任意に定義するか、定義したアークの権限を他組織等に移譲することができる。

## 用途
* X.509証明書
**発行者や取り扱うソフトウェアが異なっても、フィールド名や値などを一意に取り扱うことができるようにするために、OIDを使用する。
* X.500とLDAPスキーマおよびプロトコル
**各属性タイプとオブジェクトクラス、およびスキーマの他の要素を一意に指定するために、OIDを使用する。
* 簡易ネットワーク管理プロトコル（SNMP）
**管理情報ベース（MIB）内の各ノードの識別にOIDを利用する。
* DICOM
* Microsoft COMおよびDCOM
**OBJREFにはOIDを使用する。

## 登録管理制度
### 取得方法
* OIDを取得したい組織等は、現にOIDアークを保有している登録機関（RA）の保有するOIDツリーから、下位アークの権限委譲を受けて取得することができる。アークの権限移譲を受けた組織等は自身も登録機関（RA）となり、権限委譲を受けているアークを起点として、その下位に新たなツリーを構成しオブジェクトを定義することや、新たなアークを定義して更に他の組織等に権限委譲することも可能である。ただし、移譲元のRAの規則により用途や移譲が制限されていることもある。
* IANAから取得 - 最も世界的に一般的な方法で、IANAでは`1.3.6.1.4.1`の下位アークを企業や他の組織にPrivate Enterprise Numbers (PEN) として国籍や組織の種別を問わず無償で権限移譲を行っている。
* Microsoftから取得 - `1.2.840.113556.1.8000.2554`の下位アークをvbsスクリプトで自動的に発行している。このスクリプトでは、ネットワークカードのMACアドレスと時刻情報を元に発行し、非常に長く深いアークが発行され、乱数的な自動発行なので管理者が全く追跡できないことに留意して使用すべきである。
* 日本が直接管理をしているアークは、ITU系では`0.2.440`アークを総務省が管理(無償、登録期限なし)、ISO系では`1.2.392`アークを日本工業標準調査会(一般財団法人日本情報経済社会推進協会に登録実務を委任、有償、登録期限3年)となっている。国内ではアークを「構成要素値」と呼称している。

### 管理
* OIDの実質的な管理は、標準文書で直轄管理されているアーク（上位アーク）や、標準としてRFCなどにより定義されているアークを除き、それぞれ各アークの委譲を受けている組織に管理が一任されている。各アークを統一的に管理している専門機関は存在しない（よって、インターネットドメイン名に用いられているwhoisのような統一的なデータベースは存在しない）ので、特定アークの管理者と連絡を取るには、上位アークから順にアーク管理者に問い合わせをする必要がある。
* 自己の管理するアークの下位の登録管理については、一意性を毀損しないようRA自身でその登録を管理しなければならない。アーク委譲先や自組織ツリーの情報を公開することが推奨されており、後述のOID Repositoryへの登録が標準文書で推奨されている。

### 期限・廃止・譲渡
* 期限：OIDアークの移譲の有効期限については標準文書において定めはなく、RAに一任されている。一般的には登録更新制（更新期限あり）又は、廃止申告制（廃止の届出があるまで）のどちらかを採用している。
* 廃止後の取扱：アークが廃止となった場合でも、一意性を保持するために一度登録された同じアークを他の組織に再移譲することはできない。ただし、廃止後に再度同じ組織が再移譲を受ける場合について定めはない。
* 譲渡：アークの権限委譲は、原則として譲渡（承継）することが認められている。ただし、既に登録されているOIDを含めてすべての権限を譲渡及び承継し、承継した組織等は、前組織が登録したOIDの一意性を毀損（削除や変更）することはできない。OIDを使用しているシステムやソフトウェアの譲渡による管理組織の変更や、組織の合併・譲渡などによる発生を想定している。RAによっては譲渡を制限していることがある。

### アークの公開情報例
* OID Repository - 利用者からの情報提供又は公表されている情報の収集により判明しているツリー情報の公開。このサイトへの登録はX.660文書内で推奨されている。
* IANA PRIVATE ENTERPRISE NUMBERS - IANAが管理するPENの移譲先リスト
* Structure of Management Information (SMI) Numbers (MIB Module Registrations) - IANAがRFCに基づき管理しているツリーの情報

## 脚注

## 参考文献

* ITU X.660 Information technology - Procedures for the operation of object identifier registration authorities: General procedures and top arcs of the international object identifier tree
* ITU X.680 Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation
* IANA Private Enterprise Numbers
* オブジェクト識別子構成要素値の指定
* Object Identifiers and their Registration authorities (OID) Flyer

## 外部リンク
* https://oidref.com/
* Object Identifier Repository
* Harald Tveit Alvestrand's Object Identifier Registry
* IANA Private Enterprise Numbers
* HL7 OID registry
* Obtaining an Object Identifier