标准版本和"架构的标准方式"用于X509证书

时间:2012-02-18 17:21:05

标签: certificate x509 asn.1

我有一个系统,其中X509证书可以有许多“模式”,其中模式是证书主题中必需/可选的确切OID的集合。验证这些证书的应用程序需要知道给定证书使用了什么模式(以及该模式的哪个版本)。

例如,模式A需要CN,O,OU,模式B需要CN,UID,O,C,ST。

我正在寻找一种标准方法来对证书中的模式(+版本)进行编码,以便接收应用程序可以从证书中分辨出如何解析它。解决方案:

  1. 劫持一些完全不相关的OID,将这些信息填入主题。我不喜欢这样,但它可以作为一个hack-y后备。
  2. 利用扩展程序。我认为主题目录属性看起来可能是合适的,但它似乎仍然需要OID名称/值对作为其有效负载,那么再次出现哪些OID?
  3. 还有其他什么吗?
  4. 同样,我可以使用#1进行此工作,或者可以使用#2进行类似的黑客攻击,但我真正想要的是实现此目标的标准非黑客方式。

2 个答案:

答案 0 :(得分:0)

我假设你会关心使用什么模式。这意味着你可能在DN中确切地拥有这些字段 - 并且它们也构成了CA签署的确切内容(带有强制性杂项)。因此,假设您的架构不同 - 这可以让您区分它们。

另一种选择是每个方案的(子)CA;或者只是使用netscape评论字段:)。

根据我的经验 - 当组织因此宣传,识别/重建和解释该计划时,这通常意味着它具有一些商业目的。所以它通常有一个有用的商业名称。在这种情况下;考虑一个(额外的)O或OU(如果需要,可以使用多种变体)。

答案 1 :(得分:0)

我最终在我的两个元数据字段( schema version )中使用2.25弧下的基于UUID的OID。

以下网站提供UUID生成器作为便利和注册链接(虽然不严格要求注册):

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