这只是一个关于自签名证书和CA证书之间的争论的一般性问题...
我理解CA证书的好处,因为在大多数浏览器中生成了避免的警告,但是CA证书如何提高实际的安全性呢?我经常听说最大的威胁是中间人攻击,虽然我理解使用自签名证书的这种威胁,但我不明白CA证书如何防止这种威胁。我知道CA执行自己的安全算法,不能在自签名证书上使用相同的算法吗?
我猜我只是对围绕着CA证书需求的大企业感到有点恼火,但似乎找不到关于它们的任何不同之处,除了它们执行的这些所谓的额外安全检查。从安全的角度来看,CA是否可以提供自签名证书不能提供的功能?
发布于 2012-02-20 14:23:35
欺骗。如果对方伪造了自签名证书,您将无法对此进行检查。为了检查您是否收到了有效的证书,而不是伪造的证书,您需要第三方的检查,这是不易被欺骗的。这是通过在客户端软件中携带根CA证书(和一些中间证书)列表(Windows为您提供此类证书,主要浏览器也会这样做),并使用这些CA证书验证您从服务器收到的证书来实现的。对于自签名证书,这种验证是不可能的。
当然,您可以在客户端应用程序中携带自签名证书(这是一些开发人员所做的,特别是对于内部应用程序),但这不适用于浏览器。
发布于 2012-02-20 05:46:56
区别不在于算法,而在于人们是否信任证书颁发机构。
证书的作用是验证您正在与您想要与之建立连接的人建立连接。
如果我对你说“我是正确的服务器,相信我”,你可以选择不相信我(毕竟,你不了解我)。
如果我对您说“我就是正确的服务器,我有证书可以证明”,您可以说“好吧,是谁给了您这个证书?”如果我的回答是“来自街角的乔”,你仍然可以选择不相信我。
但是,如果我说“我有一个证书,您可以向您信任的第三方确认它”,您可能会认为这是一个很好的身份证明。
您如何确认它是标准的全部内容(例如,如RFC 5280中所描述的)。但这只是技术问题。对于源自VeriSign的证书和您自己生成的证书,可以使用完全相同的算法。
真正的问题是关于信任:你信任给你“身份证明”的人吗?我们足够信任VeriSign,让他们提供的任何身份证明都能被每个浏览器接受。我们应该信任生成自己的自签名证书的个人吗?在某些情况下,我们可能会这样做(在这种情况下,您可以在浏览器中手动安装他们的证书),但不是作为一般规则。
https://stackoverflow.com/questions/9353340
复制相似问题