OID
OID (англ. Object Identifier, идентификатор объекта) — это глобально уникальный идентификатор, используемый в информатике для обозначения информационного объекта (ср. URN). OID представляет собой узел в иерархически распределённом пространстве имён, который определён стандартом ASN.1. Каждый узел однозначно определяется последовательностью чисел, указывающих его положение, начиная от корня дерева. Регистрация новых узлов для собственного использования возможна через соответствующие полномочные органы для родительского узла. Правила присвоения и регистрации OID определяются стандартами ITU-T Рекомендация X.660, ISO/IEC 9834 и DIN 66334. Управление деревом OID и обеспечение уникальности идентификаторов основаны на процедуре делегирования ответственности за подчинённые узлы их «владельцу» (Registration Authority).
Нотация
Во всемирном дереве OID все рёбра от узла к дочерним узлам однозначно идентифицируются целыми числами — первичными значениями (primary integer values). Различные рёбра от одного узла получают разные первичные значения.
Каждое ребро также снабжено уникальной текстовой меткой (Unicode label). Кроме того, у ребра может быть одна или несколько вторичных меток (secondary identifiers). Для вторичных меток действуют ограничения на символы, определённые для обозначений в ASN.1 (разрешены буквы, цифры и дефис; см. Recommendation ITU-T X.680 | ISO/IEC 8824-1)[1]. Уникальность для вторичных меток не требуется.
Каждый объект сопоставляется ровно одному узлу (обычно это лист дерева). Для такого объекта ASN.1 Object Identifier в узком смысле определяется как последовательность номеров рёбер на пути от корня к соответствующему узлу, например:
{1 3 6 1 4 1} — в ASN.1-нотации (в примере без NameForm-метки),
1.3.6.1.4.1 — в точечной нотации,
urn:oid:1.3.6.1.4.1 — в URN-нотации[2],
/1/3/6/1/4/1 — в нотации OID-IRI (в этом примере без NonInteger-Unicode-Label).
Для повышения читаемости значение OID ASN.1 можно указывать, используя связанные вторичные метки:
{iso(1) identified-organisation(3) dod(6) internet(1) private(4) enterprise(1)} — в ASN.1-нотации.
OID-IRI (OID internationalized resource identifier) строится соединением Unicode-меток через косую черту «/»: «/ISO/Identified-Organization/6/1/4/1» — по нотации OID-IRI.
За счёт дополнительных, определённых по меткам рёбер, исходящих непосредственно из корня («long arcs»), для OID-IRI возможно появление более короткой эквивалентной формы (аналогично символическим ссылкам в файловых системах)[3].
Корень
Краевые рёбра, исходящие из корня дерева OID, определены следующим образом:
0: ITU-T 1: ISO 2: joint-iso-itu-t
Расширение корня за счёт других организаций стандартизации технически невозможно, поскольку в бинарной кодировке OID (например, BER/CER/DER для ASN.1) ради компрессии не предусмотрено резервирование пространства для новых значений. По этой же причине диапазон чисел уровня 2 ограничен 0...39[4][5].
Примеры использования
- В информационной безопасности OID применяются, например, для однозначного обозначения типов объектов в сертификатах X.509.
- В службах каталогов X.500 для уникальной идентификации атрибутов, их типов и объектов.
- В схемах LDAP каждая объектная категория и тип атрибута обладает собственной OID.
- В сетевых технологиях, говоря о OID в контексте SNMP, имеют в виду объект из базы управления (MIB).
- OID являются неотъемлемой частью стандарта HL7 для обмена данными между организациями здравоохранения и их информационными системами.
Получение OID
Существует множество способов получить OID, как платных, так и бесплатных. Несколько примеров:
- Бесплатная регистрация OID доступна у IANA, для префикса (узла) «1.3.6.1.4.1», соответствующего ASN.1-нотации {iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1)}.
- В области «2.25» (ASN.1-нотация {joint-iso-itu-t(2) uuid(25)}) можно использовать UUID в качестве компоненты OID без необходимости регистрации. При этом UUID кодируется как 128-битное десятичное число, например, UUID «e7630142-b057-4cba-a6f9-b99e0e6b483f» преобразуется в OID «2.25.307565729981353744786962807787273013311». Однако использование столь больших чисел может вызвать проблемы в старом ПО, поддерживающем числа только до 232−1 или 264−1[6].[7]
- Регистрация объектов для стандартизованного обмена медицинскими данными возможна у BfArM[8] (для Германии, ранее — DIMDI), Bundesministerium für Arbeit, Soziales, Gesundheit, Pflege und Konsumentenschutz[9] (для Австрии) или у Refdata (для Швейцарии).
Примечания
- ↑ Recommendation X.680 (англ.). itu.int. Дата обращения: 15 сентября 2019.
- ↑ A URN Namespace of Object Identifiers (англ.). IETF RFC 3061 (февраль 2001). Дата обращения: 5 июня 2024. Архивировано 23 апреля 2020 года.
- ↑ Recommendation ITU-T X.660 (англ.). ITU (июль 2011). Дата обращения: 5 июня 2024. Архивировано 17 апреля 2021 года.
- ↑ ASN.1 – Communication between heterogeneous systems (англ.). OSS Nokalva. Дата обращения: 5 июня 2024.
- ↑ ITU-T X.690: ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER) (англ.). ITU. Дата обращения: 5 июня 2024. Архивировано 6 февраля 2022 года.
- ↑ OID 2.25 (UUID-based OIDs) (англ.). OID Base. Дата обращения: 5 июня 2024.
- ↑ OID facts: UUID-based OIDs (англ.). Daniels ASN.1 Info. Дата обращения: 5 июня 2024.
- ↑ OID-Register des BfArM (нем.). BfArM. Дата обращения: 5 июня 2024. Архивировано 8 июня 2023 года.
- ↑ OID Portal Österreich (нем.). Gesundheit.gv.at. Дата обращения: 5 июня 2024. Архивировано 24 марта 2023 года.
Ссылки
- Швейцарский реестр eHealth-OID фонда Refdata
- OID Base — публичное хранилище OID
- OID Standards — подборка стандартов ITU-T по OID
- Часто задаваемые вопросы по OID
- ASN.1 & OID Project ITU-T
- Реестр Object Identifier Харальда Твайта Алвестранда
- IANA Private Enterprise Numbers
- Поиск OID для сферы здравоохранения Германии (BfArM)
- OID Портал Австрии для e-Health