我问这个问题是因为我认为当我们尝试访问某些启用https的网站(例如gmail,facebook,我们的网上银行)时,我们不会下载或安装客户端证书。
那么我们如何确保从我们的机器发送的信息被正确加密?
感谢。
答案 0 :(得分:1)
您列出的所有示例都没有使用客户端证书,除了您的网上银行。
客户端证书是您作为客户端发送到服务器以进行身份验证的内容。这也称为“双向TLS”或“相互TLS”认证 VPN服务是利用双向TLS的一个特别常见的例子。在Web上,它通常仅用于服务器到服务器的身份验证,因为设置和维护非常难以供实际人员使用(但有些银行确实提供了它作为选项)。
您实际想到的是,您如何知道互联网上的网站的服务器证书是有效的,而无需手动导入它们。答案很简单 - 你已经预装好了......有点。
当然,您实际上并没有为Web上每个启用TLS的网站提供证书(这是不可能的),但是Web浏览器附带了一组根CA证书,可以验证它们。
它的工作方式称为“信任链”,它是这样的:
从技术上讲,中间CA是可选的,叶证书可以由根CA直接签名;反之亦然 - 可以有多个中间体。
当您访问例如facebook.com
,它将提供与用于签署它的中间体捆绑在一起的叶子证书;您的浏览器验证服务的叶子是否由服务的中间证书签名,然后(因为它已预先安装了所有根证书),它还验证中间件是否由其中一个根CA签名,完成了信任链验证
这是一个复杂而脆弱的结构,但它以某种方式起作用,它是我们今天最好的。