Table of Contents
Challenges, priorities, and progress in anti-censorship technology at Tor
Philipp Winter
August 27, 2020
Resource limitations
- A 2014 blog post on “How to read our China usage graphs”.
- A 2019 mailing list post on “Next steps for unclassifiable protocols”.
Tor在规避审查领域上的挑战、策划、与进展
我们希望以这篇博文介绍Tor项目在规避审查领域面临的挑战、以及相关策划与进展,也借此交待Tor项目在规避审查领域的运作方式。审查规避是一个复杂且不断发展的科技领域,这篇博文总结了我们面对审查的策略。请大家在评论区提出任何意见和相关问题。
Tor的规避审查团队
在2019年2月份,我们聘请了两名工程师,专注于推进Tor的规避审查技术。我们的团队还包括Tor社区的其他一些成员,他们贡献了系统设计、代码、基础设施、说明文档 、对于已有系统的见解、和其他资源。 Tor规避审查团队的目标是了解网络审查制度,并及开拓技术来规避这些制度,让每个人都可以使用Tor网络。
审查规避的现状
一些互联网服务提供商(ISP)屏蔽了域名www.torproject.org,使得其用户很难下载Tor浏览器。在这种情况下,我们的服务GetTor 可以帮助这些用户获得Tor浏览器: 用户只需发送电子邮件到 gettor@torproject.org,它将自动回复一些Tor浏览器的代替下载链接。这些代替下载链接分别指向GitHub、GitLab、Internet Archive、和Google Drive。 每个用户应该至少可以访问其中一个主机提供商。例如, 来自中国的用户可以从我们的GitHub镜像下载Tor浏览器。
用户一旦有了Tor浏览器就可以准备连接到Tor网络。这时候,有些ISP会再次干扰,屏蔽Tor中继的IP地址和/或通过检查经过ISP外围的网络流量来动态检测Tor协议-所谓的深层数据包检测(DPI)。
如果您无法直接连接到Tor网络,您需要使用网桥。网桥是未公开的Tor中继,根据网桥类型不同,可以混淆网络流量,使ISP更难检测。在Tor浏览器中,最简单的规避审查的方法是使用我们的默认网桥–这是Tor浏览器中的十几个网桥。这些默认网桥基本上是公开的, 所以更高能的审查系统(如中国防火墙(GFW))会阻止它们,但默认网桥在伊朗等许多地方仍然有效。如果您需要了解如何启动默认网桥,请看我们的Tor浏览器手册。
如果您无法连接到我们的默认网桥,您目前有三个选择:
使用 obfs4 网桥。 您可以通过三种方式获取 obfs4网桥:直接在Tor浏览器中请求,访问bridges.torproject.org,或者发送电子邮件到 bridges@torproject.org。更熟悉技术的用户可以 建立自己的obfs4网桥。不幸的是,许多通过这种方式获得的网桥可能无法在中国使用。我们目前正在 实施一个称为Salmon的社会化网桥分配系统,这将大大增加GFW封杀obfs4网桥的难度。 以下有更多对Salmon的介绍。
使用Snowflake。Snowflake目前只在Tor浏览器的alpha版本中使用,但计划成为Tor浏览器稳定版的一部分。我们对Snowflake最新的改善是增加了一组新的STUN服务器, 使Snowflake可以在中国和其他阻止访问Google服务的地方使用。当前,我们正在对Snowflake系统进行压力测试,以处理更多的用户,因为我们正走向稳定版本。
使用meek-azure。 虽然meek-azure理论上应该在任何地方都可以使用(包括在GFW以内),但它已超载运行,所以速度很慢。微软的Azure CDN(meek-azure是基于Azure CDN的)价格比较贵,所以我们必须在meek-azure网桥上设置流量上限。
我们面临的挑战是什么?
科技难度
一个成功的规避系统由两个部分组成:
网络协议(例如WebRTC、obfs4、TLS),以及
要连接到的端点(例如Snowflake代理、meek的CDN服务器、obfs4网桥)。
这两个部分,协议和端点都必须能够抵御检测。GFW能够检测线路上的obfs2和obfs3协议,也就是说,它可以通过简单地观察跨越国家边界的字节来检测这些协议。obfs系列的最新迭代–obfs4,目前在中国在某种意义上仍然可以使用,就是说GFW不能(或者说选择不) 仅仅通过观察线路上的字节来阻断它。不幸的是,obfs4没有被屏蔽是不够的。我们还需要一个未被屏蔽的端点来连接,这就是问题的开始。目前我们使用BridgeDB服务来给用户发布网桥。 在用户解决了验证码之后,BridgeDB会返回最多三个网桥。验证码并不是防止审查员获取大量网桥的唯一防线,因为在深度学习时代,验证码只是一个小小的障碍。在向用户发布网桥的同时防止审查员获取大量网桥仍是一个科技难点,但我们以后再深度聊这个话题。 幸运的是,大多数审查国家所能够投入封锁Tor网络的时间、金钱和人才都是有限的,所以BridgeDB在很多地方依然有效。
资源有限
我们团队的时间和资金是有限的,这意味着我们无法解决我们想要(和应该)解决的所有问题;因此,我们需要仔细考虑如何最好地利用我们有限的时间。比如,我们可以做很多琐细的修复和措施使Tor在例如中国的地域再次使用。但是,审查人员往往能迅速做出反应, 并再次封锁Tor,这使得盲目的修复很不划算。我们的关键是要创作使审查难度比开发难度大的非对称性技术。一个有前途的规避技术是,我们需要n个小时来部署,而审查员需要2^n个小时来阻止。毋庸置疑,在部署之前,我们不可能总清楚哪种技术最有效, 所以我们要通过明确的策划,以有限的资源发挥出最大的影响,如下文所述。
我们的策划是什么?
我们的目标是最大化全球我们帮助规避互联网审查的人数。互联网审查是一个移动的目标,这意味着五年前还很好用的技术,今天却被许多互联网服务供应商封锁了。这就是为什么我们需要不断投资于新的研究和技术,以领先于审查者。
在过去一年多时间里,我们在Snowflake,一个初为科研的项目,上投入了很多资源。在接下来的几个月中,我们计划将Snowflake加入Tor浏览器的稳定版本中。这会是一个重要的里程碑。我们在逐步扩大Snowflake的使用范围, 现在有6千多个志愿代理帮助用户规避审查并提供难以被审查员列举和阻止的移动目标。
BridgeDB,我们现有的网桥发布系统,已经显出了它的年龄。它是针对特定的目的而定制的,所以很难扩展和通用。因此,我们开始开发一个更灵活、更轻量级的下一代实施。 与旧的BridgeDB相比,下一代实施系统将提供以下优点:
实现一个反馈循环将网桥发布给OONI等审查测评平台,并将从其测评平台收到的可达性信息反馈给网桥分发系统。这意味着,如果一个来自X国的用户请求一个网桥,我们不会给他一个已知在X国被屏蔽的网桥。
借助bridgestrap定期测试网桥,这样我们就不会把有问题的网桥发布出去,例如obfs4端口有防火墙的网桥。
包含Salmon网桥发布系统,这将有助于解决端点屏蔽的问题。Salmon源于PETS’17的一篇研究论文。在Salmon系统里,每个用户有个“信誉分数“。当一个用户的网桥被屏蔽时,这个用户的信誉分数会下降, 而如果一个用户的网桥一直都没有被屏蔽,这个用户的信誉分数会上升。如果一个用户的信誉分数太低用户就会被封,而如果一个用户的信誉分数够高,用户就可以邀请其他人加入系统。 这篇net4people帖子对Salmon有很s清晰的概述。我们正在构建Salmon网桥发布系统。
我们有一个路线图,每三个月重新审视一次,确定一些短期目标。 请在此查看我们的路线图以了解这些目标。
如何了解更多或参与团队?
我们的资源缺短是我们面对强大的国家级审查机构的最大挑战,所以我们一直欢迎新的贡献者和合作者。如果您想了解更多或者参与我们的工作,请看以下内容:
Tor的规避审查团队每周开一次会,每周四下午16:00UTC,在#tor-meeting IRC频道。参加会议是认识我们或加入团队的最好方式。如果您错过了一次会议也不用担心: 我们会将会议记录发布到tor-project邮件列表。我们大多数人也经常在irc.oftc.net的#tor-dev和#tor-project IRC频道上,可以随时联系我们。 每两周,我们通常会在会议后举行一次阅读小组。 我们用这些阅读小组来讨论研究论文或软件项目。请看一下我们的会议记事本以了解我们下一个阅读小组的内容。欢迎您参入我们的讨论。
我们的代码在anti-censorship GitLab项目中。如果您有兴趣参与, 可以看看那些带有“First Contribution”标签的问题。
以下为一些过去的博文和演讲,以供参考:
Philipp在OONI互联网测量会议上的演讲《用Tor规避互联网审查》
Roger在DEF CON 27的演讲《Tor与审查的军备竞赛:下一章》
2014年博文《如何阅读我们的中国使用图》
2019年邮件列表讨论《关于不可分类协议的下一步措施》