新型攻击30秒内可从加密通信中提取机密信息

新型攻击30秒内可从加密通信中提取机密信息_第1张图片(图片来自BREACH的演示,展示的是在HTTPS加密网页中提取32位安全令牌的过程)

HTTPS加密协议保护着世界上数百万计的网站,然而现在出现一种新型的攻击手段,可以让黑客从加密的页面中提取出邮件地址、某种类型的身份信息(credentials),这一过程通常只需短短的30秒。

这项技术在周四的拉斯维加斯黑帽安全大会上得到了演示,在演示过程中黑客破解了网上银行和电子商务网站使用SSL和TLS协议加密的响应信息。整个攻击提取到了像社会安全号、邮件地址、安全token以及密码重置连接等特定的敏感数据。这种攻击方法对所有版本的TLS和SSL都有效,不论使用什么样的加密算法或密钥(cipher)。

这种手段要求攻击者能监听用户和网站之间的流量,并且攻击者也需要诱导受害人访问一个恶意链接。可以通过在网站上注入iframe标签让受害者访问或引导受害人查看邮件,而其中的隐藏图片在加载时就会生成HTTPS请求。恶意链接会让受害者的计算机向目标服务器发送多个请求从而进行消息刺探。

“我们不会破解整个通信过程,只是提取了一些我们感兴趣的机密信息”发明这种攻击的3位研究员之一的Yoel Gluck如是说“这属于一种定向攻击。我们只需在网站上找到一个需要进行口令或密码交换的地方,我们就可以在那个页面上提取到机密了。一般情况下,无论网页还是Ajax响应中的机密我们都可以在30s内提取出来。”

这是蚕食HTTPS加密方案的最新攻击,这几乎在所有领域都构成了安全隐患,涉及到Web,e-mail和其他的网络服务。这次新型攻击被列入到了在过去几年黑客介绍过的名单当中,例如CRIMEBEASTLucky 13, 和SSLStrip。虽然所有的攻击已经完全破坏了HTTPS协议所提供的保护,但是他们更担心的是具有20年历史的SSL和TLS协议的脆弱性。最新的这次攻击被叫做BREACH,简单的说就是浏览器监听和压缩的超文本泄漏。

几乎每个网站都通过压缩数据来节省带宽,BREACH正如它的名字一样,把那些压缩数据作为目标。基于标准的压缩算法(Deflate algorithm),HTTP通过消除文本中的重复字符串来压缩。在压缩后的数据中并不会重复出现“abcd”四次,例如,压缩原理只会存储“abcd”一次,然后使用比较节省空间的指针指向剩下的三个实例。通过压缩在一个连接中减少发送字节数,这样可以显著加快收到一个消息所需要的时间。通常,在数据流中找到相同的字符串越多,那么就会更大可能使整体数据得到压缩。

使用所谓的oracle技术(oracle technique),攻击者能够利用压缩获得加密内容的重要信息。这是因为许多形式的加密——包括HTTPS——几乎很少做甚至没有做阻止攻击者查看加密后信息的大小。压缩oracle技术在加密数据流中获取小块文本非常的有效。

BREACH机群通过猜测特定字符串和探测请求中发回给目标服务器的加密文本字符串作为目标。比较猜测的字节长度和最初的响应字节长度作为攻击。最初的响应当发现有精确的字符串组合的时候,这通常会产生较小的有效载荷相对于那些不正确的猜测。因为压缩存储使重复的字符串的有效载荷的大小并没有显著增加。正确的猜测相对于不正确的猜测更能获得加密内容的重要信息。

Oracle攻击原理

攻击者如果想要获取加密的邮件地址,首先要做的就是猜'@'符号以及其右边的域名。假如猜测的是"@arstechnica.com"或"@dangoodin.com"之类的字符串,加密后会导致信息比请求/响应文本长度大的话,攻击者就会认为这些地址不包含在响应体中。相反,如果压缩后的加密地址如"@example.com"没有导致密文长度增加,那么攻击者在很大程度上可以确信这个字符串是密文中的一部分。进而,攻击者可以一个字符一个字符地猜测@符左边的部分了。 

假设加密的地址是[email protected],不断地猜测[email protected], [email protected], [email protected], 以及 [email protected]都会导致密文长度增加。但是当攻击者猜到[email protected]时,密文长度并没有增加,因此可以确定此字符串包含在原文中。攻击者重复相同的步骤,就可以从右到左一个字符一个字符地复原出邮件地址的剩余部分了。 

这项技术可用于提取web响应中其他类型的加密文本。如果一个目标网站发送一些特殊的、用于阻止所谓的跨站点请求伪攻击时,那么每次发送时,证书里就总会包含类似这种格式:如“request_token="之后跟着一长串像"bb63e3ba67e24d6b81ed425c5a95b7a2"这样的文本。压缩oracle攻击可以用来猜测这个保密字串。

攻击者将通过添加"request_token=a"到目标加密页的文本中,然后作为一个探测请求发送给web服务器。由于有效加密负载的大小不断增长,这种猜测明显是错误的。相比之下,添加"request_token=b"到页面不会导致任何长度的可观增长,却给了攻击者一个强大的线索:第一个紧跟着等号的字符是'b'。攻击者就可以使用相同的伎俩猜测剩下的每个字符,一次一个,从左到右(直到最后)。

使用BREACH技术的更多的攻击,可以通过制造仅仅是几千次的对于目标web服务的请求来完成,在最佳的网络条件和获取较少的密文的情况下,只需要大概30秒的时间,而更多的高级的密文可以在几分钟到一小时之内完成。

BREACH,这个由Gluck同研究员Neal Harris和Angelo一起设计的技术,其建立于且超越了研究员Juliano Rizzo和Thai Duong去年九月所展示的具有突破性的CRIME attack技术。CRIME是“使压缩率信息泄漏容易”的缩写,同时CRIME破解了位于加密的Web请求里面的压缩数据,从而能够猎获验证cookie里面的普通文本,从而访问私有的用户帐户。这个研究的结果,暂缓TLS的压缩和临时禁用了一个开放的网络压缩协议(SPDY),直到它能被修改。BREACH,相比较而言,针对更广泛被使用的HTTP压缩方式,这几乎是所有网站用来发送响应内容给终端用户的方式。而它仅对于网站发送的响应数据有效。

"如果你访问Wikipedia page或者是任何特定的安全页面,他们会告诉你CRIME今天已经不是严重的威胁,而且不再是一个有趣的攻击方法,没有人关心它了,“Prado说。”所以,我们把它重新拿出来,并且让在不同的场景下,工作的更好,更快“。

有关于BREACH的好消息是,它仅仅在某些类型的Web响应的数据上有效,而且仅当一个攻击者成功的强制受害者访问了一个恶意的链接的时候。然而,任何时候,一个攻击者都能够解析出被一种广泛用于全世界的加密机制所保护的敏感数据,这是一个大问题,特别是对于NSA监视项目的关注益增的时候。使这个麻烦更加不能解决的是,没有容易的方式来减轻BREACH能够带来的危害。不类似于TLS压缩和SPDY,HTTP压缩是一项必要的技术,不能被取代或者是放弃且不稍害于网站操作者和终端的用户。

在他们的“黑帽子”的展示例子里,研究者将发布一个工具集合,这将帮助开发者来评断他们的应用程序和在线服务被BREACH攻击所显示的漏洞。大多数的危害将会是应用程序特定的。在别的情况中,攻击者会为新的“最佳实践”的建议带来增益,从而了解如何避免在加密的Web响应里面包括某种特定类型的敏感数据。大多数的网站也已经做到了只是列举出用户信用卡的后4位数字;同时,BREACH会迫使网站截断其余的敏感字符串。

“我们期望在特定的状况中,它得以被平衡的应用,也许是被一个智囊机构所用,或者是一个单独的表演者,又或者是一个恶意的犯罪组织使用它,来针对特定的场景,”Prado说。“任何恶意软件的作者,今天都有这样的能力去做这样的事情,如果他还没有做的话。”

本文更新的时候,纠正了句子,“SPDY被暂缓使用”,为“它被临时的禁用,直到它能被修改为止。”

你可能感兴趣的:(加密,通信,web服务器,web服务,恶意软件)