为了成功的攻击,攻击者必须要么从受害者信任的 CA 中获取 SSL 证书,要么必须诱使受害者忽略其浏览器将显示的可怕警告。
现有的浏览器和操作系统都附带了上百个“受信任的 CA”,确实,如果有人被欺骗或受贿发行假证书,那么假证书可以用来构建假 HTTPS 服务器。攻击者仍然必须使用来自垃圾邮件的链接或中间人攻击来连接到他的服务器。
它已经发生了。新闻文章以此类事件为依据,预言了互联网的终结,数字诸神黄昏将使我们所有人陷入混乱;这就是新闻媒体的运作方式(坏消息就是好消息,启示录很难超越)。然而,值得注意的是:
- 它并不经常发生。几次(高度宣传)。
- 这个漏洞很快又被填补了(特别是,微软推送了一个明确的补丁来“禁用”有问题的证书,比如你无法回避的 CRL)。
这里的重点是,获得假证书只是整个过程中的一步,即使可以做到,但要小心翼翼地做到这一点要困难得多。当攻击者获得假证书后,他没有太多时间发现假发行。另一方面,成功的骗局(无论是中间人还是大量垃圾邮件)都需要准备、小心和一些时间。在某种程度上,破坏受信任的 CA 会危及整个操作,因为它会暴露给攻击者。
另一方面,用户的轻信率是一个被证明的常数;不乏它。使用它更容易,风险也更小(对于攻击者),并使用户忽略浏览器警告。因此,在实践中,现有的 CA 很少被破坏。
总结一下:是的,在当前的 CA 系统中,认证仅与最弱的受信任 CA 一样强大,而且这不是很安全——但是,在当今世界,这已经足够安全了。Web SSL 系统有效。SSL系统崩溃的那一天,更容易的攻击路径都被关闭,用户变得谨慎和理智,攻击者别无选择,只能获得假证书。这将是喜乐的原因,而不是哭泣的原因。
(但请记住,当前的 Web+SSL 之所以有效是因为经济:攻击者认为攻击 CA 不值得。如果您尝试在其他地方应用相同的模型,货币和商业运作方式不同,例如为了保护系统发射核导弹。安全分析始终取决于确切的威胁模型。)