0%

timeless-timing-attack

《无需时间的定时攻击:在远程连接上利用并发泄漏secret》

为了实施一个成功的远程定时攻击,攻击者往往会收集一系列网络计时度量,接着利用静态分析在执行时间内显示差异。需获得的度量数量很大程度上受到请求和响应的抖动量。在远程定时攻击中,重要的抖动量是攻击者与目标服务器之前的网络路径,实际上,在只有很小的差异的情况下,很难成功利用时间侧信道。
而在这篇文章中,作者概念性地介绍了一种新类型的定时攻击,利用了网络协议对于数据包的合并和应用程序并发处理请求的特性。这些基于并发的定时攻击通过分析响应返回的顺序推理出相对的时间差异,因此并不依赖于任何绝对时间信息。

在这篇文章中,作者展示了这些攻击如何导致比经典定时攻击放大100倍的效果,即可 准确地检测100ns的时间差异,就像是在本地的攻击一样。描述了这些定时攻击如何成功利用在基于HTTP/2的web服务器上,洋葱匿名服务以及EAP-pwd(一个流行的WIFI认证方法)。

当一个应用程序/算法的执行时间依赖于一个secret,那么就有可能通过定时攻击来泄漏出secret。

复用网络协议+App并发执行,完全不受网络条件的影响。新的攻击方式从顺序中提取出信息,当两个并发任务执行结束后。

为了攻击能够成功执行,所有的task执行开始之间的间歇必须很短,一个接一个,这个时间间隙相对于网络是无影响的。可以采用利用一些技术来使得多种网络协议,将不同的请求放在一个网络包中。因此,所有的请求将会同时达到目标服务器,并被并发处理。

贡献:

  • 介绍了定时攻击的模型,并在理论上证明,基于并发的攻击不受网络影响。
  • HTTP/2中的请求和响应复用可以被用来实施基于并发的定时攻击,无论是直接威胁/跨站威胁。

HTTP/2.0

HTTP2.0的一个特性是多路复用的单一长连接。
在HTTP/2.0中,客户端向某个域名的服务器请求的过程中,只会创建一条TCP连接。
虽然只有一条TCP连接,但是在逻辑上分成了很多stream。HTTP/2.0把要传输的信息分割成一个个的二进制帧,首部信息被封装到HEADER Frame,相应的request body就放到DATA Frame,