原文链接:https://luxsci.com/blog/is-ssltls-really-broken-by-the-beast-attack-what-is-the-real-story-what-should-i-do.html

原文发表时间: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的实际影响是什么?

该问题可能影响浏览安全站点的人们,在某种条件下会导致窃听者能获取到你站点账户的访问权。它不会影响:

它会影响:

  • 你需要在安全站点上登录使用的帐号,例如PayPal, LuxSci, Gmail, Bank of America, Facebook等。

我浏览网站的什么时候会被攻击?

如果你使用的网络中,有恶意人员可以查看网络中所有的正常流量,并且可以截获并修改流量,那么他可能会危害你的安全网站浏览。

注意这并不包括和你使用同一个wifi或ISP的恶意人员,他们只能窃听到你的非安全连接,SSL对抗他们还是很有效的。但会包括如下场景:

  • 本地网络管理员是个坏家伙
  • 攻击者攻破了你的本地网络,获取到了服务器的控制权
  • 你在一个对出入网络流量进行监控的国家(呵呵)

没有在那些国家并且使用可信网络的人们大可不必太过担心。这里的“可信”指的是:

  • 你的本地ISP(例如:Comcast,AOL,Verizon等,类似国内的联通、电信)基本是可信的。我们对他们是深度信任的--如果他们想,他们可以有更为简单的方法来干坏事(例如通过将木马或病毒植入你的系统)。
  • 你所在学校或公司的网络管理团队基本是可信的(这些家伙可以知道你在网络中做过的任何事情)。和ISP一样,他们如果想干坏事,有比TLS攻击更为简单且效果更好的方式。
  • 政.府--你相信他们不会强迫ISP窃听你吗?即使他们会,大部分人也不用太过担心。

这种攻击发生在恶意人员想要窃听你的通信或在不知道先验知识的情况下访问你的帐号,他们可能(a)已经知道了你访问web站点的频率,或者(b)已经访问了足够多人的web流量,并且他们只想攻击非常流行的网站账户,例如Gmail,paypal或某些银行。

如果你对此比较担心,这是否是一个潜在的威胁取决于你所处的位置和你做了什么。

什么情况下我可能会被攻击成功?

简答来说,如果针对你发起了攻击,如果你做了如下的事情,可能会被攻击成功:

  1. 你访问了任意非安全站点(http的而非https的),并且你的浏览器启用了JavaScript。
  2. 你使用相同的浏览器访问因特网超过10分钟。
  3. 然后你访问安全站点,而攻击者正想冒充你访问该站点。

注意,攻击者必须提前约10分钟猜测或者知道你将会访问那个安全站点。10分钟的间隔会随着攻击所使用的计算能力的增加而减少。

举个例子,我们假设攻击者想要窃听每个人的gmail帐号访问以便获取用户名、口令和其他敏感信息。

  1. 你访问一个不安全的站点,例如http://google.com
  2. 攻击者收集和处理访问https://gmail.com所需要的数据
  3. 你继续上网一段时间
  4. 你访问https://gmail.com以检查你的email
  5. 攻击者可以使用已经收集的信息来访问你的Gmail帐号,就像他已经以你的身份登录一样。

我如何保护自己?

如果你对这种攻击比较在意,你可以通过如下方式来保护自己:

  • 关闭你的浏览器(所有打开的窗口)
  • 打开你的浏览器,直接访问安全的站点,而不要在之前访问不安全的站点

这种方式之所以凑效是因为这种攻击需要相同的浏览器session使用一段时间。关闭并重新打开浏览器可以使攻击者的准备工作失效。直接访问安全站点避免了攻击者的准备工作。

你可以通过很简单的方法达到这个目标:

  1. 将你的主页设为一个安全页面,例如https://luxsci.com。然后你可以使用浏览器收藏夹来访问你想要去的安全站点。
  2. 将你经常访问的安全站点书签放到桌面上,当你点击它是可以直接打开你想去的安全站点。
  3. 在你的浏览器上禁用JavaScript,或者旨在可信的安全站点中启用。
  4. 使用VPN。如果你将电脑连接到可信的网络(例如工作环境),这将会通过VPN发送所有安全的和不安全的web连接,从而避开了网络内的恶意人员查看和干扰你浏览的任何内容。

另外,如果攻击者不知道你的浏览习惯,并且你访问的站点不是非常流行,他们很难危害到你。例如:诸如gmail.com,facebook,bankofamerica.com等网站的用户量巨大,因此也容易成为攻击目标,比较小的网站如luxsci.com则一般不会。然而,如果攻击者知道你访问习惯,就会满盘皆输了。

BEAST攻击是如何工作的?

  1. 当你访问不安全的站点,攻击者修改了返回的页面或返回的JavaScript,在其中添加了恶意的JavaScript。
  2. 恶意的JavaScript在你的浏览器中自动执行(如果你启用了JavaScript的话)。
  3. JavaScript打开一个安全的连接,例如到https://gmail.com
  4. 攻击者将你的浏览器与https://gmail.com之间的流量与已知的通过JavaScript发送的流量进行对比,进行几分钟的计算,攻击者可以可以得到你安全会话的“初始向量”。
  5. 这个信息允许攻击者访问在同一个浏览器会话中发往相同站点的后续安全认证cookies。
  6. 这些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站点。
  • 将你的主页设为安全的站点,并且将其他的安全站点加入到收藏夹中。
  • 针对普通的不安全浏览和安全浏览使用不同的浏览器。
  • 保持你的软件、浏览器、操作系统、防病毒软件和其他组件更新到最新。

如果浏览器厂商发布了此问题的修补程序,威胁等级将显著降低。当前威胁程度也比较低,但是因为还很少有人会利用这个漏洞。

不过,以后相似的挟持不安全连接的攻击在以后很可能会呈现上升态势。将安全和不安全站点分别使用不同的浏览器是一个好习惯。

主动的安全习惯是一件好事情。

[译]SSL/TLS真的被BEAST攻击攻破了吗?真实情况是怎样的?我应该做什么?的更多相关文章

  1. [译]使用AES 256以达到SSL/TLS安全最大化

    原文链接:https://luxsci.com/blog/256-bit-aes-encryption-for-ssl-and-tls-maximal-security.html 原文发表时间:201 ...

  2. [译]TLS中的RC4被攻破了,现在该怎么办?

    原文链接:https://community.qualys.com/blogs/securitylabs/2013/03/19/rc4-in-tls-is-broken-now-what 原文发表时间 ...

  3. [译]HIPAA要求的SSL/TLS等级

    原文链接:https://luxsci.com/blog/level-ssl-tls-required-hipaa.html 原文发表时间:2015.1.13 本博文仅仅是上述原文的翻译,仅供研究参考 ...

  4. SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)

    最近发现SSL/TLS漏洞已经修改过,但是绿盟扫描器还可以扫描出来,网上看了很多文章,但是能用的比较少,今天刚好有空,就自己写一下. 方法一: 控制面板--->系统和安全--->管理工具- ...

  5. SSL/TLS 安全测试

    本文介绍了使用半自动化工具执行SSL&TLS安全性评估的过程,以及如何使用手动及工具的测试方法验证并发现问题.目的是优化TLS和SSL安全测试流程,帮助信息安全顾问在渗透测试时在TLS / S ...

  6. 聊聊HTTPS和SSL/TLS协议

    要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识.1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接 ...

  7. 浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

    来自:编程随想   >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 ...

  8. 好程序员带你了解一下HTTPS和SSL/TLS协议的背景与基础

    >> 相关背景知识 要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 大致了解 HTTP 和 TCP 的关系(尤其 ...

  9. 聊聊HTTPS和SSL/TLS协议 分类: 计算机网络 2015-07-11 21:41 4人阅读 评论(0) 收藏

    要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识. 1. 大致了解几个基本术语(HTTPS.SSL.TLS)的含义 2. 大致了解 HTTP 和 TCP 的关系(尤其是"短连接 ...

随机推荐

  1. 转载:poj题目分类(侵删)

    转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码)  ...

  2. php入门(二)

    PHP字符串变量: 1.PHP strlen() 函数 <?php $str1="abcd"; $str2="efgh"; $str=$str1.$str ...

  3. js实现类名的添加与移除

    方法1:使用className属性: 方法2:使用classList API: //用于匹配类名存在与否 function reg(name){ return new RegExp('(^|\\s)' ...

  4. 手机端页面自适应解决方案—rem布局(进阶版,附源码示例)

    转自:https://segmentfault.com/a/1190000007350680 一年前笔者写了一篇 <手机端页面自适应解决方案—rem布局>,意外受到很多朋友的关注和喜欢.但 ...

  5. 终于搞懂了shell bash cmd...

    问题一:DOS与windows中cmd区别 在windows系统中,“开始-运行-cmd”可以打开“cmd.exe”,进行命令行操作. 操作系统可以分成核心(kernel)和Shell(外壳)两部分, ...

  6. Windows 10上强制Visual Studio 2017 以管理员身份运行

    1. 打开VS的安装目录,找到devenv.exe,右键,选择“兼容性疑难解答”. 2. 选择“疑难解答程序” 3. 选择“该程序需要附加权限” 4. 确认用户帐户控制后,点击测试程序,不然这个对话框 ...

  7. Kotlin Android Studio 环境搭建

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源. Kotlin 可以编译成Java字节码,也可以编 ...

  8. centos 7网速监控脚本

    #!/bin/bashif [ $# -ne 1 ];thendev="eth0"elsedev=$1fi while :doRX1=`/sbin/ifconfig $dev |a ...

  9. Python写入CSV文件的问题

    这篇文章主要是前几天我处理数据时遇到的三个问题: Python写入的csv的问题 Python2与Python3处理写入写入空行不同的处理方式 Python与Python3的编码问题 其实上面第3个问 ...

  10. vue-router防跳墙控制

    vue-router防跳墙控制 因为在实际开发中,从自己的角度来看,发现可以通过地址栏输入地址,便可以进入本没有权限的网页.而我们一般只是操作登录页面,其他页面很少考虑,此刻特来尝试解决一下 基于vu ...