2009年3月15日星期日

网络封锁技术方案与反网络封锁技术方案

作者: Zola 发表于2009年三月15日, 星期天, ( 1:54 上午)
原始出处: https://www.zuola.com/weblog/?p=1353
版权声明: 可在标明原始出处和作者信息及此声明的情况下自由转载本文

目录

  1. GFW是什么
  2. 网络封锁的技术方案
    • 内容审查
    • 屏蔽IP
    • DNS劫持
  3. 反网络封锁的技术方案
    • 使用SSL加密对抗关键字审查
    • 给网站换IP避开IP屏蔽
    • 用tor来避开DNS干扰
    • 使用在线RSS阅读器来

GFW是什么

GFW是Great Fire Wall的缩写,是金盾工程。这个工程由若干个部分组成,实现不同功能。防火长城主要指中国政府监控和过滤互联网内容的软硬件系统,由服务器和路由器等设备,加上相关的应用程序所构成。
首先,需要强调的是,由于中国网络审查广泛,中国国内含有“不合适”内容的的网站,会受到政府直接的行政干预,被要求自我审查、自我监管,乃至关闭,故GFW的主要作用在于分析和过滤中国境内外网络的资讯互相访问。
GFW对网络内容的过滤和分析是双向的,GFW不仅针对国内读者访问中国境外的网站进行干扰,也干扰国外读者访问主机在中国大陆的网站,本文讨论GFW屏蔽国外网络上传播的内容的方法及相应的对策。

网络封锁的技术方案

GFW在网络上封锁的技术方案有:
  1. 内容审查
  2. 屏蔽IP
  3. DNS劫持
GFW如何屏蔽网络上传播的内容?网络上封锁的具体方式:



  1. 内容审查

    GFW的内容审查针对HTTP传输协议的默认端口的80端口,HTTP传播的内容是明文的内容,没有经过加密,GFW是一个IDS[Intrusion detection system (入侵检测系统)],GFW有一个敏感字名单,若在中国大陆访问境外的主机的HTTP的数据流里发现敏感字眼,就在两台主机间伪造一个"reset”信 号,导致双方主机以为对方中止了请求。如用Firefox浏览器访问
    http://newsvote.bbc.co.uk/chinese/
    http://knol.google.com/k/-/-/3jhi1zdzvxj3f/2 就会出现以下画面:
  2. 屏蔽IP

    屏蔽IP是GFW通过路由器(router)来控制的,在通往国外的最后一个网关上加上一条伪造的路由规则,导致通往某些被屏蔽的网站的所有IP数据包无 法到达。路由器的正常工作方式是学习别的路由器广播的路由规则,遇到符合已知的IP转发规则的数据包,则按已经规则发送,遇到未知规则IP的数据,则转发 到上一级网关。GFW的路由器按黑名单(blacklist)来转发特定的IP数据包,则可屏蔽特定的网站的IP,此IP黑名单不是固定的,会更新。如访 问 http://www.dw-world.de/chinese/ 出现以下画面
  3. DNS劫持

    DNS劫持是针对某些网站的最严重的干扰。干扰的方式有两种:
    1. 一种是通过网络服务提供商(Internet Service Provider/ISP)提供的DNS服务器进行DNS欺骗,当人们访问某个网站时,需要要把域名转换为一个IP地址,DNS服务器负责将域名转换为 IP地址,中国大陆的ISP接受通信管理局的屏蔽网站的指令后在DNS服务器里加入某些特定域名的虚假A记录,当使用此DNS服务器的网络用户访问此特定网站时,DNS服务便给出假的IP地址,导致访问网站失败,甚至返回ISP运营商提供的出错页面和广告页面。
    2. 另一种是GFW在DNS查询使用的UDP 53端口上根据黑名单进行过滤,遇到通往国外的使用UDP的53端口进行查询的DNS请求,就返回一个虚假的IP地址
    例子:
    在大陆访问 http://www.zuola.com/ 就可能出现“服务器响应时间过长”。
    我家目前用的中国电信提供的网络接入:
    Internet connectionConnection type:PPPoE
    IP Address:220.168.9.112
    Gateway address:220.168.8.1
    DNS Server:222.246.129.80, 59.51.78.210
    当我使用中国电信提供的DNS服务器进行查询时,出现以下画面:


    甚至我在中国大陆使用用国外的OPENNDS或其他DNS服务器进行查询,都会被GFW干扰而得到虚假的IP地址,

    通过远程登录在美国的主机进行DNS查询后,此时的DNS查询是完全无GFW干扰的,可得到 www.zuola.com的真实IP地址是 75.119.214.237
GFW在OSI结构模型的两个层面进行审查和封锁,一种在传输层(Transport Layer)进行干扰,一种是在网络层(Network Layer)进行干扰:
  1. 在传输层(Transport Layer)进行干扰:
    1. DNS劫持 GFW在UDP 53端口上进行传输层完成干扰;
    2. 内容审查 GFW对默认端口TCP 80端口上进行内容过滤,在http传输协议上,对tcp 80端口上传输的内容进行内容审查,遇到关键字,GFW就在会话中插入“reset”信号,导致网页被重置。
  2. 屏蔽IP是GFW在网络层(Network Layer)上的封锁和干扰,是在IP路由协议上完成干扰。

GFW审查在OSI模型上的审查的位置:

反网络封锁的技术方案

GFW针对具体网站的方案有以下三种:
  1. GFW把域名为作敏感字来屏蔽
  2. GFW把域名所在的IP屏蔽
  3. GFW干扰域名DNS解析
相应对抗GFW,网站的主人有下面几个方法:
  1. 网站使用SSL加密对抗关键字审查;
  2. 给网站换IP避开IP屏蔽;
  3. 推荐大陆的网站访问者使用国外的DNS解析服务器,或推荐大陆的访问者使用tor来避开DNS干扰
  4. 推荐读者使用在线RSS阅读器来读取最新文章
相应对抗GFW有的具体方法
  1. 使用SSL加密对抗关键字审查

    HTTPS是基于SSl的HTTP协议,是安全超文本传输协议。当用户访问使用HTTPS的网站时,用户端的浏览器需要先获取网站的安全证书和来自认证的 安全证书发行商的数字签名,此安全证书为服务器的公钥,服务器用私钥把网页内容加密进行传输,客户端浏览器以公钥解密即可得到网页内容。网络内容的传播过 程中,内容是加密的,无法被GFW自动审查传输的内容,亦无法被GFW插入"reset"信号。
    1. 实例1:在2007年11月到2008年7月,https://www.zuola.com 曾用HTTPS成功避开GFW的审查,让中国大陆的网民能够直接访问此网站。
    2. 实例2:当人们无法访问http://knol.google.com/k/-/-/3jhi1zdzvxj3f/2时,改用 https://knol.google.com/k/-/-/3jhi1zdzvxj3f/2 就可以访问
  2. 给网站换IP避开IP屏蔽

    使用SSL加密可对抗GFW的内容审查,GFW如何对付HTTPS呢?
    GFW的工作人员遇到使用HTTPS的网站后,他们知道无法 使用机器自动的过滤他们心目中的“敏感内容”和“有害内容”,于是直接屏蔽网站的IP,此时,通往此网站服务器的任何数据包都无法直接越过GFW到达目的 地。此时只需要更改网站域名的A记录,换一个IP就可以避开屏蔽IP。此时就像猫和老鼠的游戏了,GFW只好跟在后面不断屏蔽IP,并且GFW的屏蔽IP 的工作是人工执行的。无法通过机器自动执行。如果GFW能够自动执行屏蔽IP的操作,那被屏蔽IP的域名的拥有者就可以借用GFW的能力屏蔽任何境外网站 了。
    1. 实例3:在2007年11月到2008年7月,https://www.zuola.com 曾用SSL加密+换IP 成功避开GFW的审查,让中国大陆的网民能继续能够直接访问此网站。
    2. 实例4:https://doubleaf.com 也使用SSL加密和换IP的手段让中国大陆的网民能直接访问
  3. 推荐大陆的网站访问者使用国外的DNS解析服务器,或推荐大陆的访问者使用tor来避开DNS干扰

    在2008年奥运期间,我发现GFW针对 www.zuola.com 使用了DNS劫持的方式一劳永逸的屏蔽方式,导致国内用户无法直接获得我的网站的正确IP,即使使用“无界”“自由门”“VPN”等突破封锁的工具,也会走错门。那就只能推荐读者《使用TOR+FoxyProxy插件突破GFW》了,TOR是一个分布式的、匿名的网络,Foxyproxy是一款代理服务器管理软件,可以让Firefox使用TOR来收发DNS请求:



    TOR的工作方式
    Tor 有助于降低简单的和高级的流量分析的风险,Tor 把你的流量分散到互联网上的多个地点,所以不存在单一的一点可以把你和你的目的地联系起来。这就好像用一条拐弯抹角的、难以辨认的路径甩掉跟踪你的人,然 后定期擦掉你的脚印。在 Tor 网络上,来源和目的地不是用一条路径直接连接的,而是由一条通过数台中继的随机路径覆盖原始路径,数据包在这条路径上传输,因此,不存在任何单一一点上的 观察者能够知道数据从哪里来、到哪里去。



    用 Tor 创建一条私有网络路径时,用户的软件或客户端通过网络上的中继递增地建立一条由若干加密连接组成的环路(circuit)。环路一次扩展一跳(hop), 环路上的中继仅仅知道它从哪一个中继接收数据以及向哪一个中继发送数据。没有一台单独的中继会知道数据包的完整路径。客户端与环路上的每一跳都协商一组独 立的密钥,这样可以保证数据通过任何一跳时都无法跟踪。

    一旦环路建立完成,多种类型的数据可以在上面进行交换,不同种类的应用程序也可以在 Tor 网络上部署。因为每一台中继最多只能知道环路中的一跳,窃听者或者被入侵的中继都无法通过流量分析把连接的来源和目的地联系起来。 Tor 仅作用于 TCP 数据流,任何支持 SOCKS 的应用程序都可以使用它。
    出于有效性,Tor 为大约在相同的十分钟内发起的连接请求分配同一环路。以后的请求被分配不同的环路,这样他人就不能把你早先的行为和新的行为联系起来。

  4. 推荐读者使用在线RSS阅读器来读取最新文章

    Really Simple Syndication(RSS) 是一种严格XML的信息传递的格式规范,标准的XML格式文档可允许信息在一次发布后通过不同的程序阅读,易于分发和聚合(Sysndicat)。RSS 是这种XML应用搭建了信息迅速传播的一个技术平台,网站的最新内容通过RSS Feed传播,能通过在线RSS阅读器自动推送文章到读者的阅读器,人们无需直接访问网站就能看到最新的内容,RSS能够让内容很容易的被分发,只需要知 道RSS地址,网络上无数的在线RSS阅读器总能读取到RSS Feed中的内容。RSS是很容易生成并分布的,这是GFW无法拦截或需要大量资源才能够封锁的一种技术。
    实例:
    1. 实例3:我的网站自2007年4月重庆最牛钉子户报道后被屏蔽,但我的FEED地址 http://feed.zuola.com/ 的订阅数却一直在增长,Google Reader订阅用户数量从 700左右增加到2686。不过GFW仍然会干扰Google reader,使用https 的方式 https://www.google.com/reader/view/ 才能看到以下数据

    2. 实例4:《看不见的西藏》是一个藏族人的BLOG,虽然国内读者无法直接访问,但中国大陆的读者仍然能够通过订阅她的RSS FEED来看到她眼中的西藏,这个Feed是可用google reader订阅的 http://woeser.middle-way.net/feeds/posts/default

此文档的其他站点备份:
  1. http://space.zuola.com/D2AC7D299F493A68_241.html
  2. https://docs.google.com/View?docid=dggh5mp6_0zzmm4fdn
  3. http://zhoushuguang.blogspot.com/2009/03/blog-post.html
  4. https://knol.google.com/k/-/-/3jhi1zdzvxj3f/14
参考文档:
Tor概述》:http://tor.zuo.la/overview.html.zh-cn
手把手教你使用TOR+FoxyProxy突破GFWhttps://knol.google.com/k/-/-/3jhi1zdzvxj3f/2
纠正网友一些对GFW的认识》: https://www.zuola.com/weblog/?p=1228
Zola教你玩:如何对抗GFW的域名劫持》: https://www.zuola.com/weblog/?p=1151

来都来了,抢个沙发,给点精神鼓励吧!求你啦!

发表评论