[译]TLS中的RC4被攻破了,现在该怎么办?
原文链接:https://community.qualys.com/blogs/securitylabs/2013/03/19/rc4-in-tls-is-broken-now-what
原文发表时间:2013.3.19
一段时间以来,RC4都被认为是有问题的,但是直到不久前才有利用其弱点的方法。在2011年BEAST被披露后,我们建议使用RC4算法以避免TLS1.0及更早版本中使用的CBC模式密码套件的弱点。这导致使用RC4的比例大幅上升,有说法称其占据了大约50%。
上周,一组研究人员(Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering and Jacob Schuldt)发布了一种针对RC4攻击的有效改进,发现了新的弱点和新的利用方法。Matthew Green在他的博客上做了很好的总结,这里是新问题发布时的幻灯片。
目前,这种攻击尚未能实用,因为它需要上百万甚至上亿条使用不同密钥对相同数据进行的加密结果。浏览器需要与服务端建立多个链接才能给攻击者传递足够的数据。一种可能的利用路径是以某种方法使浏览器建立起大量的连接,同时中间人观察并记录传递的信息。
现在我们还是安全的,但是这给研究人员提升RC4攻击方法带来了很大的刺激,这也意味着我们必须要迅速行动起来。
我们(SSL Labs)将会做什么?
- 开始对我们的用户警告RC4的弱点。 RC4已经确认被攻破,当前在TLS中使用已不安全。但是困难在于,对于用户基数特别大的站点来讲,无法100%安全的替换RC4算法。我们现在除了接受它之外别无选择,无论怎么设置,一些用户仍将处于风险之中。
如果苹果公司实现了1/n-1 record splitting在他们的协议栈中(唯一没有实现的主流刘浏览器厂商),我们可以认为BEAST已经在客户端有效的缓解了,我们将建议用户使用非RC4的CBC密码套件。更新:苹果在2013年10月发布的OS X Mavericks中实现了BEAST缓解措施。这意味着BEAST可以被认为得到了有效的缓解。要想了解更多信息,请参看本博文。- 开始建议使用GCM模式的密码套件。浏览器将毫无疑问的加快对TLS 1.2和GCM密码套件提供支持,站点管理员将因此而收益。
- 更新 “SSL/TLS部署最佳实践”。
- 在不久的将来,更新评级算法,将RC4弱点纳入考量。
建议
SSL/TLS库开发者
- 加强你的协议栈对Lucky 13攻击的防御能力。(译者注:Lucky 13也是一种针对CBC模式密码套件的攻击,2013年2月发布,不过目前各大主流SSL库都已经修复了该问题。PS:漏洞太TM多了)
- 尽快提供对TLS 1.2和GCM模式密码套件的支持。
浏览器厂商
- 尽快提供对TLS 1.2和GCM模式密码套件的支持。
- 尽快实现1/n-1 record splitting以使得CBC模式密码套件在TLS1.0和更早版本中也是安全的。据我们所了解,苹果是唯一尚未对浏览器发布补丁的厂商,无论是OS X还是IOS。(2013年10月发布了)
系统管理员
- 禁用TLS压缩。这种攻击类似于最近的RC4攻击,只不过可实用。(译者注:另外一种针对SSL/TLS的攻击,利用的压缩算法的机制进行。)
- 尽快提供对TLS 1.2和GCM模式密码套件的支持。
TLS工作组
- 恢复TLS中算法的灵活性和多样性。现在AES GCM密码套件是TLS中保证安全的唯一选择,但是我们不应该一直这样。
- 考虑引入新的流密码算法。如果只有一种密码算法可选,是无法提供算法灵活性的。
- 考虑改变CBC的实现,以便解决timing问题(译者注:就是CBC模式算法漏洞产生的根源)。
应用开发者
- 强化会话管理,以提供可靠的和频繁变换的会话cookie,以增加攻击者所需要的时间和请求数量。近年来这种攻击有个趋势:需要攻击者以某种方式控制TLS连接的客户端。大部分这种攻击集中在提取信息中的一小段,比较典型的就是认证集。会话cookie现在是最为热门的目标。既然攻击是否顺利进行取决于需要多少请求,频繁的变换会话cookie是一个很好的深度防御措施。
[译]TLS中的RC4被攻破了,现在该怎么办?的更多相关文章
- CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- [译]SSL/TLS真的被BEAST攻击攻破了吗?真实情况是怎样的?我应该做什么?
原文链接:https://luxsci.com/blog/is-ssltls-really-broken-by-the-beast-attack-what-is-the-real-story-what ...
- 2018-02-17 中文代码示例[译]Scala中创建隐式函数
前言: 学习Scala时, 顺便翻译一下自己有兴趣的文章. 代码中所有命名都中文化了(不是翻译). 比如原文用的是甜甜圈的例子. 原文: Scala Tutorial - Learn How To C ...
- [译]AngularJS中DOM操作
再翻译一篇干货短文,原文:AngularJS jQuery 虽然Angularjs将我们从DOM的操作中解放出来了,但是很多时候我们还是会需要在controller/view加载之后执行一些DOM操作 ...
- [译]ES6中的代理对象
原文:http://ariya.ofilabs.com/2013/07/es6-and-proxy.html 能够拦截在一个对象上的指定操作的能力是非常有用的,尤其是在故障调试的时候.通过ECMASc ...
- [译]AngularJS中几种Providers(Factory, Service, Provider)的区别
原文: http://blog.xebia.com/2013/09/01/differences-between-providers-in-angularjs/ 什么是Provider? Angula ...
- [译]JavaScript中,{}+{}等于多少?
最近,Gary Bernhardt在一个简短的演讲视频“Wat”中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解这些计算结果是如何得 ...
- [译] UML中的关系之Dependency
在UML中,依赖关系表示Client依赖于另一个元素,叫做Supplier. 通常来说,依赖关系不需要特殊的名字. 依赖的类别 抽象 abstraction, derive, refine, trac ...
- [译]Java中的继承 VS 组合
(文章翻译自Inheritance vs. Composition in Java) 这篇文章阐述了Java中继承和组合的概念.它首先给出了一个继承的例子然后指出怎么通过组合来提高继承的设计.最后总结 ...
随机推荐
- Dokcer ELK
使用 docker 搭建 ELK 非常简单 docker run --name myes -d -p 9200:9200 -p 9300:9300 elasticsearch:2.4.4 运行 ...
- 删除Rancher节点的正确姿势
在Rancher上疏散该节点 删除节点 登录该节点宿主机,删除rancher相关容器 docker rm -f -v $(docker ps -aq) 删除该节点的所有volume docker vo ...
- mac 下如何建立vue-cli项目
command+space : terminal //检测是否存在node node -v //检测是否带有npm安装管理工具 npm -v //具备进行下一步 //在documnets下建立vue文 ...
- 【转】R语言知识体系概览
摘要:R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢.本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言. 最近遇到很多的程序员都想转行到数据分析,于是就开 ...
- java 获取今天,昨天,上个月的日期
获取今天,昨天,上个月的日期 的方法: Calendar cal = Calendar.getInstance(); //获取今天的日期 cal.setTime(new Date()); int ye ...
- Mahout 0.10.1安装(Hadoop2.6.0)及Kmeans测试
1.版本和安装路径 Ubuntu 14.04 Mahout_Home=/opt/mahout-0.10.1 Hadoop_Home=/usr/local/hadoop Mavent_Home=/opt ...
- 15 个有趣的 JS 和 CSS 库
开发者们,一起来看看有木有你需要的前端库. 1. DisplayJS DisplayJS 是一个帮助你渲染 DOM 的简易框架.使用它,你可以更容易地将 JS 变量遍历到特定的 HTML 元素中,类似 ...
- centos 7网速监控脚本
#!/bin/bashif [ $# -ne 1 ];thendev="eth0"elsedev=$1fi while :doRX1=`/sbin/ifconfig $dev |a ...
- 利用ftrace跟踪内核static tracepoint
摘要:和很多linux内核子系统一样,static tracepoint有很多层次,其中某个层次都展示给不同层次的开发者来满足他们的不同需求.关于linux tracepoint的详细信息,我们可以在 ...
- linux---nginx服务nfs服务nginx反向代理三台web
一:nginx服务 1.二进制安装nginx包 [root@bogon ~]# systemctl disable firewalld #关闭Firewalls自启动 Removed symlink ...