2010年6月27日星期日

opera mobile无聊试用

其实不光是中文。。。小键盘也有点问题(为了模拟塞班?)
这个没说的,acid3不跑100分就没法混了(其实貌似IE8也没到100分。IE9不清楚)
Google加密搜索,一切正常
PAC MAN就杯具了。上下左右键没反应。
内存占用57M。小于chromium的118M(大概因为是手机浏览器的缘故,下面这张是chromium的,一直反感chromium的多进程浏览)
HTML5没戏。。。flash也不支持(忘记截图了)
上peacekeeper测试!chromium刚跑完就挂掉了!上图
opera mobile竟然能跑完。。。手机浏览器啊。。。opera mobile永垂不朽!虽然分数比较蛋疼,但是相对IE6的133分来说还是很NB了。(注:这测试跟机器性能有关系,真的用手机应该没这么多。如果用个1ghzCPU的手机可能不会差太多,几年前的手机。。。等着白屏死机吧)

2010年6月17日星期四

2010年6月6日星期日

香港“六四”21周年烛光晚会

“六四”事件21周年,香港再度举办烛光纪念晚会。主办单位支联会估计,今年的参加人数与去年20周年时一样,有15万人。

香港警方公布的参加人数为11.3万人,比去年的估计激增八成。

支联会今年依旧打出了“平反六四”、“薪火相传”的口号。他们同时对香港执法部门早些时候一度没收“新民主女神像”等“六四”主题雕塑的行动表示了抗议。

此外,一直领导香港“六四”活动的支联会主席司徒华作为一位末期癌症病人出席烛光晚会,也成了整个活动的另一焦点。

原文及视频:here(转BBC。需要爬墙)

《如何忽略防火长城》推倒中国防火长城(译)

===============WARNING  地球科技================
此文涉及地球的高科技。如果看不懂非常正常。请不要大惊小怪。


三篇为国外译文,依次为:



一、《如何忽略防火长城》
二、推倒中国防火长城
三、中国的GFW 是在骗人吗?







一、《如何忽略防火长城》

翻译: 万柳烈士旅

简介

本文从TCP/IP协议安全性的角度对中国防火墙系统的工作原理、工作特性和潜在的漏洞、造成的问题进行了详尽的调查和分析,并从多个角度提出了针对特别是防火长城这类利用TCP/IP协议进行攻击的反制措施。

如何忽略防火长城

Richard Clayton, Steven J. Murdoch, and Robert N. M. Watson*
University of Cambridge, Computer Laboratory, William Gates Building, 15 JJ Thomson Avenue, Cambridge CB3 0FD, United Kingdom
{richard.clayton, steven.murdoch, robert.watson}@cl.cam.ac.uk

* 致谢:我们感谢一位中国公民的帮助。(我们不会透露他的名字,他对我们实验的本质完全不知情,他的网页也不包含任何非法内容)他为我们理论思考提供了极为可信的实践材料。Richard Clayton正为Intel Research资助的spamHINTS项目工作。Steven J. Murdoch由OpenNet Initiative资助。

摘要:所谓“防火长城”之部分工作原理即是检测传输控制协议(TCP)报文中需要封锁的关键词。如果出现关键词,TCP复位报文(即RST标志置位的报文)即向连接两端发送,连接随之关闭。而原报文完好通过防火墙,如果双方完全忽略防火墙的复位,那么连接仍可顺畅进行而防火墙失效。一旦连接被封锁,防火墙还会进而尝试封锁双方的继发连接。后种特性可能被利用来对第三方进行拒绝服务攻击。

1 引言

中华人民共和国运行的互联网过滤系统,普遍认为是世界上最复杂的系统之一。[1]其部分工作原理即是检测网络(hxxp)流量判断是否出项特定关键词。[2]这些关键词涉及一些中国政府封杀的组织、不可接受的政治意识形态、不愿讨论的历史事件。[3]

直观判断,关键词封锁发生在连接中国与外界网络的路由器组内部。[4]这些路由器利用基于入侵检测系统(IDS)技术的设备来判断报文内容是否匹配中国政府制订的过滤规则。[5]如果客户端与服务器的一个连接需要封锁,路由器则会在数据流中注入伪TCP复位报文,于是双方便会断开连接。[6]这种封锁一旦触发,便会持续数分钟,相同方向上的继发连接都会被伪复位直接打断。

在本文第2节我们将讨论国家阻止其公民访问特定网络内容的方法,以及以往调查者认定的优点和缺点。在第3节我们提供了从中国防火墙系统封锁的连接两端获取的一组报文。第4节我们提出了这个防火墙的一个模型,来解释我们获得的结果。然后第5节我们将展示,通过忽略防火墙发出的TCP复位我们成功传输了本来应该被封锁的内容,并讨论为什么这种手段防火墙难以应付。第6节我们展示了防火墙的封锁行为如何可以被利用来对第三方进行拒绝服务攻击。最后在第7 节,我们讨论了这种规避审查的方法的优缺点,并思考了中国以外的网站如何免于封锁降低访问难度,还提出公共政策能怎样鼓励人们规避审查的问题。

2 内容封锁系统

有三种显著的内容封锁手段:报文丢弃、DNS污染、内容检测。研究北威州封锁右翼纳粹内容的Dornseif的论文[7],和研究英国电信混合封锁系统封锁恋童癖网站的Clayton[8]的论文,一起确定了以上手段。

2.1 报文丢弃方案
在一种报文丢弃方案中,往特定IP地址的所有流量被全部丢弃,于是网站便无法访问。这种方案费用低廉,易于实施──标准的防火墙和路由器便已提供这些必要特性。报文丢弃方案有两个主要问题。首先,IP地址列表必须保持最新,如果内容提供者不想让ISP轻易封锁他们的网站,保持更新的困难便暴露出来。[9]其次,系统会导致“过度封锁”──共用同一IP的其他网站被全部封锁。Edelman调查了过度封锁的潜在程度,发现69.8% 的.com、.org和.net网站与50以上其他网站共用IP。[10](虽然一部分域名只是“停放”在一个普通网页上)其详细数字显示网站共用IP数的连续变化图谱,反映出在一台主机上尽量多挂网站这种盛行的商业做法。

2.2 DNS污染方案
在一种DNS污染方案中,当用户查询域名服务系统(DNS)将文字的域名转换为数字的IP地址时,可以返回错误的应答或者不返回应答导致用户不能正常访问。这类方案没有过度封锁的问题,因为禁止访问特定网站不会影响到其他网站。不过,邮件传递也需要DNS查询,如果只是封锁网站而不封锁邮件服务的话,此类方案实现起来容易出错。Dornseif展示的样本中所有的ISP都至少有一次在实现DNS污染时出错。[11]

2.3 内容检测方案
多数内容检测方案是让所有流量通过一个代理服务器。这个代理通过不提供禁止内容来过滤。这种系统可以做得非常精确,程度可以到屏蔽单个网页或者单个图像而让其他内容顺利通过。这类基于代理的系统没有普遍使用的原因是,可以应付主干网络或者整个国家网络流量的系统过于昂贵。2004年9月美国宾夕法尼亚州,要求封锁包含儿童色情网站的一条州法令以违宪被裁定无效[12]。当初由于经费原因,宾夕法尼亚的ISP采用的是报文丢弃和DNS污染的混合策略,导致的过度封锁和“前置审核限制”对地区法庭作此裁决起到了相当的作用。不过,基于代理的系统已被部署到若干国家比如沙特阿拉伯[13]、缅甸 [14],以及挪威的一些网络提供商比如Telenor[15]。Clayton研究的英国电信的系统是一种混合设计,利用廉价缓存代理处理特定目标IP 的报文。不幸这导致用户可以逆向工程得到封禁网站的列表,而这些网站提供儿童的非法图像,这违背了此系统的公共政策目标。

进行内容检测的另一种手段则是入侵检测系统(IDS)。IDS设备可以检测通过的网络流量并判断其内容是否可接受。如果需要封禁则会调度邻近的防火墙拦截报文,或者就中国的情况而言,发送TCP复位报文导致威胁性连接关闭。基于IDS的系统显然比其他方案更灵活,更难规避。Dornseif和 Clayton都对如何规避各种封锁进行了深入探讨。[16]然而如果通信保持清晰不加密不变形到IDS无法辨别的程度,那么无论采取什么规避手段,IDS方法都能够将其检测出来。[17]

3 中国防火墙如何封锁连接
我们在实验中从英国剑桥(墙外)的若干机器连接了中国内的一个网站(墙内)。当前中国的防火墙系统的工作方式是完全对称的[18]──在两个方向上检测内容并进行过滤。[19]通过从剑桥的终端发出所有的指令我们完全避免了违反中国法律的可能性。一开始我们以正常模式访问一个中国网页并记录双方的报文流。接下来我们又发起一次有意触发封禁的请求,观察连接是如何被复位报文关闭的。我们继续“正常”的(不包含触发性词汇的)请求,却发现接下来的连接都意外地被封锁了。接下来我们将详细描述观测结果。

3.1 复位封锁
刚开始我们只是访问一个普通网页,如预期得到完全正常的返回。如下面的转储报文所示,起始的TCP三次握手(SYN[20],SYN/ACK[21],ACK[22])之后客户端(此实例中使用了53382端口)向服务端hxxp端口(tcp/80)发出了超文本传输协议(hxxp)的GET指令获取顶级页面(/),传输正常。我们使用netcat(nc)发出这个请求,没有使用网页浏览器,从而避免了无关细节。报文用ethereal截取,用一般格式表示出来。

cam(53382) → china(hxxp) [SYN]
china(hxxp) → cam(53382) [SYN, ACK]
cam(53382) → china(hxxp) [ACK]
cam(53382) → china(hxxp) GET / hxxp/1.0
china(hxxp) → cam(53382) hxxp/1.1 200 OK (text/html) ……
china(hxxp) → cam(53382) ……其余页面内容
cam(53382) → china(hxxp) [ACK]
……接下来这个页面就完整了。

我们发出另一个请求,包含了一小段可能触发封禁的文字,当然这也很快发生了:

cam(54190) → china(hxxp) [SYN]
china(hxxp) → cam(54190) [SYN, ACK] TTL=39
cam(54190) → china(hxxp) [ACK]
cam(54190) → china(hxxp) GET /?falun hxxp/1.0
china(hxxp) → cam(54190) [RST] TTL=47, seq=1, ack=1
china(hxxp) → cam(54190) [RST] TTL=47, seq=1461, ack=1
china(hxxp) → cam(54190) [RST] TTL=47, seq=4381, ack=1
china(hxxp) → cam(54190) hxxp/1.1 200 OK (text/html) ……
cam(54190) → china(hxxp) [RST] TTL=64, seq=25, ack zeroed
china(hxxp) → cam(54190) ……其余页面内容
cam(54190) → china(hxxp) [RST] TTL=64, seq=25, ack zeroed
china(hxxp) → cam(54190) [RST] TTL=47, seq=2921, ack=25

开头三个复位报文序列号对应了GET报文的序列号+1460和+4380(3 × 1460)。[23]我们认为防火墙发出三个不同的值是想确保发送者接受复位,即使发送者已经从目的地收到了“全长”(1460字节)ACK报文。复位报文的序列号需要“正确”设定,因为现在多数TCP/IP实现都会严格检查序列号是否落入预期窗口。[24](这个验证序列号的内在漏洞由Watson在 2004年首先提出。[25])

此结果还显示,在连接被打断后仍然收到了从中国机发来的一部分页面。然后剑桥机响应了那两个意外报文,发送了自己的TCP复位。注意它将确认号置零而没有使用随机初始值的相关值。收到的所有复位报文的TTL[26]都是47,而中国机来的报文的TTL都是39,说明它们来源不同。如果来源的初始值都是64,这也许说明复位产生的地方距离服务器有8跳(hop)。 traceroute显示那是通信从Sprint网络(AS1239)进入中国网通集团网络(AS9929)后的第二台路由器。

我们也从中国服务器的视角看这次连接封锁:

cam(54190) → china(hxxp) [SYN] TTL=42
china(hxxp) → cam(54190) [SYN, ACK]
cam(54190) → china(hxxp) [ACK] TTL=42
cam(54190) → china(hxxp) GET /?falun hxxp/1.0
china(hxxp) → cam(54190) hxxp/1.1 200 OK (text/html) ……
china(hxxp) → cam(54190) ……其余页面内容
cam(54190) → china(hxxp) [RST] TTL=61, seq=25, ack=1
cam(54190) → china(hxxp) [RST] TTL=61, seq=1485, ack=1
cam(54190) → china(hxxp) [RST] TTL=61, seq=4405, ack=1
cam(54190) → china(hxxp) [RST] TTL=61, seq=25, ack=1
cam(54190) → china(hxxp) [RST] TTL=61, seq=25, ack=2921
cam(54190) → china(hxxp) [RST] TTL=42, seq=25, ack zeroed
cam(54190) → china(hxxp) [RST] TTL=42, seq=25, ack zeroed

我们可以看到,当检测到“坏”报文,防火墙也向中国机发送复位(“[RST]”)报文,但都在GET报文(以及其响应报文)后面。最后两个复位报文(零确认号)是剑桥机发送的。

其他到中国机的复位(因为有“falun”而生成的)TTL都是61,这意味着它们在3跳以外生成,初始值为64。这跟剑桥观测到的8跳偏移不一样。不过这说明可能有不止一台设备在生成复位──或者初始值经过调整不是64。我们目前对于观测到的这种不对称性没有确定的解释。

开始三个复位的序列号也设置在一定范围(+25,+1485,+4405)以确保命中,事实上+25报文就已经重置了连接。[27]第四、五个复位报文检查确认号发现,它们可以视作连接重置前中国机成功发送的两个报文的响应。

3.2 直接重置连接
防火墙不仅检测内容,还有其他封锁规则。我们发现,只要进行一次“坏”连接,在短时间内相同两主机之间的所有网络通信在经过检查之前就都被封锁了。前面也是连接被封搜,不过现在开始继发连接也会被封锁了。比如,在上面一例以后立刻继续,我们看到:

cam(54191) → china(hxxp) [SYN]
china(hxxp) → cam(54191) [SYN, ACK] TTL=41
cam(54191) → china(hxxp) [ACK]
china(hxxp) → cam(54191) [RST] TTL=49, seq=1

复位报文从防火墙而来(也往服务器而去)随之客户端便关闭了连接。如果客户端在复位到达前成功发送GET报文,便会接着收到多个防火墙发来的复位(即使GET报文是完全无毒的)。接下来便是从服务端来的复位──服务器收到复位后便会立刻在GET到达前关闭连接。由于GET发来时不再存在打开的连接,服务端便按照协议返回一个复位。值得注意的是,防火墙在SYN阶段(三次握手阶段一)没有试图重置连接,而是等到了SYN/ACK(阶段二)。虽然可以在客户端一发出SYN就给它复位报文,但只有等到SYN/ACK才能构造出对服务端起作用的有效复位。[28]

在实验中我们发现,节点被阻断通信的时间是可变的。有时候是几分钟,有时候可能是一小时。平均时间大概在20分钟,不过由于观测到时间值有在特定值附近聚集的显著趋势,我们怀疑不同的防火墙组件有不同的时间延迟设定;这就需要深入理解是到底是谁在处理通信,才能较准确地预测封锁周期。
3.3 其他中国网络的情况

我们获取了中国自治系统(AS)的一个列表,并从中生成了在全球路由表中所有中国子网的列表。[29]然后我们利用了一个修改过的 tcptraceroute,判断出通信是通过哪个AS从国际网络进入中国,并从中得知了中国主干边际网络的实体。结果便是:AS4134,AS4837,AS7497,AS9800,AS9808,AS9929,AS17622,AS24301和AS24489。然后我们在各个AS中挑选了样例服务器测试,发现所有网络都有都跟前面描述相似的复位行为(除了AS24489:跨欧亚信息网)。以此我们可以推出:我们的结果正展示了典型的“防火长城”系统。情况在2006年5月下旬是这样的,但并不一定普遍适用。[30]

4 防火长城的设计
基于以上实验结果,以及中国使用的技术设备类型的描述──比如思科的“安全入侵检测系统”[31]──我们提出以下模型来描述中国防火墙中路由器的工作方式(此模型很符合观测,但仍是推论性的,因为中国的网络提供商没有发布关于这些系统的任何技术规格):

当报文到达路由便被立刻放入适当的向前传输队列。此报文也被送到带外IDS设备进行内容检测。如果IDS(关键词匹配)认为此报文“不好”,那么便为连接两端各生成三个TCP复位报文(有三个不同的序列号)交由路由器传输。[32]

IDS在逻辑上是与路由器分离的,很难从路由传输队列中去除或者延迟“坏”报文。然而发出复位关闭连接是相对简单的。如果路由器相对繁忙,而 IDS 工作正常,复位报文会在“坏”报文之前发送;这也是我们在实验中观测到的主要情况,虽然有时候复位报文会拖在后面。复位报文的设定值充分显示出,设计者担心与路由器相比IDS的拥塞导致“坏”报文跑在复位报文前面。这种设计中如果不发送附加的复位,在繁忙情况下防火墙是无法保证封锁的可靠性的。

一旦IDS检测到需要封锁的行为,它也可以向主路由器添加一条简单的丢弃规则而不发出复位。[33]我们相当怀疑这种做法在主干高速路由器上扩展性差,而在IDS内的封锁简单而廉价。

我们还观测封锁的时长得知,提供防火墙功能的设备不止一个。我们进行了进一步实验,发送256个包含威胁性字串的报文通过防火墙,虽然是从一个机器上发出的,但将它们的源地址设置分别为256个连续的IP地址值,即中国防火墙会认为这是256个不同机器在发送需要封锁的内容。结果是,我们观测到有时候返回的复位报文是乱序的。然而现代互联网处理报文基本上是用FIFO(先进先出)队列,[34]那么对于这种失序的最简单解释便是,不同的报文给了不同的IDS,它们各有各的FIFO队列但在发送复位时负载不一样。可惜我们发现这个实验引起了很多的报文丢失(不是所有的连接都返回了应有的复位报文),不能对报文失序程度有直观感受。这样我们也没法(通过队列建模)确定平行IDS设备的数量下界。我们计划以后再做这个实验。

4.1 防火墙“状态”
没有证据证明带外IDS设备互相通信,并共享网络连接“状态”的记录。实验表明在一个边际网络触发防火墙不影响通过其他边际网络的通信。

而在“状态”本来应该保留的地方(IDS设备中)却没有关于TCP状态的检查。设备孤立地检查报文,于是将?falun分散到相邻两个报文就足以避免检测。更有甚者,这些设备对于是否有连接存在也不关注,我们的许多测试中甚至没有进行三次握手打开连接就直接发送GET报文。事实上除了初始检测之后的持续封锁,没有证据证明IDS设备做了其他什么特别的事情,IDS只是一次检查一个报文而已。

5 有意忽略复位
防火墙完全依赖于终端节点以标准兼容方式实现TCP协议[35],在收到复位报文时中断连接。如上所述,虽然有时候防火墙有点超常,复位报文跑在 GET报文前面结果被仔细验证一番以后丢掉了,不过在下一个报文到达防火墙的时候连接就会被防火墙摧毁所以,总得来说还是没有什么区别。

不过现在考虑如果终端节点不遵守标准然后TCP复位被彻底忽略的情况,我们会想到,即使触发了IDS,防火墙也对hxxp传输没有任何影响。于是我们进行了深入实验两边的终端节点都忽略TCP复位的情况。这有许多方法可以实现,我们选择设置合适的报文过滤防火墙规则。在Linux可以安装 iptables并使用此命令:

iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP

来丢弃传入的RST置位报文。如果是FreeBSD的ipfw那么命令是这样的:

ipfw add 1000 drop tcp from any to me tcpflags rst in

当双方都丢弃TCP复位时我们发现网页传输确实没有被封锁。在剑桥端检测传输的结果:

cam(55817) → china(hxxp) [SYN]
china(hxxp) → cam(55817) [SYN, ACK] TTL=41
cam(55817) → china(hxxp) [ACK]
cam(55817) → china(hxxp) GET /?falun hxxp/1.0
china(hxxp) → cam(55817) [RST] TTL=49, seq=1
china(hxxp) → cam(55817) [RST] TTL=49, seq=1
china(hxxp) → cam(55817) [RST] TTL=49, seq=1
china(hxxp) → cam(55817) hxxp/1.1 200 OK (text/html) ……
china(hxxp) → cam(55817) ……其余页面内容
cam(55817) → china(hxxp) [ACK] seq=25, ack=2921
china(hxxp) → cam(55817) ……其余页面内容
china(hxxp) → cam(55817) [RST] TTL=49, seq=1461
china(hxxp) → cam(55817) [RST] TTL=49, seq=2921
china(hxxp) → cam(55817) [RST] TTL=49, seq=4381
cam(55817) → china(hxxp) [ACK] seq=25, ack=4381
china(hxxp) → cam(55817) [RST] TTL=49, seq=2921
china(hxxp) → cam(55817) ……其余页面内容
china(hxxp) → cam(55817) ……其余页面内容
cam(55817) → china(hxxp) [ACK] seq=25, ack=7301
china(hxxp) → cam(55817) [RST] TTL=49, seq=5841
china(hxxp) → cam(55817) [RST] TTL=49, seq=7301
china(hxxp) → cam(55817) [RST] TTL=49, seq=4381
china(hxxp) → cam(55817) ……其余页面内容
china(hxxp) → cam(55817) [RST] TTL=49, seq=8761
……接下来这个页面就完整了。

网页以正常方式传输,除了中间夹杂一些防火墙的TCP复位报文。由于被完全忽略(一共28个复位),它们对客户端的TCP/IP栈没有任何影响。客户端仍然继续接收网页,正常发送ACK。中国端也能看到类似的正常传输夹杂复位的情形。

这样,只是简单地忽略防火长城发出的报文我们就让它完全失效了!这无疑会让它的实现者大为恼火。

5.1 迷惑封锁
一方面是在连接建立以后通过发出TCP复位来阻断继发连接,另一方面我们也观察到一些防火墙有时还有附加策略。在一些节点(当然是随机的),我们看见了防火墙发来的伪SYN/ACK报文。显然其序列号是随机而且无效的。如果防火墙的SYN/ACK报文比真报文先到那么连接失效──客户端从伪SYN /ACK中获取了随机的序列号并发给服务端错误的 ACK,于是服务端便返回复位报文,导致客户端关闭连接。实际上,如果客户端发送GET比较快,还会收到一批其他报文,导致防火墙和服务端的进一步复位:

cam(38104) → china(hxxp) [SYN]
china(hxxp) → cam(38104) [SYN, ACK] TTL=105
cam(38104) → china(hxxp) [ACK]
cam(38104) → china(hxxp) GET / hxxp/1.0
china(hxxp) → cam(38104) [RST] TTL=45, seq=1
china(hxxp) → cam(38104) [RST] TTL=45, seq=1
china(hxxp) → cam(38104) [SYN, ACK] TTL=37
cam(38104) → china(hxxp) [RST] TTL=64, seq=1
china(hxxp) → cam(38104) [RST] TTL=49, seq=1
china(hxxp) → cam(38104) [RST] TTL=45, seq=3770952438
china(hxxp) → cam(38104) [RST] TTL=45, seq=1
china(hxxp) → cam(38104) [RST] TTL=45, seq=1
china(hxxp) → cam(38104) [RST] TTL=37, seq=1
china(hxxp) → cam(38104) [RST] TTL=37, seq=1

对付这种防火墙的新策略比处理伪复位报文麻烦许多。因为即使客户端忽略了服务端来的(完全真实的)复位,还是会继续错误理解服务端的序列号,导致不能与服务端同步以完成三次握手打开连接。当然如果有时候防火墙的伪SYN/ACK跑在真报文后面,就会被客户端忽略不造成任何混淆,不过防火墙仍然会坚持不懈用复位报文来打断连接但是由于复位报文都被忽略了所以也没有用,网页照样显示。

重要的是确定来的两个SYN/ACK报文谁是真的。在样例中我们觉得它们很好区分,防火墙版的TTL值大不相同,没有DF标志,没有TCP选项。这些伪SYN/ACK在现在为止还是像伪复位一样很好过滤的,防火长城再次失效。另外,由于只有封锁继发连接时才会使用这种策略,那么客户端可以把服务端的TTL记下来,而防火墙是搞不清该往伪报文里填什么值的。

不过,防火墙越搞越复杂,说不定就能造出没法区分的SYN/ACK报文来了。那客户端直接把第一个收到的SYN/ACK当成防火墙发出的伪报文即可。不过要是防火墙又来时不时来延时一下才发送伪SYN/ACK(让思维简单的机器通过,打倒思维复杂的机器!)那么这场复杂的“博弈”会升级成更深奥的战略对决。要注意打开网页常常会有多个连接,那么防火墙即使只是搞掉其中一部分也会觉得有“胜利感”。

一个高效的客户端策略(先决条件是客户端和服务端都丢弃复位报文)是将所有传入SYN/ACK报文视为有效(防火墙以后也许会发好几个过来),然后检查全部的序列号和确认号直到从服务端收到一个ACK以确认正确的取值。不过这对于像iptables或者ipfw这种简单的报文过滤系统来说太复杂了,超出实现能力。

新一轮“博弈”也许是防火墙开始针对所有客户端报文伪造ACK。可能客户端可以通过检测从服务端获得的真正RST来看穿防火墙的整个伪连接,于是防火墙连这些都要开始伪造了──这样下去策略变得不知道有多复杂。不过终端节点确实有优势来最终判断报文是来自(有状态的)对方还是(无状态的)防火墙。要是防火墙也开始记录“状态”,那么整个主要架构的变化(虽然一定又是一笔巨大的开支)便会带来许多其他可用策略,优势也会决定性地偏向防火墙这边。

可是必须注意到,防火墙的SYN/ACK报文伪造问题不能通过改变服务端的TCP/IP栈来安全地解决。那样的话服务端需要发现客户端持续地响应的那个“错误”的ACK值并改变自身状态以响应这个从伪SYN/ACK报文中出来的值。但这样就去掉了一个Bellovin记录的重要安全步骤,进而导致恶意主机伪造源IP地址访问的漏洞。[36]

另外,在可以“嗅探”并伪造报文的对手面前进行安全连接,这在密钥交换协议邻域已经得到充分研究。未决的问题是,如何利用中国防火墙目前的架构性缺陷,通过对现有TCP/IP栈的简单修改来战胜防火长城。

6 拒绝服务攻击
我们前面提到,单个包含?falun之类内容的TCP报文就足以触发节点间至多长达一个小时的封锁。如果伪造源地址,就可以发起(但也是受限的)拒绝服务(Denial of Service)攻击,阻断特定节点间的通信。不过不同的人有不同的目标,这对某些攻击者来说已经足够。比如,识别并阻止地区政府机构的主机访问 “Windows自动更新”;或者阻止某个部委访问一个联合国网站;或者阻止中国海外使馆访问家乡网站。

我们计算发现,即使是一个人通过单个拨号连接也可以发起相当有效的DoS攻击。这样一个人每秒可以产生大约100个触发性报文,假设封锁时间大约是20分钟,那么120000对节点便可被永久封锁。当然,现在的DoS攻击几乎不会通过单个拨号方式实现,而是在快得多的网络上以巨大的数量进行。那么 120000便可以乘到你满意。不过防火墙的IDS组件也许没有资源记录如此大量的封锁连接,所以实际的影响要考虑受到此类资源限制的情况。还要注意当 IDS处理DoS攻击的时候它处理其他连接信息的资源就会变少,于是其效用也就暂时降低。

6.1 DoS攻击的限制
进一步实验显示此防火墙的封锁方式比我们迄今为止解释的还要复杂一些;因此DoS攻击的效果不一定有刚才那样说得那么好。

首先,封锁只应用于相似端口上的继发连接。[37]只有端口值前9最高有效位与触发封锁的端口对应时,防火墙才会封锁这一连接,这样的端口每次有 128个。Windows这类系统会连续分配临时端口,于是平均有64个继发连接会被封锁。(有时比如触发封锁的端口是4095那么就不会有继发封锁)反之OpenBSD之类的系统会随机分配临时端口,于是继发连接被封锁的可能性只有1/500。

我们对防火墙的这种行为没有确定的解释。不看端口直接封锁所有连接似乎还简单有效许多。[38]这么做也许是为了避免误封NAT后面的其他用户,或者是用来确定发送某报文的IDS。也许这么做只是有意要显得神秘而愈发有威慑力。然而从DoS攻击者的角度,除非有特殊条件可以预测临时端口,要让所有可能端口段都被封锁所需的报文发送量便增长了500倍。

图1:中国防火墙对“坏”字符串的封锁情况。

图1:中国防火墙对“坏”字符串的封锁情况。

2006年二月上旬我们进行了一次10天的试验,每小时一次从256个相邻IP地址进行连接。这里是前128的结果;其余部分模式也十分相似。黑点表明连接被封锁,白点表明没有封锁,灰点是结果不定(完全没有响应)。在110小时前后可见防火墙策略的显著变化(封锁更多的IP地址)。

其次,并非所有IP地址的流量都被检测过。我们每小时进行一次突发连接,发送一组256个IP地址连续的含有“?falun”的报文。起初每组报文只有约三分之二被封锁掉,封掉的地址每次不同。不过几天之后几乎所有报文被封锁。我们无法通过逆向工程确定地址选择的算法,不过IP地址选择确有鲜明的模式[39],暗示背后的机制可能相当简单。最直接的解释是资源匮乏──流量的三分之二也许就是整个系统可以处理的极限。显然某些时候如果一部分机器没有进行报文检测的工作,DoS攻击也就不可能通过它们发起。

最终需要注意的就是,这些实验只是在中国内外的少量节点上进行的,虽然我们得到了足够一致的结果,但像“防火长城”这种复杂的系统我们还是可能忽略了它的某些重要特性。因此虽然我们认为DoS攻击可以在许多情况下成功,我们也不能保证任一节点对上的任一次攻击都能成功。

7 战略考虑
要让流量顺利通过中国防火墙就必须要求双方忽略复位。“世界其他地方”的机器如果想在中国也能正常访问,只需稍作调整。但在中国这边的人就不那么愿意装一些特殊软件了。主要问题是防火墙可能做的,不仅是封锁,还有记录。随之而来的可能就是侦查,安装的特殊软件便会被查获,有人便会对你安装此种软件的动机产生某种看法。

中国防火墙的报文检查功能也可以通过加密的方法规避。如果当局通过对内容的统计分析检测出加密通信,那么安装特殊软件遭到侦查的问题还是一样的。由于加密系统一般会话结束后便废弃密钥,通信内容是色情还是政治演讲这是无法分辨的。如果用丢弃复位的方法穿墙,防火墙可以通过日志的方法记录封锁触发内容,当局便可以检查日志并对这两种通信采取不同措施。这两种方法相比有人觉得丢弃复位法更有优势。

如果复位丢弃广泛以毫不相关的理由应用,中国政府可能不得不对复位丢弃软件采取更加容忍的态度。

关于软件防火墙的一些研究指出如果例行丢弃TCP复位会产生一些副作用。[40]复位报文主要是用来快速报告不受欢迎的传入连接。如果远端机工作良好,那么忽略报文而不响应复位只会产生稍微多一点的流量。

然而,对于不想丢掉所有的TCP复位的人来说,当然这里也有另一种策略。[41]目前TTL校验就是一种检测复位报文真伪的简单方法。特别地,我们注意到Watson提出的通过第三方伪复位造成连接关闭的复位攻击[42],通常的防御手段是仔细验证序列号。如果再加上复位报文的TTL校验,就可以更好地识别伪复位。本文作者之一编写了一段20行的FreeBDS补丁[43],可以丢弃TTL值严重偏离的复位报文。到现在用户体验都很好。其他*作系统和个人防火墙大概也不会觉得添加这个功能很麻烦。

当然,中国防火墙也可以改进,让前面提及的规避方法难以实现。特别是它可以较容易地构造正确TTL的复位报文发往触发报文的相同方向。不过要想获得相反方向的正确TTL就不大容易了,因为网络路由基本上是非对称的,防火墙不能透视通信的两个方向。更复杂的方法是将报文从路由队列中移除(或者延迟到内容检测完成才放行)。除非报文在抵达终点前被阻止,我们的基本策略──无视防火墙发出的噪音──将继续有效。

另一套完全不同的防火墙策略则是当封禁被触发后不向该站点转发任何报文。不过我们前面提到此法扩展性极差,因为完成这个“内联”过程需要路由器间的快速通路──而且,全面的封锁无疑增加了DoS攻击的威力。

7.1 打破“防火长城”的公共政策动力

特别是在美国,有相当的政治利益关心着中国之外的公司如何帮助中国政府压制信息、锁定持不同政见者和异见网志作者。特别地,在2006年2月的一次国会听证会上,相当数量的美国大型公司由于其政策和行为而受到了严厉谴责。[44]不过对于如何绕开中国的过滤技术现在也有更多的关注。比如由CIA部分资助的SafeWeb,在2000到2003年运营了一个匿名网络代理,同时它还开发出一种昵称TriangleBoy的反审查技术。[45]2006 下半年发起的加拿大的Psiphon计划旨在让“不受审查国家的公民向在他们防火墙背后的朋友和家人提供自由的网络连接”。[46]

可以预测本文所描述的通过忽略复位报文规避中国防火墙的方法也会引起相当的兴趣。当然也会有“军备竞赛”的危险,所以双方采取的策略可能复杂得多。让防火墙立刻失效方法也是相当直接的;不过实现这个方案需要中国外的服务器和中国内的浏览器同时丢弃复位。服务器一方显然会有动力去实现复位丢弃,因为这样就让在中国的人可以访问。不过要是看看中国国内的情形和人们改变浏览器(或者*作系统)配置的动力就会知道事情远比这复杂得多。虽然都是运行在中国的机器上,这些软件却都是在中国以外开发,特别是大多数软件都安装在微软开发的Windows上。

我们这里提出一个关于公共政策的问题:是否应该鼓励或者强制微软修改程序以帮助规避中国防火墙?显然对于中国的审查有着广泛谴责,那么反审查措施当然会得到政治意见和公共意见的赞同。[47]在本节前面我们提到,对这种改进的技术性反对意见是很有限的,这种改进可以提升对第三方攻击(防火墙只是第三方干涉网络通信的特例)的防御安全性。然而微软(以及其他*作系统和浏览器开发商)很可能不愿意冒犯中国政府,那么在被强制之前他们会一直拖下去。

一般的常识便是软件容易修改,硬件不易修改。不过把硬件改动的时间与制订新法规的时间相比就会知道,在强制供应商提供规避防火墙功能的法律生效之前,中国政府就会采用新的封锁硬件。[48]可以推测,新的硬件会考虑到我们提到的问题并对复位丢弃免疫。因此我们认为通过立法(强制供应商)并不是实用的办法,除非立法是普遍意义上的、不关注技术细节的。让供应商少去讨好中国政府多关心其他所有人,这才是最现实的道路。

8 结论

本文我们展示了基于报文内容检测的“防火长城”。当过滤规则触发时,伪复位报文便发向TCP连接两方。然而真正的报文亦完好通过防火墙,于是通过忽略这些复位,通信便不受干扰。相同方向上的继发连接也被封锁(只有在端口相关的情况下),不过通过忽略复位通信仍可以顺畅继续。

以上结果对于中国当局具有相当的意义,他们也许会加强他们的系统、修补防火墙的漏洞。当然我们在前面也说,这并不容易。[49]然而对于希望自由访问网络的中国居民来说,以上结果意义就小得多,因为他们的活动仍然受到记录和监视。只有当丢弃复位报文成为普遍做法以后,人们的才能说他们是无意中翻墙的。这种想法也不能算离谱,因为验证TCP复位是否为伪造也是TCP/IP栈应该做的。

我们还展示了封锁的副作用:为DoS攻击提供了可能性。当然这种DoS攻击只能用在特定节点之间。利用一套封锁机制来封锁什么东西这本身并没什么新意,但如果防火墙不作足够的状态记录,我们也看不到避免这种攻击的简便方法。

我们展示的结果也关系到其他使用类似复位机制来保护自身利益的国家、机构、企业。他们应该谨慎地认识到这种封锁完全依赖于被封锁者的默许。一些相对中国来说的小国家会经受更大的DoS攻击风险,因为他们的终端节点要少得多,防火墙在攻击效果变得显著之前尚不会过载。

9 补记

2007年春另外一组研究者(Jedidiah R. Crandall和其他人的“ConceptDoppler”项目)[50]的一些实验也揭露了这个防火墙的工作细节,但复位机制是基本不变的。不过他们的测量表明复位现在开始发生在中国互联网的内部,不仅是边际路由器;且与我们一年前观察到的相比封锁在繁忙时段变得更加断断续续。他们的研究手段也让他们可以发表一份关于被过滤话题的统计列表。

注释

* [1] OpenNet Initiative, “Internet Filtering in China in 2004–2005: A Country Study,” OpenNet Initiative, hxxp://www.opennetinitiative.net/studies/china/ONI_China_Country_Study.pdf (accessed October 21, 2007).
* [2] OpenNet Initiative, “Probing Chinese Search Engine Filtering,” OpenNet Initiative: Bulletin 005, hxxp://www.opennetinitiative.net/bulletins/005/ (accessed October 15, 2007).
* [3] Ronald J. Deibert and others, eds., Access Denied: The Practice and Policy of Global Internet Filtering (Cambridge: MIT Press, 2007).
* [4] Nart Villeneuve, “Censorship is in the Router,” June 3, 2005, hxxp://ice.citizenlab.org/?p=113 (accessed October 15, 2007).
* [5] OpenNet Initiative, “Probing Chinese Search Engine Filtering.”
* [6] RST标志置位的TCP报文。这种报文表明一方要求立即关闭当前连接不再传输。
* [7] See Maximillian Dornseif, “Government Mandated Blocking of Foreign Web Content,” Security, E-Learning, E-Services: Proceedings of the 17 DFN-Arbeitstagung über Kommunikationsnetze, eds. Jan van Knop, Wilhelm Haverkamp, Eike Jessen, 617–646 (Dusseldorf, Germany: GI, 2004).
* [8] Richard Clayton, “Failures in a Hybrid Content Blocking System,” in Privacy Enhancing Technologies: 5th International Workshop Cavtat, Croatia, May 30-June 1, 2005 (Berlin, Germany: Springer, 2006): 78–92.
* [9] Richard Clayton, “Anonymity and Traceability in Cyberspace,” Technical Report (2005), hxxp://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-653.pdf (for details of the complexity, see the extensive discussion in “Anonymity and Traceability in Cyberspace”) (accessed October 15, 2007).
* [10] Benjamin Edelman, “Web Sites Sharing IP Addresses: Prevalence and Significance,” Berkman Center for Internet & Society, hxxp://cyber.law.harvard.edu/people/edelman/ip-sharing (accessed October 15, 2007).
* [11] Dornseif, “Government Mandated Blocking,” 626–27.
* [12] Center for Democracy & Technology v. Pappert, 337 F. Supp. 2d 606 (E.D. Penn. 2004).
* [13] King Abdulaziz City for Science and Technology: Local Content Filtering Procedure. Internet Services Unit (2004), hxxp://www.isu.net.sa/saudi-internet/contenet-filtring/filtring-mechanism.htm (accessed October 15, 2007).
* [14] OpenNet Initiative, “Internet Filtering in Burma in 2005: A Country Study,” OpenNet Initiative, hxxp://www.opennetinitiative.net/burma/ONI_Burma_Country_Study.pdf (accessed October 15, 2007).
* [15] Telenor, “Telenor and KRIPOS Introduce Internet Child Pornography Filter,” press release, September 21, 2004, hxxp://presse.telenor.no/PR/200409/961319_5.html (accessed October 15, 2007).
* [16] Dornseif, “Government Mandated Blocking,” 642-44; Clayton, “Failures in a Hybrid Content Blocking System,” 78–92.
* [17] IDS可以将多种不规则的表现转化为标准形式,然后与封锁列表比对作出正确决策。
* [18] 这种对称必须存在,因为防火墙需要同时封禁网络请求和回应。
* [19] Villeneuve, “Censorship is in the Router.”
* [20] SYN(同步)标志标明了打开TCP连接时的第一个报文。
* [21] 这是对SYN报文的回应,其SYN和ACK(确认)置位,用“SYN/ACK”来表示在TCP连接打开过程中的第二个报文。
* [22] 关于TCP的准确细节,和发起连接时交换SYN、SYN/ACK和ACK置位报文的方法原因,可以查阅很多好的网络通信教材,比如W. Richard Stevens, TCP/IP Illustrated, Volume 1, The Protocols (Reading, MA: Addison-Wesley, 1994)。
* [23] 当我们启用TCP时间戳且报文包含12字节TCP附加选项的时候,这个值变成1448的倍数。
* [24] TCP对所有数据报文用序列号进行标记,指示报文包含数据的顺序。当报文丢失、延迟或重复时,可以靠序列号来重建数据流。“窗口”是指在没有收到确认时最多可以发送的数据量。现在的互联网中,检查序列号落入窗口(复位报文序列号符合预期)是避免第三方干扰连接的重要安全措施。
* [25] Paul A. Watson, “Slipping in the Window: TCP Reset Attacks,” Open Source Vulnerability Database, hxxp://osvdb.org/reference/SlippingInTheWindow_v1.0.doc (accessed October 15, 2007).
* [26] 存活时间(TTL)初始值由报文发送者确定,通过一个路由就减一。这是为了确保报文不在路由间无穷循环,当TTL为零时报文就被丢弃了。于是通过校验TTL值可以推算报文走过的距离。
* [27] 如果复位在GET报文之前到达,则此复位报文不会被接受。服务器是FreeBSD系统,在连接的这个阶段,TCP栈接受的复位的序列号必须精确匹配上次发送的确认的值,以防止拒绝服务攻击。在GET报文到达前其值为+1,于是这时所有的复位都是无效的。
* [28] SYN/ACK报文含有连接双方选定的序列号。
* [29] AS指特定ISP拥有的骨干网络。我们采用的是CERNET的“China ASN List”,hxxp://bgpview.6test.edu.cn/bgp-view/cur_ana/ipv4cn /china_asnlist.shtml。互联网路由器保存有优化路径列表,而“全球路由表”表达了特定AS对地址的所有权。
* [30] See Jedidiah R. Crandall and others, “ConceptDoppler: A Weather Tracker for Internet Censorship” (14th ACM Conference on Computer and Communications Security, Alexandria, VA, October 29–November 2, 2007) hxxp://www.cs.unm.edu/~crandall/concept_doppler_ccs07.pdf (accessed October 15, 2007).
* [31] Earl Carter, Secure Intrusion Detection Systems (Indianapolis: Cisco Press, 2001).
* [32] 即,检测报文内容的设备是在实际连接“旁边的”于是只能检测“坏”流量而不能对其有任何直接影响。
* [33] 路由器一般都有根据特定标准进行报文过滤的功能。
* [34] Yi Wang, Guohan Lu, and Xing Li, “A Study of Internet Packet Reordering,” Information Networking (Heidelberg, Germany: Springer-Berlin, 2004): 350–359.
* [35] J. Postel, ed., “Transmission Control Protocol, DARPA Internet Program Protocol Specification” (memo, Network Working Group Request for Comments, September 1981) hxxp://www.ietf.org/rfc/rfc793.txt (accessed October 21, 2007).
* [36] S. Bellovin, memorandum, May 1996, in Network Working Group Request for Comments, “Defending Against Sequence Number Attacks,” hxxp://www.ietf.org/rfc/rfc1948.txt (accessed October 15, 2007).
* [37] ──译注,此节所述似已过时。在翻译完成的时候译者测试发现,继发封锁跟初始端口或者继发端口没有关系,所有端口的继发连接都被屏蔽。
* [38] hxxp通信不仅在80端口(tcp/hxxp)上被封锁,还有其他一些端口也受到影响。不过一个端口被封不影响其他邻近端口,比如80端口被封不影响433端口(tcp/hxxps)。
* [39] 见图1。
* [40] See Clayton, “Anonymity and Traceability,” 81.
* [41] 未来中国的防火墙还可能通过FIN报文来打断连接,然而忽略所有FIN报文则会导致不能正常连接,到那时TTL校验法会更好。
* [42] Watson, “Slipping in the Window.”
* [43] Robert N. M. Watson, “Patches Associated with My Academic Research,” hxxp://www.cl.cam.ac.uk/~rnw24/patches (accessed October 15, 2007).
* [44] Suzanne Goldenberg, “Congress Accuses Google of Collusion,” The Guardian, February 16, 2006, hxxp://www.guardian.co.uk/china/story/0,,1710616,00.html (accessed October 15, 2007).
* [45] SafeWeb, “TriangleBoy Whitepaper,” SafeWeb, 2003, hxxp://web.archive.org/web/20030417171335/hxxp://www.safeweb.com/tboy_whitepaper.html (accessed October 15, 2007).
* [46] Psiphon, hxxp://psiphon.civisec.org (accessed October 15, 2007).
* [47] Stokely Baksh, “US Calls for Fall of Great Firewall,” United Press International, February 15, 2006; Kate Allen, “Today, Our Chance to Fight a New Hi-Tech Tyranny,” Observer, May 28, 2006; Cory Doctorow, “See No Evil?,” Guardian, July 6, 2007.opinion. 47
* [48] “此法案是近年来孕育期最长的。导致此法案产生的斯科特报告是在五年半前的1996年2月发表的。保守党政府接受了此报告的提议并立即发出了资讯文书。工人党1997年的宣言坚定承诺要采取行动。于是1998年出了那本白皮书。不过之后政府就不闻不问于是,过了三年此法案才推出。”Hansard Parliamentary Debates, Commons, 6th ser., vol. 374 (2001), col. 457.
* [49] 本文中描述的实验都是在2006年春进行的,本文的初始版发表在2006年6月的隐私增强技术研讨会上。
* [50] ──译注:见hxxp://www.conceptdoppler.org/。







==========================

二、推倒中国防火长城

原文: eWEEK.com hxxp://www.eweek.com/c/a/Security/Toppling-the-Great-Firewall-of-China/
translated by enty

忘记你那普通的防火墙吧:中国的信息审 查依赖的是狡诈而又古老的技术。

中国的国家防火墙是根本没有防火墙。

中华人民共和国根本没有在国际出口路由器上安装防火墙来封马赛克锁国外的网络站点。

实际上,这个独马赛克裁马赛克政马赛克权依赖的是一套久经考验的审查制度,它有一张关键词黑名单,它的路由器深入到因特网的每个角落来检查是否存在这些违马赛克禁的关键词。

“一般认为这是一种防火墙——在此之外的东西都被封马赛克锁了。我们发现有时候有13个节点来进行关键词过滤(一般只有几个)。有的路径并没有被过滤。”Jed Crandall,一位新墨西哥大学工学院的计算机科学的助理教授告诉eWEEK。

实际上,研究者认为,政马赛克府用来阻止用户访问某些它认为含有有害信息的“防马赛克火马赛克长马赛克城”是一座“圆形监狱” ——监狱中的人不知道他们是否正在被监视着。(译注:“圆形监狱”,原文panopticon,为Jeremy Bentham在1791年提出,大意为将犯人关在一个圆形的牢房中,墙壁是单向透明的,外面的人可以看到里面,里面的人不可以看到外面。这样的方式对于囚犯来说,更多的是囚禁他们的心理而不是身体。链接指向的是英文维基百科上的相关词条)

有来自加利福尼亚-戴维斯大学的人员的一个研究小组,发现他们所谓的“中国防马赛克火马赛克长马赛克城”并不会封锁所有墙外的违法词汇——只要多到让人们知道它的存在而进行自我审查就足够了。

事实上,在研究人员放置了探测器的中国主机中,有28%可以通过没有过滤器的线路与外面进行连接,这证明在中国的出口网络连接上并没有一个GFC 关键词过滤器(译注:"GFC",原文如此,国内一般简称为GFW,这里应该是Great Firewall of China的缩写)。

防火墙规避扮演了一个很复杂的角色,它让中国的互联网用户误以为自己一直被封锁。因此研究者正在计划一个新的体系来绕过GFC的关键词过滤,而再也不需要为防火墙规避而费心了。

他们现在在制造一个工具,名叫“ConceptDoppler”,提供了另一种出人意料的选择:即,用黑名单上的关键词进行“垃圾攻击”(译注:原文spammify)。首先要确定这些关键词都是些什么,他们传送含有不同关键词的数据包传送到中国,来看含有那些关键词的数据包会被拦截,以及是那些特定的路由器在做黑名单过滤的工作。那些路由器,会将含有非法关键词的数据包访问请求重置,以阻止国内用户下载那些违禁内容。

研究人员表示,“ConceptDoppler”会像天气预报一样通报中国(以及其它国家)的审马赛克查制度的每个小改变。这个工具会通过特定的算法来生成不同的词,以确定中国的关键词黑名单上都写了些什么。迄今他们已经确定了122个关键词,但是他们告诉eWEEK,违禁的关键词应该有几千个。

除了用来编制一张全世界的网络审马赛克查地图以外,研究人员计划将ConceptDoppler改造成一件可以对关键词黑名单进行“垃圾攻击”攻击的利器。就像一些垃圾邮件发送者采取的技术一样,它会将违禁的关键词分隔开,或者在中间嵌入一些随机的字符。

“垃圾邮件给了我们启示,”Earl Barr说道,他是加利福尼亚-戴维斯大学的一名主攻计算机科学的研究生。他还在一家报纸上发表过关于这个研究的文章《ConceptDoppler:网络审查的天气预报员》(ConceptDoppler: A Weather Tracker for Internet Censorship)。

“我们找到了最好的垃圾邮件发送工具——来自匈牙利的程序,然后将这个工具用来做一些好事。”Barr说。

按照他们的设想,当中国的一个地址向一个含有黑名单中的关键词的网站发出连接请求时,安装在网站上的一个程序会发出提醒。网站管理员可以激活这个“垃圾制造工具”,让传输到中国的数据可以绕过关键词过滤。

许多黑名单中的关键词是可以预料到的,比如“西马赛克藏马赛克独马赛克立马赛克运马赛克动”(Tibetan Independence Movement)、“法马赛克轮马赛克功”(F a l u n G on g)、“罢马赛克工马赛克权”(The right to strike)、“天 安 门马赛克广场马赛克绝马赛克食”(Tiana nm en Square Hun ger Strike Group)、“美国马赛克之音”(Voice of America)等。

而有一些就让人感到惊讶,比如“转换率”(conversion rate),“我的奋斗”(译注:原文为德语"Mein Kampf",阿道夫·希特勒的自传)和“国际地质科学联合会”(International geological scientific federation)。也许这些词在汉语中会部分匹配其它违禁词。

比如说,一篇维基百科上关于西德的一个州的文章,如果翻译为中文,可能里面会有和“法马赛克轮马赛克功”相似的词句。Crandall 只能这么揣测为什么黑名单上的有些关键词如此怪异。

“我的一个中国朋友告诉我,政马赛克府不仅屏蔽对他们有害的信息,他们还屏蔽他们认为‘坏的(bad)’。许多和二战有关的网页也被屏蔽了。”

封锁互联网通讯的话,中国并不是唯一的一个。加拿大和英国会封锁儿童色马赛克情的内容,德国也会封锁和纳粹有关的网页。

但是说到把关键词过滤使到如此“炉火纯青”的境界,中国就是独一无二的了,Crandall 说道。伊朗用的是更简单的代理服务器过滤器(proxy filtering)来进行关键词过滤,而中国的技术可以让路由器探测到每一个独立网页,因此可以避免整站封锁。按照Crandall 的说法,这种做法更像是一个土办法。譬如,“大马赛克屠马赛克杀”(m a s s a c r e )这个词也出现在了黑名单里面,这意味着所有含有这个词的网页都会被封锁。

但是当中国的过滤技术发挥效用的时候,会让封锁看起来是无意中进行的。按照审马赛克查员的观点,这是一种更加优秀而文雅的封马赛克锁方式。如果对IP进行封锁的话,也许有人可以在另一个IP地址上给被封马赛克锁网站的内容做一个镜像。Barr说道。

然而当使用代理服务器可以绕过审查的时候,这样的方法就遇到了问题。代理服务器迫使审马赛克查马赛克员要检测网络上每一个节点,这要耗费大量的资源,通过造成单一故障点的方式也行不通了。“要解决这个问题的花费非常昂贵。”Barr 说。

然而无论如何,代理服务器是有明确的协议的。因此他们可以绕过绕过用户在另一个通道对通信协议进行修改。

GFC不仅是一种优雅而难以逾越的封锁工具,对于研究者来说,它本身说明的信息更让人感兴趣。中国的国家防火墙告诉研究者这样一个信息,一个数据包的连接被重置以后,其境外来源也会被跟踪。

“ 你可以在中国境外通过关键词过滤的方式进行试探,”Crandall 说“我们意识到,在中国境外我们可以找出有多少进入中国的数据包,以及过滤器放在哪个路由器上。我们调节了被返回的数据包,知道它经过了多少个路由器之后被返回的。我们也可以测试一下黑名单里的关键词,如果被复位,我们就知道它被封马赛克锁了。”

研究员计划寻找一种更好的方法来确定放置过滤器的位置,并且会使用加利福尼亚-戴维斯大学之外的源点来进行测试。中国现在可能正在使用更加狡猾的技术,比如IP转向。占据因特网上的地利后会让研究员更容易确定是否真的如此。

从这一点上看,使用单一的信息源会阻碍研究院确定封马赛克锁点的位置。他们现在所知道的是,中国最大的ISP(网络服务商),中国电信(ChinaNET),通过他们的探测器完成了83.3%的过滤。他们还知道99.1%的过滤发生在中国最后一台出口路由器上,在那里11.8%的信息被过滤掉了。有时候在那里会遭遇13层过滤。

他们还知道的是,其它有志于加入互联网马赛克审马赛克查行列的国家正要复制中国的技术







===========================

三、中国的 GFW 是在骗人吗?

China's 'Eye on the Internet' a Fraud hxxp://www.scienceblog.com/cms/chinas-eye-internet-fraud-14190.html

根据 UC Davis 与 UNM 的研究者表示,"Great Firewall of China(GFW,金盾工程的一部份)" 被中华人民共和国政府用来阻挡使用者接触异议内容,实际上是种全面监控(panopticon,圆形监狱),让使用者感觉被监视,而非真的有防火墙,进而达到鼓励自我审查(self-censorship)的目的。

研究者开发出一种自动化工具,称为 ConceptDoppler(概念杜卜勒雷达),扮演中国因特网审查变化的天气预报者。ConceptDoppler 使用数学技术,以意义群聚单字(cluster words by meaning),并且确认很可能列入黑名单中的关键词。

许多国家都实行某种形式的因特网审查。大部分都依赖能够封锁特定网站或特定网址的系统,Earl Barr 说, UC Davis 计算机科学系的毕业生,他是该论文的作者。中国则采取不同的途径,它利用特定关键词过滤网站内容,并选择性封锁网页。

在 2006,英格兰剑桥大学的一个团队发现,当中国的系统在流经网络的数据中侦测到一个被禁止的单字时,它会传送一连三个 "reset" 命令到来源端与目的端。这些 "resets" 能有效的破坏连结。不过它们亦允许研究者测试单字,并看察看哪一个被审查。

Barr,与 Jed Crandall,刚从 UC Davis 毕业,现在是 UNM 工程学院的计算机科学助教授;UC Davis 毕业生 Daniel Zinn 与 Michael Byrd;以及独立研究者 Rich East 一起传送讯息到位于中国境内的网址,这些讯息包含各种不同的、容易受到审查的单字。

如果中国的审查系统真的是防火墙,大部分的封锁将发生在与其余因特网毗邻的边界,Barr 说。不过研究者发现某些讯息在被封锁之前,能通过数个路由器。

防火墙也能用来阻挡所有被提及的被禁单字或是词组,不过在受测路径中,有 28% 可让被禁单字抵达目的地,Byrd 说。因特网在重度使用时,过滤会变得特别古怪(erratic)。

用来探测中国因特网的单字并非随机选择。

"如果我们仅仅以随机单字轰炸 Great Firewall 的话,我们会浪费资源与时间," Zinn 说。

研究者采用中国版本的 Wikipedia,撷取出个别单字并利用一种称为潜在语义分析(latent semantic analysis)的数学技术,产生不同单字之间的相关性。如果其中一个单字在中国境内被审查,他们就能搜寻其它也有可能会被封锁的相关单字。

被研究者拿来测试,且发现被封锁的单字包括法轮功(Falun Gong movement);天安门事件(protest movements of 1989);纳粹德国(Nazi Germany)以及他历史事件;以及与民主、政治性抗议相关的一般概念。

" 想象你要从国会图书馆中移除伤膝大屠杀(Wounded Knee massacre,伤膝地区是 1890 年联邦军队大屠杀苏族 (Sioux) 印地安人之处)," Crandall 说。"你可以移除「Bury My Heart at Wounded Knee(魂断伤膝河)」与其它挑选出来的书籍,或着你可以移除整个图书馆中每一本包含「大屠杀(massacre)这个单字的书籍」。"

经过类推,中国基于关键词过滤的因特网审查等同于后者 -- 而实际上,「大屠杀」这个关键词也确实存在于黑名单上。

因为它过滤思想(idea)而非特定网站,关键词过滤能阻止人民使用代理服务器或「镜像」网站以躲避审查。但因为它并非所有时段都有效,所以它或许有一部份是扮演鼓励自我审查的角色,Barr 说。当中国境内的使用者看见某些单字、思想与概念在大部分的时间都被封锁,那他们就会理所当然地认为,他们应该避免这些主题。

最初的 panopticon(圆形监狱)是一种由英国哲学家 Jeremy Bentham(边沁)在 18 世纪所设计出来的监狱。Bentham 提出位在中央的监视者能够监视每一个囚犯,而囚犯则不知道他们何时被监视。

这项研究将于 2007 年 10 月 29 日到 11 月 2 日,在维吉尼亚州 Alexandria 举办的 Association for Computing Machinery Computer and Communications Security Conference 上演示。
---------------------------------------
出处:here

纯属瞎猜,请勿当真——真理部:思科也不是好鸟

纯属瞎猜,请勿当真——真理部:思科也不是好鸟。

今天和同学谈起GFW来,突然有感而发,为什么真理部突然着急要搞个国产绿坝呢?我觉得有真理部希望摆脱思科技术垄断的想法在里面。

众所周知,伟大的防火长城GFW是假设在cisco路由器上的,GFW这套censorship方案也是思科提出的。真理部用了后发现,GFW果然不错,虽然https和加密代理服务器给真理部制造了不少麻烦,但真理部觉得cisco还是不错的,至少加密过墙也没有什么好办法了。考虑到绝大部分真理子民都不会这些翻墙技术,所以真理部觉得cisco这套方案还是很不错的,思科是好同志!

后来,估计真理部慢慢觉得不对头了,你cisco无论如何也是国外的企业,是万恶的资本主义帝国主义资本家的代表,用万恶资本主义制造的工具来保护真理子民免受万恶资本主义流毒的侵害,这有点说不过去。而且,真理部想啊,这个GFW说不准就是一颗定时炸弹,要是GFW上真有后门那麻烦就大了。当然啦,真理部到底有没有扒开思科路由仔细研究一遍这个不好说,但是有一点是肯定的,GFW这么高级的技术,让国外人掌握着,总有一种命运咽喉被老外控制的感觉,如果思科真不是一只好鸟怎么办?

于是真理部的同志们坐不住了,奋战300天,不要命也要夺下大油田,必须开发一套国产的censorship系统!真理部总结了GFW的成败得失,发现GFW最大的缺点在于没法堵截加密翻墙。于是真理部的同志们一拍脑袋瓜,有主意了,给全国每台电脑都装上节育环不就解决问题了?真理部乐开花了,匆匆忙忙找了两家二流软件公司就开始写中国版GFW。

软件公司这下可毛了,真理部的圣旨不能违背啊,但是自己技术实在不怎么样,写个国产GFW有困难。在这危急关头,公司内部某职业黑客挺身而出,把自己平时写的后门软件客户端源代码无私的奉献出来,外加上嫖宿来的美国XX公司的图像拦截技术东凑西凑算是把GFW中国版开发出来了。

真理部同志们检查验收,本来打算给这软件起名叫“过滤嘴”,结果试用之后发现和谐的不和谐的都被GFW掉了,某同志感慨:“这tmd哪里是过滤嘴啊,简直是过滤霸啊,tmd抽烟你连尼古丁都给过滤了!”

于是乎,绿坝就这样诞生了,真理部终于挺直了腰杆,大声向世界宣布——思科也不是好鸟!


以上文字纯属恶搞瞎猜,只是为了博君一笑,请勿当真!本人电脑安装绿坝之后经常自动打字,因此上述文字并非全部为本人所写,不代表本人观点,也不表示本人认知、理解、同意上述文字的观点,请勿翻墙追捕!

(转myopera,原文……here)

2010年6月5日星期六

钱都哪去了?地震局住房花销竟是预报支出的60倍!

玉树地震发生了几天来,我想起一件事情来,就是这次地震和汶川地震一样,中国地震局又没有预测到。而我这人又有点职业病,喜欢看钱怎么来,怎么用;而幸运的我,又恰好生活在这个太平盛世,开明的世界,找点资料还是存在可能。


我先在国家地震局(http://www.cea.gov.cn/)找2010年的预算,找呀找,就是找不到。生活在中国的人都知道,越高层越开明,那我转而到中央go-vern-ment网站(www.gov.cn)找,果然找到了:

http://www.gov.cn/gzdt/2010-04/02/content_1571794.htm

中国地震局公布2010年部门预算 地震局2010年收支预算总表   单位:万元










国家地震局2010年总预算支出24亿元,比国资委(34亿元)等部位要少,但比审计署(9.7亿元)、药监局(7.1亿元)要多。看样子,地震局的钱已经算不少了。


那24亿元都用到哪些地方去了? 我自以为是的认为,地震局的钱主要是用于预测地震用的,结果证明,我这个生活在中国30多年的人,还是不怎么了解机构运作的情况。




中国地震局2010年支出预算表
科目编码 单位名称(科目) 合计   基本支出 项目支出 上缴上级支出 事业单位经营支出
事业单位 240,740   139,191 98,948   2,600
202 外交 150     150
20204 国际组织 70     70
2020401 国际组织会费 70     70
20205 对外合作与交流 80     80
2020503 在华国际会议 80     80
205 教育 11,565   10,039 1,526
20502 普通教育 11,565   10,039 1,526
2050205 高等教育 11,565   10,039 1,526
206 科学技术 59,461   20,812 38,650
20602 基础研究 2,431     2,431
2060204 重点实验室及相关设施 2,300     2,300
2060205 重大科学工程 65     65
2060206 专项基础科研 66     66
20603 应用研究 47,140   20,812 26,329
2060301 机构运行 20,812   20,812
2060302 社会公益研究 26,108     26,108
2060399 其他应用研究支出 220     220
20604 技术研究与开发 800     800
2060403 产业技术研究与开发 800     800
20605 科技条件与服务 8,917     8,917
2060503 科技条件专项 8,917     8,917
20699 其他科学技术支出 173     173
2069999 其他科学技术支出 173     173
207 文化体育与传媒 1,985   1,985
20705 新闻出版 1,985   1,985
2070505 出版发行 1,985   1,985
208 社会保障和就业 1,091   1,091
20805 行政事业单位离退休 1,091   1,091
2080501 行政单位离退休 973   973
2080503 离退休人员管理机构 118   118
210 医疗卫生 83   83
21005 医疗保障 83   83
2100502 事业单位医疗 83   83
218 地震灾后恢复重建支出 10,557     10,557
21803 公益服务设施恢复重建 10,557     10,557
2180313 地震事业单位及设施 10,557     10,557
220 国土资源气象等事务 139,485   88,819 48,066   2,600
22004 地震事务 139,485   88,819 48,066   2,600
2200401 行政运行 17,944   17,944
2200402 一般行政管理事务 480     480
2200403 机关服务 1,392   1,392
2200404 地震台站、台网 17,843     17,843
2200405 地震流动观测 142     142
2200406 地震信息传输及管理 5,013     5,013
2200407 震情跟踪 1,700     1,700
2200408 地震预报预测 270 0.11%   270
2200409 地震灾害预防 5,608     5,608
2200410 地震应急救援 5,332     5,332
2200411 地震技术应用与培训 550     550
2200450 地震事业机构 72,083   69,483     2,600
2200499 其他地震事务支出 11,128     11,128
221 住房保障支出 16,362   16,362
22102 住房改革支出 16,362   16,362
2210201 住房公积金 7,166   7,166
2210202 提租补贴 518   518
2210203 购房补贴 8,678   8,678
合 计 240,740   139,191 98,948   2,600




预算支出中:

地震预报预测 270万元;

震情跟踪 1700万元

地震信息传输及管理 5012万元

先暂停, 换句话说 地震局 在预报预测上只花千分之一的钱? 假如真的地震发生了,然后就会接着花点钱跟踪?

有一点很让人佩服,中国地震局对中国地震信息传递看得太重要了,害得我都怀疑,地震局每传递一次,都需要包个专机接送?否则怎么会要5012万元?
我继续看,我继续觉得我真的真不了解这个事情了?

提租补贴 518万元

住房公积金7166万元

购房补贴 8678万元

换句话说,地震局在住房方面的花销需要1.6亿元,是预报支出的60倍!


天,这还没完,

行政运行 1.8亿元

机构运行 2.1亿元

差不多是4亿元,又是地震预报支出的140多倍!



幸好,太阳每天都会升起来,等我活到60岁的时候,希望那时候中国地震局能成功预测出一两次来

-----------------------------
原帖……here

2010年6月4日星期五

好久没来blogspot了

6月4日汤加王国的国庆节,这一天在中国北京市还是和21年前一样,啥事都没发生。