网络安全 频道

SSL是否依然安全 探索Web身份验证未来

  【IT168 专稿】去年,Web身份验证协议受到了巨大的冲击。SSL和TLS协议成为了几起安全泄露事故的核心问题。对知名证书授权机构的攻击导致了一些互联网最大企业(包括谷歌和雅虎)安全体系遭到破坏,新的中间人攻击开始出现,Beast漏洞暴露了SSL和TLS最常用版本的弊端。

  从整体来看,似乎互联网的信任模式已经被打破。然而,很多安全专家并不准备放弃SSL,他们也没有打算重新开始构建新的协议,而是建议修复现有系统。很显然,我们需要改善我们在网络上的身份验证方式,问题是,如何改善?

  “让我们将整个互联网迁移到一个全新的协议中是不可能发生的,”Whisper Systems公司(移动安全软件开放商,去年11月被Twitter收购)创始人兼著名SSL研究人员Moxie Marlinspike表示,“眼下,想法很容易,但是如何实现确实最困难的部分。”

  我们是如何走到这一步

  Netscape在20世纪90年代创造了SSL,用以加密网上交易的机密信息,包括从登录凭证到财务交易。TLS 1.0出现在1999年(与当时的SSL版本基本相同),随后新版本也相继推出。虽然TLS是验证网上交易非常先进的协议,大家往往将其称之为SSL。

  Web身份验证取决于证书颁发机构(CA)的完整性。CA会核查网站的身份信息,并发出公钥基础设施证书,该证书随后将用于验证网站的真实性以及允许web浏览器和SSL服务器间加密信息的传输。

  当一个人想要查看HTTPS网站(使用SSL协议的安全网站)或者与之进行交互时,web浏览器会请求web服务器对其进行验证。服务器提供一份SSL证书副本,然后浏览器在同意交换加密数据(见下图)前会决定是否信任该证书和该网站。

  SSL做法的弊端在于并没有权威系统或者机构来批准、审查CA,并且没有关于证书该如何颁发的标准,完全取决于浏览器供应商来决定是否信任特定CA,而这些供应商并没有很谨慎地做出这些决定。

我们是如何走到这一步

  Web身份验证成为众矢之的

  Web身份验证从2011年开始“站不住脚”。几年以来,SSL劫持攻击(攻击者劫持用户的浏览会话,即使会话已经被加密)和中间人攻击(攻击者拦截和掌控SSL通信)取得了不小的成功。这些针对SSL安全网站的攻击就正是利用了CA信任模式中存在的弊端。

  当去年三月攻击者ComodoHacker浮出水面时,证书安全问题开始慢慢突显,ComodoHacker首先攻击了广泛使用的证书颁发机构Comodo,发出了一些欺诈性Comodo SSL证书。

  ComodoHacker的声名鹊起出现在去年九月对荷兰证书颁发机构DigiNotar的攻击,这次攻击中,攻击者发出了500多个流氓证书,基本让该公司无退路可走,毕竟是公司的信任基础(证书)出现了问题。针对Comodo的攻击比较小,并且该公司迅速作出了响应。而另一方面,DigiNotar在假证书被公开之前早就知道了这件事,但却没有做出任何回应。在泄露事故发生数周后,DigiNotar关门大吉。

  在对于高影响度泄露事故的处理方面,DigiNotar无疑给大家敲响了警钟。这也显示了互联网身份验证中信任是多么重要的因素。

  在DigiNotar倒闭后,SSL协议本身开始成为新的关注焦点。安全研究人员Juliano Rizzo和Thai Duong发布了针对SSL/TLS协议的浏览器劫持(Beast)漏洞,该漏洞可以允许攻击者使用JavaScript用中间人攻击来解密部分数据屏幕部分。

  赛门铁克身份验证团队高级工程总监Quentin Liu表示,所有这些事件让人们对于整个SSL信任模式是否已经从根本上被打破提出了疑问。

  Liu表示,最简短的回答就是“绝对没有”,但是CA世界的“西部狂野”气氛必须得到改善。有太多CA在凭自己喜好来做事,而没有监督或者保持操作一致。Liu表示。“如果时间回到十年前,可能只有少数几家CA,现在已经有几百家CA了。”

  信任模式基于三个组成部分:技术和协议的加密、用于识别证书持有者以及验证其合法性的身份验证过程,以及CA信任模式的安全操作和执行以确保只发布合法证书。

  从长远来看,SSL信任模式必须提供更好的安全和身份验证能力,并且能够扩展到全球范围,Liu称:“考虑到这一点,现有SSL信任模式仍然是符合所有这些标准的最适合的模式。”

  非常好的做法

  Liu 表示,CA真正需要做的是对操作和执行这些规则采取严格的标准。

  CA的数量众多并不是问题,真正的问题在于CA在其操作中并没有坚持非常好的做法。例如,他们应该充分验证证书持有者使用域名或地址的权力,以及并且表明是谁颁发的证书,但是并不是所有CA都这样做了。这些和其他非常好的做法在CA Browser Forum(由优异CA和浏览器供应商创建的自发组织,旨在实施证书标准化)的新基本要求中都有提到。浏览器供应商应该只信任坚持这些操作标准的CA。

  标准化能够改善现有web身份验证体系,但是一些安全专家认为,我们需要进一步修复这个系统,事实上需要一个更灵活的系统对网站和网络用户进行更好的控制。

  在现有系统下,“你可以为任何网站获取一个SSL证书,”英国安全公司Sophos公司高级安全顾问Chet Wisniewski表示,“未经我同意我需要信任的人的数量超出了我选择信任的人的数量,事实上,我甚至不知道应该信任谁。”

  Wisniewski表示,问题在于是CA和浏览器供应商来决定谁值得信任,而不是用户和证书持有者。

  如果某个CA被攻击了,“作为用户,我真的没什么办法‘不信任’他们,除非发生攻击事故,”思科公司杰出工程师兼纽约大学网络安全客座教授Keith O'Brien表示。如果一个人想要使用不允许Comodo授权网站的浏览器,可能带来很严重的操作性问题,并且无法查看SSL加密网页。浏览器供应商也很难撤销对不可信CA的批准。

  “不信任”一家CA的能力被Marlinspike称之为“信任敏捷度”,我们现在并没有多大的敏捷度,为了解决这个问题,Marlinspike开发了一种新的web身份验证模式,称之为Convergence。

  对于Convergence模式,会增加新的监督层,称为公证人。任何人都可以称为公证人,但是潜在的候选人是安全公司和其他对web身份验证有深刻理解的人。公证人将会创建一个网站SSL证书的历史,并对其一致性进行评级。

  Convergence模式的另一个大的变化是,不再是浏览器供应商来决定是否信任一个网站,而是用户来决定。用户将创建一份他信任的公证人名单,然后每次他访问SSL安全网站时 ,系统都会进行查询。如果公证人证实网站的证书的有效性,那么用户可以随意浏览。如果一个或者多个公证人将网站证书标记为无效,系统将会警告用户,他将需要选择是否继续进行交易。

  例如,如果用户想要访问Google.com,他的系统将会收到来自该网站的证书,然后将证书发送到该用户的公证人那里。如果公证人的历史记录表明Google.com的证书是由VeriSign签署了五年,而突然这次是被另一个不知名CA颁发,那么公证人就会让用户知道这个证书可能是无效的。

  如果你是正在进行中的中间人攻击的受害者,你的系统会将你正视图访问的流氓网站的证书发送给你的公证人,而证书很可能与公证人的历史记录不匹配,而你将收到警报信息。

  Marlinspike创建的Convergence是基于Perspective项目,这是卡内基梅隆大学创建的基于公证人的信任引擎研究项目,Marlinspike增加了让用户通过代理服务器匿名询问公证人以保持隐私性的功能。

  这种新方法要取得成功,必须有足够的公证人来给用户建议,并且浏览器供应商也需要给予支持。Convergence目前只有两个公证人,Marlinspike受到浏览器供应商方面的阻力。

  目前Convergence作为Firefox插件,Marlinspike希望其他浏览器供应商能够开始认真对待这个新信任模式,“到目前为止,浏览器制造商还没有正视这个问题。”

  版本控制

  网站、web开发人员和SSL生态系统的其他利益相关者在改善web身份验证方面也需要发挥一定作用。再次强调的是,SSL协议目前仍然被认为是健全的,只是部署SSL方面出现了问题。

  饱受争议的Firesheep扩展就是一个很好的例子。在2010年年底,独立应用程序开发人员Eric Butler发布了这个火狐扩展,该扩展可以让用户数据包嗅探读取来自混合内容模式的网站(网站部分网页受SSL保护)的未加密cookie,网站开发人员通常都会范混合内容的错误,例如使用SSL来加密登录身份信息,而没有确保用户只能连接到每个网页都使用HTTPS的网站。

  如果你有一个HTTPS连接,内容不应该来自于不安全的HTTP网页,安全公司SpiderLabs高级副总裁Nicholas Percoco表示,“你想要确保所有网页都是经过SSL保护和测试的。”

  另一个更大的问题是,开发了SSL和TLS协议标准的Internet Engineering Task Force团队多年来已经更新了身份验证协议,然后几乎没有人升级了Web服务器支持。

  例如,Beast攻击利用了年代久远的漏洞,SSL 3.0和TLS 1.0的漏洞。“攻击中的漏洞在2005年就出现了,自那以后,IETF工作组已经推出了1.1和1.2版本,已经修复了这个漏洞。但是却没有人升级版本,”Axway公司高级安全官Taher Elgamal称。

  很少网站采用了新的SSL版本,浏览器供应商也不认为需要更新他们的浏览器,“如果浏览器供应商部署了TSL1.1,甚至不说1.2,那么Beast攻击都不会得逞,”在20世纪90年代帮助开发了最初SSL的著名密码学家Elgamal表示,使用旧版本协议可能让企业处于威胁之中。

  不幸的是,安全行业总是这样子。即使几个月前浏览器供应商发布了抵御Beast攻击的补丁,很多web服务器仍然依赖于没有升级这些补丁的就技术。根据Qualys公司工程总监Ivan Ristic去年的调查发现,在调查的1200台网站服务器中,只有2191台支持TLS 1.1,只有211台服务器支持TLS1.2(见下表)。

  不过,这并没有阻碍安全和互联网工程设计进一步重新改善SSL。Elgamal希望看到密码套件(SSL技术加密内容的基础)被连接到协议的方式的改变。如果密码套件从协议本身分离出来,那么数百或数千个依赖于特定加密技术的证书在该技术被攻击时,就不需要重新发布。你只需要更换加密算法本身即可。

  天并没有塌下来

  虽然更灵活和更可信的web身份验证还面临着巨大的阻碍,但是我们仍然看到了一线希望。

天并没有塌下来

  “五年前,我们还在试图说服人们使用SSL,所以现在人们开始抱怨其实是好消息,因为这意味着人们已经开始使用它,”漏洞管理和合规供应商nCircle公司的首席技术官Tim 'TK' Keanini表示,“坏消息就是,任何有缺陷的SSL部署都带来巨大的风险,因为SSL和TLs负责处理各种安全数据。”

  顾问公司MAD Security公司合伙人Mike Murray表示,“天并没有塌下来,其他关键基础设施我们也面临过相同的问题,现在的确很痛苦,但是如果问题不是在SSL的话,问题很可能出现在任何我们依赖的重要技术上。”

  Elgamal同意他的说法,主流安全系统总是攻击的目标,“这个涉及电子商务,涉及到钱,不管我们采用怎样的协议或技术,都会时时遭到攻击,”他表示,“世界上不存在永远安全的技术。”

  Elgamal希望能够改善SSL,而不是重新建立新的协议。SSL拥有很长的历史,要是完全摒弃它,转而采用不太成熟的技术,那么只会受到更多攻击。然而,行业必须对SSL的部署方式进行改善,以提高web交易的安全性。

0
相关文章