2

这只是一个关于自签名证书和 CA 证书之间争论的一般问题......

由于避免了在大多数浏览器中生成的警告,我了解 CA 证书的好处,但 CA 证书如何有益于实际安全?我通常听说最大的威胁是中间人攻击,虽然我理解使用自签名证书的这种威胁,但我不明白 CA 证书如何防止这种情况。我知道 CA 执行自己的安全算法不能在自签名证书上使用相同的算法吗?

我想我只是对围绕 CA 证书需求的大企业有点恼火,但除了他们执行的这些所谓的额外安全检查之外,似乎找不到任何不同之处。从安全的角度来看,CA 是否可以提供自签名证书无法提供的任何东西?

4

2 回答 2

5

欺骗。如果对方伪造了自签名证书,你就没有办法检查这一点。为了检查您是否收到了有效的证书而不是伪造的证书,您需要第三方检查,不易被欺骗。这是通过在您的客户端软件中携带根 CA 证书(和一些中间证书)列表来完成的(Windows 为您提供此类证书,主要浏览器也这样做)并使用这些 CA 证书验证您从服务器收到的证书. 使用自签名证书无法进行此类验证。

当然,您可以在客户端应用程序中携带自签名证书(这是一些开发人员所做的,尤其是对于内部应用程序),但这不适用于浏览器。

于 2012-02-20T06:23:35.180 回答
4

区别不在于算法,而在于人们是否信任证书颁发机构。

证书的目的是验证您是否正在与您打算与之建立连接的任何人建立连接。

如果我对你说“我是正确的服务器,相信我”,你可能会选择不相信我(毕竟,你不认识我)。

如果我对您说“我是正确的服务器,并且我有证书可以证明这一点”,您可以说“好的,谁给了您这个证书?” 如果我的回答是“拐角处的乔”,你可能仍然选择不相信我。

但如果我说“我有证书,你可以和你信任的第三方确认”,你可能会认为这是一个很好的身份证明。

您如何确认它是标准的全部内容(例如,如RFC 5280中所述)。但这只是技术问题。您可以对源自 VeriSign 的证书和您自己生成的证书使用完全相同的算法。

真正的问题是关于信任:你相信给你“身份证明”的人吗?我们对 VeriSign 的信任足以让每个浏览器都接受来自他们的任何身份证明。我们应该信任生成自己的自签名证书的个人吗?在某些情况下我们可能会这样做(在这种情况下,您可以在浏览器中手动安装他们的证书),但不是一般规则。

于 2012-02-19T21:46:56.073 回答