假设我的信任商店中有以下信任链:
ROOT_CERT
|
|---INTERMEDIATE_CERT_1
|
|---INTERMEDIATE_CERT_2我知道由INTERMEDIATE_CERT_2签名的任何证书都是可信的--但以下声明也是正确的:
( a) ROOT_CERT直接签署的证书是否可信?
任何由INTERMEDIATE_CERT_1直接签署的证书都是可信的?
发布于 2019-05-23 14:47:22
对两个都是。
通常,您将只有信任存储中的根,提供叶证书的实体也将提供必要的中间证书,验证器将构建将叶子链接到受信任的根的链(如果只有一个根是可信的,则为“受信任的根”)。
当然,证书需要有正确的密钥使用约束等。例如,仅用于签署OCSP响应的证书不能颁发证书,等等。
发布于 2019-05-23 20:29:43
简单地说,两者都是。
下面是一个非常简单的解释。更多细节链接在下面。
当CA签署证书时,他们不仅签署一个网站的公钥,例如,实际上还有很多元数据。例如,此元数据包括证书何时到期或何时到期。在我们的示例中,这是以定义为X.509的数据格式保存的。
它还包括某些“约束”,即对证书证书所能做的事情的限制。维基百科的文章列出了一个概述,但对于我们的情况来说,重要的是:它还说明了证书是否可以签署其他的“(子)证书”,从而“证明”它们是否。
根CA和中间CA/certs都有此设置。因此,他们可以签署其他证书。
然后浏览器所做的就是接受网站交付的证书(例如,对于https://example.com )。并尝试构建一个所谓的证书链,即“链”,直到它到达根证书为止。您已经画好了,但是您错过了我刚才提到的最后一个证书,这通常被称为叶证书。(很可能是因为树数据结构
ROOT_CERT (isCA=yes)
|
|---INTERMEDIATE_CERT_1 (isCA=yes)
|
|---INTERMEDIATE_CERT_2 (isCA=yes)
|
|---LEAD_CERT valid for example.com (isCA=no)显然,叶证书不得获得签署其他证书的许可。
在实践中,当我们只有一个CA,然后是到那时直接签名的叶证书时,很多事情你都不会想到。例如,CA有时会再出售他们的销售基础设施,并允许其他公司用中间证书签署自己的证书。(但他们仍然需要遵守一些技术和法律方面的内容,例如AFAIK,他们只是提供了一个API)
或者,由于根证书的私钥通常保存在HSMs中,为了便于生产使用,它们使用中间CA,这样如果它们真的遇到麻烦,就可以切换掉它(它们的中间CA被破坏了)。
或者您甚至可以做一些疯狂的事情,比如交叉签名交叉签名,其中一个CA为另一个CA签名根,因此它在浏览器中得到更快的接受。让我们对是这样吗?进行加密--如果您想看一个“真实世界”的例子的话,也可以对它们的中间证书有一个有趣的、有详细文档的结构。
如果你想读更多,我真的建议你看看:
https://security.stackexchange.com/questions/210672
复制相似问题