0

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

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

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

  1. 劫持一些完全不相关的 OID 将这些信息填充到主题中。我不喜欢这个,但它可以作为一个hack-y后备。
  2. 使用扩展。我认为主题目录属性看起来可能是合适的,但它似乎仍然需要 OID 名称/值对作为其有效负载,那么又是哪些 OID?
  3. 完全不同的东西?

同样,我可以使用 #1 来完成这项工作,或者可以使用 #2 进行类似的 hack,但我真正想要的是一种标准的非 hack 方式来实现这个目标。

4

2 回答 2

0

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

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

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

于 2012-02-22T14:53:58.187 回答
0

我最终在 2.25 弧下为我的两个元数据字段(schemaversion)中的每一个使用了基于 UUID 的 OID。

下面的站点提供了一个 UUID 生成器作为方便和一个注册链接(虽然注册不是严格要求):

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

于 2012-02-22T20:33:18.470 回答