原文发表时间:2011.9.21
本博文仅仅是上述原文的翻译,仅供研究参考,本人不对准确性作任何保证,侵立删,如有转载,需自行承担所有责任。如有翻译不准确的地方,欢迎指教。
更新:2015.1。SSL v3应该被关闭。RC4现在不再安全,因此不应再使用,即使是为了对抗BEAST攻击。LuxSci建议使用TLS v1.1+和NIST推荐算法,BEAST攻击现在也不再是一个很大的威胁了(即使在使用TLS v1.0的情况下)。
更新:2012.4。openssl v1.0.1已经发布,其支持TLS v1.1和v1.2,这会帮助缓解这种攻击。
—-
根据一种最近发布的攻击机制(称为BEAST),SSL v3和TLS v1面临一种严重的威胁。这听起来动摇了安全的根基,带来了一定程度的恐慌。当人们看到这个问题时,会浮现出如下几个问题:
- 实际的影响是什么?
- 它有多严重?
- 我该如何保护自己?
- BEAST攻击是如何工作的?
在研究了这个问题后,我们对所发现的问题进行了概要,撰写了本文来回答这几个问题。
BEAST的实际影响是什么?
该问题可能影响浏览安全站点的人们,在某种条件下会导致窃听者能获取到你站点账户的访问权。它不会影响:
- 使用SSL/TLS的其他安全服务,例如emal使用的IMAP, POP或SMTP。
- 使用SSL安全的站点连接来发送数据(例如:使用secure web forms发送数据)(?不大懂)
它会影响:
- 你需要在安全站点上登录使用的帐号,例如PayPal, LuxSci, Gmail, Bank of America, Facebook等。
我浏览网站的什么时候会被攻击?
如果你使用的网络中,有恶意人员可以查看网络中所有的正常流量,并且可以截获并修改流量,那么他可能会危害你的安全网站浏览。
注意这并不包括和你使用同一个wifi或ISP的恶意人员,他们只能窃听到你的非安全连接,SSL对抗他们还是很有效的。但会包括如下场景:
- 本地网络管理员是个坏家伙
- 攻击者攻破了你的本地网络,获取到了服务器的控制权
- 你在一个对出入网络流量进行监控的国家(呵呵)
没有在那些国家并且使用可信网络的人们大可不必太过担心。这里的“可信”指的是:
- 你的本地ISP(例如:Comcast,AOL,Verizon等,类似国内的联通、电信)基本是可信的。我们对他们是深度信任的--如果他们想,他们可以有更为简单的方法来干坏事(例如通过将木马或病毒植入你的系统)。
- 你所在学校或公司的网络管理团队基本是可信的(这些家伙可以知道你在网络中做过的任何事情)。和ISP一样,他们如果想干坏事,有比TLS攻击更为简单且效果更好的方式。
- 政.府--你相信他们不会强迫ISP窃听你吗?即使他们会,大部分人也不用太过担心。
这种攻击发生在恶意人员想要窃听你的通信或在不知道先验知识的情况下访问你的帐号,他们可能(a)已经知道了你访问web站点的频率,或者(b)已经访问了足够多人的web流量,并且他们只想攻击非常流行的网站账户,例如Gmail,paypal或某些银行。
如果你对此比较担心,这是否是一个潜在的威胁取决于你所处的位置和你做了什么。
什么情况下我可能会被攻击成功?
简答来说,如果针对你发起了攻击,如果你做了如下的事情,可能会被攻击成功:
- 你访问了任意非安全站点(http的而非https的),并且你的浏览器启用了JavaScript。
- 你使用相同的浏览器访问因特网超过10分钟。
- 然后你访问安全站点,而攻击者正想冒充你访问该站点。
注意,攻击者必须提前约10分钟猜测或者知道你将会访问那个安全站点。10分钟的间隔会随着攻击所使用的计算能力的增加而减少。
举个例子,我们假设攻击者想要窃听每个人的gmail帐号访问以便获取用户名、口令和其他敏感信息。
- 你访问一个不安全的站点,例如http://google.com
- 攻击者收集和处理访问https://gmail.com所需要的数据
- 你继续上网一段时间
- 你访问https://gmail.com以检查你的email
- 攻击者可以使用已经收集的信息来访问你的Gmail帐号,就像他已经以你的身份登录一样。
我如何保护自己?
如果你对这种攻击比较在意,你可以通过如下方式来保护自己:
- 关闭你的浏览器(所有打开的窗口)
- 打开你的浏览器,直接访问安全的站点,而不要在之前访问不安全的站点
这种方式之所以凑效是因为这种攻击需要相同的浏览器session使用一段时间。关闭并重新打开浏览器可以使攻击者的准备工作失效。直接访问安全站点避免了攻击者的准备工作。
你可以通过很简单的方法达到这个目标:
- 将你的主页设为一个安全页面,例如https://luxsci.com。然后你可以使用浏览器收藏夹来访问你想要去的安全站点。
- 将你经常访问的安全站点书签放到桌面上,当你点击它是可以直接打开你想去的安全站点。
- 在你的浏览器上禁用JavaScript,或者旨在可信的安全站点中启用。
- 使用VPN。如果你将电脑连接到可信的网络(例如工作环境),这将会通过VPN发送所有安全的和不安全的web连接,从而避开了网络内的恶意人员查看和干扰你浏览的任何内容。
另外,如果攻击者不知道你的浏览习惯,并且你访问的站点不是非常流行,他们很难危害到你。例如:诸如gmail.com,facebook,bankofamerica.com等网站的用户量巨大,因此也容易成为攻击目标,比较小的网站如luxsci.com则一般不会。然而,如果攻击者知道你访问习惯,就会满盘皆输了。
BEAST攻击是如何工作的?
- 当你访问不安全的站点,攻击者修改了返回的页面或返回的JavaScript,在其中添加了恶意的JavaScript。
- 恶意的JavaScript在你的浏览器中自动执行(如果你启用了JavaScript的话)。
- JavaScript打开一个安全的连接,例如到https://gmail.com
- 攻击者将你的浏览器与https://gmail.com之间的流量与已知的通过JavaScript发送的流量进行对比,进行几分钟的计算,攻击者可以可以得到你安全会话的“初始向量”。
- 这个信息允许攻击者访问在同一个浏览器会话中发往相同站点的后续安全认证cookies。
- 这些cookies可以被攻击者“重放”,这样他们就拥有了你账户的全部访问权,就像以你的身份登录了一样。他们可以查看任何敏感信息,并且可以冒充你执行操作。
需要注意如下几点:
- 攻击者需要在你的浏览器执行JavaScript。
- 需要有一个不安全的web连接,以便攻击者能修改返回的内容。
- 攻击者需要猜测你即将访问的安全站点。
- 攻击者需要花费时间来收集和分析数据。
- 你必须随之连接并登录相同的站点,在相同的浏览器会话中(没有关闭并重新打开浏览器或使用不同的浏览器)。
- 攻击者必须在你的会话仍然活跃的时候才能执行恶意行为(如果你主动退出,也会把攻击者一同退出,希望攻击者没有更改你的口令)。
另外:
- 该攻击影响SSL v3和TLS v1.0
- 该攻击不影响TLS v1.1和TLS v1.2
那么,我可以只使用 “TLS v1.1″ 或“TLS v1.2″吗?
答案是“某些情况下是的”。
- 只有IE和Opera支持TLS v1.1或更高的版本。所有其他的浏览器(chrome、firefox、safari和大多数手机浏览器)都不支持这些最新的安全协议(译者注:该文章写于2011年,现在各浏览器的最新版本基本都支持了)。另外,即使IE支持,默认也是禁用的。另外启用它们也可能会影响一些常规的安全站点,例如如果你启用后一些站点不再工作了(译者注:这种情况发生在你只启用了TLS1.2,但服务器最高支持到TLS1.0的情况下,如果客户端同时也启用了TLS1.0,则不会有问题)。
- 大部分web服务器还不支持TLS v1.1或TLS v1.2,所以即使你的浏览器支持,你要访问的安全站点可能也不支持,例如bankofamerica.com, luxsci.com, mail.google.com等都不支持(译者注:仍旧是老黄历)。根据Opera的统计,只有0.25%的web服务器支持TLS v1.1或更新的版本。
为什么大多数服务器不支持TLS v1.1+?
- 标准的产品级SSL软件库,例如openssl,尚不支持TLS v1.1,因此大多数web站点无法启用。虽然正在开发中的openssl支持,但由于其性能、可靠性和bug等方面的原因,还无法包括在标准的操作系统分发库中。(译者注:仍旧是老黄历)
- 至今还没有对TLS v1.1和v1.2的强烈需求。
LuxSci正在与各个厂商(例如RedHat)联系,看是否可以将TLS v1.1的支持加入到现有的分发库中,以便使用者可以便利的升级。
其他可能的选择,包括使用其他的SSL系统或使用openssl尚未良好验证的最新版,都不是一个好的办法,因为这些可能需要多次的升级、大量的测试,升级时可能甚至可能需要停机。使用替代方式也意味着任何openssl后续安全升级的新特性都必须进行手工管理或依赖于尚待实现的升级机制,这就是替代方案没有大规模使用的原因,TLS v1.1-的版本具备标准的自动升级机制。
你可以检查通过使用SSLLabs web site来检查任何web站点的SSL功能以及其是否支持TLS v1.1或v1.2。
浏览器的升级情况如何?
浏览器厂商正在调查这个问题以确定会给用户带来多大的影响。我们希望他们发布一些浏览器升级包以减缓该攻击的影响程度,同时不需要服务器升级至TLS v1.1.虽然服务器升级长期来看是需要的,但至少不用这么着急。
微软给该问题的评级相当低;Firefox说即将开发一个修复程序;其他的TLS专家目前不太关注该问题。
其他一些信息
人们应该意识到安全是不断变化的。我们认为出了升级和实现软件修补外,还要考虑如下几点:
- 当任何可能的时候都使用SSL/TLS。不安全的站点对我们的浏览器和计算机是一个风险,因为我们无法控制任何恶意的第三方对我们浏览会话的注入,SSL和TLS客户保护我们远离这种威胁。
- 当访问安全的web站点时,最好新开一个浏览会话或已经浏览过安全的https站点。
- 将你的主页设为安全的站点,并且将其他的安全站点加入到收藏夹中。
- 针对普通的不安全浏览和安全浏览使用不同的浏览器。
- 保持你的软件、浏览器、操作系统、防病毒软件和其他组件更新到最新。
如果浏览器厂商发布了此问题的修补程序,威胁等级将显著降低。当前威胁程度也比较低,但是因为还很少有人会利用这个漏洞。
不过,以后相似的挟持不安全连接的攻击在以后很可能会呈现上升态势。将安全和不安全站点分别使用不同的浏览器是一个好习惯。
主动的安全习惯是一件好事情。