英文原文来自 https://blog.torproject.org/blog/learning-more-about-gfws-active-probing-system

Roya, David, Nick, nweaver, Vern, 和我刚刚完成了关于GFW主动探测系统的研究。这个系统在几年前就被用来探测翻墙工具,比如Tor。我们在之前的博文中介绍过GFW主动探测系统是如何工作的。但有几个问题我们没有回答。比如这个系统的物理结构是怎样的。那些用来主动探测的IP是归GFW所有的么? 有猜测GFW短时间内劫持了部分IP来用来主动探测,但没有证据。这次研究回答了这些问题。

因为这个实验是网络检测,我们从收集数据开始。我们创建了3个数据库,包括了GFW主动探测的小时/月份/年份的数据。这3个不同时段的数据库让我们从不同角度了解GFW主动探测的工作原理。我们公开了其中的两个数据库,你可以重复我们的实验,或者自己分析。

  • 通常来说,如果Tor的某个网桥代理被GFW检测并封锁,它会一直被封锁。但是这意味着网桥代理完全无法访问吗? 我们让中国的VPS一直连接我们控制的网桥代理。我们发现,每25小时,中国的VPS可以短暂的连接到我们的代理网桥。下图显示了这个现象。每个数据点表示中国的VPS试图与网桥代理建立连接。中国联通和中国教育网都有这个周期性现象。有时候,网络安全设备在更新规则时会默认允许所有流量,但我们不知道GFW周期性现象是不是因为这个原因导致的。

  • 我们找到了规律,GFW主动探测的TCP头暗示那几千个IP都来自与同一个地方。下图显示了数据包的初始序号和时间。每个数据点都是一个主动探测连接。如果每个主动探测都是从不同地方发出的,我们应该看到随机的数据点,因为数据包的初始序号是随机选择的。但是下图显示主动探测连接虽然来自不同IP,但是非常有规律。我们认为主动探测的初始序号是按照时间产生的。

 

  • 我们发现GFW主动探测不仅仅针对了Tor。GFW还对 SoftEther 和GoAgent进行了主动探测。这说明主动探测系统是模块化的。GFW工程师能比较简单的对新翻墙软件改进主动探测功能。

  • GFW能(部分的)模拟  vanilla Tor protocol, obfs2, and obfs3 来主动探测网桥代理。有趣的是, node-Tor 因为是使用JavaScript 编写而导致不同的代码实现,从而对主动探测免疫。人为修改了Tor回复能躲避GFW的主动探测,但这应该不是长久之计。

  • 在2012年,主动探测系统每15分钟扫描一次。但现在,主动探测系统能实时扫描。平均来说,中国用户连接Tor网桥代理后半秒内就有主动探测连接。

  • 我们使用 traceroute 发现,GFW的主动探测系统是有状态的,但没有办法重组TCP流。

 

幸运的是,我们有 pluggable transports 来防止主动探测。ScrambleSuitobfs4 能使用预先分享的密钥来防止主动探测。 Meek 使用CDN来代理流量,虽然这不能阻止主动探测,但封锁造成的额外伤害会很大。我们在开发翻墙工具的同时需要注重可用性。大力开发的翻墙工具若很难使用,是没有价值的。这是用户界面的重要性所在。

最后,这是我们的论文数据库和代码,和研究页面。若你有任何问题和反馈,欢迎联系我们