西厢计划
西厢计划提供了一组工具,使得用户在进行一次设置之后能够以普通程序直连目标网络,从而避免中华人民共和国防火长城的关键字阻断、IP封锁、URL关键字过滤等影响。其命名是为了向中国古典文学史上翻墙的先驱者张生致敬。西厢计划现在已经达到alpha可用状态,在初步的测试中可以让用户以普通浏览器无障碍地直连Youtube。
目录 |
[编辑] 特性
西厢计划要解决防火长城造成的问题:TCP连接重置和DNS劫持(污染)、IP封锁、URL关键字过滤。为此西厢计划提供了两种特性:
- TCP连接混淆:在每次连接中,通过对防火长城的入侵检测系统进行注入,混淆连接,使得防火长城无法正确解析连接和检测关键词,从而在有关键词的情况下也避免连接重置。
- 反DNS劫持:通过匹配防火长城伪包的指纹并将其过滤,让用户以普通的客户端也能获得正确的解析结果。(用户需要设置DNS为没有被污染的DNS,例如8.8.8.8等)
- 利用GFW的单向IP封锁特性,将发出的数据包通过国外的第三方服务器中转,而收到的数据包穿过GFW直接到达客户端。当用HTTP方式观看在线视频或下载大文件时,对中转服务器仅耗费极小的流量。同时,由于GFW只能捕捉到单向的流量,无法建立TCP状态机,关键词过滤也就失效了。
西厢计划不是代理,不是VPN,无需加密,使用时不需要第三方支援,不需要绕道,让用户能够以最优的性能直连目标,使用时不需要运行特别的程序。西厢计划利用现有工具,仅要求用户能够使用iptables进行快速配置,学习难度低。
西厢计划目前能够让用户直连Youtube和其他Google服务,还有更多潜力可以发掘。
[编辑] 原理简介
西厢计划采取了T. Ptacek等在1998年的论文Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection中提出规避入侵检测的注入方法。注入法是指发出特制报文,使得这些报文对对方没有效果,但是让入侵检测系统错误地分析协议,从而让其错误地认为连接被提前终止了。由于防火长城的TCP栈非常简陋,因此我们可以直接利用防火长城的TCP栈的特性,对任何遵守RFC的目标主机都采取特定特殊措施,让防火长城无法正确解析TCP连接,从而避免关键词监测。
[编辑] 局限
西厢计划的连接混淆功能对于基于IP地址的封锁和其他无状态的封锁不能生效,因为它需要通过注入攻击改变防火长城的连接状态,如果封锁与连接状态无关便无法进行连接混淆。另外,连接混淆的实现假设连接双方遵守RFC。有一些目标主机或者防火墙不遵守RFC,可能导致正常不含关键词的连接被对方终止或者忽略。因此我们特别使用ipset,把作用范围限制在需要的地址段(比如Google),以避免不必要的问题。
西厢计划目前依赖Linux内核的netfilter功能,因此要求用户平台是Linux,在Windows平台上也有相关的移植,但是相比Linux的版本还是比较少的。当前在Windows下的最新版本是0.04,采用NDIS驱动,基于Microsoft的Passthru源代码和WestChamber Linux ver源代码完成。已经能支持64位系统。
西厢计划所用的防火长城伪包指纹可能在此项目发布之后被防火长城更改,因此用户可能需要使用最新的版本才能让功能生效。
[编辑] 资料出处
- http://code.google.com/p/scholarzhang/wiki/README
- 自由亚洲电台. "西厢计划":中国破网技术新突破(组图). 2010-03-11 [2010-3-18].
[编辑] 外部链接
|
|||||||||||||||||