去年,QUIC作为一种新的互联网协议出现,用于通过新的HTTP/3协议在客户端之间创建可靠连接和加密通信。通过观察HTTP/3的出现和不断增长的部署,我们希望让OONI Probe能够测量HTTP/3审查,并监控审查人员如何响应和适应技术创新。
因此,我们(在2021年初)在OONI Probe中添加了HTTP/3支持(通过我们的urlgetter研究工具),以便在中国、伊朗、印度和哈萨克斯坦进行测量,以调查这些国家的HTTP/3审查状况。
我们发现,HTTP/3审查的部署在观察到的国家和网络之间存在显著差异。虽然一些审查人员根本不过滤HTTP/3流量,一些审查人员也会屏蔽HTTP/3主机,但我们在伊朗发现了针对HTTP/3的审查。
我们与凯瑟琳·埃尔门霍斯特(Kathrin Elmenhorst)合作,她在她的学士学位论文中详细描述并分析了测量结果。我们在一篇简短的研究论文中总结了研究结果,并将其提交给AMC互联网测量会议。我们的论文由凯瑟琳在会议上发表和提交。
在这篇文章中,我们总结了我们测量的主要发现,并简要介绍了QUIC和HTTP/3。
互联网协议定义了计算机在网络上通信的规则。HTTP是承载绝大多数web流量的internet协议。
最近,我们看到了HTTP的下一个主要版本:HTTP/3。与以前使用TCP进行传输的HTTP不同,HTTP/3使用了去年标准化的新互联网协议QUIC(RFC 9000)。
QUIC将传输连接和加密结合起来。这意味着QUIC可以创建可靠的连接(比如TCP),并允许客户端之间进行加密通信(使用TLS)。
与20世纪80年代开发的TCP不同,QUIC旨在提供内置的、始终在线的加密。QUIC运行在UDP之上,减少了建立连接的开销。
HTTP/3是超文本传输协议(HTTP)的下一个主要版本,该协议专门使用QUIC进行传输。目前,24%的网站使用HTTP/3。这个相当大的份额可以解释为这样一个事实:大型互联网公司在早期就为其服务和浏览器部署了HTTP/3。由于QUIC最初由谷歌设计,HTTP/3得到了Chrome浏览器和谷歌所有的服务(如YouTube和Blogger)的支持。Facebook和Cloudflare有自己的QUIC实现,并在服务器上使用HTTP/3。
对于HTTP/3测量,我们使用了中国、印度、伊朗和哈萨克斯坦几个自治系统的有利位置:
我们使用OONI Probe研究客户机Minioni,并运行urlgetter实验来收集测量结果。Urlgetter将URL列表作为输入,因此我们从Citizen Lab提供的测试列表以及Tranco热门网站列表中收集URL。
我们筛选了HTTP/3支持列表,最终得到了5-10%的国家特定测试URL(请记住,当时HTTP/3的部署率要低得多)。我们还从测试集中删除了包含关键内容(如色情或人权问题)的网站,以降低我们的合作伙伴进行测量的潜在风险。为了不受DNS审查,我们在未经审查的网络中预先解析了IP地址。
我们在一个月的时间里反复测量HTTP/3测试URL,以增加对结果的信心,并弥补潜在的临时网络或主机故障。对于每个HTTP/3测量,我们都通过HTTPS(TCP和TLS)运行相同的测量。
在分析结果时,我们确定了网站的可用性,并对网络故障进行了分类(如果发生了网络故障)。
上面的概览表描述了试图从6个有利位置访问测试网站时网络故障的百分比和类型。如图所示,与HTTPS相比,HTTP/3流量在所有有利位置都受到较少的审查。虽然没有迹象表明某些网络中存在任何HTTP/3过滤,但其他网络显示出一定程度的HTTP/3损害,例如中国的AS45090或伊朗的AS62442。附录中解释了故障类型缩写(如TCP hs to)。
在AS9198(哈萨克斯坦)、AS14061和AS38266(印度)的有利位置没有任何HTTP/3审查的迹象。这特别意味着,有一些主机在大多数测量中通过HTTPS被阻止,但总是通过HTTP/3可用。
这一发现表明,各自网络中的审查人员尚未实施任何HTTP/3阻止规则。由于该协议的新颖性以及与HTTPS相比仍然相当低的部署,审查人员不能够或不愿意投入资源来阻止HTTP/3也就不足为奇了。在互联网服务提供商负责实施互联网审查(基于法律法规)的国家尤其如此,因为互联网服务提供商可能没有国家组织的审查系统等可用资源。
然而,随着其重要性和部署的增加,阻止QUIC的努力将会增加。因此,持续监控这些网络中HTTP/3主机的可用性非常重要。
我们在中国AS45090和印度AS55836的vantage points进行的测量显示,某些网站的HTTP/3流量受到了严重损害。在AS45090中,我们发现27%的HTTP/3测量不成功,而HTTPS测量在37%的情况下失败。类似地,大约12%的HTTP/3和15%的HTTPS请求在印度AS55836网络中失败。
通过检查干扰的时间以及相应HTTPS和HTTP/3测量之间的相关性,我们得出结论,在这些网络中没有实现HTTP/3特定的阻塞。相反,有证据表明,由于IP地址的封锁列表,某些HTTP/3端点无法访问。
当一个IP地址被审查者封锁时,所有到该主机的流量都将被封锁,无论覆盖的协议如何。因此,这些IP端点的HTTP/3流量和HTTPS流量也会受到相同的影响。
在检查从伊朗AS62442收集的测量数据时,我们发现了一件意想不到的事情:虽然将HTTP/3作为HTTPS使用时失败率较低,但通过HTTP/3阻止的网站并不是通过HTTPS阻止的网站的子集。这意味着有一些网站可以通过HTTPS访问,但在使用HTTP/3时被阻止。
我们发现这一观察结果出人意料,因为没有明显的理由说明为什么只应该使用HTTP/3屏蔽网站,因为HTTPS是使用更广泛的协议。
作为后续实验,我们再次尝试了无法访问的主机,但这次我们将SNI(服务器名称指示)字段设置为允许的域名。通过这种修改,所有HTTPS请求都通过了防火墙,这表明HTTPS流量是根据SNI过滤的。然而,HTTP/3端点仍然无法访问,也就是说,审查机制是由SNI以外的东西触发的。
显然,HTTPS和HTTP/3流量分别使用了不同的审查方法,这解释了不一致的阻止和SNI的不同影响。
我们建议HTTP/3过滤器仅适用于UDP流量,并根据IP地址识别被禁止的网站。在本文中,我们使用术语“UDP端点阻塞”来描述这种方法。
在中国、印度、伊朗和哈萨克斯坦的有利位置,我们看到HTTP/3阻塞比HTTPS阻塞要少。在哈萨克斯坦的制高点和印度的两个网络中,HTTP/3流量仍然完全未经过滤。在中国(AS45090)和印度(AS55836),我们观察到HTTP/3因IP封锁而受损。在伊朗(AS62442),我们发现使用了一种阻塞方法,该方法针对HTTP/3流量,与HTTPS流量不同。我们假设它实际上是一个UDP端点过滤器。
图1:顶级域名(第一个横栏)和来源(第二个横栏)在每个国家特定的主机列表中的分布。
图1显示了我国特定输入列表的组成。上栏显示了顶级域的比率。正如你所看到的,有一个强大的优势。com域超过本地顶级域。这是因为HTTP/3主要由谷歌、Facebook和Cloudflare等拥有国际域名的大型互联网公司部署。下栏显示了我们用来填充输入的源列表。Tranco是一个面向研究的全球顶级网站排名。公民实验室提供的名单包括与审查有关的全球和本地网站。
图2显示了中国、印度和伊朗特定网络中HTTPS和HTTP/3请求之间的相关性。
图中显示了两种协议的结果类型分布。例如:AS62442中65.7%的HTTPS请求通过了防火墙,33.4%的请求以TLS握手超时(TLS-hs-to)结束。
您还可以通过读取相应的HTTPS和HTTP/3结果来使用这些图来比较它们,例如:在AS45090中,由于连接重置失败(conn reset)而无法通过HTTPS访问的所有网站在使用HTTP/3时都是成功的。