Oct 27, 2009

深入理解GFW:总论

GFW,Great Firewall of China,防火长城,通常把它看作一个国家级的网络审查系统。关于网络审查,人们通常首先会有一番政治性的话要说,不过政治批评这个角度的言论实在是过多,GFW的实体在“GFW”这个这个巨大的外壳之下隐藏了多年,人们只是对着“GFW”这个词空发怒气却并不知道它究竟是什么。实际上GFW除了是一个让网民十分不舒服的系统之外,在技术上它还是一个非常复杂有趣的黑箱,一个通关奖品是网络自由的解谜游戏。接下来一段时间我们便会对GFW进行深入的探索和理解,大家很快就会了解到它的趣味。提示:阅读此“深入理解GFW”系列之前建议读者对TCP/IP协议族、网络安全、反向工程有基本的了解。

GFW的技术结构

知己知彼,百战不殆,我们应该先对GFW有清晰的技术性认识。防火长城条目称GFW的主要技术是域名劫持、IP封锁、关键字过滤阻断、HTTPS证书过滤。实际上这些技术在实现上可以归结为两种技术:IP封锁和入侵检测,其中入侵检测是核心。IP封锁因为比较底层,接近于切光缆拔网线,没有什么技术可言,这种封锁实施以后除了绕道而过也没有更好的解决办法。而入侵检测则是GFW最为强大灵活的功能。

传输层的TCP和UDP解析都是入侵检测业界的标准配置。UDP通常用来做DNS查询劫持,一个附加效果就是国内的域名缓存充满了麤。TCP主要用作阻断,方式很多了,总之只要把攻击者的连接关闭掉/阻止攻击者进行连接就行了。应用层就更加百花齐放了,因为解析一个协议实在不是一件困难的事情。所谓的SSL证书拦截也不过是稍微做了一下SSL/TLS协议的解析而已,并无神秘之处。这就是入侵检测的强大之处。

入侵检测的灵活之处在于它的部署和撤销都很便捷无副作用无延迟,匹配精确无误伤。举一例,要防止一些反动软件通过https访问google docs获取信息,怎么做?在应用层检测证书显然是杀鸡用牛刀浪费性能了;用动态路由封特定IP的特定端口是不行的,因为解析结果在不断地变,动态路由的变化跟不上;用域名污染更不行了,把80端口的web业务也搞掉了,影响太大;所以就在传输层乱发RST做无状态的连接阻断,写个脚本定时更新解析结果,这也就是google的数据中心只有在中国解析出来的那部分被封掉的原因。什么时候领导对谷歌的红包满意了,随时撤掉。

GFW的设备有两种,一种是在北京、上海、广州搭在总交换中心上做旁路监听的入侵检测设备,一种是放在ISP那里的动态路由设备。一般来说入侵检测总是比动态路由来得灵活,所以RST要比封IP更常用。另外,碰到网站无法访问然后traceroute发现线路死在ISP骨干上于是责怪ISP,这是不合理的。中国的ISP的一项主要业务就是接待各个强力部门的插入,纪检、军队、公安之类的部门都会长期插入。

GFW的工作方式

GFW的日常工作方式:当国新办发现了反动文宣,当公安部十一局发现了色情图片,当版署发现了海盗网站,总之当有关部门发现了有害非法信息,就发指令给GFW,然后GFW的政策部门研究一下采取怎样的具体封锁措施为宜,然后将具体操作交给技术部门执行封锁。解封也是一样的渠道,简而言之就是领导一句话胜过千军万马,至于让领导发这一句话靠的就是PR了。举一例,受到NED暗中操控的twitter长期以来充满反动有害信息,但做技术的人都明白twitter的这种架构是没有办法封的。对twitter.com什么办法都用了,效果不大好,结果领导不满意地催促了。这个交不了差是很严重的事情啊,怎么办呢,就对twitter搞破坏吧。凡是跟twitter有关的第三方网站,见一个斩一个,领导你看我都把twitter诛九族了,这已经是自古以来用刑的极致了。再举一例,如何封掉一个网站?先在这个网站上放置一些有害非法信息,再去违法和不良信息举报中心(后台国新办)举报之,等十天就成了。

GFW的研发方式:“国家信息安全管理系统”建设的历史参见《阅后即焚》。当有关部门发现了一个反革命翻墙方法,就告诉GFW,然后GFW的逆向工程人才研究一下这个方法的工作方式,找到它的特定模式和弱点,制定相应的封锁预案。当有关部门指示实施封锁的时候,预案便付诸实施。p2p方面的反动软件比较不好办,于是在第一生产力院成立242项目“P2P协议分析与测量”专门研究之。

GFW实体是安管中心(CNCERT/CC),是事业单位。一个事业单位的政治地位可以想是很低的,凡是它的上级都可以向它下指令进行网络封锁,而它本身则没有任何主观能动性,专于业务,勤勤恳恳抓好国家安全基础设施的建设。如果转换角度,从GFW的视角来考虑,那么GFW所做的事情其实并不神秘,其实恰恰符合了它自己的名义。我们来看看精美的“宽带网络环境下恶意代码监测系统”,你们这些反革命访问一下blogger、wordpress那就是URL攻击啊,而且要比一般的钓鱼攻击和病毒更严重,因为危害的是党和国家的安全啊。GFW的研发也与一般的网络安全公司所做别无二致,监视分析网络流量,逆向工程有害软件,阻断恶意攻击,区别只在于:GFW为了国家安全也要处理一下你们这些反革命的攻击;另外GFW还开了金钱无限、人口无限和无敌秘笈。

GFW与网民的生态系统

政府、GFW与网民构成了一个生态系统,政府与GFW共生于食物链的上端,网民处于食物链的下端。有人称之为“猫和老鼠的游戏”。观GFW与网民的互动历史,可以归结为相互提升技术水准的军备竞赛,但尽管如此两者的关系也从来没有打破GFW越来越善于主动追捕网民越来越善于被动逃避的模式。从最开始的普通HTTP代理、SOCKS代理,到以自由门为代表的一批加密代理软件,到种类繁多的网页代理,到VPN、SSH代理,到p2p网络,以及混合方法。然而这些方法都未曾彻底免于GFW的封锁,这是因为GFW很善于进攻,而网民们迄今为止只会不断地四处寻找新的逃避办法。

这种互动模式的问题在于,随着军备竞赛的继续,GFW越来越完善越来越强大,而网民不断地失去手中的牌,翻墙的难度和成本越来越高。GFW是这个领域(网络安全)的专业人士,而网民虽然富有群体智慧,但是其技术能力缺乏有效组织不能与GFW对等。因此如果稍微看得远一些就会了解到,这种模式对于网民来说是不可持续的,总有一天GFW会超过绝大多数网民的技术基准线。所以,唯一的出路便是改变方式,突破这种模式。

应对GFW

网民突破当前被动态势方法的基本原理,在后面的章节中我们会看到,在于利用GFW在善于进攻的同时不善于防守的特点。与其把GFW看作国家网络暴力机关,不如把GFW看作一个网络安全机构,事实上它也是一个网络安全机构(CNCERT/CC)。任何安全系统必然都有漏洞和弱点,它所提供的这个GFW安全解决方案(国家信息安全管理系统)也不例外。网民并非缺乏技术,而是技术没有得到有效组织,没有往这个方向进行有效投射。实际上GFW漏洞和弱点并不少,有一些甚至是理论上无法解决的,这在以后会详细论述。正如《阅后即焚》一文所言,GFW尽管是中国少有的顶尖科研力量与国家强力支持结合的产物,“但也无法摆脱山寨的本性——做一个东西出来很容易,但是要把这个东西做得细致严格就不行了”。

更进一步,除了利用GFW本身的问题以外,网民甚至还可以考虑采取网络正当防卫的方式阻止GFW的非法行为。像GFW这种机构,无行政立法,无舆论监督,无申诉渠道,被少数别有用心的人利用,滥用国家安全之名义,封锁与国家安全毫无关系的网站,对合法的网络通信进行干扰和攻击,“对计算机信息系统正在进行传输的合法数据进行篡改,向计算机信息系统进行攻击令其无法正常运行”,甚至曾多次造成全国性网络故障,已触犯《中华人民共和国刑法》第二百八十六条,情节特别严重,后果特别恶劣,云云。

然而另一方面,GFW与网民之间已经或者即将形成某种稳态,这种稳态是双方斗争状况下的动态平衡,是需要有意识维护的。一个无法控制的网络是无法被政府所容忍的,当网络无法控制时政府是不吝于切断一切网络的(你一定知道我在说什么),稳态的破坏也就意味着环境的毁灭。一个理想的稳态就是网络处于“看起来”可以控制的状态,让GFW处于不断取得小型封锁成功的虚幻胜利感之中,网民个人各自掌握非中心化的翻墙方法。一个中心化的大众翻墙方法(最典型的例子就是设置hosts静态解析)必定无法避免被当局发现并被GFW封锁。下一代的翻墙方法应该是去中心化的(p2p)、小众的、多样化的、混合型的、动态更新的。

参考文献

有两篇重要文献在这里要推荐。

首先是Thomas Ptacek等在98年发表的Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection。这篇是在入侵检测领域具有里程碑意义的论文,是论述入侵检测原理性漏洞的集大成者。其简明介绍早在07年就出现在英文维基,非专业人士可以一睹为快;专业人士建议仔细阅读原文,以后关于探索GFW漏洞的技术都基于此篇论文所描述的原理。

另外一篇是《阅后即焚:“GFW”》,是一份关于GFW的详尽的社会调查,澄清了大量关于GFW的误解,本文大量引用此文。这篇文章的重要性从侧面可以发现:前面引用过中文维基的防火长城条目,如果直接访问会发现,这个条目直接访问之后维基百科就被封锁了。这是有原因的,而且原因是可以找到的,寻找原因的方法将在以后几节介绍,这里长话短说原因就是:这个页面中含有一个关键词:“阅后即焚”。与一般的关键词不同,这个关键词很厉害,随便什么地方出现这个关键词都会引起有趣的现象,比如这里,这种现象通常被人们称为深度包检测。像法轮六四这样煽动颠覆的词语都没有成为深度检测关键词,这种顶级过滤的词很少,另一个例子就是GFW头号死敌的名字:“dongtaiwang.com”。一般来说,越是被禁止,就越有趣;越是被否认,就越接近真相。另外注意到,有一篇内容相似的文章《GFW的前世今生》,对比两者发现后者似乎被添加了一些不相关或者夸张性的文字,原文应该是首发在自曲新闻的前者。

在下一次的文章中我们将介绍GFW进行黑箱分析的方法,并得到一些有趣的结果。

Update:“阅后即焚”不再是全文关键词。

25 comments:

  1. GFW的前世今生这篇文章是从GFW blog上转载过去的,只不过名字标题改了

    ReplyDelete
  2. 期待楼主继续!

    ReplyDelete
  3. kevin 你说错了,所谓“GFW的前世今生”是山寨先前的“阅后即焚”,前世今生这篇文章错漏百出,建议阅读阅后即焚,阅后即焚独发于自曲新闻,是最早最原始的一篇,其实比较一下两者的发布时间就知道了。。。老实说GFW Blog上的文章基本都是转载的,很少原创的

    ReplyDelete
  4. “阅后即焚”这个词已经被取掉了。其实维基百科的[[阅后即焚]]条目就是一部电影,和GFW、政治没有任何关系。

    这件事反而在维基百科的互助客栈上闹了一阵,当时发现所有使用了电影组繁简转换的条目都不能打开,结果最后查出来就是繁简转换里写了“阅后即焚”惹的鬼。

    ReplyDelete
  5. 听前同事说起这个文章,今天闲得无聊上网来看下。感觉写这篇文章的老兄看来知道不少情况,但是有些东西的实情其实也并不清楚。举几个例子来说吧:
    1、GFW的经费可比金盾工程的多了不知道几十倍!
    2、方滨兴之流的根本就不是什么真正的技术专家,只是众多“叫兽”之一而已。(说实话,就方滨兴、云晓春、刘欣然之流的,他们那点儿技术水平都是给我当学生过来的。)
    3、GFW的技术水平其实就像作者所说的那样,发现特征、阻断,不行的话就封IP,根本谈不到什么高水平。
    4、CNCERT的技术支持一直就是启明星辰,连工作人员都是从启明星辰借调的。

    ReplyDelete
  6. 来围观一下楼上的~~~

    ReplyDelete
  7. 看了,这篇文章很有实际意义应该推广。

    ReplyDelete
  8. 来围观一下楼上的~~~

    ReplyDelete
  9. “听前同事说起这个文章,今天闲得无聊上网来看下。感觉写这篇文章的老兄看来知道不少情况,但是有些东西的实情其实也并不清楚。举几个例子来说吧:”
    这个傻逼,操你妈的傻逼

    ReplyDelete
  10. I think that thanks for the valuabe information and insights you have so provided here. Watch The Sims 4 channels streaming live on Twitch. Sign up or login to join the community and follow your favorite The Sims 4 streamers! sims 4 news

    ReplyDelete
  11. This is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the leisure here! Keep up the good work. I have been meaning to write something like this on my website and you have given me an idea
    Latest Ind Govt Jobs
    I am impress with your writing skill. Overall content is attractive and best for new bloggers. Thank you so much for sharing such kind of information. These sites let you sell a myriad of items, both new and used. Collect together gently worn clothes from your closet. I am also great full to all comments which shows nice information. Thanks again - Visit >>
    Ind Sarkari Job

    ReplyDelete
  12. Hello, If you are searching Fulltime or Partime jobs, you can follow or visit to apply jobs
    Dockworker Jobs
    Mechanic Jobs
    Internship / Intern Jobs
    Sales and Marketing Jobs
    Data Entry Jobs

    ReplyDelete