【转载】 关于“墙”的若干知识

Georg

知名会员
剪贴自wiki
http://zh.wikipedia.org/zh-hans/防火长城
主要技术

封锁

域名解析服务缓存污染

主条目:域名服务器缓存污染
原理:防火长城对所有经过骨干出口路由的在UDP的53端口上的域名查询进行IDS入 侵检测,一经发现与黑名单关键词相匹配的域名查询请求,防火长城会马上伪装成目标域名的解析服务器给查询者返回虚假结果。由于通常的域名查询没有任何认证 机制,而且域名查询通常基于的UDP协议是无连接不可靠的协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。用户若改用TCP在53端口上 进行DNS查询,虽然不会被防火长城污染,但可能会遭遇连接重置,导致无法获得目标网站的IP地址。
IPv6协议时代部署应用的DNSSEC技术为DNS解析服务提供了解析数据验证机制,可以有效抵御劫持。
全球一共有13组根域名服务器(Root Server),2010年中国大陆有F、I、J这3个根域DNS镜像[12],但曾因为多次DNS污染外国网络,威胁互联网安全和自由,北京的I根域服务器被断开与国际互联网的连接。[13][14]目前已恢复服务。[15]

  • 从2002年左右开始,中国大陆的网络安全单位开始采用域名服务器缓存污染技术,使用思科提供的路由器IDS监测系统来进行域名劫持,防止了一般民众访问被过滤的网站。对于含有多个IP地址或经常变更IP地址逃避封锁的域名,防火长城通常会使用此方法进行封锁,具体方法是当用户从境内向境内DNS服务器提交域名请求时,DNS服务器要查询根域名服务器,此过程会受防火长城污染。而用户不做任何保护措施直接查询境外DNS时,会受防火长城污染。
  • 当用户从境外查询境内服务器(不一定是有效DNS服务器),结果也会被污染。

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

  • 2010年4月8日,中国大陆一个小型ISP的错误路由数据,经过中国电信的二次传播,扩散到了整个国际互联网,波及到了AT&TLevel3德国电信Qwest西班牙电信等多个国家的大型ISP。[17]

  • 2012年11月9日下午3点半开始,防火长城对Google的泛域名*.google.com进行了大面积的污染,所有 以.google.com结尾的域名均遭到污染而解析错误不能正常访问,其中甚至包括不存在的域名,而Google为各国定制的域名也遭到不同程度的污染 (因为Google通过使用CNAME记录来平衡访问的流量,CNAME记录大多亦为.google.com结尾),但Google拥有的其它域名 如.googleusercontent.com等则不受影响。有网友推测Google被大面积阻碍连接是因为中共正在召开的十八大[18]
  • 2014年1月21日下午三点半,中国网站的.com域名解析不正常,网站被错误地解析至65.49.2.178,该IP位于美国北卡罗来纳州的Dynamic Internet Technology,即自由门的开发公司。据推测,可能是操作失误造成的事故。[19]
  • 2015年1月2日起,污染方式升级,不再是解析到固定的无效IP,而是随机地指向境外的有效IP。刚开始只是对YouTube影片域名(*.googlevideo.com)进行处理,之后逐渐扩大到大多数被污染的域名。[20]这导致了境外服务器遭受来自中国的DDoS攻击,部分网站因此屏蔽中国IP。[21]
针对境外的IP地址封锁

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

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

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

  • SSH的TCP协议22端口
  • HTTP的80端口
  • PPTP类型VPN使用的TCP协议1723端口,L2TP类型VPN使用的UDP协议1701端口,IPSec类型VPN使用的UDP协议500端口和4500端口,OpenVPN默认使用的TCP协议和UDP协议的1194端口
  • TLS/SSL/HTTPS的TCP协议443端口
  • Squid Cache的TCP协议3128端口
中国移动中国联通等部分ISP的手机IP段,所有的PPTP类型的VPN都遭到封锁。
2011年3月起,长城防火墙开始对Google部 分服务器的IP地址实施自动封锁(按时间段)某些端口,按时段对www.google.com(用户登录所有Google服务时需此域名加密验证)和 mail.google.com的几十个IP地址的443端口实施自动封锁,具体是每10或15分钟可以连通,接着断开,10或15分钟后再连通,再断 开,如此循环,使中国大陆用户和Google主机之间的连接出现间歇性中断,使其各项加密服务出现问题。[23]Google指中国这样的封锁手法高明,因为Gmail并非被完全阻断,营造出Google服务“不稳定”的假象,表面上看上去好像出自Google本身。[24][25]
2014年5月27日起,几乎所有Google服务的80和443端口被封锁。[26]2014年12月26日起,Google数段IP被路由扩散封锁,直接导致GMAIL客户端所用的IMAP/SMTP/POP3端口也被封锁。[27][28]
无状态TCP协议连接重置

原理:防火长城会监控特定IP地址的所有数据包,若发现匹配的黑名单动作(例如TLS加密连接的握手),其会直接在TCP连接握手的第二步即SYN-ACK之后伪装成对方向连接两端的计算机发送RST封包(RESET)重置连接,使用户无法正常连接至服务器。
这种方法和特定IP地址端口封锁时直接丢弃数据包不一样,因为是直接切断双方连接因此封锁成本很低,故对于Google的多项(强制)加密服务例如Google文件Google网上论坛Google+Google个人资料等的TLS加密连接都是采取这种方法予以封锁。
从2015年初开始,RST重置已被实时动态黑洞路由取代。[29]
对加密连接的干扰


  • 在连接握手时,因为身份认证证书信息(即服务器的公钥)是明文传输的,防火长城会阻断特定证书的加密连接,方法和无状态TCP连接重置一样,都是先发现匹配的黑名单证书,之后通过伪装成对方向连接两端的计算机发送RST封包(RESET)干扰两者间正常的TCP连接,进而打断与特定IP地址之间的TLS加密连接(HTTPS的443端口)握手,或者干脆直接将握手的数据包丢弃导致握手失败,从而导致TLS连接失败。但由于TLS加密技术本身的特点,这并不意味着与网站传输的内容可被破译。[30]

  • Tor项目的研究人员则发现防火长城会对各种基于TLS加密技术的连接进行刺探[31],刺探的类型有两种:
    • “垃圾二进制探针”,即用随机的二进制数据刺探加密连接,任何从中国大陆境内访问境外的443端口的连接都会在几乎实时的情况下被刺探[32],目的是在用户建立加密连接前嗅探出他们可能所使用的反审查工具,暗示近线路速率深度包检测技术让防火长城具备了过滤端口的能力。
    • 针对Tor,当中国的一个Tor客户端与境外的网桥中继建立连接时,探针会以15分钟周期尝试与Tor进行SSL协商和重协商,但目的不是建立TCP连接。

  • 切断OpenVPN的连接,防火长城会针对OpenVPN服务器回送证书完成握手建立有效加密连接时干扰连接,在使用TCP协议模式时握手会被连接重置,而使用UDP协议时含有服务器认证证书的数据包会被故意丢弃,使OpenVPN无法建立有效加密连接而连接失败。
TCP协议关键字阻断

220px-GFW_firefox.png Firefox的“连线被重置”错误讯息。当碰触到GFW设定的关键词后(如使用Google等境外搜索引擎),即可能马上出现这种画面。


原理:防火长城用于切断TCP连接的技术其实是TCP的一种消息,用于重置连接。一般来说,例如服务器端在没有客户端请求的端口或者其它连接信息不 符时,系统的TCP协议栈就会给客户端回复一个RESET通知消息,可见RESET功能本来用于应对例如服务器意外重启等情况。而发送连接重置封包比直接 将数据包丢弃要好,因为如果是直接丢弃数据包的话客户端并不知道具体网络状况,基于TCP协议的重发和超时机制,客户端就会不停地等待和重发,加重防火长 城审查的负担,但当客户端收到RESET消息时就可以知道网络被断开不会再等待了。而实际上防火长城通过将TCP连接时服务器发回的SYN/ACK封包中 服务器向用户发送的序列号改为0从而使客户端受骗认为服务器重置了连接而主动放弃向服务器发送请求,故这种封锁方式不会耗费太多防火长城的资源而效果很 好,成本也相当的低。同时这种阻断可以双向工作,在中华人民共和国境外访问位于境内的网站时。如果在数据包头部出现部分关键字,连接也可能会被阻断。但是 两者的关键词列表并不完全相同,比如在s.weibo.com中搜索“法轮功”连接会被阻断,搜索“六四”则不会,而在中华人民共和国境内访问境外网站时 两者都会被阻断。
本发明提供了一种阻断TCP连接的方法和装置;方法包括:保存各TCP连接的连接信息;所述TCP连接的连接信息包括该TCP协议连接的:客户端信 息、服务端信息、请求方向TCP等待序列号和应答方向TCP等待序列号;抓取TCP封包,找到该TCP封包所属TCP连接的连接信息,根据所抓取的TCP 封包更新该连接信息中的请求方向TCP等待序列号和应答方向TCP等待序列号;如果所抓取的TCP封包为需要阻断的TCP封包,则根据更新后的、该TCP 封包所属TCP连接的连接信息生成RST封包,并发送给该TCP连接的客户端和服务端。本发明可以进行准确而持续的阻断,从而能在大流量环境下的高效阻断 非法TCP连接。[33]
外部视频链接 16px-Nuvola_apps_kaboodle.svg.png Observations in mainland China (Chinese)YouTube 16px-Nuvola_apps_kaboodle.svg.png 2012年谷歌搜索中国大陆之体验(中文版)优酷网
  • 针对HTTP协议的关键字阻断
    • 2002年左右开始,中国大陆研发了一套关键字过滤系统。这个系统能够从出口网关收集分析信息,过滤、嗅探指定的关键字。普通的关键词如果出现在HTTP请求数据包的头部(如“Host: www.[B]youtube.com[/B]”)时,则会马上伪装成对方向连接两端的计算机发送RST封包(Reset)干扰两者间正常的TCP连 接,进而使请求的内容无法继续查看。如果防火长城在数据流中发现了特殊的内文关键词(如“falun”等)时,其也会试图打断当前的连接,从而有时会出现 网页开启一部分后突然停止的情况。在任何阻断发生后,一般在随后的90秒内同一IP地址均无法浏览对应IP地址相同端口上的内容。同时这种阻断可以双向工 作,在中华人民共和国境外访问位于境内的网站时,如果在数据包头部出现部分关键字,连接也可能会被阻断。两者的关键词列表并不完全相同,比如在境外使用 s.weibo.com搜索“法轮功”连接会被阻断,并且90秒无法访问,搜索“六四”则不会,在中华人民共和国境内访问境外网站时两者都会被阻断。
    • 2010年3月23日,Google宣布关闭中国服务器(Google.cn)的网页搜索服务,改由Google香港域 名Google.com.hk提供后,由于其服务器位于大陆境外必须经过防火长城,所以防火长城对其进行了极其严格的关键词审查。一些常见的中共高官的姓 氏,如“胡”、“吴”、“温”、“贾”、“李”、“习”、“贺”、“周”、“毛”、“江”、“令”,及常见姓氏“王”、“刘”、“彭”等简体中文单字,当 局实行一刀切政策全部封锁,即“学习”、“温泉”、“李白”、“圆周率” 也无法搜索,使Google在中国大陆境内频繁出现无法访问或搜索中断的问题。2011年4月,防火长城开始逐步干扰Google.com.hk的搜索服 务。2012年10月下旬起,防火长城使用更巧妙方式干扰Google搜索,部分用户在点击搜索结果链接跳转时一直被卡住,一直卡了6分钟之后客户端发送 RST重置,然后页面一片空白。原因是链接跳转使用的是HTTP,用HTTPS跳转无影响。[34]

  • 干扰eD2k协议的连接
    • 从2011年开始,防火长城开始对所有境外eD2k服务器进行审查:当境内用户使用eD2k协议例如eMule使用模糊协议连 接境外服务器时会被无条件阻断,迫使eMule使用普通方式连接境外服务器;同时防火长城对所有普通eD2k连接进行关键字审查,若发现传输内容含有关键 字,则马上切断用户与境外服务器的连接,此举阻止了用户获取来源和散布共享文件信息,严重阻碍使用eD2k协议软件的正常工作。[35][36]
破网软件的反制

因为防火长城的存在,大量境外网站无法在中国大陆境内正常访问,于是大陆网民开始逐步使用各类翻墙软件突破防火长城的封锁。针对网上各类突破防火长 城的翻墙软件,防火长城也在技术上做了应对措施以减弱翻墙软件的穿透能力。通常的做法是利用上文介绍的各种封锁技术以各种途径打击翻墙软件,最大限度限制 翻墙软件的穿透和传播。
同时根据中国大陆网民反映,防火长城现已有能力对基于PPTPL2TP协议的VPN连接进行监控和封锁,这使得大陆网民突破防火长城的封锁变得更加困难。2015年起,防火长城加强对VPN的封锁,使iPhone用户无法使用VPN登入Facebook与Twitter帐户。[37]
而每年每到特定的关键时间点(敏感时期)防火长城均会加大网络审查和封锁的力度,部分破网软件就可能因此无法正常连接或连接异常缓慢,甚至中国境内和境外的正常网络连接也会受到干扰:

间歇性完全封锁

间歇性封锁国际出口

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

2012年10月下旬,Google位于北京的服务器被国家级骨干路由器长时间干扰连接,包括中国大陆境内用户在内访问时返回“连接超时”错误,造成大量基于Hosts技术利用Google北京服务器作为反向代理访问Google服务的用户和软件无法正常使用,例如GoAgent。测试指出数据包经过部分国家级骨干路由器时被选择性丢弃,造成与服务器连接的丢包率飙升,甚至有部分用户反映被完全阻断与服务器之间的连接。
深度包检测

深度封包检测(Deep packet inspection,DPI)是一种于应用层对网路上传递的资料进行侦测与处理的技术,被广泛用于入侵检测、流量分析及数据挖掘。就字面意思考虑,所谓“深度”是相对于普通的报文检测而言的——相较普通的报文检测,DPI可对报文内容和协议特征进行检测。
在中国大陆,DPI一度被ISP用于追踪用户行为以改善其广告推送业务的精准性,而最近则被国外视为防火长城城赖以检测关键词及嗅探加密流量的重要技术之一[42]。基于必要的硬件设施、适宜的检测模型及相应的模式匹配算法,防火长城能够精确且快速地从实时网络环境中判别出有悖于预期标准的可疑流量,并对此及时作出审查者所期望的应对措施。
华为公司曾被媒体指责涉及向伊拉克政府提供DPI所依赖的硬件支持以帮助后者开展网络审查工作[43]
针对IPv6协议的审查

IPv6(互联网通信协议第6版)是被指定为IPv4继任者的下一代互联网协议版本。在IPv4网络,当时的网络设计者认为在网络协议栈的底层并不重要,安全性的责任在应用层。但是即使应用层数据本身是加密的,携带它的IP数据仍会泄漏给其他参与处理的进程和系统,造成IP数据包容易受到诸如信息包探测(如防火长城的关键字阻断)、IP欺骗、连接截获等手段的会话劫持攻击。

  • 虽然用于网络层加密与认证的IPsec协 议可以应用于IPv4中,以保护IPv4网络层数据的安全,但IPsec只是作为IPv4的一个可选项,没有任何强制性措施用以保证IPsec在IPv4 中的实施。因为防火长城是挂载在国家级骨干路由器的旁路设备,而网络数据传输必须知道数据包来源地与数据包的目的地才能完成路由转发,故在IPv4协议时 代实施的针对IP地址封锁技术和特定IP地址端口封锁技术依然对IPv6有效。

  • 现阶段防火长城已经具备干扰IPv6隧道的能力[44],因为IPv6隧道在用户到远程IPv6服务器之间的隧道是建立在IPv4协议上的,因为数据传输分片的问题或者端点未进行IPSec保护的时候很有可能暴露自己正在传输的数据,让防火长城有可乘之机干扰切断连接。

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

电子邮件通讯的拦截

正常情况下,邮件服务器之间传输邮件或者数据不会进行加密,故防火长城能轻易过滤进出境内外的大部分邮件,当发现关键字后会通过伪造RST封包阻断 连接。而因为这通常都发生在数据传输中间,所以会干扰到内容。也有网友根据防火长城会过滤进出境邮件的特性,寻找防火长城部署的位置。[48]
2007年7月17日,大量使用中国国内邮件服务商的用户与国外通信出现了退信、丢信等普遍现象[49],症状为:

  • 中国国内邮箱给国外域发信收到退信,退信提示“Remote host said: 551 User not local; please try <forward-path>”
  • 中国国内邮箱用户给国外域发信,对方收到邮件时内容均为“aaazzzaaazzzaaazzzaaazzzaaazzz”。
  • 中国国内邮箱给国外域发信收到退信,退信提示“Connected to *.*.*.* but connection died.(#4.4.2)”
  • 国外域给中国国内邮箱发信时收到退信,退信提示“Remote host said: 551 User not local; please try <forward-path>”
  • 国外域给中国国内邮箱发信后,中国国内邮箱用户收到的邮件内容均为“aaazzzaaazzzaaazzzaaazzzaaazzz”。
对此,新浪的 解释是“近期互联网国际线路出口不稳定,国内多数大型邮件服务提供商均受到影响,在此期间您与国外域名通信可能会出现退信、丢信等现象。为此,新浪VIP 邮箱正在采取措施,力争尽快妥善解决该问题。”而万网客户服务中心的解释是“关于近期国内互联网国际出口存在未知的技术问题导致国内用户与国外通信可能会 出现退信、丢信等普遍现象,万网公司高度重视,一直积极和国家相关机构汇报沟通,并组织了精良的技术力量努力寻找解决方案。”[50]
从2014年12月26日开始,有很多中国大陆网民反映说一度国内邮箱全部无法发信到Gmail。在此之前,国内一些用户可以通过IMAP、SMTP和POP3接收、下载邮件;而12月28日后,Gmail邮箱已经无法正常接收;据路透社报道谷歌旗下的Gmail业务已经被当局封锁。[51]
网路攻击

参见:大炮 (中国网路审查)及旁观者攻击
自2015年3月26日起至31日止,防火长城对GitHub发起旁观者攻击英语Man-on-the-side attack,主要针对运用GitHub服务做镜像的GreatFire纽约时报中文版发动。[52][53][54]

我个人推荐这个技术宅的博客(有【免翻墙】镜像),编程随想
http://program-think.blogspot.de/
 
顶部