Стандартный способ указания версии и схемы сертификата X509

У меня есть система, в которой сертификаты X509 могут иметь несколько «схем», где схема представляет собой набор точных OID, которые требуются/необязательны в теме сертификата. Приложение, которое проверяет эти сертификаты, должно знать, какая схема (и какая версия этой схемы) использовалась для данного сертификата.

Например, схема A требует CN, O, OU, а схема B требует CN, UID, O, C, ST.

Я ищу стандартный способ кодирования схемы (+ версия) в сертификате, чтобы принимающее приложение могло сказать из сертификата, как его анализировать. Решения:

  1. Захватите какой-нибудь совершенно несвязанный OID, чтобы запихнуть эту информацию в тему. Мне это не нравится, но это сработает как запасной вариант.
  2. Используйте расширение. Я думаю, что атрибуты предметного каталога могут быть уместными, но, похоже, в качестве полезной нагрузки все еще требуются пары имя/значение OID, так что еще раз, какие OID?
  3. Что-то совсем другое?

Опять же, я могу заставить это работать с # 1 или мог бы сделать аналогичный хак с # 2, но что мне действительно нужно, так это стандартный способ без взлома для достижения этой цели.


person G__    schedule 18.02.2012    source источник
comment
Вы можете определить свои пользовательские OID для обоих расширений и, возможно, также для Subject RDN. Извините, я не могу сказать вам в данный момент (может быть, позже), как правильно получить эти частные OID, но это не так уж сложно.   -  person Eugene Mayevski 'Callback    schedule 18.02.2012
comment
@EugeneMayevski'EldoSCorp Вот что я сделаю. Если вы хотите переместить свой комментарий в ответ, я приму его. Для любого с такой же проблемой вы можете сгенерировать и зарегистрировать OID на основе UUID в соответствии с дугой 2.25 здесь: itu.int/ITU-T/asn1/cgi-bin/uuid_generate   -  person G__    schedule 21.02.2012
comment
Спасибо. Вы можете опубликовать свой ответ со ссылкой и принять его - это будет полезнее для других людей, чем мой комментарий.   -  person Eugene Mayevski 'Callback    schedule 21.02.2012


Ответы (2)


Я предполагаю, что вы заботитесь о том, какая схема используется. Так что это означает, что у вас, вероятно, есть именно эти поля в DN - и что они также составляют дыхание именно того, что подписано CA (с обязательными остатками). Итак, если ваши схемы разные, это позволит вам их различать.

Другим вариантом может быть (суб)CA для каждой схемы; или просто используйте поле комментария netscape :).

Однако, по моему опыту, когда для организации важно таким образом рекламировать, распознавать/реконструировать и интерпретировать схему, это обычно означает, что у нее есть какая-то деловая цель. Таким образом, у него обычно есть полезное деловое имя. В этом случае; рассмотрите (дополнительный) O или OU (многовариантный, если необходимо) с этим.

person Dirk-Willem van Gulik    schedule 22.02.2012
comment
Отпечаток схемы мог бы предложить подсказки, но, конечно же, не является уникальным идентификатором. Например, одна схема может быть подмножеством другой, или одни и те же поля могут использоваться по-разному. - person G__; 23.02.2012

В итоге я использовал OID на основе UUID в дуге 2.25 для каждого из двух моих полей метаданных (схема и версия).

Сайт ниже предлагает генератор UUID для удобства и ссылку для регистрации (хотя регистрация не является строго обязательной):

http://www.itu.int/ITU-T/asn1/cgi-bin/uuid_generate

person G__    schedule 22.02.2012