鉴于我们的工作和工具主要围绕测量和揭示中国和世界各地的互联网审查,而中国拥有全球最先进和普遍的互联网审查水平,这并不令人意外。然而,我们不确定为什么中国决定在此特定时刻开始封锁我们(而不是几年前),因为自2014年以来,我们已经从中国收集到了OONI的测量数据。OONI在中国的封锁时间(似乎始于2023年7月7日)使我们认为这可能与我们最近在2023年6月底关于F-Droid在中国的封锁有关。但是我们还在2019年报告了中国封锁维基百科的情况(以及其他关于中国审查的报告),当时中国并没有封锁我们的服务。
虽然我们过去曾注意到其他国家尝试封锁我们的服务(这就是为什么我们在OONI Probe中添加了后端代理支持,以规避对我们服务的任何意外或故意封锁),但这是我们首次看到由此导致的OONI测量覆盖范围大幅下降。
在这份报告中,我们分享了关于中国封锁OONI服务的OONI数据。
封锁OONI网站
从2023年7月7日开始,中国的几个网络似乎封锁了我们的网站(ooni.org)的访问。以下图表汇总了过去一个月内在中国网络中对ooni.org进行测试的OONI测量覆盖范围。
从上图可以看出,所有测量在2023年7月7日失败,此后收集的大多数测量要么失败,要么出现异常。虽然测量通常被注释为“失败”,当OONI Probe实验无法按预期执行时(例如由于错误),这些测量也可能是审查的症状。同时,当测量出现互联网审查的迹象时,它们被注释为“异常”(尽管可能会出现误报)。
值得注意的是,在此之前,从中国对ooni.org的测试收集的OONI测量显示ooni.org在中国的测试网络上是可访问的。只有2023年7月4日的一次测量出现异常(因为DNS查询导致超时错误),但这个单独的测量并不能提供关于审查的强烈信号(因为DNS解析返回了正确的IP地址)。
如果我们扩展在中国对ooni.org的测量覆盖范围的日期范围(从今年年初开始),我们可以更清楚地看到以前的大多数测量都是成功的(偶尔会有一些异常),而从2023年7月7日开始,失败和异常测量的比例增加了(如下图所示)。
上图不仅表明中国在2023年7月7日开始封锁对ooni.org的访问,还表明他们可能还开始封锁我们的后端服务,阻止OONI测量的提交。与之前的几个月相比,过去两周的测量覆盖范围下降,这一点暗示了这一点。我们将在报告的下一部分进一步探讨这个问题。
使用我们的Web连接性v0.5实验收集的数据说明了https://ooni.org的封锁情况。查询密钥显示使用系统和8.8.8.8:53/udp解析器进行DNS查找返回以下表中的值。
IP地址 AS号码 组织
2a03:2880:f12c:183:face:b00c:0:25de 32934 Facebook, Inc.
202.160.130.52 13414 Twitter Inc.
111.243.214.169 3462 Chunghwa Telecom Co., Ltd.
2001::caa0:80d2 N/A(bogon) N/A(bogon)
前三个IP地址显然对于ooni.org域名是错误的(托管在AS16509上),第四个IP地址是一个bogon IP地址(即不应该出现在公共IP网络上的IP地址)。向DNS查询注入属于大公司(如Facebook)的似乎随机的IP地址以审查DNS查询是中国防火墙的典型做法。
OONI数据显示测试助手无法连接到第二个和第三个IP地址。由于第四个IP地址是bogon,测试助手甚至不会尝试建立连接。测试助手可以连接到第一个IP地址,但显然TLS握手失败,因为给定的Facebook IP地址无法为ooni.org域名显示有效的X.509证书。
除了尝试使用TLS验证探测到的IP地址外,测试助手还为域名提供了有效的IP地址。在此测量实例中,测试助手将99.83.231.61和75.2.60.5返回给探测器。反过来,探测器使用这两个地址,但在TLS握手期间都失败了。
我们的DNS-over-UDP客户端在接收到第一个响应后会等待一段时间以获取重复的DNS响应。在此测量中,我们收到了发送到8.8.8.8:53/udp公共DNS解析器的每个DNS查询的两个重复响应。以下表格显示了我们收到的额外响应(其中第一个接收到的响应为1,第一个重复响应为2,依此类推)。
域名 类型 计数 地址 AS号码 组织
ooni.org AAAA 2 [ 2001::a27d:601 ] N/A(bogon) N/A(bogon)
ooni.org A 2 [ 108.160.165.173 ] 19679 Dropbox Inc
ooni.org AAAA 3 None N/A N/A
ooni.org A 3 [ 75.2.60.5, 99.83.231.61 ] 16509 Amazon
每个查询的第三个响应(第二个重复响应)包含正确的结果。这一事实强烈暗示存在中间盒子在合法响应到达探测器之前对查询进行响应,这是中国防火墙的众所周知的审查特性。
总结一下,我们得出结论,https://ooni.org/被DNS注入和TLS干扰的方式封锁。DNS封锁包括注入包含无效IP地址的响应。TLS封锁包括干扰TLS握手并重置TCP连接。
此外,OONI数据显示https://ooni.torproject.org/也被封锁。封锁此URL的方法与上述封锁https://ooni.org/的方法相同,我们观察到DNS注入和连接重置对TLS握手的干扰。
封锁OONI Probe
中国似乎还试图阻止OONI Probe用户提交测量数据。首先,这一点可以从过去两周中国OONI测量覆盖范围的大幅持续下降中推断出来。
测量覆盖范围的下降表明,中国的大多数OONI Probe用户可能无法再提交测量数据进行发布。这一点尤其表明,以前每天从中国收集到的测量数据量更大,并且过去两周内测量覆盖范围的下降一直持续存在。我们还观察到从2023年7月7日开始的Web连接性测量失败数量的总体增加,这与ooni.org封锁开始的日期相关。
要封锁OONI Probe,中国的ISP必须封锁我们的后端服务,阻止OONI Probe用户提交测量数据。因此,我们分析了通过使用Snowflake作为代理收集的与我们的API和测试助手相关的OONI数据。
以下表格总结了我们的发现。
测量 目标域名 bogons 错误地址 TCP/IP封锁 TLS封锁
数据 api.ooni.io ✔️ ✔️ ✔️
数据 0.th.ooni.org ✔️ ✔️ ✔️
数据 1.th.ooni.org ✔️ ✔️ ✔️
数据 2.th.ooni.org ✔️ ✔️ ✔️
数据 3.th.ooni.org ✔️ ✔️ ✔️
数据 dkyhjv0wpi2dk.cloudfront.net ✔️
bogons、错误地址和TLS封锁的审查条件与上述封锁https://ooni.org/的情况完全相同。实际上,我们可以将封锁https://ooni.org/的特征描述为bogons、错误地址和TLS封锁。TCP/IP封锁的审查条件表示我们无法建立TLS连接。成功表示我们可以成功与服务器通信。
api.ooni.io、0.th.ooni.org、1.th.ooni.org和2.th.ooni.org域名的封锁方式与ooni.org的封锁方式相同。
3.th.ooni.org域名与ooni.org不同之处在于DNS响应不包含bogons,而只包含与3.th.ooni.org域名无关的IP地址。此外,测试助手的IP地址也被TCP/IP封锁。我们不清楚为什么他们选择通过IP封锁此测试助手,而没有对其他测试助手采取同样的措施。
通过手动测试,我们确认了SNI 3.th.ooni.org也被过滤,并且过滤规则似乎适用于ooni.org或ooni.io的任何子域名。
最后,我们的cloudfront端点dkyhjv0wpi2dk.cloudfront.net只在TLS握手期间被封锁。本地解析器返回的所有IP地址都是合法的。
规避
为了使全球范围内的OONI Probe用户能够规避对我们服务的意外或故意封锁,OONI Probe移动应用程序包括后端代理设置。通过这些设置,您可以启用Psiphon或使用自定义代理提交OONI测量数据。
中国的OONI Probe用户可以在Android上安装Orbot并配置其使用Snowflake。然后,他们可以编辑OONI Probe移动应用程序的后端代理设置,将其设置为使用自定义代理,并将其指向127.0.0.1:9050。
具体而言,可以通过以下步骤完成:
- 从Play商店安装Orbot或从GitHub下载APK。
- 打开Orbot并启用“使用桥接”选项。
- 选择“通过其他使用Snowflake的Tor用户连接(方法1-快速)”,然后点击返回按钮。
- 通过点击大洋葱标志启动Orbot,并等待它启动。
- 在OONI Probe中进入设置-> OONI后端代理。
- 选择“自定义代理”,并将主机名设置为127.0.0.1,端口设置为9050。
如果您运行OONI Probe,现在应该能够使用Orbot和Snowflake提交测量数据进行发布。
重要提示:运行OONI Probe可能存在风险,尤其是在中国。现在中国的ISP正在封锁OONI服务,因此在中国运行OONI Probe可能会引起更多关注并带来更大的风险。
结论
自2014年以来,OONI测量数据已经从中国收集,记录了该国先进和普遍的互联网审查水平。最近封锁我们的后端服务意味着在中国运行OONI Probe现在更加困难(可能也更加危险),导致过去几周OONI测量覆盖范围的显著下降。
我们对此封锁特别担忧,因为来自中国的OONI数据已经成为该国互联网审查的大型开放数据集。从2014年至今,收集了来自193个网络的800多万个测量数据,OONI数据为过去9年中国的互联网审查情况提供了独特的见解。如果OONI封锁继续下去,将限制研究人员今后研究中国互联网审查的能力。
因此,这一封锁突出了我们需要改进规避能力的问题。虽然OONI Probe包括用于规避意外或故意封锁的后端代理设置,但还需要更多工作来提高OONI Probe的韧性,以确保在被审查的环境中仍然可以进行审查测量。
致谢
我们感谢过去9年在中国运行OONI Probe的所有人。