← All posts tagged ASN1

OCTAGRAM

В сертификатах, подписях и запросах на сертификат применяются так называемые OID, идентификаторы объектов. Например, они бывают такие:

Проверка подлинности сервера: 1.3.6.1.5.5.7.3.1
Подписание проектов сводных справок о правах на объекты жилищного фонда: 1.2.643.3.3.0.0.1.53
TIGER: 1.3.6.1.4.1.11591.12.2
HMAC-TIGER 1.3.6.1.5.5.8.1.3
Индивидуальные предприниматели РФ: 1.2.643.10
codeSigning: 1.3.6.1.5.5.7.3.3
msCodeCom, Microsoft Commercial Code Signing (AuthentiCode): 1.3.6.1.4.1.311.2.1.22
sha512: 2.16.840.1.101.3.4.2.3
sha1WithRSAEncryption: 1.2.840.113549.1.1.5
rsaEncryption: 1.2.840.113549.1.1.1
Свойство CN (Common name), общепринятое имя: 2.5.4.3
Intel Corporation: 1.3.6.1.4.1.311.2.1.22
ed25519: 1.3.6.1.4.1.11591.15.1

Они образуют древовидную структуру, в которой есть ISO, ITU, страны, компании. Каждый следующий отвечает за своё поддерево, в котором может делать что угодно. Всеохватывающего реестра нет, но для многих верхних ветвей есть разделяемое большинством соглашение о принадлежности. Каждый признанный хозяин поддерева ведёт реестры так, как хочет. Вот тут попытка создать общий реестр, но всё это под честное слово. А вот Россия, например, ведёт реестры, и тут можно искать индивидуальных предпринимателей. Какие-то технические OID можно встретить в RFC.

Так, например, OID HMAC-TIGER расписывается как: {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) ipsec(8) isakmpOakley(1) hmacTIGER(3)}. То есть, у него есть OID только потому что он был применён в IPSEC. А чистый TIGER был когда-то реализован в GnuPG, поэтому он оказался в GNU. У TTH никто необходимостью опубликовать OID не озаботился, и как результат, если сейчас захотеть подписать по X.509 файлы и почту самым популярным в p2p хешем, сделать это не получится, надо сначала договориться о смыслах. А это для третьих сторон гораздо сложнее, чем если бы получением OID озаботились авторы TTH.

Кто владеет OID, тот создаёт смыслы.

Теперь про то, как получить. Получить поддерево можно у любого хозяина, который уже зарегистрирован. Нашёл тут разные варианты.
1. Например, интересно, что есть поддерево для UUID, и если сгенерить или использовать существующий, OID из такого UUID будет тоже уникален, но ни в каком реестре это не будет отражено.
2. Можно бесплатно зарегистрироваться здесь и оказаться по соседству с Intel и GNU внутри ISO, МинОбороны США и Интернета :) Например, TTH и ed25519 — в поддереве GNU.
3. Можно зарегистрироваться в России, например, тут после получения ЭЦП — соответственно, в поддереве России, а не в какой-нибудь минобороне сша.
4. Поискать по вашим обстоятельствам, кто ещё раздаёт поддеревья. GNU, ЮНЕСКО там всякие и т.п.

И, кстати, я прозрел на тему того, как программно идентифицировать сущности, чтоб и конкуренции за козырные имена (привет, sun.*) избежать, и чтоб не до предела запутано, как в COM, было. COM'овские GUID замечательно проецируются в подветвь OID, а в других подветвях в каждой стране (в смысле, любой может) есть несколько способов получить себе свой уникальный и хозяйничать в поддеревьях.