所以我有点搞不懂X.509证书策略映射是如何工作的。下面描述了我的证书链:
root CA ---> intermediary CA ---> client cert根CA会有策略映射吗?如果是这样的话,怎么会有subjectDomainPolicy呢?如果subjectDomainPolicy应该匹配父证书issuerDomainPolicy,而所讨论的证书是层次结构中的顶级证书,那么subjectDomainPolicy如何匹配任何内容?如果它配不上任何东西,它应该是什么?
来自X.509 RFC:
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的策略应该是相同的,不是吗?
发布于 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。
以下特点使这一过程更加复杂:
因此,可悲的是,当前部署的证书策略不像预期的那样工作。信任存储仅包含根CA,不包含任何策略集(即,从这些根开始的路径接受所有策略,并且不需要显式策略-允许“策略树”为空)。
根CA本身不包含策略映射。它们不是真正的证书。根CA (在标准中称为信任锚)是对名称和相关公钥的先验知识。一个普遍的传统是将根CA编码为证书,通常是自签名的(因为证书中有一个非可选的“签名”字段)。证书格式对此非常方便。但是,证书可能包含许多对根CA没有意义的特性(特别是许多扩展);策略映射就是这样的特性。
https://security.stackexchange.com/questions/12583
复制相似问题