Tuesday, May 24, 2016

金盾防火墙概述

对于在中国地区的人们来说,要能够自由的上网是非常麻烦的事情。许多人在连到国外网站时,常常会看到连线已重设或是作业逾时的错误讯息(图1、图2)。本文以中国金盾工程(注1)中的的防火墙(注2)为例,说明中国地区的翻墙(或称科学上网)方式,以及防火墙存在的意义。


图1、作业逾时错误讯息


图2、连线已重设错误讯息




原理


要了解翻墙,先要了解网路运作的方式,以及封锁的原理。网路运作是这样的。事实上,当你在浏览器中输入一个网址以后,浏览器就会先拿这个网址去DNS伺服器查询,找出IP。之后在连往IP,取得网页内容。而传输的过程,就是以封包的方式传递资料。如果容量大,就会切割成很多封包来传递。


我知道很多人对这边的描述不太有概念,所以在这边解释一下。浏览器浏览网站,其实就像去一个朋友家里搬东西回来放到面前给你看一样。要去朋友家,那么就要先知道朋友家的地址。通常我们很难记住那么长一串地址,怎么办呢?DNS就像问路的人一样。如果你不知道地址,那么就问DNS,他会告诉你正确的地址在哪里。如果DNS也不知道,他就会去找他的长官一层一层的问,直到问到位址为止。


根据上面的连线原理,金盾防火墙使用了三种不同的封锁方式。金盾防火墙就像警察一样,站在国内、国外网路的交接口。如果这个警察发现你要前往被封锁的地址,他会把你拦下来不给你过。或者是当你在问路的时候,故意报给你一个错误的网址。就算你好不容易找到资料搬回来,警察也会打开每个货物检查。如果在检查货物的时候发现是违禁品,就会没收货物。


这就是三种封锁方式。第一种就是封锁特定IP,第二种是DNS污染,第三种是封包窜改或丢弃(又称为丢包)。在错误讯息上,前两者浏览器会回应作业逾时(图1),第三种会回应连线被重设(图2)。


不过除了技术上的这三种,还有第四种:备案。在中国,每个网站在成立的时候都要向公安备案,负责人要拍照存证,而且内容也会随时被审核。如果网站出了问题,放上了不该出现的内容,公安会联络网站把东西撤下来。如果情节严重,还会直接逮捕网站负责人。在中国,政府也能管DNS的查询内容,因此如果浏览器问中国国内的DNS怎么找到Facebook,他会故意给你错误的IP地址让你连不到(第二种)。


中国政府在每个国外和国内的网路交界处都设立了检查站,国内的网路里也有随机抽查的检查站。这些检查站会检查每一个通过的封包。如果发现IP地址已经列入禁止访问的名单,这些检查站会直接丢弃封包,让你看不到网站(第一种)。如果你连上的网站有敏感词(回应的封包里有敏感词),那么检查站也会把这个回传的封包丢掉,并且阻止你前往那个网站三分钟(第三种)。三分钟之后,又可以正常连线了。


刚刚不是提到问路吗?有的人会说,既然国内的DNS不能问,那我去问国外的好了。但中国的检查站一旦发现了你问的网址是不允许问的,会故意把你问路的封包拦下来,换另外一个伪装的封包来给你错误答案。这个被称作DNS污染(图3)。


结果就是在中国,许多网站都难以访问。就算国外网站可以连,也会因为这些层层检查而连线缓慢。


图3:金盾防火墙的封锁方式



突破方式


突破方式其实不难。前面不是有个检查站吗?只要外头有个朋友可以帮你,其实很多东西就方便许多。首先,检查站只防止前往特定网站,你可以先连去别的网站,再从那个网站转往原本要去的网站。再来,为了避免检查站发现你的内容不合法,因此要先把这些内容伪装起来,让检查员不知道那到底是什么。这就是加密。这条路只要建立起来,就可以透过这条路直接询问国外的DNS,也能透过这条路去访问国外的网站了。别人也可以透过先连到你的电脑来突破封锁了(图4)。


从原理来看,我们就能了解目前的翻墙方式了。首先,你需要建立一条加密的连线,连到外面可以访问的一个中继站,再来从中继站前往其他的网站。这些连线方式很多,基本的是VPN,还有ssh加密、goagent等几乎也都是这种方式。


不过,有些加密连线的方式已经被中国政府破解了。像是L2TP、openVPN都已经不能用了。目前为止VPN的通讯协议里只有PPTP使用正常。其他还算正常的有ssh连线的方式。不过这些连线和协议的使用状况依据不同的运营商、不同的连线方式还是有不一样的限制。比如说,虽然ssh协议的连线还算正常,但如果发现传输速度过快,还是可能会把封包丢弃,或是强制降低连线速度。而防火墙也会对部份网站进行间歇性封锁,或是在特殊时期封锁特定网站。这些无法预测、烦不胜烦的阻扰方式才是防火墙令人讨厌的原因。


这边所提到的翻墙方式目前是可以运作的。中国现在的防火墙是只让你不能去访问有问题的网站,其他网站预设都是可以访问的。这被称做黑名单模式。如果变成只能访问没有问题的网站,也就是白名单模式,这条路就没有办法运作了。因为那些网站肯定是不会帮助你浏览其他网站的。这就是北韩所做的网路封锁。


关于更详细的原理,请参考后面所附上的《翻墙路由器的原理与实现》(注3)一文。


图4、翻墙破解方式



为什么要进行网路封锁?


大体而言,中国的网路封锁并不是真正让你没有办法看到外面的网站,而是提高获得外部讯息的成本。在这个网路时代,取得讯息是快速、方便又低成本的事情。一旦取得资讯需要花上大量的精力,就会降低许多人想要获得这些资讯的欲望。


而中国的金盾防火墙就是针对这一点。防火墙的存在不是为了“阻断所有资讯”,而是为了“提高资讯取得的成本”。只要提高成本,减少愿意取得“有害资讯”者的数量,他就已经成功了。金盾防火墙可以有效的阻止那些没有好奇心的人知道不该知道的东西,这些人才是防火墙真正的标的。人们会花时间去寻找游戏和影片,却很少有人愿意花心思、功夫去看一篇可能会改变自己想法的文章。因此虽然突破的方法只要有心就找的到,但对于没有好奇心的人来说,金盾就足以阻止他们的行动了。


防火墙分割了中国和外国的网路,也导致中国的网路文化和世界上其他国家的网路文化格格不入。许多有行动能力进行翻墙的人在第一次接触到外来的网路文化时,常常会因为文化冲突的缘故而不喜欢、甚至对外来思想产生反感。网路论坛上常见的中国愤青就是由此而来。能够放下身段、包容不同文化甚至接受不一样思想的人又更少了。


举个例子来说,中国的魔兽世界由于迟迟无法更新,因此大批中国玩家蜂拥至台湾的魔兽世界伺服器游玩。但他们来到台湾伺服器以后,往往就直接带来当地的游戏文化,甚至用语、说法完全不改,不懂的入境随俗,造成许多台湾玩家的不满。有的台湾玩家和中国玩家甚至在游戏的公共频道上互骂。在这种对中国玩家不友善的环境中,能够包容、接受不一样文化的中国玩家就更少了(注4)。


在行动力、技术能力、文化冲突的多重过滤下,导致能取得“有害资讯”的人数成等比级数的降低。再加上国内网站的关键字屏蔽、过滤,中国政府就能有效的控制那些异议者的数量。剩下来的异议者,只要单纯打为“反革命份子”、“异类”、“精神病”,就能控制他们思想的传递。金盾就像资讯的海关,可以用来保护“政府希望人民所相信的思想”。


中国的网路上又时常出现审查、删帖的讯息(图5)。这些网路警察的行为会先在人们心理中塑造出恐惧。你根本不知道自己的言论何时会受到审查,因此大多数人就会假定“自己的言论会被审查”。这会导致所谓的“自我审查”。自我审查的效果,比起网路审查的效果还来的巨大。有些台湾的新闻网站为了避免被防火墙给封锁,损失来自中国的流量,因此自我审查,过滤对中国不利的新闻,就是最好的例子。


图5、新浪微博的审查讯息(图片来源:微博 @平湖春晓)


恐惧把审查这件事情放大了许多倍。只要大家认为审查是存在的,审查的效果就出现了。这,也就是金盾防火墙的存在意义。(注5)


原文:http://ift.tt/1qG1GQq




via 细节的力量 http://ift.tt/1OL8KRP

No comments:

Post a Comment