常见HTTPS攻击方法解析 0x00 背景 研究常见的https攻击方法 Beast crime breach,并针对https的特性提出一些安全部署https的建议。 针对于HTTPS的攻击,多存在于中间人攻击的环境中,主要是针对于HTTPS所使用的压缩算法和CBC加密模式,进行side-channel-attack。这几类攻击的前置条件都比较苛刻,且都需要受害主机提交很多次请求来收集破译关键数据的足够信息。 常见的攻击方法,主要有,BEAST、Lucky-13、RC4 Biases、CRIME、TIME、BREACH等。主要对其中几种进行介绍。 0x01 CRIME Compression Ratio Info-leak Made Easy 攻击原理 攻击者控制受害者发送大量请求,利用压缩算法的机制猜测请求中的关键信息,根据response长度判断请求是否成功。 如下面的https头,攻击这可以控制的部分为 get请求地址,想要猜测的部分为 Cookie。那么攻击者只需要在GET地址处,不断变换猜测字符串,进行猜测。 GET /sessionid=a HTTP/1.1 Host: bank.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 Cookie: sessionid=d3b0c44298fc1c149afbf4c8996fb924 GET /sessionid=a HTTP/1.1 Host: bank.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 Cookie: sessionid=d3b0c44298fc1c149afbf4c8996fb924 比如上面的情况Response长度为 1000byte。 GET /sessionid=d HTTP/1.1 Host: bank.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 Cookie: sessionid=d3b0c44298fc1c149afbf4c8996fb924 当攻击者猜对了 cookie的第一个字母,Response的长度会缩小到 9999byte。 当 Response被 SSL加密之后,如果使用 RC4加密模式,长度并不会发生随机改变。使用 BCB加密模式时,因为padding的原因,长度会有略微的改变。 受影响的加密算法 Deflate = LZ77 + HuffMan GZip = Headers + Data Compressed using Deflate 攻击前提 攻击者可以获取受害者的网络通信包。(中间人攻击,ISP供应商) 浏览器和服务器支持均支持并使用压缩算法。 攻击这可以控制受害者发送大量请求并可以控制请求内容。 防御方法 客户端可以升级浏览器来避免这种攻击。 ▪ Chrome: 21.0.1180.89 and above ▪ Firefox: 15.0.1 and above ▪ Opera: 12.01...