首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X.509证书策略映射问题

X.509证书策略映射问题
EN

Security用户
提问于 2012-03-10 20:45:22
回答 1查看 2.3K关注 0票数 5

所以我有点搞不懂X.509证书策略映射是如何工作的。下面描述了我的证书链:

代码语言:javascript
复制
root CA ---> intermediary CA ---> client cert

根CA会有策略映射吗?如果是这样的话,怎么会有subjectDomainPolicy呢?如果subjectDomainPolicy应该匹配父证书issuerDomainPolicy,而所讨论的证书是层次结构中的顶级证书,那么subjectDomainPolicy如何匹配任何内容?如果它配不上任何东西,它应该是什么?

来自X.509 RFC:

代码语言:javascript
复制
   In general, certificate policies that appear in the
   issuerDomainPolicy field of the policy mappings extension are not
   considered acceptable policies for inclusion in subsequent
   certificates in the certification path.

怎么可能呢?如果根CA,在上面的图表中,有一个issuerDomainPolicy,这就意味着中间CA的策略应该是相同的,不是吗?

EN

回答 1

Security用户

发布于 2012-12-04 00:38:31

证书策略背后的思想是,策略应用于完整的证书过程,从根到终端实体,这通过在链中的所有证书中包含策略OID来反映在证书中。政策是“垂直的”。验证器(验证证书链的人)应该在其信任存储中按根存储可接受策略的定义。用简单的话来描述这一点:典型的信任存储项应该类似于“我信任这个根CA (name+public密钥)来验证符合策略1.2.3.4的证书”。如果策略1.2.3.4没有出现在链中的所有证书中,验证器将拒绝该链。

然而,在X.509所支持的层次PKI中,通常存在横向隔离:控制CA和子CA的实体在不同的级别上运行,每个级别都有自己的需求和约定。因此,已经包含了一种处理基于级别的更改的机制,这就是证书映射。当链中某个CA证书中出现一个映射"1.2.3.4到1.5.6.7“时,它的意思是”在高层称为策略1.2.3.4,从这里向下称为1.5.6.7“。我们的验证器最初需要策略1.2.3.4,注意到他现在应该在随后的证书中查找的是1.5.6.7。

以下特点使这一过程更加复杂:

  • 您可以将一个OID映射到多个OID。
  • 有一个名为"anyPolicy“的特殊OID,它是一个通配符:它匹配所有策略。
  • 链中的每个证书都可以禁止anyPolicy,或者需要路径中某个点的显式策略。
  • 许多被广泛部署的CA完全错误,并且使用策略作为一种注释(特别是,它们给每个CA一个特定于CA的策略OID,CA包括在其证书中,没有任何映射)。

因此,可悲的是,当前部署的证书策略不像预期的那样工作。信任存储仅包含根CA,不包含任何策略集(即,从这些根开始的路径接受所有策略,并且不需要显式策略-允许“策略树”为空)。

根CA本身不包含策略映射。它们不是真正的证书。根CA (在标准中称为信任锚)是对名称和相关公钥的先验知识。一个普遍的传统是将根CA编码为证书,通常是自签名的(因为证书中有一个非可选的“签名”字段)。证书格式对此非常方便。但是,证书可能包含许多对根CA没有意义的特性(特别是许多扩展);策略映射就是这样的特性。

票数 8
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/12583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档