? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

中囯网絡審查技術評論

總結:网絡審查主要是為了維穩(混淆視聽、拆散人心),而不是宣傳(臉上貼金)

Follow in NewsfeedFollowing

Latest comments:

Add new post

Title

21 hours ago · 2 min read·
3 comments
Body
Read more

Not found

网络封锁攻防战:翻墙技术的进化史

on Sep 25, 2018 · 2 min read

新时代的防火墙像手术刀,精准迅速,直击命门。以前干掉的是制造和售卖梯子的人,现在连设计梯子的人也要干掉。原本,互联网让知识可以扁平传递,现在「屠梯」行动恐将人们逼回「口耳相传」的模式。未来,「翻墙」可能是一种手艺,如何传承,任重道远。

中国国家防火墙


早期网络封锁

最早的封锁大约是「DNS 投毒」和「IP 黑名单」。

具体来说就是对于特定域名比如 google.com,浏览器解析不到正确的 IP 地址。即使碰巧解析到了正确的 IP 地址,由于 Google 在亚洲地区的 IP 地址就那么几个,发往这几个 IP 地址的数据包被全部丢弃(或 TCP Reset),也就导致了用户死活访问不到 google.com。

由于被封的 IP 依然是少数,而 Google 在全球的 IP 数量庞大,于是网友们很快想到了解决方案,就是使用 hosts 指定 IP 地址。虽然亚洲地区的 IP 被封了,但美国、欧洲甚至是南美洲依然有可以访问的地址,速度慢是慢了点,但总比上不去的好。于是修改 hosts 文件 文件这个方案流行了那么一段时间。

后来封锁升级了,不是针对 IP 地址的了,而是针对每一个网络连接。受限于为数不多的几个出入境节点,网民的每一个出境网络连接实际上都被扫描过一遍。于是网络协议最初设计时,并未考虑封锁这回事,无论是 HTTP 还是 HTTPS,只需要扫描每个连接的前几十个字节,就可以得到其目标地址的域名。HTTP 是通过其 Host 头,而 HTTPS 是通过 SNI

至此,针对域名,没有封不掉的,只有不想封的

三种代理模式

在直线连接几乎不可能的之后,那就只能绕路了,也就是代理。代理的主要三种模式是 SocksHTTPVPN

三种模式各有利弊:

  • Socks 可以代理 TCP 和 UDP 连接,但其数据包是明文的;

  • HTTP 可以有 TLS 加持,但只能代理 TCP 连接,对 UDP 无效;

  • VPN 可以代理包含 TCP / UDP 在内的各种连接,但流量特征非常明显;

然后 Shadowsocks 横空出世。

Shadowsocks 本质上是 Socks 的加密版本,可选择多种加密方式。一旦加了密,其传输的数据就无法被第三方检测了。并且 Shadowsocks 在转发数据之前,可以对其目的地进行判断,从而达到一个全局较快的连接速度,比上述的几个代理方式都要好。

网络连接检测

由于 Shadowsocks 太过火爆,其作者被公安机关约谈,勒令不得继续参于相关项目的开发。

中国那么多人,要把相关人员一一找出来喝茶,也不是一件容易的事。封锁这事,还得从网络连接着手

对于一台国内的机器往一个国外的服务器发送数据的网络连接,有两种检测方式,被动式和主动式。

被动式是指检测方只观察连接中传输的内容,当内容符合某种模式(比如关键字)的时候,就把连接中断,或者服务器 IP 列入黑名单。上述的所有封锁方式均为被动式。

而主动式指的是,当观察到一个不可识别的连接时,检测方主动发起一个去往服务器的连接,通过一些编造的数据,探测出服务器是不是一台代理服务器。

找出对方的漏洞

Shadowsocks 协议曾被指出一个严重的安全性问题。只需要不到 16 次主动探测,就可以 100% 断定服务器是否在运行 Shadowsocks。

具体来说,初版 Shadowsocks 协议依赖于连接头部的某一个字节来读取目标地址,这个字节的取值只有三种。当这个字节的取值不合法时,Shadowsocks 会快速中断连接,否则继续读取剩下的内容。于是这一特征可被用于探测一个服务器是否为 Shadowsocks 代理。

为了应对这一探测方式,V2Ray 使用了自行研发的 VMess 协议,增加了类似于 SSR 的混淆,伪装常见流量,令识别更困难。

既然代理工具有漏洞,那么检测工具也一会有漏洞。只要发现并利用这些漏洞,一样可以突破封锁。

曾经有一个项目「西厢计划」,就是利用了检测工具的漏洞,伪造了一些数据包,使它在检测方看上去像一个网络连接,但在目的服务器看来又是另一回事。检测方以为自己已经封锁了该连接,但实际上并没有。

和代理工具的升级一样,检测方的算法也一样可以升级。西厢计划最后发布的一个版本由于防火长城的更新而无法使用了。

数据流量伪装

从信息学的角度来说,Shadowsocks 协议是一个近乎完美的协议。它的数据完全随机,无法 100% 确定这个网络连接是否为 Shadowsocks。

但从另一方面来说,网络数据并不是均匀分布的,保守来说,HTTP 和 HTTPS 流量占据了 70% 以上。而如果一个服务器接收的流量 90% 是杂乱无章的,那么它就很可疑了。虽然检测方不能严格证明那就是 Shadowsocks,但当局的铁拳并不会跟你讲道理。

既然随机数据可疑,那我们就把数据伪装成 HTTP 或者 HTTPS 好了。由于 HTTPS 是大势所趋,并且 HTTPS 传输的内容难以被破解,把代理数据伪装成 HTTPS 也是一个比较合理的选择

由于检测方无法判断一个 HTTPS 连接是正常的网站流量,还是代理。如果封锁所有的 HTTPS 流量,那无疑是一个杀敌五百,自损一千的昏招。当然急病乱投医也是有可能的……

虽然流量经过了加密,但加密的只是内容,不能排除还有其它的特征。比如 TLS(HTTPS 所用的加密协议)的握手环节,客户端和服务器互相发送的数据是有规律的。

对于检测方是否足够强的技术做类似的检测,以及是否有足够的把握只封代理都存在疑惑。但毫无疑问,这将是下一个值得研究的领域。

分布式代理

这一领域已经被 Lantern 证明为成功或者失败了,取决于你怎么看待 Lantern

虽然 P2P 这一术语最近很热,听上去也很有希望,但实际上它并不适用于翻墙。

翻墙的过程需要【墙内的 Peer】对应【墙外的 Peer】,并不是任意两个 Peers 都可以自由组合的。而【墙内的 IP】往往远多于【墙外的 IP】,造成网络拥堵几乎不可避免。

目前对翻墙 P2P 的研究和应用都比较少,前景并不明朗,只能保持观望

动用行政手段

借助强大的国家机器,从源头上消灭翻墙工具,制造恐怖,令网民无法接触到自由网络。

翻墙软件开发者和使用者被警方骚扰的消息不断传出。以前干掉的是制造和售卖梯子的人,现在连设计梯子的人也要干掉。

GoAgent 的作者也清空了在 GitHub 的主页,只留下了一句话:「Everything that has a beginning has an end」(天下没有不散的筵席)。

围绕防火长城展开的技术多年来一直在不断的博弈,但当技术解决不了燃眉之急时,简单粗暴的行政手段才是最终的大杀器

即使在 ShadowSocks 原作者迫于当局压力删除了 GitHub 上公开代码的情况下,ShadowsocksRV2Ray 等众多分支也在其他开发者的维护下持续发展和演进。

而这一切,当局也都在密切地关注着

https://www.pin-cong.com/p/135942

1 Comment:

user_name1 day ago
Reply
Body
polar2on Jan 05, 2019
Reply

2018 - 2019 最新翻墙方法汇总——翻墙原理及完全教程
https://studymakesmehappy.blogspot.com/2018/06/2018.html

本站唯一地址:12ddrrRKkABAWTU48ZL3THfypHtVJ3aVF5
域名短网址(可能會被篡改):ChineseCensorship.bit
This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More