概念多普勒:互联网审查制度的天气跟踪器
來源:ConceptDoppler: A Weather Tracker for Internet Censorship
摘要
本文的文本在到达读者手中的过程中经过了许多互联网路由器,但有些路由器不会将其顺利传递,因为它包含了审查过的词语。我们提出两组结果。1)中国长城(GFC)对关键词过滤的互联网测量结果;以及2)使用la-tent语义分析作为一种有效的方式,通过探测来重现审查词的黑名单的初步结果。
我们的互联网测量结果表明,GFC的关键词过滤与其说是防火墙,不如说是一个全景图,也就是说,它不需要阻止每一个非法词汇,而只需要促进自我审查。中国最大的互联网服务提供商ChinaNET对我们的探针进行了83.3%的过滤,对超过中国边境的第一跳进行了99.1%的过滤。11.8%的探针在第三跳后就被过滤,有时经过边境到过滤路由器有13跳之多。在我们发送的探针中,约有28.3%的中国主机是可以通过完全没有过滤的路径到达的。虽然需要更多的测试来提供GFC实施的确切情况,但我们的结果证明,GFC的关键词过滤是中国互联网边界上的一道严格的防火墙。
虽然单次躲避防火墙会破坏它的目的,但几乎每次都需要躲避一个全景式的防火墙。因此,为了代替逃避,我们提出了ConceptDoppler,一个维护审查制度的 “天气报告 “的架构,即哪些关键词在一段时间内被过滤。由于GFC的复杂性,对潜在的被过滤的关键词进行探测是非常困难的,如果不有效地进行探测,可能会有侵犯性。就像对气体混合的理解在有效的天气报告之前一样,对关键词和概念之间的关系的理解对于跟踪互联网审查制度是至关重要的。我们展示了LSA可以有效地缩减文本语料库,并将过滤后的关键词进行聚类,以进行有效的探测,并介绍了我们通过探测发现的122个关键词,通过发现一些令人惊讶的黑名单关键词,如转化率(conversion rate)、我的奋斗(Mein Kampf)和̋国际地质科学联合会(国际地质科学联合会(北京)),强调了追踪和研究审查制度黑名单的必要性。
介绍
社会总是将言论分为令人反感的和允许的两类。通过促进信息的流动,互联网使这种关于分类的辩论更加尖锐。受关于中国长城(GFC)关键词过滤机制的初步工作[8]的启发,我们寻求对其实施的更好理解,并发现它根本不是一道防火墙,而是一个全景式的审查制度,审查制度的存在,即使很容易规避,也会促进自我审查。
Clayton等人[8]提供了更多关于GFC的关键词过滤操作的细节。GFC路由器扫描GET请求或HTML响应(可能还有其他协议)中的关键词,这些关键词被认为是敏感的黑名单。如果一个包含关键词的数据包通过这些路由器之一,该路由器会向数据包的源IP地址和目的IP地址发送一个或多个重置(RST)数据包,以尝试重置连接。
虽然我们不希望在技术论文中偏袒任何特定的互联网审查制度辩论,但本文的大部分内容是为了开发一种技术,对审查机制进行监视。然而,本文中的技术材料可以帮助那些在审查制度辩论中的任何一方。我们对GFC进行了探测,以找出过滤路由器的位置以及它们执行过滤的可靠程度。从这些探测的结果中,我们得到了两个启示,一个是促使我们把研究重点放在监视而不是逃避上,另一个是促使我们有效地进行监视。
- 与一般人的想法相反,过滤机制并不是在中国和其他国家之间的互联网国际网关上强制性地过滤所有违规数据包的防火墙。
- 由于GFC的复杂性,探查是非常艰巨的。
这些见解中的第一个促使我们需要进行监控。我们的结果表明,只有大约四分之一的过滤发生在国际网关上,而更多的过滤发生在进入中国的几跳,一些过滤发生在超过边界的13跳。事实上,根据数据包从我们的源点进入中国的路径,我们探测的IP地址中有28.3%可以不经过GFC路由器而到达,因此对这些目的地根本不存在过滤。再加上一个ISP做了大量的过滤工作,我们的结果表明,GFC的实施在AS层面上比以前想象的要集中得多1。即使在有过滤路由器的路线上,过滤也是不一致的,而且在网络繁忙时期往往会允许许多数据包通过。虽然单次躲避防火墙会使防火墙失效,但几乎每次都要躲避泛滥的防火墙才会使其失效。这就是为什么我们提出ConceptDoppler作为迈向互联网中心天气报告的第一步。
这些见解中的第二点促使我们需要有效的探测。正如开放网络倡议组织所指出的,”中国如此复杂的过滤系统使得测试其封锁变得困难”[3]。不仅过滤系统在实施上是异质的[8],在繁忙时期和路径上都不一致,而且还有很多噪音,例如由错误配置的路由器和主机产生的RST,由于traf-fic shaping、IP tunnelling、Internet Exchange Points (IXPs) [25]以及不符合处理TTL的RFC的路由器等形式。我们可以通过过滤路由器发送候选词,并以RST的形式收到答案,即该词是否在该地点的黑名单上,有一定的概率。然而,为了跟踪黑名单,需要有效的探测,因为关键词可以随着时间在不同的地方被添加和删除。不可能拿着某一种语言的百科全书式的字典,每天在成千上万的地方探测每个单词。即使是这样,所需的流量也会具有侵略性–在带宽允许的范围内用尽可能多的探针充斥网络,既是对网络资源的滥用,也容易被发现。因此,我们提出了潜在语义分析(LSA)[13],作为一种有效探测黑名单上的未知关键词的方法,只测试与被视为敏感的概念相关的词。
无论我们考虑的是德国对纳粹相关材料的审查[11],英国对儿童色情的封锁[7],美国对libraries中性话题的过滤[22],还是伊朗[4]或中国[3]等国家更多的全球性限制,在制定有关互联网审查的政策时,我们必须了解审查的技术机制和审查的使用方式。一份审查制度的天气报告将给政策制定者提供一份确切的记录,说明审查机制是如何被使用的,以及它在一段时间内是如何实施的。例如,如果不首先了解被过滤的内容,政策制定者就不能问一些重要的问题,如为什么̄司法院大法官或处女卖淫法案在某一特定地点和时间被过滤。
作为互联网审查天气报告的第一步,我们探索GFC的关键词过滤机制。关键词过滤是审查制度的一个重要工具,对一个特定国家的不同地理位置,随着时间的推移,被过滤的关键词黑名单的完整描述,可以证明对那些希望了解政府使用基于关键词的互联网审查制度的人是有价值的。
基于关键词的审查制度
对于审查互联网的政府来说,过滤关键词的能力是一个有效的工具。众多的技术构成了审查制度,包括IP地址阻断、DNS重定向和无数的法律限制,但是过滤URL re-quests或HTML响应中的关键词的能力允许一个高粒度的控制,以低成本达到审查者的目标。
正如Danezis和Anderson[10]所指出的,审查是一种经济活动。互联网有经济效益,而比关键词过滤2更粗暴的审查方法,如封锁整个网站或服务,会减少这些效益。由于被审查者的不满,更粗暴的审查机制也有政治成本。例如,虽然中国政府已经关闭了整个ISP的电子邮件服务,暂时封锁了来自海外大学的互联网流量[5],并且可以想象到阻止任何信息的流动[14],但他们也对中国公民的审查投诉做出了回应,最近允许访问维基百科的中文版本[18,19],然后又限制了访问[20]。与其他技术相比,基于关键词的审查制度使审查政府有能力以不太严厉的方式控制互联网内容,使审查制度更有效地实现其目标。
为了激发长期跟踪互联网关键词黑名单的需要,我们必须首先驳斥审查制度总是徒劳地试图阻止思想的泛滥这一观点。虽然一个特定国家审查互联网的理由不在一篇技术论文的范围内,但必须指出,防止组织示威活动与预先阻止网民阅读未经批准的内容同样重要,甚至更重要。例如,中国1999年第一次大规模的互联网镇压主要是由1996年的钓鱼岛抗议活动和1999年5月的爆炸示威活动引起的。虽然在这两个事件中,中国政府并不是抗议的焦点,但未经授权的抗议活动可以通过互联网有效地组织起来,这是一个重要的问题[5]。当政府逮捕持不同政见者时,大多数人首先从互联网上得知这一消息[26]。过滤出现在新闻中的任何持不同政见者的名字是干扰示威组织的有效方法。
提议的框架
当审查机制的实施本身是异质的,在互联网基础设施的不同部分也有差异时,我们试图随着关键词的增加或删除来监测黑名单。有了这样一个框架,研究界可以维持一个 “审查制度的天气报告”。虽然这可以用来逃避审查-Zittrain和Edelman[28]建议将HTML评论放在被过滤的关键词中,我们在第5节讨论了其他的可能性,更重要的是我们可以利用对整个国家的互联网基础设施的实时监控来了解关键词过滤与当前事件的关联方式。这可以帮助那些在特定审查制度辩论中的双方,或者通过向审查者施压来增加减少审查制度的砝码,或者让政策制定者对不同机制的应用和实施有一个完整的了解。
作为第一步,我们为GFC(最先进的基于关键词的互联网审查机制)设计并评估我们的框架。基本上,我们从中国以外的地方对GFC进行主动探测,只关注HTTP流量的基于关键词的过滤。除了覆盖全国广泛的横截面之外,探测也应该是连续的,这样,如果当前的事件意味着某个关键词被暂时过滤,就像在URL封锁中观察到的那样[28],我们将知道该关键词何时被添加到黑名单中,以及在全国哪些地区被过滤。虽然一个路由器在某一时间的黑名单快照是信息的金块,但我们的目标是提炼大量的矿石并保持黑名单的完整画面。
这个目标要求在探测新的关键词方面有很高的效率,因此我们建议使用概念性的网络搜索技术,特别是潜在语义分析[13],来持续监测基于关键词的审查机制的黑名单,比如GFC。我们建议应用潜在语义分析将一个文本语料库(本文中的中文版维基百科[2])缩减为一个小的单词列表,根据与已知的被过滤单词或政府认为敏感的概念的概念关系,这些单词最有可能被过滤掉。我们在第4.3节中对这一技术的应用表明,LSA是将语料库缩减为候选词进行探测的有效方法,我们提出了我们通过探测发现的122个过滤的关键词。
贡献
我们的结果是基于中国的长城(GFC),但理论和技术经验普遍适用于任何基于关键词过滤的审查机制,该机制返回一个数据包或网页是否被过滤的答案。我们的贡献是。
- 我们提出了关于GFC实施的互联网测量结果,并支持GFC与其说是防火墙,不如说是一个全景式监狱的论点。
- 我们提供了一个基于潜在语义分析数学[13]的基于关键词的审查制度的形式化,其中术语和文件可以根据其概念意义进行比较;以及
- 我们描述了我们在GFC上实施基于LSA的探测的结果,并介绍了我们仅从12个一般概念开始就发现的黑名单中的122个关键词。
论文的结构
第2节调查并对比了我们的工作与相关工作。第3节描述了我们对互联网的测量,这些测量激发了审查天气报告和一种有效的探测方法。由于效率是如此的关键,在第4节中,我们用潜在语义分析的方法正式确定了基于关键词的审查制度。我们描述了用LSA探测未知的过滤关键词所取得的结果,并在第4.3节介绍了我们发现的关键词。然后第5节讨论了一些规避技术,这些技术只有在黑名单上的关键词是已知的情况下才有可能。最后,第6节讨论了未来的工作,接着是第7节,结论。
相关研究
Clayton等人[8]深入探讨了GFC的基于TCP重置的关键词过滤的实现。在第3节中,我们提供了一些关于实施的额外细节,但我们工作的一个主要贡献是对GFC进行了广泛的研究,揭示了在AS级别上比以前认为的更集中的实施。Clayton等人[8]测试了中国每个边界AS的一台Web服务器,并得出结论,他们的结果是典型的,但不是普遍适用的,9个IP地址中的8个被过滤了。我们的重新结果也表明,过滤并不是针对所有的IP地址,而是与其他人[26]更一致,他们说关键词过滤发生在一组核心的骨干路由器中,这些路由器不一定是边界路由器。Zittrain和Edelman[28]也从广度上研究了中国互联网审查机制,但更多地是关注被屏蔽的网站,而不是被过滤的关键词。就他们的研究结果反映了对URL请求的关键词过滤而言,他们并没有将其与其他形式的封锁区分开来。他们确定了五种独立的过滤实现方式:网络服务器IP地址封锁、域名服务(DNS)服务器IP地址封锁、DNS重定向、URL关键词过滤和HTML响应关键词过滤。我们还没有确认URL请求和HTML响应的关键词黑名单是否相同。Zittrain和Edelman使用汇编的topi- cal目录中的URL和网络搜索的结果作为URL来测试封锁的方式,在精神上与我们使用潜在语义分析来建立可能的未知关键词列表相似。The Open Net Initiative在他们关于中国的报告中使用了类似的方法[3]。使用LSA来发现黑名单上的关键词可以提高关于被封锁的网络服务器和网页的结果的准确性,因为到目前为止,这样的研究还没有考虑到这样的情况:网页无法访问是因为黑名单上的关键词而不是因为网络服务器本身被列入黑名单。
开放网络倡议组织是互联网审查制度的最佳信息来源。他们发布关于不同国家互联网审查的报告,例如中国[3]和伊朗[4]。Dornseif[11]和Clayton[7]都分别对德国和英国的互联网审查制度的具体实施情况进行了详细解读。
为了发现与当前事件相关的未知过滤关键词,我们希望使用一个新闻流作为语料库。Del Corso等人[9]已经对网络搜索中的新闻流排名进行了探讨。
探测GFC
在本节中,我们将介绍我们的互联网测量方法和结果。
基础设施
图1描述了我们用于ConceptDoppler的一般基础设施。为了探测GFC,我们向中国的网络服务器发出HTML GET请求。这些GET请求包含了我们希望根据GFC的规则集来测试的词语。我们使用netfilter[1]模块Queue来捕获所有由我们的探测引起的数据包。我们在Perl和Python脚本中访问这些数据包,使用SWIG[30]来包装系统库libipq。
在我们所有的互联网测量实验中,我们在PostgreSQL数据库中完整地记录了所有发送和接收的数据包。我们的实验需要构建TCP/IP数据包。为此我们使用了Scapy,一个用于数据包操作的python库[29]。我们还在数据库的存储程序中使用了Scapy,它允许我们对数据包的字段进行查询,例如选择所有RST标志被设置的数据包。
GFC不是在任何时候都强制过滤的
我们试图测试GFC作为一个防火墙的有效性。在这个实验中,我们在2007年2月9日至11日的周五、周六和周日对www.yahoo.cn ,持续72小时。我们开始发送 “FALUN”(一个已知被过滤的关键词),直到我们收到来自GFC的RST,这时我们换成 “TEST”(一个已知不被过滤的词),直到我们的GET请求得到一个有效的HTTP响应,如图3所示。在每个引发RST的测试之后,我们等待30秒,然后用 “TEST “进行探测;在没有引发RST的测试之后,我们等待5秒,然后用 “FALUN “进行探测。选择这种方法是为了不计算由于关键字RST后发生的后续阻塞而导致的RST(关于这种行为的细节,见Clayton等人[8])。我们没有计算由于 “TEST “探测而产生的RST,我们的实验表明,对于从我们的源头到www.yahoo.cn ,主机在关键字RST之后被阻止通信的超时时间是90秒。
通常情况下,当已知的过滤关键词被发送到中国的网页时,GFC路由器确实会向连接的两端发送RST数据包,使其无法进行通信。然而,如图2所示,有时可以看到含有已知过滤关键词的GET请求的HTML响应。在某些情况下,这是因为GFC发送的RST数据包直到连接结束后才到达,而且用户已经收到了服务器的响应。在其他情况下,我们根本没有收到任何RST数据包,即使在连接关闭后等待了30秒。X轴是一天中的时间,Y轴是以单个探针为单位测量的。在图2中,最重要的是注意到有昼夜规律,GFC过滤变得不那么有效,有时让超过四分之一的违规数据包通过,可能是在互联网交通繁忙的时期。图2中X轴上的0值对应于太平洋标准时间的午夜00:00,也就是北京时间下午15:00。
发现GFC路由器
这个实验的目的是确定我们的探测站点s和t(中国境内的一个目标网站)之间的第一个GFC路由器的IP地址,如图4所示。实验的总体思路是增加我们发出的数据包的TTL字段,从对应于中国以外的路由器的低值开始。通过这种方式,我们控制了我们的数据包在通往中国目的地的路上走了多远。当我们得到一个RST时,如图4所示,我们可以使用我们最后一次探测的TTL3来识别发出RST的路由器。
为了避免我们在选择目标时出现偏差,我们收集了谷歌在以下每个搜索中返回的前100个URL。”site:X”,用.cn、.com.cn、.edu.cn、.org.cn、gov.cn和.net.cn代替X。我们将这些URL转换成目标IP地址的列表。谷歌返回的一些URL提到了相同的IP地址,因此可能是在同一台网络服务器上,使用某种形式的虚拟主机。我们通过放弃已经在我们列表中的地址的重复出现来处理这种碰撞。
最初,我们试图通过发送一个正确的GET请求而不首先建立一个有效的TCP连接来获得RST数据包。这并不奏效:在没有建立TCP连接的情况下,即使是 “FALUN”,也没有产生RST数据包,而 “FALUN “在从网络浏览器手动发送时一直产生RST数据包。这种行为表明,GFC是有状态的,这与Clayton等人[8]的结果相矛盾。我们把这归因于GFC关键词过滤机制在不同地方的异质性,或者,可能是在他们的测试和我们的测试之间的某个时间,其实现方式发生了变化。
因为TCP状态至少对某些GFC过滤路由器来说是重要的,所以我们用Scapy来实现我们自己的最小TCP协议栈,以建立TCP连接,通过它来发送我们的探测。这个协议栈还允许我们设置出站数据包的TTL值,以测量到过滤路由器的跳数距离。
为了识别GFC路由器,算法1从上面汇编的目标列表T中随机选择一个目标IP地址。SYN数据包的TTL为64,以便能够到达目标。在收到SYN-ACK包后,发送一个GET请求(TTL值设置为ttl)。我们重新发送SYN包三次,以防我们在相应的SYN后5秒内没有收到目标的回答。我们还重复发送三次GET请求,以防我们没有收到目标的回答(通常是这样的,因为GET请求经常没有到达目标)。我们这样做是为了避免因数据包丢失而造成的错误的否定。再等20秒后,我们用一个TTL为64的FIN包来关闭打开的连接,因为否则目标会因为空闲的连接而开始发送RSTs。在整个过程中,我们 “倾听 “RST数据包。一旦我们收到一个RST,我们就不再继续测试增加的TTL,因为我们已经找到了GFC路由器。我们在第8行增加源端口,以避免在当前探针上产生与以前探针引起的延迟飞行RST的错误关联。
过滤路由器的分布
图5中的直方图总结了本实验所触发的过滤发生的位置。我们在两周内反复探测了296个目标中的每一个,并通过122个不同的过滤路由器沿389条不同的路径引发了RST。直方图显示了389条路径中的每条路径是在哪一跳发现的过滤路由器。
假设互联网路由在我们的实验中是稳定的(讨论见Paxson[17]),每个目标t形成一个单一的独特的s-t路径,或者一个小的路径集。每条路径都有一个后缀的路由器,(r1, r2, - -, t),其IP地址都在中国的IP地址空间内。直方图的桶对应的是唯一的路径/路由器组合,所以一个路由器可能会在不同的路径上出现多次,如果在不同的时间,该路径上不同的路由器在进行过滤,那么该路径可能会出现多次。所以水桶1对应的是某个s-t路径上的r1。如果我们的实验激起了沿s-t路径的ri发送RST,那么我们就增加桶i中的计数。所以桶i统计了沿s-t路径中国内后缀的第i跳的RST发送路由器的不同IP地址的数量。这个柱状图表明。
- 过滤并不总是发生在进入中国地址空间的第一跳,甚至主要发生在第一跳,只有29.6%的过滤发生在第一跳,11.8%发生在第三跳之后,在一个案例中多达13跳;
- 而CHINANET*内的路由器进行324/389=83.3%的过滤。
图6强调了第二点–CHINANET在实施GFC中的重要性。当图6中的ISP分布与图5(a)中第一跳桶的分布相比较时,我们看到CHINANET的比例过高,占所有过滤的83.3%。此外,尽管CHINANET只占我们遇到的第一跳路由器的77%,但在第一跳发生的所有过滤中,CHINANET完成了99.1%。
图5(b)只是图5(a)的不同比例,以显示第三跳之后的更多细节。这个直方图与GFC是在互联网国际网关上实施的防火墙不一致。这样的防火墙会显示所有过滤都发生在第一跳。这些柱状图表明,中国互联网骨干网的实施比以前认为的更加集中。
GFC并不是对所有的中国互联网路径都进行了过滤
当我们进行识别GFC路由器的测试时,我们发现有些路径根本就没有过滤 “FALUN”。从我们从收集的谷歌列表中随机选择的296个主机中,我们没有收到其中84个主机的重置数据包。也就是说,28.3%的被查询的主机是在没有过滤 “FALUN “这个关键词的路径上。我们手动确认了其中许多,如www.sqmc.edu.cn 。这些没有受到任何过滤的主机均匀地分布在我们探测的主机集合中,这84个IP地址所来自的99个DNS地址细分如下。23个.cn,14个.net,18个.com,17个.edu,12个.gov,以及15个.org。
基于LSA的探测
为了有效地测试新的过滤关键词,我们必须只尝试与我们怀疑政府可能过滤的概念有关的词。潜在语义分析[13](LSA)是一种从概念上总结语料库的语义的方法。通过将语料库中的n个文档视为m个分量的向量,其元素是m个术语在该文档中出现的次数,并形成m×n矩阵,我们可以应用潜在语义分析(奇异值分解和等级重构),将语料库提炼为k维向量空间,形成一个概念空间。将文档或术语映射到这个概念空间中,我们就可以根据其概念意义将术语和文档联系起来,这可以将测试新的过滤关键词的效率提高几个数量级。在这一节中,我们描述了我们如何通过探测来发现未知的关键词,简要介绍了LSA的背景,描述了我们的实验方法,然后介绍了将LSA应用于中文版本的维基百科以创建高效探测的列表的结果。
使用LSA发现黑名单关键词
为了使用LSA发现黑名单关键词,我们用UTF-8的HTTP编码对这些词进行编码,并对search.yahoo.cn.com进行测试,在出现RST后等待100秒,否则等待5秒。一个RST数据包表明一个词被过滤了,因此被列入了黑名单。然后通过人工过滤,我们从最终过滤的关键词列表中删除了56个假阳性词。我们还删除了三个多余的、仅因编码语法原因而独特的术语。
LSA背景
首先,我们简要介绍一下LSA的背景。LSA的第一个步骤是前,LSA的第一步是tf-idf(术语频率-反向文档频率)加权。它根据矩阵中的每个元素在特定文档中的重要性来加权。矩阵中的每一个元素,根据其在特定文档中的重要性进行加权,基于该术语在文档中的出现次数。
该术语在文档中的出现次数(OI)占该文档中所有术语总出现次数(OK)的比例 tf = oi,idf是该术语在整个语料库中的enPk ok 14 tropy,计算公式为log |D|,其中|D|是语料库中的文档数量|d∋ti|,|d ∋ti|是术语ti所出现的文档数量。tf-idf权重是乘积tf-idf = tf - idf。这一步可以消除对常见术语的偏见。现在我们有一个适当的加权矩阵X,其中第j个文件⃗是一个向量dj,是X中的一列,第i个术语是一个向量t⃗T,是X中的一行。i X = U ΣV T,其中U和V是正态矩阵,Σ是奇异值的对角矩阵,其作用是在U中暗示术语之间的概念相关性。这是因为XXT = UΣΣT UT,它包含术语向量之间的所有点乘。文件之间的相关性隐含在V中,XTX =VΣTΣVT.然后我们选择最大的奇异值Σk和它们相应的奇异向量,形成m×n的概念空间矩阵Xk = Uk Σk VkT。就Frobenius准则而言,矩阵Xk是对X最接近的k级近似。
不仅术语和文档的k分量向量比原始的m分量文档和n分量术语的计算要便宜得多,而且基于奇异值分解从X到Xk的等级降低具有去除原始语料库中的噪声的效果。为了理解这一点,假设存在一个真正的概念空间χκ。当一个人写了一份文件,其术语构成了m-component⃗向量dj。他们对词语的选择部分基于概念,这些概念是来自N(χκ)⊥的χκ的投影–那些垂直于空空间N(χκ)并映射到范围R(χκ)的向量–但也部分基于他们在选择词语时的自由选择–我们可以将其视为来自真实概念空间的空空间N(χκ)的噪音。通过在奇异值分解的基础上将X还原为等级k≈κ,我们有效地消除了来自作者自由选择的噪音,并以最佳方式逼近Xk≈χκ,其中Xk仍然像X一样将术语映射到文档,反之亦然,但基于概念而非直接计数,假设噪声是加性的和高斯性质的。这个假设在实践中是可行的,尽管用统计LSA可以对结果进行比传统LSA更多的改进[12]。
利用LSA的结果,我们将原始语料库中的术语映射到概念空间,并计算它们与其他术语的相关性。(……….)
一个概念可以是我们已经知道要过滤的术语的映射结果,也可以是一个描述一般概念的术语。这种方法是有效的,因为它与政府选择要过滤的概念的方式是有机的,但由于技术限制,必须用术语实现这种过滤。它还可以利用与术语相关的一般概念,例如,使用 “法轮功 “作为一个概念将导致我们测试不仅与 “法轮功 “相关的术语,而且与一般的宗教,以及中国政治、互联网审查和LSA在 “法轮功 “一词中捕获的所有隐含概念。
虽然我们在本文中的重点是提高ConceptDoppler的效率,但这种基于关键词的审查制度的形式化是通用的,可以被试图理解审查制度的政策制定者应用在很多方面。例如,审查员可以使用这个形式化的方法来选择过滤特定概念的关键词,但尽量减少副作用,即应该可以访问的相关概念也被过滤掉。探索一个语料库并测试更复杂形式的基于关键词的审查制度的有效性可能是有用的,例如多个术语的布尔谓词。如果一个特定类型的规则集比简单的关键词更精确地覆盖了概念,那么这个事实可能会让我们对未来审查机制的可能设计有所了解。虽然LSA的结果必然是基于一个特定的语料库,但基于关键词的审查基准的可用性,可以为各种目的而广泛使用,并给出定量结果。
LSA結果
在这一节中,我们描述了我们在测试LSA在减少我们必须探测的单词列表以发现黑名单上的未知关键词方面的有效性的结果。我们总共发现了122个经过过滤的关键词,其中只有12个一般概念。
实验设置
在本文中,我们选择了中文维基百科主名空间的每篇文档中的所有维基百科链接作为语料库,因此文档是维基百科的文章,而术语是 “维基 “链接中的文本。我们下载了2006年12月8日的维基百科数据库快照,并将其解析为一个由m = 942033个不同术语组成的n = 94863个文档的矩阵,其中有3259425个非零元素。LSA是在k = 600的情况下进行的,因为选择了最佳的结果。
我们根据表1所示的12个一般概念创建了12个列表,其中一个列表按照递减的顺序列出了与该概念最相关的术语,因此每个概念的术语总是列表中的第一个,第二个术语是与它最相关的术语,以此类推。我们使用余弦相似度指标对LSA进行了这个实验,并使用每个列表中的前2500个术语进行探测。在这些实验的早期迭代中,我们使用点积而不是余弦相似度,这些结果在附录B中。我们还从m=942033的完整列表中选择了2500个随机术语作为对照。
结果
我们发现的关键词显示在表2和表3中。总的来说,使用余弦相似度,我们发现了122个未知的关键词。每个表格中的第三列是这个词在12个列表中出现的最高等级,以及它在这个等级中出现的列表。这说明了LSA是如何对概念进行操作的。
许多字符串被过滤的原因是根字符串,例如ÿ ̄39(变相改革-通过-劳动),它被过滤的原因可能是子字符串39(改革-通过-劳动),这也是我们通过探测发现的。在这种情况下,我们把这两个词都留在了列表中,以证明LSA是如何根据概念来联系词的。
图7显示了LSA在围绕一个敏感概念对关键词进行聚类时的强大作用。Red_Terror和Epoch_Times是我们表现最好的两个种子概念。图中显示,给定好的种子概念,LSA可以将十几个过滤过的关键词集中到一个小的列表中,而一个相当大的随机选择的单词列表只包含四个过滤过的关键词。
种子概念的选择有各种原因。例如,根据先前的结果,选择德国和World_War_II,是为了探索更多不精确过滤和历史事件的可能性。直观地说,那些已知的敏感概念(例如,发现的赵紫阳-16个关键词)表现最好,而那些更多投机性的选择(例如,发现的海啸-3个关键词)则表现不佳。LSA所揭示的一些关系并不像其他关系那样直观。一个很好的例子是北萊茵法斯特倫 (Nordrhein-Westfalen)使用点积出现在Red_Terror的第435位(见附录B)。这可能是红色恐怖和北威州之间的关联,前者是政府机构对人民的恐怖主义,后者是德国的一个州,基于政府机构的一般概念。请注意政府主题与Red_Terror列表中发现的其他关键词的关系。德国的历史可能也有助于使北萊茵法斯特倫(Nordrhein-Westfalen)在Red_Terror列表中排名靠前。此外,点积似乎更容易出现这些反直觉的关系,这就是我们选择余弦相似度的原因。然而,值得注意的是,对于同一个种子概念,Li_Hongzhi的点积列表比余弦相似度列表表现更好。
讨论
对我们发现的过滤关键词的评估表明,通过反向设计用于互联网审查的黑名单并长期跟踪这样的黑名单,可以学到很多东西。有许多不同类型的关键词,包括人物、特定的法律案件和法律、罢工和抗议、特定的记者和出版物、政府和政治机构,以及一些历史事件。
历史事件似乎被过滤了,既是因为主题的性质,例如希特勒(希特勒,来自附录B的点乘列表)或我的奮鬥(《我的奋斗》),也是因为不精确的过滤,例如,格但斯克大屠殺(格但斯克大屠杀)或卡普暴動(卡普政变)。不精确的过滤似乎很常见,其他可能的例子有老毛奇 (Helmuth Karl Bernhard von Moltke), 劉曉光 (Liu Xiaoguang, a professional Go player), and 盧多維克·阿里奧斯托 (Ludovico Ariosto)。这种精确的过滤很大程度上是由于使用了特殊的汉字,用于音译外语单词。一个特别的例子是对明斯特(威斯特法倫)(Münster(Westfalen))和北萊茵-威斯特法倫(Nordrhein-Westfalen)都进行了过滤。通过人工测试,我们确认,仅仅是每个字的最后两个字符,法倫(法轮功),就足以引起过滤RST,这可能是对使用不同但语音相似的字符拼写法轮功以逃避检测的一种反击。另外值得关注的是反规避关键词,如封殺(Block)、新聞封鎖(News black-out)和safeweb(safeweb,来自点积列表)。
每个2500个词的列表需要1.2到6.7小时来探测,这取决于列表上有多少个过滤的关键词(过滤的关键词会导致100秒的等待),平均3.5小时。这种探测是有侵略性的:它大量使用了他人的网络和服务器资源。再加上随着时间的推移需要跟踪列表,以及假阳性和假阴性(分别是不应该被过滤的词的RST和不应该被过滤的关键词的RST)会因为各种原因而发生,因此在探测词的数量方面的效率是必须的。
在ConceptDoppler能够产生一个几乎完整的黑名单,并随着时间的推移跟踪基于当前事件新闻的不断变化的语料库的黑名单之前,还需要做很多工作。我们很有可能使用在线学习或递归估计的技术,而不是LSA,这样连续的新闻资料就可以成为语料库的一部分。然而,这些LSA的结果是有价值的,因为它们使敏感概念和黑名单关键词之间产生了联系。就像对气体混合的理解先于有效的天气报告一样,这些结果先于对基于关键词的互联网审查的有效追踪,而我们发现的众多关键词强调了这种追踪的必要性。
讨论基于关键词的规避
本节列举了一些类似GFC的关键词过滤的规避技术,当过滤的关键词的黑名单已知时,这些技术就成为可能。
有一个问题(这不在本文的范围内),即逃避审查是否有效,甚至是一个可接受的行动方案。我们不希望在这场辩论中偏袒任何一方,所以在这里我们将只探讨逃避的技术方面。Clayton等人[8]证明,如果连接的双方都忽略了来自GFC的TCP重置包,那么关键词过滤就会被有效地击败。然而,如果被过滤的关键词黑名单是已知的,就可以开发出既不对称又与实施无关的规避技术。所谓非对称性,我们的意思是,在一个对互联网进行审查的国家里,客户端不需要安装任何特殊的软件就能使规避技术发挥作用,所有的规避功能都存在于服务器端。忽略重置数据包[8]需要在两端进行配置更改,这对于受到法律限制或用户没有能力配置或安装软件的客户端来说可能是不可能的。忽略复位数据包也会干扰有效的复位数据包。此外,如果要广泛适用,规避技术应该独立于防火墙的实施。关键词过滤可以通过网络代理、丢弃数据包或其他手段来实现。通过规避防火墙检测黑名单关键词的能力,规避技术可以适用于任何防火墙实现。
一个维护良好的黑名单副本,如ConceptDoppler所提供的,可以通过几种方式用于规避。
- IP数据包分片。有人建议,数据包的最大传输单位(MTU)可以设置得足够小,这样关键词就会被分割到不同的数据包中,从而不被发现[28]。当关键词是已知的,就有可能在服务器的内核中实现网络堆栈的替换,从而自动拆分数据包,以划分关键词。
- 插入HTML注释。也有人建议可以在关键词的中间插入HTML注释[28],例如 “Fa<!Comment ->lun Gong”。
- 使用不同的编码。我们自己和其他人[28]的有限测试表明,GFC的实现常常不检查URL请求中的控制字符。因此,”F%61lun Gong “和类似类型的编码可能会躲过防火墙。
- Captchas:对于HTML响应(不是URL请求),可能会用captchas[23]来代替被过滤的关键词,captchas是该词的一个图像。
- 垃圾邮件:鉴于有经验的证据表明关键词过滤并没有阻止互联网上未经请求的电子邮件的泛滥,垃圾邮件技术也许是逃避基于关键词的审查的最有效方法,例如 “F@1un G0-ng”。使用垃圾邮件来逃避GFC对电子邮件的关键词过滤的做法已经被报道过[5]。
未來研究
我们把未来的工作分为两类:发现黑名单上的未知关键词和互联网测量。
发现未知的关键词
具体到我们的工作目的,即了解基于关键词的审查制度并发现黑名单上的未知关键词,我们计划探索几个方向,并有几个挑战。
- 将LSA应用于更大的中文语料库。由于中文的语言特性,在我们使用大型中文语料库并完全覆盖GFC黑名单上的所有关键词之前,我们必须为中文的LSA开发适合我们目的的新算法。关于相关工作的总结和中文写作的分割问题,请读者参考Wu [24]。
- 保持语料库与时俱进。我们计划开发基于在线学习或递归估计的技术,以利用关键词和概念之间的关系,并使用不断变化的语料库(如流媒体新闻)跟踪黑名单。
- 技术实施。虽然我们已经提供了GFC实施的大体情况,但具体问题再主要。例如,在GET请求中有时需要”\r\n\r\n “来进行过滤,有时则不需要,这是什么原因?初步测试表明,”\n “是至关重要的。\r “和HTTP协议规范似乎随着每个网站的实施而改变。这就需要进一步调查语法的具体细节。
- 实施的可能性。由于互联网审查与相关目标同构,如阻止互联网蠕虫的传播[21]或在公司网络上执行企业政策,现代路由器能够采取比GFC实施的措施更先进的措施,例如,思科路由器可以重建TCP连接和应用协议,如HTTP,阻止未经授权的协议,并检测非HTTP协议是否被隐藏为HTTP流量[6]。
- HTML响应。我们试图确定GFC的HTML响应的黑名单是否与GET请求的黑名单相同,并且能够通过代理或其他方式监测两者,而不需要来自中国国内的任何非法援助。
- 更复杂的规则集。我们还计划探索更复杂的规则集的可能性,例如关键词存在的布尔逻辑,例如出现在文件中的任何地方。为此,我们将探索先进的测试技术,如delta调试[27]。
- 不精确的过滤。不精确的过滤是指由于审查机制的不精确,没有打算被审查的概念被审查了。例如,在图书馆中审查 “乳房 “一词以防止观看色情制品,可能会阻止读者重新搜索乳腺癌,这被认为是一个重要的话题。我们在第4.3节中的结果表明,这在中文文本中也很常见。通过在潜在语义分析方面将审查制度正规化,我们也许能够对特定语料库和特定机制的这种影响进行量化。这样的基准对政策制定者来说是非常有用的。
互联网测量
关于GFC的实施方式和地点,仍有许多问题需要回答。
- IP隧道或流量工程。过滤是否完全依赖于GFC路由器被放置在要过滤的流量路径上,还是流量通过IP隧道或流量工程被重定向到这些路由器?互联网测量技术应该能够回答这个问题。
- IXPs。我们表明,在骨干网中发生的过滤比以前认为的要多得多。问题是,在北京、上海和广州的三个大型 IXPs 的路由器是否在进行大部分的过滤。有一些方法可以检测路径中的IXP,例如通过比较Traceroute信息中的AS路由和BGP信息中的AS路由[15]。Murdoch和Zielin ́ski[16]探讨了一些与隐私和IXPs有关的问题。
- 路由依赖性。GFC的集中实施表明,靠近数据包跨越边界的路线比深入中国的路线更不容易被过滤。我们计划从世界各地的多个目的地探索这一现象。
- 目的地依赖性。基于我们自己的结果和可能包含黑名单关键词的官方新闻是如何传播的问题,我们试图找出中国境内的特定IP地址是否因为在白名单上而没有被过滤。
結論
我们提出了互联网测量结果,从而得出了两个见解。1)GFC的关键词过滤更像是一个全景式的防火墙,促使人们把监视而不是逃避作为技术研究的重点;2)探测GFC是非常困难的,促使人们通过LSA进行有效探测。我们介绍了使用LSA来发现黑名单上的未知关键词的初步结果。一些令人惊讶的关键词的出现和明显不精确的过滤强调了对互联网审查天气报告的需求。
基于我们对GFC关键词过滤的结果,应该研究其他审查机制,以发现它们是否最好被描述为一个全景式或一个防火墙。我们计划推进建立一个审查制度的天气报告,但在这之前还需要大量的工作,从自然语言处理到互联网拓扑结构研究等各种审查机制。