HTTP压缩仍让加密连接处于风险之中

本文讲的是HTTP压缩仍让加密连接处于风险之中,安全研究人员近期改进了一项已有三年历史的攻击方法:

这种攻击类型被称为 BREACH ,是“利用超文本自适应压缩算法,进行浏览器侦查和信息窃取”(Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext)的简称。许多 Web 服务器使用 gzip 和 DEFLATE 算法来减少 HTTP 的响应延迟,然而,这两种加密算法会泄露关于加密连接的信息,使得中间人攻击成为可能。一旦中间人介入,就可以恢复认证 cookie 等敏感信息。

3年前美国举行的 Black Hat 大会上,安杰洛 普拉多(Angelo Prado)、尼尔 哈里斯(Neal Harris)、约尔 古拉克(Yoel Gluck) 这三位研究人员首次展示了这种攻击方式。从理论上讲, BREACH 攻击有可能影响所有 SSL 和 TLS 加密方案,但研究人员当时提出的方法对于利用 RC4 等数据流加密处理的连接最为有效。

来自雅典国家技术大学(National Technical University of Athens)的迪米特里 卡拉考斯塔和雅典大学(University of Athens)的狄奥西斯 乾罗斯(Dionysis Zindros)是另外一组研究人员。他们改进了 BREACH 攻击,让其更适用于攻击如今更加常用的 AES 等 TLS 分组密码。

卡拉考斯塔和乾罗斯在亚洲上周举行的 Black Hat 大会上展示了对 BREACH 技术的改进,并发布了一份名为 Rupture 的开源框架,可用于发动这类与加密相关的攻击。

他们展示了两种针对 Gmail 和 Facebook Chat 的概念验证攻击,以证明很多网站都存在这一漏洞,即使是那些最注重安全的也不例外。

BREACH 要求攻击者处于能够拦截受害者 Web 流量的网络位置上。做到这一点的方式有不少:连接到同一无线网络、入侵路由器,或者从网络架构的更高位置来发动攻击,比如通信运营商和美国国安局。

不过,攻击者还需要找到存在漏洞的应用,它们能够接受 URL 参数,并将输入反射到加密响应消息中去。

比如研究人员演示的 Gmail 入侵: Gmail 的移动网页版支持输入反射,响应页面上包含通过 URL 参数传递的搜索字符串,比如有些信息会显示没有搜索到特定字符串。此外,如果请求来自经过认证的合法会话,响应中还会带有标明本次会话的认证令牌。

gzip 压缩在 HTTP 中的工作方式是这样:如果在响应中有同一个字符串的多个实例,第一个实例将被保留,而其余实例将被替换成指向第一个实例位置的短引用,以减少响应消息的体积。

因此,对于 Gmail 而言,如果用户搜索的刚好是认证令牌完全一致的字符串,哪怕是它的一部分,在响应消息中也将相同字符序列的两个实例。由于压缩的存在,响应将比使用其它字符串进行搜索时的体积更小。

就像在 Gmail 攻击过程中显示的那样,攻击者使用 BREACH 技术的目标如下:诱使用户的浏览器向存在漏洞的应用发送大量请求信息,猜测认证令牌的内容。响应中的认证令牌可能受到加密保护,但每当搜索字符串与认证令牌的一部分契合时,攻击者观察到的响应消息都会比正常情况要小一点。

通过将新确认的字符添加到已有结果中,持续改变新请求中的搜索字符串,最终将获得认证令牌中的每个字符。这种方法将每次 HTTP 压缩的结果作为确认标识,实际上是针对各个字符的暴力破解攻击。

Rupture 框架可以帮助攻击者在用户浏览器打开的每个 HTTP 连接中注入恶意代码。这段代码可以强制浏览器向后台存在漏洞的 HTTPS 应用发出请求。分组密码和数据流加密有所不同,它会在每个响应中加入噪声:在加密过程之前添加被称为“填充”(Padding)的冗余比特,让响应可以被分割成相等大小的区块。要想利用 BREACH 技术过滤掉噪声,恢复加密数据,需要比应对数据流加密方式时多得多的请求次数才能做到。

乍看起来,这让 BREACH 攻击更难实现了。然而,卡拉考斯塔和乾罗斯设计了一种基于统计学的方法,通过计算请求同一个字符时多组响应的平均长度,过滤掉噪声。两位研究人员还进行了其它改进,并引入了搜索引擎平行化技术,大大提升了攻击使用分组密码的 TLS 的效率。

研究人员在发布的技术论文中写道, BREACH 攻击技术发布三年之后, RC4 已被公认为不安全的,如今大多数站点使用 AES 分组密码。“脸书等一些服务也整合了防止 BREACH 攻击的机制。然而, BREACH 的基本攻击机制仍旧有效,而包括脸书在内的大多数流行站点依旧支持存在漏洞的端点。”

研究人员总结称:“我们的研究证明,通过改进 BREACH ,能够攻击主流 Web 应用。这也同时说明, TLS 流量在实务层面上仍可以被视为不安全的。”

最近提出的一项互联网标准被称为第一方/同站点 cookie ,它可以保护站点免遭 BREACH 攻击。如果浏览器也采取该机制,可以防止来自其它站点的请求响应信息中包含 cookie 。

也就是说,如果 A 站点的代码指示浏览器向 B 站点发起请求, 即使浏览器已经和 B 站点之间有了活动的、经认证的会话,该请求也不会包含用户面向 B 站点的认证 cookie 。设计这一机制的初衷是防止跨站请求伪造(Cross-site Request Forgery,CSRF)攻击,但由于 BREACH 也采取了与 CSRF 类似的方式来发起恶意跨站请求,该机制对后者也将有效。

谷歌 Chrome 在版本号51中将启用对同站点 cookie 的支持,该版本将在今年五月发布稳定版。然而,如果还有许多浏览器并未采取该机制,网站管理者将很难产生对 cookie 添加“同站点”标识的动力。

时间: 2024-08-31 23:29:35

HTTP压缩仍让加密连接处于风险之中的相关文章

谷歌:超过75%服务器请求使用加密连接

北京时间3月16日消息,据外媒TechCrunch报道,谷歌在关于超文本传输安全协议(HTTPS)的透明度报告中指出,在发送到公司服务器的请求中,超过75%使用了加密连接. 谷歌表示,在服务器产生的流量中,有超过95%的未加密流量来自移动设备,"遗憾的是,这些设备可能不会再更新,并且可能永远无法支持加密技术."不过,谷歌并未透露哪些操作系统或设备的情况最严重. 此外,在谷歌产品中,Gmail和云端硬盘在HTTPS部署上遥遥领先,这两款服务现在默认使用HTTPS连接.地图和广告产品等使用

谷歌HTTPS透明度报告:逾75%服务器请求使用加密连接

谷歌公布HTTPS加密连接的部署情况 北京时间3月16日消息,据科技博客TechCrunch报道,谷歌周二在其透明度报告中增加了一个新板块--超文本传输安全协议(HTTPS)的实施情况,专注于介绍谷歌自主网站和各大热门网站的加密部署情况. 谷歌称,在发送到公司服务器的请求中,超过75%使用了加密连接.不过,该报告并不包含YouTube流量. 逾75%服务器请求使用加密连接 在谷歌所有产品中,Gmail和云端硬盘在HTTPS部署上遥遥领先,这两款服务现在默认使用HTTPS连接.地图和广告产品等使用

利用标记化和交易加密减轻信用卡风险

要不了多久,信用卡资料就会一文不值,这确实是件好事.信用卡安全正在从设置障碍 防止信用卡资料被窃取转向使信用卡资料无法用于牟利.通过对信用卡资料进行抽象化处理,使真正的信用卡资料无法轻易甚至根本不能从抽象化的数据中推导出来,使用抽象的数据替代真正的信用卡资料,而抽象的数据只在单次交易的特定上下文中有效.这种方法可能能更有效地保护信用卡资料和 减轻信用卡风险.这种保护信用卡资料的理想方法的重要基础是两种既相互关联又相互独立的技术:1.标记化(Tokenization)--标记化是指提取重要的数据(

苹果绝大多数Mac电脑用户不会因为Shellshock而处于风险中

摘要: 苹果称Bash漏洞对绝大多数Mac电脑没有影响 据路透社报道,苹果在周四晚间表示,绝大多数Mac电脑用户不会因为近期确认的Bash软件漏洞Shellshock而处于风险中.安全专家此前警告称,Sh 苹果称Bash漏洞对绝大多数Mac电脑没有影响 据路透社报道,苹果在周四晚间表示,绝大多数Mac电脑用户不会因为近期确认的Bash软件漏洞"Shellshock"而处于风险中.安全专家此前警告称,Shellshock将影响包括Mac OS X在内的操作系统. 苹果发言人比尔·埃文斯(

MYSQL教程:建立加密连接

加密连接可提高数据的安全性,但会降低性能.要进行加密连接,必须满足以下要求: user权限表里要有相关的SSL数据列.如果安装的MySQL服务器是4.0.0版的,user权限表已包含相关的SSL数据列,否则,我们也可用mysql_fix_privilege_tables脚本升级权限表. 服务器和客户程序都已经编译有OpenSSL支持.首先要安装openssl,在编译时MySQL服务器时加--with-vio和--with-openssl选项加上openssl支持.可用以下语句查询服务器是否支持S

Linux开启VNC桌面及加密连接

  系统工程师在WINDOWS系统下面办公,又要管理Linux服务器,开SSH对于新手级的管理员来说比较"痛楚",所以需要使用图形界面的远程管理,又考虑到安全型,需要加密连接,这两个问题都可以在VNC下面解决. 一.服务端配置 1. 打开终端,输入"vncserver",系统提示设置输入访问vnc的密码,两次确认后设置完成;如果需要修改VNC的密码,命令是:"vncpasswd",2. 完成后,系统会输入类似于"192.168.1.15

压缩文件并加密,用流输出,中间不生成zip文件,怎么实现

问题描述 压缩文件并加密,用流输出,中间不生成zip文件,怎么实现 压缩文件并加密,用流输出,中间不生成zip文件,怎么实现,想不明白,求大神指点 解决方案 你这其实就是一个文件加密而已, 你问的流输出,其实转化到代码就是一个byte数组,对不? 是这个形式的么? 解决方案二: yteArrayOutputStream byeout=new ByteArrayOutputStream(); ZipOutputStream out = new ZipOutputStream(byeout); 可以

如何序列化->压缩->加密 一个datatable 然后 解密->解压缩->反序列化?如分不够再开新贴送

问题描述 谢谢了! 解决方案 解决方案二:///<summary>///序列化///</summary>///<paramname="dsOriginal"></param>///<returns></returns>staticpublicbyte[]GetBinaryFormatData(DataSetdsOriginal){byte[]binaryDataResult=null;MemoryStreammem

NSA是这样入侵数万亿加密连接的

本文讲的是 NSA是这样入侵数万亿加密连接的,爱德华·斯诺登(Edward Snowden)2013年泄密称,美国国家安全局(NSA)能够破解互联网上使用的一些强加密算法,拦截基于VPN.SSH和HTTPS的数万亿通信连接,阅读数全球数百万计的私人电子邮件.但这已经不是什么新鲜消息了,如今人们更加关注NSA是通过何种方法获得破解能力的.经过来自多个知名机构的14位密码学专家协同研究,这个问题如今可能有了答案. 亚历克斯·哈德曼(Alex Halderman)和纳蒂亚·赫宁格(Nadia Heni