情书与墙

注:本文并不是教你如何翻墙的技术手册

故事

Part1.现状

你叫Bob,她叫Alice。这两个土味十足的英文名是你们在念初中时英语老师给你们起的,当时你们就是颇让人羡慕的一对了。那时候你们总是一起放学。一到冬天,每每经过县一中的大门,落日都正好落在一中逸夫楼的后面。你们约定好将来要一起在这里读高中,还要上一样的大学。

然而你不争气,只考上了县实验中学,她则毫无悬念进入了县一中,尽管两所高中相隔只差两条街,但这种处境和异地恋并无二致。因为两所高中都是寄宿制的,除了法定节假日外并不允许出门,而且限制使用手机。当然,为了正常的学习与生活上的交流,写信被许可了。

信会统一先送到教务处主任老赵手中,然后在一个空闲的时间集中递交至邮局。你的教务处主任,他有两个爱好——一是在夜晚打着手电筒去操场检查有没有可疑的孤男寡女在散步,二是拆开信件检查里面的内容,当然这是为了学生好,这样可以更好地了解学生的状况。

这就是你的现状,你想要和Alice互诉衷肠,但是受到老赵的审查。这就像你想访问Google,受到政府的审查一样。

Part2.墙

前辈们已经以身试法替你踩过一些坑,根据他们的经验,老赵会做下面两件事:

  1. 检查信件有没有可疑内容,有的话即刻把信件拦截。据悉,从“月色真美”这种老梗到摘抄一两句情诗都可能成为老赵认为你早恋的证据。
  2. 如果他觉得你的收件对象本身很可疑,比如你是个男生,收件方的名字看起来像个同龄女生,他可能会故意把你的信件送到一个不存在的地方,让你永远得不到心心念的回信。

『这两件事约等于网络审查里的关键词审查DNS污染。所谓DNS的全称即域名解析服务器,当你在浏览器的网址栏输入一个Google的网址(就像你在信的地址和名字栏里写下了“县一中 Alice 收”),DNS就会帮你查找到具体的Google服务器的ip地址返回给你访问(类似县一中的信件分拣员会找找Alice住在女生宿舍几楼几室,然后帮你投到对应的邮箱当中)。

而如果审查方不希望你访问某些网站,只要污染DNS服务器,让你得到错误的ip地址就好了(就像你的信明明是想送到Alice那儿却被寄到了其它地方)。』

按捺不住相思病的你觉得可以靠一点小聪明混过去,比如借着分享作文素材的名义引用一些波特莱尔情诗之类的,然而老赵认为你在把他当猴耍,一是因为刻意压抑的文字根本掩饰不住你高窜的爱情的火焰,二是因为高考作文题材不包括诗歌。等待你的是叫家长和一周停学处分,以及虽然你还可以写信,但是再也无法寄给Alice了(Alice被墙了)。

Part3.翻墙

处罚结束后,回到学校的你无精打采地趴在课桌上,把脸埋进双臂,想着Alice的音容笑貌。后桌Windy拍拍你的肩膀问你怎么了,你把你的故事告诉了他。

“为什么不叫一个中间人帮你送信呢?”他问。

“老赵会看信的内容。”

Windy点了点头,说会帮你想办法。

第二天他带来了一个他发明的奇怪装置,这个装置外表看起来像一对黑色的袜子。“基于这个外观”,他说:“我给它起名叫shadowsocks。他的工作方式是这样。这里有两只袜子,一只是客户端(client),一只是服务端(server)。你让你校外的信任的人持有服务端,你持有客户端。你把你的信丢进客户端去,晃一晃,拿出来的是一封加密的信件。把加密好的信寄给服务端,服务端会把信件解密,然后寄给Alice。如果Alice要联系你,也要寄给服务端,服务端也会把信件加密再寄给你,最后你再用这个客户端解密就好了。”

“哈?”你挠头。

”反正试试你就知道了。”

于是你把你珍藏两个星期不敢发出的情书丢了进去,摇了摇,拿出来之后本打算闻一闻有没有味儿,不过想想还是算了,便直接把信件展开。信的内容如下:

“朋友你好,这是最近物理模拟考试最后一题的解法,步骤如下:Aljda9sd(@Hd7)23sd)[email protected]……”

“加密了的话确实不会被发现了。不过,这个并不是物理学用到的符号呀。。。”

“老赵懂个屁,他是教政治的”,Windy说。

果不其然,信没有受到老赵审查,一是内容他看不懂(没人看得懂),二是这次的收件人是你的表哥,看起来并不可疑。当然你和你的表哥早就串通好了,他会用服务端袜子解密你的信件,再替你寄给Alice。

忐忑不安的Alice早得知了关于你被处分的事情,看到你的信激动地开始写回信,边写边落泪。写完以后,也只要一如既往地把来信的寄件地址(过去是县实验中学,现在是你表哥那儿)作为回信的收件地址就好了,和过去没有区别,她也并不需要对信件做袜子加密。

你的表哥收到了Alice的回信,于是用服务端袜子做了加密然后寄回给你,同样没有受到老赵的怀疑。你们终于恢复了通信。

『以上过程就是一个典型的翻墙流程,包含三个组成部分:加密代理协议(如shadowsocks,v2ray的VMess等等。代理协议还分许多层,VPN代理与基于TCP的代理协议如shadowsocks的网络层是不一样的,这里不做赘述),客户端服务端

我们常说的翻墙软件,像shadowsocks,v2ray,openVPN等就是一些加密代理协议的实现,要想起作用就需要同时把它们部署在客户端和服务端上。』

Part4.机场

好景不长,老赵最近感觉不太对劲。因为讨论“上一次物理模拟测试的解题思路”的人越来越多了(这就是加密协议的特征被识别了,于是审查者即便不知道其内容,也因为知道这是翻墙协议可以放心拦截)。他拿着一封信去请教了办公室的物理老师,得知所谓的解题过程完全是胡言乱语之后,气急败坏的他在第二天的升旗仪式上进行了一次严肃的国旗讲话,说你们这样躲躲藏藏地说话,很可能说明你们和境外势力有关系,以后如果再发现这样的信就请写信的人来教务处喝茶。

吓坏了的你不知道为何你的信会引起老赵的注意,稍加打听才发现原来Windy无偿共享了他的技术,所以有些有商业头脑的同学开始批量造这种神奇袜子,出售代送违禁信的服务,而且需求很大,俨然成为了学校的地下产业,同学们暗地里管这种服务叫“机场”——信件可以像纸飞机一样从这里飞出去。

『让我们来梳理一下你付费购买一个翻墙服务的时候到底发生了什么:服务的提供商需要选择一种或几种代理协议(如shadowsocks),租用大量的服务器来作为服务端,并且花费时间和金钱成本在服务端部署和维护这些服务,最后把服务的使用权卖给你。因此对于大部分“机场”而言,你买的并不是什么翻墙软件(这些软件往往是开放源代码且免费的)而是服务使用权,仅此而已。』

Part5.余波

令人难过的是,听说有一天班上的史塔西同学把windy举报给了老赵,他在去教务处喝了一次茶之后选择了转学,从此再也没有人见过他。

好在聪明的同学不少,之后各种更多更厉害的“神奇袜子”被发明了出来,这些神奇袜子原理大抵相同,是把信件的内容伪装成不会被引起怀疑的加密形式。举个例子来说,你可以把信息加密后再伪装成支付宝付款码,但这个码里头其实是信件真正内容的等等(抠门的老赵肯定不想扫它)。

『伪装成HTTPS流量则是现在被广泛使用的翻墙技术,具体的实现包括trojan、v2ray的Vmess + WebSocket + TLS等。

我们过去浏览网页所使用的是不加密的HTTP协议,比如百度的完整网址是” http://www.baidu.com “。而细心的话你应该能注意到,现在已经变成” https://www.baidu.com “了——当 HTTP 套上一层 TLS加密协议,也就变成了 HTTPS。不止是浏览网页,许多需要安全传输的地方都用上了TLS,因此使用该技术可以达成很好的伪装效果。』

安全问题

上面的小故事,大致展现了审查方阻止你访问目标的方法及目前主流翻墙技术的原理。但是结局呢?Bob和Alice从此可以过上幸福快乐的生活了吗?先别急,让我们考虑一个现实问题,那就是:

不存在绝对安全的技术

如果审查者不计成本的话,找到你并不是那么难(除非你是像比特币发明者中本聪一样的大神,至今没有人知道他的真身)。从计算机技术的角度来说,比较简单的方法就是通过给你打P2P网络电话或者让你点击钓鱼链接获取你代理服务器的ip地址,然后通过访问网络运营商的出口记录看看是从国内哪里访问了你的代理服务器,这样你就无处遁形了。当然你也可以用Tor多层代理,但是FBI抓住使用Tor的黑客或者儿童色情犯罪的例子已经屡见不鲜。

另一个找到你的角度是采用社会工程学技术。俗话说雁过留声人过留名,通过观察你在墙外的留言、id、甚至作息规律,你的狐狸尾巴迟早会被抓住,对此类例子感兴趣可以查查看端点星计划的发起人蔡伟的真实身份是如何被发现并被拘捕的(墙内外采用了相似的网络id并且泄露了其邮箱)。

但是!也没那么可怕

那该怎么办呢,不翻墙吗?上面提到了一个前提,是“不计成本”。可以想象现今在中国有数不清的人在翻墙,有的人只是翻墙玩玩外服的游戏,有的人只想看pornhub,提起裤子还是忠诚的爱党青年。这些人对社会现状构不成威胁,并不对值得网警成天盯梢,否则要投入大量的人力物力。

还有一种情况,是你确实有点危险,比如搞个网站写点没人看的文章教唆人翻墙,或者在不受审查的社交平台写一些对政府不利的话当当键盘侠。但是如果你的保护措施做得还行,那审查者权衡一下你的危险系数和抓你的麻烦程度,也会暂时放过你(先不考虑年底冲KPI这样的情况)。

综上所述,假设你因为翻墙被抓的可能性是P,那么

P=你行为的危险程度/拘捕成本

拘捕成本可以大约等同于你的防护措施做得是否到位,所以

P=你行为的危险程度/防护程度

安全性与便利性的权衡

那上面那个式子是否等于说只要把防护措施做到极致就可以了?比如把翻墙软件装在虚拟机里,虚拟机还要是Linux系统,而且只用Tor包一层再翻墙,还要每次启动虚拟机都使用随机MAC地址。。。噢对了,活动时间也必须是不规律的。这样当然很好,但是反过来会消磨你的热情让你寸步难行,我们翻墙是为了获取信息和做事的,而不是为了构建一个近乎完美的安全上网系统。

上面这个公式给我们的启示应该是根据你行为的危险程度采用合理的防护措施,把P保持在一个相对合理的数值。至于危险程度和防护程度这两个指标要如何估计?这只能靠你自己根据经验判断了。我的一点实用性建议(请充分考虑你的实际情况,不要当作教条):

  • 采取墙内外一定程度的身份隔离,尽量不要用一样的邮箱和电话注册墙内和墙外的服务,不要使用相同的id,不要透露和你墙内身份有关的信息。
  • 最好不要使用机场而考虑自己租VPS搭建代理服务,因为机场主会保留日志,这就包含了你的翻墙信息。而且许多机场主自己就生活在大陆,当被公安机关一窝端时他们会别无选择把你的信息交出去。再者很多机场会有审计规则,等于你花钱享受墙外墙。
  • 不要随便点击来路不明的链接,不要接P2P网络电话等以避免泄露你的ip。

结局

很遗憾,这个故事还看不到结局,就像翻墙的猫鼠游戏在可见的未来还会一直进行下去一样。写这篇文章的目的在于给墙祛魅,为让人在这个被集权的恐惧笼罩的时代不停下求真的步伐做一点微小的工作。

最后,诸君也不妨思考一下墙的危害是否只是阻挡了人获取信息。就像在介绍端的文章中已经提到过的,墙的存在在这个算法已经在制造信息茧房的时代又伸出另一只大手把人与人扫到了两边。如果你满足於自己能够看见墙内看不见的东西而感到沾沾自喜,以看小粉红现世报为乐,认为这群人“又蠢又坏”,而不是抱着传播真理和付诸实践的责任心的话,那么墙在你身上留下的烙印可能和被挡在墙内的人们一样深。

延伸阅读

感谢您的阅读,本文由 瞭望塔 版权所有。如若转载,请注明出处:瞭望塔(https://watchtower.link/break-the-great-firewall/
让我们来学习吉他吧!