HTTPS劫持研究

2019年8月12日00:01:09 发表评论

哈萨克斯坦政府最近开始使用一个假的根证书颁发机构,对包括Facebook,Twitter和Google等网站在内的HTTPS连接进行中间人(MitM)攻击,在此文中,我们给出了还在进行中的研究的初步结果,以及哈萨克劫持系统中新的技术细节。

情况提要

哈萨克斯坦最近开始使用一个假的根证书颁发机构对HTTPS连接进行劫持。这一行为显著弱化了哈萨克网络用户的互联网安全体验。

默认情况下,这一证书颁发机构是不被浏览器信任的,因此必须通过用户手动安装。如果用户不安装这一假证书颁发机构的根证书进而允许劫持,那么用户则完全无法访问受影响的网站。

第一次检测到的劫持行为是在7月17日,我们从7月20号就开始了持续追踪。期间劫持行为出现了几次停止又再次启动的现象。只有某些网站被劫持,劫持是由基于SNI 主机名字段触发的。至少37个域名受到影响,包括社交媒体和即时通讯网站(完整列表见文章后)。

截至目前,该攻击似乎会影响该国最大的ISP ——Kazakhtelecom(9198 KazTelecom)中传输的连接中的一小部分。这意味着只是部分而不是全部哈萨克网络用户会受到影响。劫持行为可以在国外触发,因此使得国际研究者们可以进行远程研究。

什么是HTTPS劫持?

HTTPS通过加密传输数据来保护浏览器和网站之间的安全交互,从而防止ISP和政府对传输进行读取和篡改。服务器通过提供由证书颁发机构(CA)进行数字签名的证书来验证自己身份,而证书颁发机构就是被浏览器信任、能担保网站身份的一个实体。例如,facebook.com会提供一个由DigiCert签名的证书给浏览器,而DigiCert则是一个被信任并且内置在几乎所有浏览器中的证书颁发机构。通过验证提供的证书并且确认证书是由浏览器所信任的证书颁发机构(DigiCert)所签发,浏览器就可以确信是在和真正的facebook.com进行交互。facebook.com提供的证书同时也包含一个用来保护接下来浏览器和Facebook之间通信的公钥。

在HTTPS劫持攻击(“中间人攻击”的一种类型)中,网络中的攻击者会伪装成一个网站(例如facebook.com),并且提供带有攻击者公钥的假证书。通常,攻击者无法让任何合法的CA来对一个不受攻击者控制的域名的证书进行签名,因此浏览器会检测并阻止这种攻击行为。但是,如果攻击者可以说服用户安装一个新CA的根证书到浏览器当中,浏览器就会信任攻击者提供的由这个合法CA签发的假证书。通过这些假证书,攻击者可以模仿任何网站,进而可以篡改网站内容、记录用户在网站上的操作或发表的内容等。因此,用户不应该安装根CA证书,因为这样就会将原本安全的通信暴露无遗,导致通信被劫持或篡改而不被用户所感知。

Censored Planet的发现

Censored Planet是一个在密歇根大学运作的全球审查行为观察站,该机构利用一些远程检测的方法,连续不断地在超过170个国家监测多种类型的网络接口。我们的扫描器第一次报告在哈萨克斯坦出现可能的中间人攻击是在2019年7月20日。利用一个叫做HyperQuack的技术,我们第一次检测到了这一攻击行为。这一技术通过连接到TLS服务器,发送握手包,而该握手包的服务器名称指示(SNI)扩展中包含可能被审查的域名。如果响应结果显示出不同于正常的握手包的扰乱迹象,那么这一域名就会被标记为可能被审查。

HTTPS劫持研究

我们的调查揭示了在这些案例中返回的证书是一个由哈萨克斯坦的根CA(Qaznet Trust Network)签发的假证书。我们的实验同时显示这一审查行为是通过透明代理实现。这意味着审查者在转发流量到目的机器之前,先对流量进行了解密并用其自己的密钥进行了加密。

我们的调查显示,只有网络路径经过劫持系统的连接才会被劫持;但是不论连接的方向如何,只要经过劫持系统,连接就会被拦截。这意味着我们可以通过发起到哈萨克斯坦国内的TLS服务器的连接,从而在国外触发劫持,使得我们能方便地进行更加精细的检测。

发表评论

后发表评论