我们专注服务于当下互联网基础设施建设与云计算、大数据时代的各种需求!

维基百科之“长城防火墙”(GFW)

前言:中国网民最无奈的一件事情大概是被迫翻墙才能在互联网上自由翱翔,因为GFW动用了国家最先进的技术和最大的财力耗费对中国進行全方位的信息封锁和过滤。不管GFW怎么折腾,众多翻墙软件的 一技之长已经使得GFW千疮百孔,在不久的将来,GFW的拙劣之举也许会成为现代文明历史中最恶劣的教训之一而遗臭万年,相关人员也会得到清算并受到应有 的惩罚。近日看到维基百科对GFW的详细注解,转载过来作为记录并与墙友们分享。以下是维基百科:防火长城词条的主要内容,因为注解太多,引用时没有注 解。有兴趣者可以参考原文。

防火长城(英语:Great Firewall,常用简称:GFW或功夫网,中文也称中国国家防火墙[1]、长城防火墙或万里防火墙)是对中华人民共和国政府在其管辖互联网内部创建的 多套网络审查系统(包括相关行政审查系统)的称呼。起步于1998年[2]。其英文名称得自于2002年5月17日Charles R. Smith所写的一篇关于中国网络审查的文章《The Great Firewall of China》[3],取与Great Wall(长城)相谐的效果,简写为Great Firewall,缩写GFW[4]。随着使用的拓广,中文“墙”和英文“GFW”已被用于动词,“GFWed”及“被墙”均指被防火长城所屏蔽。

一般情况下,防火长城主要指中国政府监控和过滤互联网内容的软硬件系统,由服务器和路由器等设备,加上相关的应用程序所构成。它的作用主要是监控网 络上的通讯,对认为不符合中国官方要求的传输内容,进行干扰、阻断、屏蔽。由于中国网络审查广泛,中国国内含有“不合适”内容的的网站,会受到政府直接的 行政干预,被要求自我审查、自我监管,乃至关闭,故防火长城主要作用在于分析和过滤中国境内外网络的信息互相访问。中国工程院院士、北京邮电大学校长方滨 兴是防火长城关键部分的首要设计师[1][2][5]。

然而,防火长城对网络内容的审查是否限制和违反了言论自由,一直是受争议的话题。也有报告认为,防火长城其实是一种圆形监狱式的全面监控,以达到自 我审查的目的[6]。而中国当局一直没有正式对外承认防火长城的存在,如当有记者在外交部新闻发布会上问及互联网封锁等问题的时候,发言人的答案基本都是 “中国政府鼓励和支持互联网发展,依法保障公民言论自由,包括网上言论自由。同时,中国对互联网依法进行管理,这符合国际惯例。”方滨兴曾在访问中被问及 防火长城是如何运作的时候,他指这是“国家机密”。其实中共喉舌-新华网有报道里曾涉及防火长城的监控,这从侧面证明其的确存在[7]。

中国还有一套公开在公安部辖下的网络安全项目——金盾工程,其主要功能是处理中国公安管理的业务,涉外饭店管理,出入境管理,治安管理等,所以金盾工程和防火长城的关系一直没有明确的认定。

目 录
————————————————–
1 主要技术
1.1 域名劫持
1.2 特定IP地址封锁
1.3 特定IP地址端口封锁
1.4 无状态TCP连接重置
1.5 特定TLS证书阻断
1.6 明文HTTP协议关键字过滤阻断
1.7 对破网软件的反制
1.7.1 间歇完全封锁国际出口
1.8 针对IPv6的封锁
1.9 对电子邮件通讯的拦截
2 硬件
3 会被过滤的网站
4 北京奥运与防火长城
5 逸闻
6 参见
7 参考文献
8 外部链接

主要技术

———————————————

域名劫

主条目:域名劫持

原理:防火长城对所有经过骨干出口路由的在UDP的53端口上的域名查询进行IDS入侵检测,一经发现与黑名单关键词相匹配的域名查询请求,防火长 城会马上伪装成目标域名的解析服务器给查询者返回虚假结果。由于通常的域名查询没有任何认证机制,而且域名查询通常基于的UDP协议是无连接不可靠的协 议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。而用户直接查询境外域名查询服务器(比如 Google Public DNS )又可能会被防火长城污染,从而在没有任何防范机制的情况下仍然不能获得目标网站正确的IP地址。[8]

从2002年左右开始,中国大陆的网络安全单位开始采用域名劫持(域名污染)技术,使用思科(Cisco)提供的路由器IDS监测系统来进行域名劫 持,防止了一般民众访问被过滤的网站,2002年Google被封锁期间其域名就被劫持到百度,而中国部分ISP也会通过此技术插入广告。对于含有多个 IP地址或经常变更IP地址逃避封锁的域名,防火长城通常会使用此方法进行封锁,具体方法是当用户向境内DNS服务器提交域名请求时,DNS服务器返回虚 假(或不解析)的IP地址。

全球一共有13组根域名服务器(Root Server),先前中国大陆有F、I这2个根域DNS镜像[9],但现在均已因为多次DNS污染外国网络,威胁互联网安全和自由而被断开与国际互联网的连接。[10][11]

2010年3月,当美国和智利的用户试图访问热门社交网站如 facebook.com 和 youtube.com 还有 twitter.com 等域名,他们的域名查询请求转交给中国控制的DNS根镜像服务器处理,由于这些网站在中国被封锁,结果用户收到了错误的DNS信息,这意味着防火长城的 DNS域名污染域名劫持已影响国际互联网。[12]

2010年4月8日,中国大陆一个小型ISP的错误路由数据,经过中国电信的二次传播,扩散到了整个国际互联网,波及到了AT&T、 Level3、Deutsche Telekom、Qwest Communications和Telefonica等多个国家的大型ISP。[13]

特定IP地址封锁

原理:相比起之前使用的控制访问列表(ACL)技术,现在防火长城采用了效率更高的路由扩散技术封锁特定IP地址。正常的情况下,静态路由是由管理 员根据网络拓扑或是基于其它目的而给出的一条路由,所以这条路由最起码是要正确的,这样可以引导路由器把报文转发到正确的目的地。而防火长城的路由扩散技 术中使用的静态路由其实是一条错误的路由,而且是有意配置错误的,其目的就是为了把本来是发往某个IP地址的报文统统引导到一个“黑洞服务器”上,而不是 把它们转发到正确目的地。这个黑洞服务器上可以什么也不做,这样报文就被无声无息地丢掉了。更多地,可以在服务器上对这些报文进行分析和统计,获取更多的 信息,甚至可以做一个虚假的回应。这些错误静态路由信息会把相应的IP报文引导到黑洞服务器上,通过动态路由协议的路由重分发功能,这些错误的路由信息可 以发布到整个网络。这样对于路由器来讲现在只是在根据这条路由条目做一个常规报文转发动作,无需再进行ACL匹配,与以前的老方法相比,大大提高了报文的 转发效率。但也有技术人员指出,从以前匹配ACL表到现在匹配路由表是“换汤不换药”的做法,依然非常耗费路由器的性能[14]。而且中国大陆共有9个国 际互联网出口和相当数量的骨干路由,通过这种方法封锁特定IP地址需要修改路由表,故需要各个ISP配合配置,所以其封锁成本也是各种封锁方法里最高的。

一般情况下,防火长城对于中国大陆境外的“非法”网站会采取独立IP封锁技术,然而部分“非法”网站使用的是由虚拟主机服务提供商提供的多域名、单 (同)IP的主机托管服务,这就会造成了封禁某个IP地址,就会造成所有使用该服务提供商服务的其他使用相同IP地址服务器的网站用户一同遭殃,就算是 “内容健康、政治无关”的网站,也不能幸免。其中的内容可能并无不当之处,但也不能在中国大陆正常访问。

20世纪90年代初期,中国大陆只有教育网、中国科学院高能物理研究所(高能所)和公用数据网3个国家级网关出口,中国政府对认为违反中国国家法律法规的 站点进行IP地址封锁。在当时这的确是一种有效的封锁技术,但是只要找到一个普通的服务器位于境外的代理然后通过它就可以绕过这种封锁,所以现在网络安全 部门通常会将包含“不良信息”的网站或网页的URL加入关键字过滤系统,并可以防止民众透过普通海外HTTP代理服务器进行访问。

特定IP地址端口封锁

原理:防火长城配合上文中特定IP地址封锁里路由扩散技术封锁的方法进一步精确到端口,从而使发往特定IP地址上特定端口的数据包全部被丢弃而达到封锁目的,使该IP地址上服务器的部分功能无法在中国大陆境内正常使用。

经常会被防火长城封锁的端口(均为TCP协议):

SSH的22端口;
VPN的1723端口;
TLS/SSL/HTTPS的443端口
在中国移动、中国联通等部分ISP(手机IP段),所有的PPTP类型的VPN都遭到封锁。

2011年3月起,防火长城开始对Google部分服务器的IP地址实施自动封锁(按时间段)某些端口,按时段对 www.google.com (用户登录所有Google服务时需此域名加密验证)和 mail.google.com 的几十个IP地址的443端口实施自动封锁,具体是每10或15分钟可以连通,接着断开,10或15分钟后再连通,再断开,如此循环,令中国大陆用户和 Google主机之间的连接出现间歇性中断,使其各项加密服务出现问题。[15] Google指中国这样的封锁手法高明,因为Gmail并非被完全阻断,营造出Google服务“不稳定”的假象,表面上看上去好像出自Google本 身。

无状态TCP连接重置

原理:防火长城会监控特定IP地址的所有数据包,若发现匹配的黑名单动作(例如 TLS加密连接的握手),其会直接在TCP连接握手的第二步即SYN-ACK之后伪装成对方向连接两端的计算机发送RST包(RESET)重置连接,使用户无法正常连接服务器。

这种方法和特定IP地址端口封锁时直接丢弃数据包不一样,因为是直接切断双方连接因此封锁成本很低,故对于Google的多项(强制)加密服务例如 Google文件、Google网上论坛、Google+和Google个人资料等的TLS加密连接都是采取这种方法予以封锁。

特定TLS证书阻断

原理:在TLS加密连接握手时,因为TLS证书是明文传输的,所以防火长城会阻断特定证书的加密连接,方法和无状态TCP连接重置一样都是发现匹配 的黑名单证书后通过伪装成对方向连接两端的计算机发送RST包(RESET)干扰两者间正常的TCP连接,进而打断与特定IP地址之间的 TLS(HTTPS,443端口)握手,从而导致TLS连接失败。但由于TLS本身的特点,这并不意味着与网站传输的内容可被破译。[16]
[编辑] 明文HTTP协议关键字过滤阻断
Firefox的“连接被重设”错误消息。当碰触到GFW设置的关键词后(如使用Google等境外搜索引擎),即可能马上出现这种画面。

原理:防火长城用于切断TCP连接的技术其实是TCP的一种消息,用于重置连接。一般来说,例如服务器端在没有客户端请求的端口或者其它连接信息不 符时,系统的TCP协议栈就会给客户端回复一个RESET通知消息,可见RESET功能本来用于应对例如服务器意外重启等情况。而发送连接重置包比直接将 数据包丢弃要好,因为如果是直接丢弃数据包的话客户端并不知道具体网络状况,基于TCP协议的重发和超时机制,客户端就会不停地等待和重发加重防火长城审 查的负担,但当客户端收到RESET消息时就可以知道网络被断开不会再等待了。而实际上防火长城通过将TCP连接时服务器发回的SYN/ACK包中服务器 向用户发送的串行号改为0从而使客户端受骗认为服务器重置了连接而主动放弃向服务器发送请求,故这种封锁方式不会耗费太多防火长城的资源而效果很好,成本 也相当的低,但因为中国大陆的出口流量非常庞大因此就算是防火长城拥有极强的计算能力也只会监控第一个发起的TCP连接从而节省资源。

2002年左右开始,中国大陆研发了一套关键字过滤系统。这个系统能够从出口网关收集分析信息,过滤、嗅探指定的关键字。普通的关键词如果出现在HTTP 请求报文的头部(如“Host: www.youtube.com”)时,则会马上伪装成对方向连接两端的计算机发送RST包(Reset)干扰两者间正常的TCP连接,进而使请求的内容 无法继续查看。如果防火长城在数据流中发现了特殊的内文关键词(如“falun”等)时,其也会试图打断当前的连接,从而有时会出现网页开启一部分后突然 停止的情况。在任何阻断发生后,一般在随后的90秒内同一IP地址均无法浏览对应IP地址相同端口上的内容。

2010年3月23日,Google宣布关闭中国服务器(Google.cn)的网页搜索服务,改由Google香港域名Google.com.hk提供 后,由于其服务器位于香港必须经过防火长城,所以防火长城对其进行了极其严格的关键词审查,致使Google搜索在中国大陆境内频繁出现无法访问或搜索中 断的问题。2011年4月,防火长城开始逐步干扰Google.com.hk的搜索服务。部分用户在Google.com.hk搜索时发现网页载入非常缓 慢或者提示“连接超时”,而在Google其它国家的域名(如Google日本,www.google.co.jp)上搜索时则完全不会出现此情况。有用 户指,这是防火长城为干扰Google的搜索服务而在一段特定时间内将中国大陆用户向Google.com.hk发送的数据包全部丢弃的结果,令中国大陆 用户和Google香港服务器之间的连接出现间歇性中断,但搜索服务并未被完全阻断,这也是令问题看上去好像出自Google本身。

对破网软件的反制

因为防火长城的存在许多境外网站无法在中国大陆境内正常访问,于是大陆网民开始逐步使用各类破网软件突破防火长城的封锁。针对网上各类突破防火长城 的破网软件,防火长城也在技术上做了应对措施以减弱破网软件的穿透能力。通常的做法是利用上文介绍的各种封锁技术以各种途径打击破网软件,最大限度限制破 网软件的穿透和传播。

而每年每到特定的关键时间点(敏感时期)防火长城均会加大网络审查和封锁的力度,部分破网软件就可能因此无法正常连接或连接异常缓慢,甚至中国境内和境外的正常网络连接也会受到干扰:

3月上、中旬(中华人民共和国的“两会”召开期间、3月14日参见2008年藏区骚乱)
6月4日(参见六四事件)
7月上旬(7月1日建党节、7月5日参见乌鲁木齐七·五骚乱)
10月1日国庆节

间歇完全封锁国际出口

从2011年5月6日起,中国大陆境内很多互联网公司以及高校、学院、科研单位的对外网络连接都出现问题,包括中国科学院。有分析指断网可能是因为 防火长城已经具有了探测和分析大量加密流量,并对用户IP地址执行封锁,而各大机构的出口被封也在其中。具体表现为:当用户使用了破网(翻墙)软件后,其 所在的公共网络IP地址会被临时封锁,所有的国际网站都无法访问,包括MSN、ITunes Store等,而访问国内网站却正常,但如果使用境外的DNS解析域名则将会由于DNS服务器被封锁导致无法解析任何域名,国内网站也会无法打开 [17]。也有分析指,此举是中国当局在测试逐步切断大部分人访问国际网站的措施,以试探用户反应并最终达到推行网络“白名单”制,也就是凡没有在名单上 的企业或团体其网络域名将不能解析,一般用户也无法访问[18]。而《环球时报》英文版引述方滨兴指,一些ISP必须为自己的用户支付国际流量费用,因此 这些公司“有动机”去阻碍用户访问国外网站。一位工信部官员说,用户碰到这些情况应先检查自己和网站的技术问题。[19][20]

针对IPv6的封锁

IPv6(互联网通信协议第6版)是被指定为IPv4继任者的下一代互联网协议版本。在IPv4网络,当时的网络设计认为在网络协议栈的底层并不重 要,安全性的责任在应用层,但即使应用层数据本身是加密的,携带它的IP数据仍会泄漏给其他参与处理的进程和系统,造成IP数据包容易受到诸如信息包探测 (如防火长城的关键字阻断)、IP欺骗、连接截获等手段的攻击。虽然用于网络层加密与认证的IPsec协议可以应用于IPv4中,以保护IPv4网络层数 据的安全,但IPsec只是作为IPv4的一个可选项,没有任何强制性措施用以保证IPsec在IPv4中的实施。IPv6协议默认开启IPSec保护, 在IPv4实施的关键字过滤基本不能继续实现。

方滨兴在他的讲话《五个层面解读国家 信息安全保障体系》中说:“比如说Web 2.0概念出现后,甚至包括病毒等等这些问题就比较容易扩散,再比如说IPv6出来之后,入侵检测就没有意义了,因为协议都看不懂还检测什么。”[21]
[编辑] 对电子邮件通讯的拦截

2007年7月17日,大量使用中国国内邮件服务商的用户与国外通信出现了退信、丢信等普遍现象[22],症状为:

中国国内邮箱给国外域发信收到退信,退信提示“Remote host said: 551 User not local; please try ”
中国国内邮箱用户给国外域发信,对方收到邮件时内容均为“aaazzzaaazzzaaazzzaaazzzaaazzz”。
中国国内邮箱给国外域发信收到退信,退信提示“Connected to ***.***.***.*** but connection died. (#4.4.2)”
国外域给中国国内邮箱发信时收到退信,退信提示“Remote host said: 551 User not local; please try ”
国外域给中国国内邮箱发信后,中国国内邮箱用户收到的邮件内容均为“aaazzzaaazzzaaazzzaaazzzaaazzz”。

对此,新浪的解释是“近期互联网国际线路出口不稳定,国内多数大型邮件服务提供商均受到影响,在此期间您与国外域名通信可能会出现退信、丢信等现 象。为此,新浪VIP邮箱正在采取措施,力争尽快妥善解决该问题。”而万网客户服务中心的解释是“关于近期国内互联网国际出口存在未知的技术问题导致国内 用户与国外通信可能会出现退信、丢信等普遍现象,万网公司高度重视,一直积极和国家相关机构汇报沟通,并组织了精良的技术力量努力寻找解决方案。” [23]

于是有网友推测由于GFW会过滤进出邮件,当发现关键字后会通过伪造RST包阻断连接。因为这通常都发生在数据传输中间,所以会干扰到内容。也有网友根据GFW会过滤进出境邮件的特性,查找GFW在Internet的位置。[24]

硬件

据估计,防火长城可能拥有数百台曙光4000L服务器[25]。另外,思科公司也被批评参与了中国网络审查机制。

防火长城(北京)使用曙光4000L机群,操作系统为Red Hat系列(从7.2 到7.3 到AS 4),周边软件见曙光4000L一般配置
防火长城实验室(哈尔滨工业大学)使用曙光服务器,Red Hat操作系统
防火长城(上海)使用Beowulf集群。GFW是曙光4000L的主要需求来源、研究发起者、客户、股东、共同开发者。2007年防火长城机群规模进一 步扩大,北京增至360节点,上海增至128节点,哈尔滨增至64节点,共计552节点。机群间星型千兆互联。计划节点数上千。

有理由相信防火长城(北京)拥有16套曙光4000L,每套384节点,其中24个服务和数据库节点,360个计算节点。每套价格约两千万到三千万,占 005工程经费的主要部分。有3套(将)用于虚拟计算环境实验床,计千余节点。13套用于骨干网络过滤。总计6144节 点,12288CPU,12288GB内存,峰值计算速度48万亿次。
2 GHz CPU的主机Linux操作系统下可达到600Kbps以上的捕包率。通过骨干网实验,配置16个数据流总线即可以线速处理八路OC48接口网络数据。曙 光4000L单结点的接入能力为每秒65万数据包,整个系统能够满足32Gbps的实时数据流的并发接入要求。有理由相信GFW的总吞吐量为 512Gbps甚至更高(北京)。

会被过滤的网站

参见:中华人民共和国被封锁网站列表

所有境外的网站都会受到关键词过滤的影响,扫之出现暂时不可访问的情况。以下这些类型的网站被封锁的主要原因是因为其网站上发布中国政府不能接受的 政治内容或未经国内政治审查过的新闻(比如中国2003年的SARS事件在中国政府揭露事实真相前关于SARS的相关报道和讨论)等方面的内容,有些综合 性或技术性的网站只是含有少量的或可能牵涉到这些信息而被整体封锁。

被固定封锁或干扰的网站类型包括:

部分成人色情论坛和网站
所有涉及民运、法轮功或具有法轮功背景的以及在中国大陆被查禁的宗教的网站
大部分国际人权及中国大陆维权组织的网站
台湾的部分政府网站
部分香港泛民主派和台湾政党网站(香港自由党、香港公民党、台湾民进党等)
大多数国际广播电台的中文网
大多数香港、澳门和台湾的综合(门户/入口)网站中提供新闻的分站甚至与政治毫无关联的学术网站
大多数港澳台的热门论坛或讨论区
大多数国际性的免费博客服务(如Blogger、Wordpress等)
大多数港澳台的博客服务及社区类网站(如无名小站等)
部分港澳台的免费在线电视台;部分海外提供Web 2.0或个人网站服务的知名或影响较大的站点
视频类网站(如YouTube、Dailymotion、Viemo和雅虎视频等)
社交类网站(Facebook、Twitter、Plurk等)
部分个人网站和博客
部分文件寄存网站(如Dropbox和SugarSync等)
部分国际性图片网站(如Flickr和Picasa网络相册等)
大部分免费服务器或主机
大部分Twitter第三方电脑登录网站或客户端(如TweetDeck、Seesmic、推特中文圈等)以及API
大部分与Twitter相关的图片服务(如Twitpic、Img.ly、Yfrog、Twitgoo、ow.ly等)
大部分手机Twitter客户端(如Gravity、Socialscope、Snaptu等)
部分RSS服务(如FeedBurner、Bloglines等)
部分书签同步服务(如Chrome的同步功能)
手机浏览器Opera Mini国际版
大部分由Google提供的有传播信息动机的服务

而一些知名技术型网站也经常被封锁:

SourceForge(已解封)
编程语言Python官方网站(python.org/download)
国际慈善组织乐施会香港网站
国际知名的互联网电影数据库(IMDB)
购物网站Amazon.com(已解封)
国际门户及搜索服务网站雅虎(含地区性网站雅虎香港和雅虎奇摩)
微软Bing(已解封)

至于国际媒体则几乎无一例外被封锁过,大部分被封锁或干扰(有部分能打开首页,但无法点阅新闻内容),其他海外国家的中文报章亦一样:

CNN和BBC的英文网站
Livestation和TVU networks
香港、澳门、台湾、新加坡、马来西亚的电台、电视台和中文报章的官方网站
在线的免费电视台直播网站及其客户端

防火长城对在中国大陆各ISP设置的黑名单基本上是同步和一致的,但有个别网站会有差别:

维基媒体(维基百科等)的图片服务 upload.wikimedia.org 在中国电信的网络中正常,但在中国联通和中国移动被封锁
Flickr的情况和维基媒体的图片服务相同
中国移动也封锁了HTC手机的天气预报服务器 htc.accuweather.com ,而联通和电信可以正常更新。

原文参考:“防火长城 ”http://zh.wikipedia.org/wiki/防火长城