在SSL信任层次结构中,用于签署中间证书的内容以及它与根证书有什么关系?

在SSL信任层次结构中,用于签署中间证书的内容以及它与根证书有什么关系?

问题描述:

我正在完成SSL上的任务,我感觉我理解证书如何与非对称和对称加密一起使用的基础知识。但是我很难理解信任层次结构如何工作的一些细节。在SSL信任层次结构中,用于签署中间证书的内容以及它与根证书有什么关系?

具体而言,什么用于签署的中间证书?我所看过的所有指南都指出,CA根证书用于签署中间证书。但是,“签名”究竟意味着什么呢?换句话说,服务器如何证明其中间证书是由CA根证书进行身份验证的?

我的猜测是,生成的中间签名时证书的,但我不知道这是否是准确的根证书的公钥或签名中使用。

我会很感激的任何信息,以提高我的理解。

如果恰好有一个中间,这通常是但并非总是如此,中间证书由根中完全相同的方式签署的终端实体证书(对于SSL/TLS大多一个服务器证书)是有符号的由中间人。在这两种情况下,这都是简写; 签名实际上是使用非对称密钥对的私钥完成的,并且证书包含用于验证使用私钥生成签名的相同密钥对的公钥。由于私钥是私密的,我们所有使用CA的人都只能看到他们的公钥,所以我们专注于此。因此:

  • 服务器证书使用属于中间CA的私钥进行签名;中间证书包含匹配的公钥。作为验证服务器证书的一部分,relier(例如浏览器)使用服务器证书中的Isssuer名称查找或确认中间证书,并使用中间证书中的公钥验证服务器证书上的签名;这确保服务器证书实际上由中间CA发布并且没有被篡改。

    根据SSL/TLS标准,服务器应始终根据握手中的服务器证书发送中间证书(或证书,按顺序),但如果未这样做,某些客户端可能会使用证书中的AIA或其他启发式方法来获得证书,或者可能已经缓存或甚至配置了它。

  • 中间证书使用属于根CA私钥签署;根证书包含匹配的公钥。作为验证中间证书的一部分,relier使用中间证书中的颁发者名称找到根证书,并使用根证书中的公钥来验证中间证书上的签名;这确保了中间证书实际上是由根CA颁发的,并没有被篡改。

    根证书通常必须(就)是在relier的地方“信任库”和服务器不需要发送;通常,信任商店由浏览器开发人员(Firefox)或OS /平台开发人员(IE/Edge,Chrome,Safari)提供。

注意这两个语句用的relier如何找到父证书的(显着)异常之间的紧密平行。另请注意,验证SSL/TLS连接的服务器证书链不仅仅是验证签名,尽管验证签名是一个关键部分,如果没有验证,其他验证标准将无法得到保证。

一个中级CA和中级证书通常会被大量(数千到数百万)的服务器证书和服务器使用。服务器不负责'证明'有关中间证书的任何事情,只将它传递给客户端,验证整个链。

跨栈也见 https://security.stackexchange.com/questions/56389/ssl-certificate-framework-101-how-does-the-browser-actually-verify-the-validity 它有一个很好的关系图。

+0

非常有帮助和简洁。我现在终于明白了。谢谢 :) –