Кратко

  • RFC 3001 представил объектные идентификаторы ASN.1 в форме urn:oid, унаследовав их уникальность от существующего дерева распределения OID.
  • Через три месяца RFC 3061 заменил первый документ, уточнил регистрирующий орган и каноническую запись, но по-прежнему не определил ни разрешение, ни проверку.

Строка urn:oid:1.2.3 выглядит самодостаточной. Она компактна, упорядочена и годится для обмена между системами. Однако главные факты находятся вне неё: кто выделил последний узел, действительно ли выделение, что именно обозначено и у какого сервиса есть полномочия это подтвердить.

Информационный документ RFC 3001, опубликованный Майклом Милингом в ноябре 2000 года, не создавал object identifiers с нуля. В ASN.1 уже действовало иерархическое дерево OID. Первая дуга 0 относилась к ITU-T, 1 — к ISO, 2 — к совместному распределению ISO и ITU-T. Получатель узла мог назначать значения ниже него. Новый URN не передавал эти полномочия; он давал числовому пути переносимую форму URI.

Такой подход следовал RFC 2141, где URN задумывались как постоянные идентификаторы ресурсов, не зависящие от местоположения. Namespace identifier определял правила чтения namespace-specific string. В urn:oid часть oid выбирала пространство правил, а десятичные компоненты сохраняли выданный OID. Ни одна часть не была сетевым адресом.

RFC 3001 выводил уникальность и постоянство из правил назначения OID. Лексическая эквивалентность означала точное совпадение строк, область действия объявлялась глобальной. Но в разделах о разрешении и механизме проверки было указано, что механизм не определён. Приложения могли передавать и сопоставлять имя, не имея стандартного сервиса для поиска объекта или стандартной процедуры подтверждения корректности выдачи.

В опубликованном тексте остался виден и институциональный шов. В поле «Declared registrant» автор просил помощи, признавался, что ему некомфортно быть «registrant», и спрашивал, кого указать. Следом был приведён секретариат ISO/IEC JTC1 SC6. Эта реплика не доказывает конфликт, кризис или эксплуатационную проблему. Она позволяет сделать более узкий вывод: формальная запись идентификатора могла быть готова к публикации раньше, чем публичное описание ответственного института избавилось от редакционного вопроса.

В феврале 2001 года RFC 3061 объявил RFC 3001 устаревшим. Вопрос исчез, а выбор ISO/IEC JTC1 SC6 был обоснован: именно эта организация могла толковать и изменять стандарт ASN.1, поэтому она являлась надлежащим регистрирующим органом. Синтаксис тоже стал строже. Десятичные части разделялись точками, ведущие нули запрещались, а человекочитаемые описания узлов OID нельзя было включать в специальную часть имени. Между системами должен был ходить канонический числовой путь, а не меняющийся набор подписей.

Единая запись устранила один вид неопределённости, но не превратилась в свидетельство права. Точное равенство отвечает, совпадают ли две строки. Оно не отвечает, законно ли выдан номер, контролирует ли заявитель узел сейчас и существует ли обозначенный объект. Префикс показывает положение в дереве полномочий, но не является подписанной квитанцией от корневого органа.

RFC 3061 также не добавил всемирный resolver. Пространство осталось глобальным, а механизмы разрешения и проверки — неопределёнными. Это совместимые свойства. Глобальный охват говорит о сфере, в которой дисциплина назначения должна исключать коллизии. Он не требует от всех потребителей одной базы данных или одного оператора.

Позднейший RFC 8141 в 2017 году дал удобную формулировку: строка может соответствовать общему синтаксису URN, но не быть действительно назначенной по правилам конкретного пространства. Нельзя приписывать эту лексику авторам 2000 года. Тем не менее она точно подсвечивает прежнюю границу доказательств: грамматика подтверждает форму, а не институциональный факт.

Поэтому история urn:oid — не рассказ о недостроенном глобальном поисковике. Это пример намеренно узкого слоя. Органы OID назначали числа, пространство URN делало их переносимыми, приложения получали каноническое сравнение. Если каталог, сертификат, реестр или resolver обещал больше, он должен был отдельно показать происхождение данных, пределы власти и фактическую работу.

Такое разделение не заморозило будущие сервисы вокруг единственного центра. Но оно требует аккуратности от потребителя: официальный вид строки не должен получать доказательную силу, которой спецификация ему не дала. Глобальное имя согласует ссылку. Доверие создаёт сохранённая вместе с ним цепочка полномочий.

Sources