转载:Shadowsocks是如何被检测和封锁的

合法连接与主动探测的关系

我们让客服端每5分钟对Shadowsocks服务器进行16次连接。虽然我们的服务器触发了大量的主动探测,但不知为何,其并未被GFW封锁。

Shadowsocks是如何被检测和封锁的

上图显示在客户端与服务器有通讯的时间里,服务器会收到主动探测。当合法客户端与服务器的通讯停止下来后,大部分的主动探测也停了。值得指出的是,每小时中主动探测的数量并非固定值,与合法客服端的连接数目比也并非1:1。

主动探测的延迟性

GFW的主动探测系统可以将合法连接的载荷保存下来,然后延迟一段时间再发起一个新的连接进行重放。下图显示了合法连接与重放攻击之间的延时关系。由于一个合法的载荷可能被多次重放(某一次实验中观察到的最大值为47次),我们呈现两组关系:桔黄色的线代表基于一个合法载荷的第一次重放;蓝色的线代表所有基于重放的探测(不限定为第一次)。

结果显示多于90%的重放攻击发生在合法连接发送后的一小时之内。观察到的最短的延迟仅有0.4秒,而最长延迟竟有大约400小时。

Shadowsocks是如何被检测和封锁的

主动探测的源

我们在目前所有实验中总计观察到3,5477次主动探测。它们来自1,0547个不同的IP地址,IP地址均属于中国。

源自治系统。主动探测来源占比最多的两个自治系统 AS 4837 (CHINA169-BACKBONE CNCGROUP China169 Backbone,CN) 和 AS 4134 (CHINANET-BACKBONE No.31,Jin-rong Street,CN),分别为中国联通和中国电信的主干网。这一结果与之前对主动探测的研究一致。

Shadowsocks是如何被检测和封锁的

中心化结构。尽管这些主动探测来源于上千个不同的IP地址,有迹象显示它们的行为均受到一小撮进程的集中管控。下图显示了每个主动探测的SYN包所携带的TCP timestamp值。TCP timestamp是一个32位的计数器,其以固定的速度进行增长。其不是一个绝对值,而是一个取决于TCP实现和系统上次重启时间的相对值。下图显示这些来源于上千个独立的IP地址的主动探测,共享着很少量的TCP timestamp序列。在这次实验中,至少观察到9个不同的物理系统或进程,而绝大多数主动探测似乎来源于同一进程。我们说“至少”和“似乎”是因为如果两个或以上的独立进程的截距非常相近,那么我们可能把它们误认为一个进程。序列的斜率显示timestamp的增长速度为250HZ。

Shadowsocks是如何被检测和封锁的

  • 版权声明: 本文源自 互联网, 于4年前,由整理发表,共 4592字。
  • 原文链接:点此查看原文
你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!