当前位置:首页 > 技术相关 > 正文

个人使用 vpn"翻墙" 是否违法?

基于规范性法律文件、案例以及相关计算机技术的分析与讨论

由于企业的 “翻墙” 行为既未使用合法的 “国际出入口信道”,也未接入合法的 “接入网络”,甚至未使用境内的 “互联网络”,已经违反了《中华人民共和国计算机信息网络国际联网管理暂行规定》的规定,公安机关有权责令企业停止国际联网行为,同时给予警告,并处以 15000 元以下的罚款。

(在看完第四章的基础上),你将对 “GFW”、“翻墙” 等话题有更深入、更正确的认识,同时避免被不怀好意的人的类似观点(见下文引用部分)欺骗。

因为全球大部分根域名服务器都设立在美国,所以美国掌握互联网的底层,而中国必须建立 GFW 来保障互联网安全。这也是互联网 + 产业安全运转的重要基础。

1什么是邮电部国家公用电信网提供的国际出入口信道

2、1996 年的 “国际出入口信道” 的概念在 20 年间是否发生变化

3、当我们讨论 “翻墙行为” 究竟是否违法时,我们首先应该讨论什么

4、翻墙行为是否属于私自架设物理信道?

1、互联网访问基本原理 ——OSI 参考模型

(1)国内网站访问原理

(2)境外网站访问原理

广东公安执法信息公开平台行政处罚决定书信息 韶雄公 (网) 行罚决字 [2019] 1 号

http://www.gdgafz.alldayfilm.com/bookDetail.html?type=1&id=1134323
笔者此前看到此新闻时一度是不相信的,但未曾料到,近日在检索过程中真的在官方信息公开平台查到了这一案件的处罚决定。但上图显示的 “行政处罚决定书” 拍摄样图并非来源于官方,且样图有很多可疑之处(法律文书课老师看到可能会被气哭),在此提前予以指出:

a.样图中的文书格式非常极其不规范,正文字体大小悬殊、行距和字距不统一。表面上,该文书似乎是一份标准模板,横线是提前固定的,但细看便可发现,正文文字下划线与页面的边距不统一,因此这明显是在正文文字填写之后才事后加上 “下划线” 格式的。且文字没有统一边距;

b.在 “现查明” 的正文部分,“‘蓝灯’(Lantern Pro)软件 APP” 中的 “软件” 和 “APP” 系表意相同的两个名词,此处连用存在语病,十分怪异;

c.在内容部分,“且最近一周的登陆次数为 487 次”并没有相应的证据材料予以佐证。首先,行政相对人不可能记住自己使用 vpn 的连接次数,因此该数据不可能从询问笔录中反映出来。

其次,手机 app 本身并不会保存每天的连接次数,也没有日志的功能;

此外,即使该数据在手机和 app 内部以日志的形式保存,行政机关也不可能靠妄加猜测突然检查朱某某的手机,而是只可能使用远程手段(例如公安机关远程监控系统、电信运营商的举报或直接向运营商收集用户访问境外 ip 地址相关信息),但这样的证据并没有在此份决定书样图中反映出来,所以在证据层面是可疑的。

上述行政处罚案件的处罚依据如下:

《中华人民共和国计算机信息网络国际联网管理暂行规定》(国务院令第 195 号)(1996 年 1 月 23 日)

第六条计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其他信道进行国际联网

第十四条 违反本规定第六条、第八条和第十条的规定的,由公安机关责令停止联网,给予警告,可以并处 15000 元以下的罚款;有违法所得的,没收违法所得。

第二条我国境内的计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。

任何单位和个人不得自行建立或者使用其它信道(含卫星信道)进行国际联网

1、什么是邮电部国家公用电信网提供的国际出入口信道

好在,1998 年国务院信息化领导小组又出台了一部相关的部门规章,对 “国际出入口信道” 的含义作出了明确的规定。

关于公布上海市 1998 年度职工月平均工资、国有企业职工年平均工资及增长率的通知

二、1998 年度全市国有企业职工年平均工资为 11546 元,比上年增长 0.8%(增幅按国家统计局新口径作了相应调整)。凡按 1998 年国有企业职工年平均工资计算的事项,均按此水平执行。

工业和信息化部办公厅关于深入推进互联网网络接入服务市场清理规范工作的通知

但随着清理规范工作深入开展,一些深层次矛盾逐步浮出水面,部分企业违规自建传输网络、非法经营传输业务及违规经营跨境数据通信等问题仍较为突出,……(省略)…… 有关事项通知如下: 

四、各基础电信企业要加强网络资源和用户台账管理,采取技术、管理、法律等措施,防范网络资源被用于非法经营。要配合各通信管理局做好违规线索核查,及时关停被用于非法经营、违规使用的网络资源。

工业和信息化部关于清理规范互联网网络接入服务市场的通知(工信部信管函 [2017] 32 号)

二、工作重点

(二)严格资源管理,杜绝违规使用

4.违规开展跨境业务问题。未经电信主管部门批准,不得自行建立或租用专线(含虚拟专用网络 VPN)等其他信道开展跨境经营活动基础电信企业向用户出租的国际专线,应集中建立用户档案,向用户明确使用用途仅供其内部办公专用,不得用于连接境内外的数据中心或业务平台开展电信业务经营活动。

3、当我们讨论 “翻墙行为” 究竟是否违法时,我们首先应该讨论什么

在看完第四章的互联网技术讨论部分,你会对以下几个重要事实有基本的认识。
(1)

本院认为,被告人为牟取非法利益,违反国家规定,在互联网推广用于侵入计算机信息系统的程序、工具,情节特别严重,其行为已构成提供侵入、非法控制计算机信息系统的程序、工具罪。公诉机关指控的罪名成立。经查,本案的 “XXX” 软件,利用公用网络架设专用网络,并进行数据加密传输,使计算机信息系统自由访问中国境内无法访问的境外网站,因此,该软件属于 “用于侵入计算机信息系统的程序、工具”。被告人在未经电信主管部门批准的情况下,提供的 “XXX” 软件使客户的计算机自由访问境外网站,数据传输受到加密保护,突破我国技术安全防护措施,危害了国家信息网络安全,符合提供侵入、非法控制计算机信息系统的程序、工具罪的客体。

(2018)鄂 1202 刑初 389 号
自从我学习了这个罪名以来,就对此抱有极大的质疑。翻墙工具怎么可以等同于 “用于侵入计算机信息系统的程序、工具”?
一个最简单的反驳实例就是,GFW 最早的原理是将 google.com 指向无效 ip 地址(即第四章论述的 DNS 污染 / 域名劫持),而最早的翻墙原理是在本地建立一个 DNS 库,将 google.com 指向真实的 ip 地址,或者使用 8.8.8.8 这样尚未被污染的 DNS 服务器,这样当你在浏览器键入 google.com 这一域名的时候,其就会访问正确的服务器。而这一行为的唯一操作步骤,就是打开 windows 的一个名为 hosts 的系统文件,将谷歌域名对应的 ip 地址录入,或者修改本地网卡的 DNS 设置,翻墙的效果就达成了。这样一个简单的步骤,怎么可能侵入了外人的计算机信息系统?
而 “架设专用网络,进行数据加密” 是一个非常常用的网络应用,很简单的例子,在家里访问学校的图书馆以及学术资源,要打开 vpn 软件,这就是建立了一个加密通道,其和翻墙软件的原理是一模一样的,只存在结果上的不同。而这种技术突破 “我国技术安全防护措施” 的唯一原因,是由于这个所谓的 “防护措施” 会对你的网络请求进行分析,而加密流量很难被分析。况且,现行的规范性法律文件从没有提及这些法院判决中提到的 “我国技术安全防护措施”。
另一个很有意思的问题是法院判决中通常会提到的 “使计算机信息系统自由访问中国境内无法访问的境外网站”。但看了本文第四章,你就会认识到,这个世界上的互联网的本来面貌,就是让每个人可以自由地访问不同国家的服务器,并且这种自由在 2002 年以前是普遍存在的,在 2010 年以前也是大部分人都能享受到的。除非真的有一部行政法规出台,告诉我个人不能访问境外网站,这样我才能理解法院竟然能给出这样的表述。
另外,你可以洞察到,在法官论证部分,通常会有常人难以发现的跳跃性和滑坡论证。例如,“利用公用网络架设专用网络,并进行数据加密传输,使计算机信息系统自由访问中国境内无法访问的境外网站,因此,该软件属于 “用于侵入计算机信息系统的程序、工具”。” 这句话看似行云流水,但你细究下来,就会产生非常多的疑问 —— 为什么一个工具可以自由访问原本无法访问的境外网站,就是侵入计算机信息系统的工具?为什么有些网站不能访问,其依据是什么?侵入的是哪一个计算机信息系统?该系统的 ip 地址是什么?地理位置具体在哪里?有什么相关规定吗?这种暧昧和含糊其辞其实不难理解,因为 GFW 这个词真的从未出现在某个文件上,但难以想象,“翻墙” 这个词居然可以在相关的判决文书中随处可见。
但是,我是绝对支持对一些市面上大部分出售翻墙工具的人进行惩罚的,因为他们之中很多人都只是偷窃了开源项目技术人员的劳动成果,亦或是提供与其宣称不符的劣质(违法)产品,从而收取暴利,收割智商税。从构成要件上看,我认为其更加符合非法经营罪的构成要件,而非提供侵入、非法控制计算机信息系统程序、工具罪,因为后者在论证上存在着严重的逻辑漏洞。
另外,不仅仅是出售翻墙工具,还有很多技术人员因为编写开源翻墙项目而获此罪名。因此,这一领域的法律问题应该结合计算机技术问题被更深入、更广泛的探讨,这也是我写这一篇文章的初始动机。因为很多人确实需要通过境外网站查询学术资料、海淘等,这些行为都不存在违法性。而当他们使用翻墙工具访问境外网站大多不受惩罚的同时,惩罚却被转嫁到了提供翻墙方法的人之上。
而与此同时,现在社会上出现一种声音,他们也同意国家根本不禁止个人翻墙,但他们更进一步表达了他们的自信和乐观,他们认为国家不仅不禁止翻墙,还鼓励有独立思考能力的人翻墙输出文化(依据是李子柒);同时认为:对于真正有独立思考能力的人来说,翻墙实在是太容易了,甚至他们会用嘲讽的语气阴阳怪气道:“没有独立思考能力的人活该待在墙内”。这种风气我认为非常不好,毫不避讳地说,这是吃人血馒头的行为。因为他们不知道,真正致力于 “为他们寻找访问境外网站方法” 的人,大多承受着极大的法律风险,而与此同时,GFW 的技术手段越来越强悍,翻墙的成本越来越高,普通人甚至很容易在这一领域被骗 —— 对于这些问题,他们向来是采取无视态度的。如果让这种声音成为这个社会的主流,那么我对这一领域在未来进展的预测将是极其悲观的。
更进一步,我们应当思考,当程序员为 “人们正常访问合法境外网站” 而努力的时候,法律工作者的努力又在哪里?为什么现在大部分法律工作者都在就着错误的计算机基本常识来进行法律方面的论证呢?我不禁陷入了深思……
四、从计算机技术角度解读:什么是墙,什么是翻墙
在了解 GFW 和翻墙的原理之前,你必须对互联网运行的基本原理有一个宏观的了解 ——至少,你需要知道当你在浏览器键入 baidu.com,页面呈现在你眼前时,究竟发生了什么。你只有知道发生了什么,才可能看懂 GFW 是怎么样阻止你访问网页,而翻墙又是如何让你穿越重重阻碍成功访问境外服务器的页面的。
1、互联网访问的基本原理 ——OSI 参考模型
我们之中一定有很多人还依稀记得高中、大学计算机课曾提及 “互联网分成好几个层次”。最浅显易懂的当然是物理层,因为日常生活中,光纤、网线、电话线之类的东西是随处可见、看得见摸得着的。
那么,关于 GFW 和翻墙的一切话题,都在上述模型中的哪一层呢?你以为他们在第一层(物理层),实际上他们分布在第三层(网络层)、第四层(传输层)和第七层(应用层)。
为了让大家更好地理解这个 “老千层饼”,我分别以访问 baidu.com 主页和境外服务器 ip 来简单阐述一下其过程中涉及的原理(对应 OSI 参考模型)。
(1)国内网站访问原理
a. 在浏览器输入 baidu.com
浏览器并不会直接聪明地找到百度的服务器。
正如我们在使用传统电话时,不可能直呼一个朋友的名字,电话就自动打过去了 —— 我们一定需要知道朋友的电话号码。此时 baidu.com 就相当于你的一个朋友的名字,而它的电话号码就是我们熟知的 ip 地址(第三层:网络层)。但我们不可能像记住朋友手机号那样记住 baidu.com 对应的 ip 地址 39.156.69.79,而是需要一个电话号码簿替我们记住。这个电话号码簿有很多种,例如浏览器缓存(短时)、本地 DNS 缓存、hosts 文件、网卡配置信息里的 DNS 服务器以及 DNS 根域名服务器,优先级从前到后。在上述所有 “电话号码簿” 中,都记载了 “baidu.com=39.156.69.79” 这样一个信息,当我们命令浏览器访问 baidu.com 时,(若浏览器缓存、本地 DNS 缓存、hosts 文件都没有记载这位朋友的号码),那么浏览器就会使用 UDP 协议(第四层:传输层)向 DNS 服务器请求 baidu.com 背后的 ip 地址,DNS 服务器域名系统解析(第七层:应用层)后返回正确的 ip 地址。
浏览器并不会直接聪明地找到百度的服务器。
正如我们在使用传统电话时,不可能直呼一个朋友的名字,电话就自动打过去了 —— 我们一定需要知道朋友的电话号码。此时 baidu.com 就相当于你的一个朋友的名字,而它的电话号码就是我们熟知的 ip 地址(第三层:网络层)。但我们不可能像记住朋友手机号那样记住 baidu.com 对应的 ip 地址 39.156.69.79,而是需要一个电话号码簿替我们记住。这个电话号码簿有很多种,例如浏览器缓存(短时)、本地 DNS 缓存、hosts 文件、网卡配置信息里的 DNS 服务器以及 DNS 根域名服务器,优先级从前到后。在上述所有 “电话号码簿” 中,都记载了 “baidu.com=39.156.69.79” 这样一个信息,当我们命令浏览器访问 baidu.com 时,(若浏览器缓存、本地 DNS 缓存、hosts 文件都没有记载这位朋友的号码),那么浏览器就会使用 UDP 协议(第四层:传输层)向 DNS 服务器请求 baidu.com 背后的 ip 地址,DNS 服务器域名系统解析(第七层:应用层)后返回正确的 ip 地址。

通过 dns 解析之后,拿到了 ip,就可以通过 ip 向服务器发送 http 请求了,因为 http 是工作在第七层应用层,tcp 是工作在第四层传输层,所以发生 http 请求之前,还会进行 tcp 的三次握手。

tcp 的三次握手是:客户端首先向服务器发送一个带有 SYN 标识和一个 seq 的随机数,服务端收到后,需要给客户端回应一个 ack,ack 的值就是刚才的 seq 随机数的值 + 1,在回应包里,还包含一个 SYN 的标识和一个 seq 随机数。客户端收到服务端发过来的回应包之后,再给服务端发送一个 ack,ack 的值就是刚才服务端发过来的 seq 的值 + 1。上面三步完成之后,三次握手就完成了,下面就可以开始传数据了。

为什么建立连接要这么复杂呢?一切为了安全和可靠。DNS 服务所运用的 UDP 协议和 http 请求的 tcp 协议最大的区别在于,UDP 就像一个在国际货物运输过程中前赴后继、不顾一切的承运人,它努力以最快的速度把 “货物” 交付到你手上,但态度极差,从来不主动跟你联系,也不会接你的电话,货物是否损毁或者送错了人都不在它的义务范围内;而 TCP 就像一个严谨、可靠、负责、慢条斯理的承运人,它在为你进行货物运输时会不断和你建立联系,在送货前不停打电话跟你反复确认,而且要打三次,生怕送错了人,送完货物也会不紧不慢地和你再三确认,要跟你打四通电话。

网上一个更形象的例子是 ——

b2. 数据包是如何从你在上海的计算机发至架设在北京的百度服务器呢?

tcp 三次握手已经很生动形象了,但毕竟从上海发送一个数据包至百度架设在北京的服务器的难度,与 “在小区里和美女当面互相打招呼” 的难度压根不在一个数量级,数据包是如何通过祖国大地下架设的 “杂乱无章”、连通全国的光纤中找到去往北京的最快的路,而不至于兜圈或者迷路呢?

这要得益于国内几家国有电信运营商建立的庞大的骨干网和城域网。我们作为外行,可以把这种网络理解成一个个互相连通的节点。

例如,中国电信 163 骨干网分为北京、上海、广州 3 大片区,这三个片区有大型的骨干路由作为邻近省级区域的数据交汇中心,例如上海片区涵盖了上海、江苏、安徽、山东、浙江、福建、江西这几个省,而每个省的内部又有庞大的、互相连接的城域网,而在某个城市的城域网内部,又有数以万计的学校、企业、家庭等局域网的接入,从而形成了从局域网→城域网→广域网三个层级。

此外,不只是中国电信,其他运营商也有各自的骨干网,例如中国联通有CHINA169骨干网和CNCNET骨干网,中国移动有CMNET全国骨干网…… 不同国家级互联网业务提供商(Internet Service Provider, ISP)建立的不同骨干网之间也有数据交换的中心,这使得信息和数据包可以自由地从全国的任何地方流向任何地方。(相关链接:《互联网骨干网全面解析》https://zhuanlan.zhihu.com/p/32090927)

连通性的问题解决了,还要解决数据包在庞大的 “网上公路” 迷路的可能性。在上述提到的各个级别的网路中,分布着无数路由节点,每一张骨干网都有自己负责的路由群组和节点,整个群组统称为 as 自治系统(Autonomous system),每一个骨干网管理的 as 自治系统都经过名为互联网号码分配局的国际机构分配唯一识别代码,例如,中国电信 163 骨干网的 as 自治系统编号为 AS4134。每一张骨干网都有内部路由协议,每一个节点都在依据某种规定互相交换他们所连通的 ip 地址信息,作为数据包在 “旅行” 过程中的指路人。而全国性的骨干网之间也依靠外部路由协议互相交换它们所掌握的 “服务器地图 “,典型的有 BGP 协议。

边界网关协议(英语:Border Gateway Protocol,缩写:BGP),一个去中心化自治路由协议。它通过维护 IP 路由表或‘前缀’表来实现自治系统(AS)之间的可达性,属于矢量路由协议,其使用基于路径、网络策略或规则集来决定路由。

→http 协议是明文协议

→https 协议更加安全,其在 tcp 握手的基础之上增加了以下步骤:

验证服务器数字证书、在 SSL 安全加密隧道协商加密算法的密钥等。

(2)境外网站访问原理

跨国企业使用跨境服务合规方式。跨国企业因协同办公、数据交互等自用需求,可以采用以下方式实现跨境联网:跨国企业从境内发起直接租用 3 家基础电信企业的国际专线(包括虚拟专网),与企业办公自用网络和设备连接;跨国企业从境外直接发起或委托境外运营商,向 3 家基础电信企业租用国际专线(包括虚拟专网),与企业办公自用网络和设备连接。跨国企业租用国际专线自建自用办公网络时,可委托有资质的第三方(含持国内 IP-VPN、固定网国内数据传送等业务许可的企业)提供系统集成、代维代管等外包服务,但第三方企业不得从事国际专线(包括虚拟专网)的线路资源租售等电信业务经营活动。

因此,我很遗憾地看到,即使是律所发表的相关文章《天衡解析 | “翻墙” 上网的正确姿势》,也犯了非常严重的计算机常识性错误,导致该篇文章论证的前提就是不正确的。这篇文章指出:

由于企业的 “翻墙” 行为既未使用合法的 “国际出入口信道”,也未接入合法的 “接入网络”,甚至未使用境内的 “互联网络”,已经违反了《中华人民共和国计算机信息网络国际联网管理暂行规定》的规定,公安机关有权责令企业停止国际联网行为,同时给予警告,并处以 15000 元以下的罚款。

然而, 当我们对互联网运行的机制和原理有了初步的了解后就能轻松发现这句标红的话的严重错误 —— 我在上文所介绍的一切专业术语的实际运作,不管是 DNS 解析、TCP 握手,还是 AS 自治系统、BGP、路由跳转、ICMP 协议…… 一切的基础都是物理层。

如果你没有接入各大运营商设立在城市里的合法的城域网;

如果数据包没有经过各大国家级 ISP 的合法骨干网和路由节点 AS 自治系统;

如果境外数据访问没有经过国内三大运营商经国家批准设立的合法国际出入口并通过合法的陆上、海底光缆设施直达境外服务器……

你的一切数据交换和网站访问都是不可能凭空实现的。

换句话说,即使一家企业使用某个国外代理服务器作为中转节点以逃避 GFW 的审查,这一翻墙行为的一切基础都是建立在使用合法的国家互联网基础设施之上的。因为你不可能自己去发射一颗卫星专门用来刷推特,也不可能自己制造海底电缆,自发地潜水到海底接入别的国家的网络。

因此,对于普通个人和企业来说(这里的 “普通” 是指没有能力发射卫星、埋海底光缆),根本不存在所谓 “非法的国际出入口信道”、非法的 “接入网络”、“在不使用境内互联网络的前提下访问域外服务器”。

一个最直接的证据,也是每个人都能亲身试验的方法,就是使用前文介绍的 traceroute 命令,访问某个境外服务器的 ip 地址,遍历数据包途经的骨干网和路由节点,你就会知道,你到底是不是在使用国家级电信运营商布建的、国家批准的网络基础设施了。我随机使用一个尚未被限制的境外服务器 ip 测试一下,结果如下:

可见,当你成功访问境外服务器,当然也意味着成功实现了翻墙,但你的数据经过的是 AS4812(中国电信上海路由群组)、AS4134(中国电信 163 骨干网路由群组),最后通过海底光缆直连美国加利福尼亚州洛杉矶的 AS8100 路由群组。你使用的一切光缆、路由节点、海底光缆,全都是经过工信部审批通过的国家级互联网基础设施。翻墙就是使用了非法的信道 —— 这种逻辑是很可笑的。

因此,国际出入口就在那里等着你,海底光缆也在向你招手,凭什么不能访问境外网站呢?在看了下文 GFW 原理和翻墙原理的介绍,你就会知道,你不能访问境外网站的唯一原因是你正在遭受一个不受法律规制的系统的不间断网络攻击,而你使用任何途径翻墙的基本原理永远都是 —— 你使用了某种技术抵御或避免了上述网络攻击。

2、GFW 的原理

(1)基于 UDP 协议的域名解析服务劫持 / DNS 缓存污染

大家一定还记得那个电话号码簿的故事。GFW 最早、最初始的原理,就是将这个电话号码簿掉包,或者将号码簿里的电话号码替换成错误的号码,这个原理诞生于 2002 年,在 2012 年以前达到高峰。GFW 对所有经过骨干出口路由的基于 UDP 的 DNS 域名查询请求进行 Intrusion Detection Systems(入侵检测系统)检测,一旦发现处于黑名单关键词中相匹配的域名查询请求,防火长城作为中间设备会向查询者返回虚假结果。

简而言之,DNS 域名污染就好比你想在电话号码簿上查询朋友的电话号码,但是不曾想,电话号码簿被人掉包了,你拿到的是假的电话号码簿,原本正确的手机号码被替换成了错误的号码,导致你无法打通电话。而该系统触发的规则使用了类似正则表达式的结构,例如规定 “对于一切 *.google.com 的域名解析到某个不存在的 ip 地址”。

直接使用 windows 的 ping 命令就可以亲眼看到 DNS 污染的运作效果。谷歌官网的服务器明明架设在美国科罗拉多丹佛,但从下图可以看见,在国内从 DNS 服务器请求到的 ip 地址却是 93.46.8.90 这个来自意大利的无效 IP 地址。

此项技术不仅是 2012 年前后人们无法再访问 Google 的直接原因,其在运转过程中更是殃及了全球 DNS 域名解析服务的正常运作。

这种 DNS 污染的方式曾经向中国大陆以外的用户造成影响。2010 年 3 月,当美国和智利的用户试图访问热门社交网站如 facebook.com 和 youtube.com 还有 twitter.com 等域名,他们的域名查询请求转交给中国控制的 DNS 根镜像服务器处理,由于这些网站在中国被封锁,结果用户收到了错误的 DNS 解析信息,这意味着防火长城的 DNS 污染已影响国际互联网。2010 年 4 月 8 日,中国大陆一个小型 ISP 的错误路由数据,经过中国电信的二次传播,扩散到了整个国际互联网,波及到了 AT&T、Level3、德国电信、Qwest 和西班牙电信等多个国家的大型 ISP。

DNS 污染殃及全球用户的基本原理很简单,就是诸多国外用户的 DNS 请求被他们的 ISP 电信运营商随机分发给了全球的根域名缓存服务器(也就是那个优先级最低的电话簿),而碰巧,他们请求被分发给了来自中国的根域名服务器,而因为 GFW 的存在,其提供的是错误的、虚假的 DNS 解析服务,其造成的后果可想而知。

因此在这里我忍不住插一句题外话。我曾亲耳听见一个计算机专业毕业的人谈及中国的互联网安全现状。他说,因为全球大部分根域名服务器都设立在美国,所以美国掌握互联网的底层,中国必须建立 GFW 来保障互联网安全。现在,你应该可以体会到这种言论的恶毒之处。因为现在你终于了解到,电话簿可以随时复制,根域名服务器根本就不是什么互联网的底层,而是最高层(应用层)中一个很简单的技术,你的浏览器永远最先访问本地 DNS 缓存,往往一般都无须根域名服务器就能解析 IP 地址;而中国的根域名服务器会对境外服务器域名解析错误的 ip 地址,因此现实情况是中国的 DNS 污染在影响全球的互联网运行,而非美国影响了中国的互联网安全,这是完全的颠倒是非。

(2)IP 地址或传输层端口人工封锁 ——BGP 路由劫持 /“路由黑洞”

2010 年 4 月 8 日,中国大陆一个小型 ISP 的错误路由数据,经过中国电信的二次传播,扩散到了整个国际互联网,波及到了 AT&T、Level3、德国电信、Qwest 和西班牙电信等多个国家的大型 ISP。

我们依旧可以通过 traceroute 观察到这一技术的运行效果,我们尝试 traceroute 一下 google.com 的真实 ip 地址,得到如下结果:

(3)TCP RST 重置(包括对基于 TCP 协议的 DNS 域名解析的重置)

通常需要进行阻断的情况是审计控制系统旁路监听内网。旁路监听的方式一般是将主交换机的数据镜像到控制系统,控制系统可以采用 libpcap 捕获数据包。在这种情况下要阻断 tcp 连接的建立只要在监听到第一次握手的时候,控制系统伪造服务器发起第二次握手回应,就能阻断客户端与服务器连接的建立。因为我们的系统在内网,发出的报文肯定比服务器快,这样客户端接收到我们伪造的报文以后会回应第三次握手,当服务器真正的报文到达的时候客户端将不再处理,此时客户端再向服务器请求数据,因为 seq 号和 ack 号出错,服务器不会受理客户端的请求。

TCP 协议规定,只要看到 RST 包,连接立马被中断。从浏览器里来看就是连接已经被重置。大部分的 RST 是条件触发的,比如 URL 中包含某些关键字。目前享受这种待遇的网站就多得去了,著名的有 facebook。还有一些网站,会被无条件 RST。也就是针对特定的 IP 和端口,无论包的内容就会触发 RST。比较著名的例子是 https 的 wikipedia。GFW 在 TCP 层的应对是利用了 IPv4 协议的弱点,也就是只要你在网络上,就假装成任何人发包。所以 GFW 可以很轻易地让你相信 RST 确实是 Google 发的,而让 Google 相信 RST 是你发的。

IP 协议的特性叫 TTL。TTL 是 Time to Live 的简写。IP 包在每经过一次路由的时候,路由器都会把 IP 包的 TTL 减去 1。如果 TTL 到零了,路由器就不会再把 IP 包发给下一级路由。由于 GFW 会在监听到不和谐的 IP 包之后发回 RST 包来重置 TCP 连接。那么通过设置不同的 TTL 就可以知道从你的电脑,到 GFW 之间经过了几个路由器。比如说 TTL 设置成 9 不触发 RST,但是 10 就触发 RST,那么到 GFW 就是经过了 10 个路由器。

另外一个 IP 协议的特性是当 TTL 耗尽的时候,路由器应该发回一个 TTL EXCEEDED 的 ICMP 包,并把自己的 IP 地址设置成 SRC(来源)。结合这两点,就可以探测出 IP 包是到了 IP 地址为什么的路由器之后才被 GFW 检测到,结合 IP 地址地理位置的数据库就可以知道其地理位置。

(4)协议检测→根据流量协议拆包→关键词匹配→封锁

基于此,GFW 作为一个独立设备就可以作为旁观者分析经过其附着的主干路由器的所有数据包。

HTTP 协议有非常明显的特征,可以轻易被 GFW 系统检测和识别,GFW 进而依据 HTTP 协议规则对数据包进行拆解,由于其表现为明文,所以可以直接进行关键词匹配。例如,从 HTTP 的 GET 请求中取得请求的 URL。然后 GFW 拿到这个请求的 URL 去与关键字做匹配,比如查找 Twitter 是否在请求的 URL 中。而关键字匹配使用的依旧是一些高效的正则表达式算。

(5)深度包检测(机器学习识别翻墙流量→直接阻断)

不再展开论述,可参考近年来 Github 网站遭受的攻击。

3、翻墙的原理

这一部分我不再展开论述,因为是有法律风险的。有一定网络基础知识的人,在看完上述 GFW 原理之后,应当能够头脑风暴一下,想出很多合理的逃避审查的思路,也能理解为什么我在上文提及 “翻墙不等于侵入计算机系统” 了。主要的翻墙原理有以下几种。

……

在文章结尾,我依旧要强调,不涉及有关 “翻墙” 的任何技术指导或方法的具体介绍,同时必须强调 —— 千万不要翻墙访问、发布、传播违法有害信息。

我们很多人都记得 2012 年以前的那个时代,想要用谷歌搜索资料,只需要修改 DNS 服务器为 8.8.8.8 即可,再不济,改个 hosts 文件就行了。现在,越来越多的方法被封锁了,在这个节骨眼上,居然还有很多人盲目乐观,甚至以他人不懂翻墙而沾沾自喜,这样的现象伴随着民族主义思潮愈演愈烈。

但是我相信,认真学习自己的专业知识,同时广泛地接受和学习其他领域的专业知识,就能轻松避免被网上大肆输出情绪的人鼓动和欺瞒,保持冷静地思考—— 你真的可以对现状有一个清晰的认识和判断,并在不久的将来参与到各行各业的运行过程中,为社会做出贡献。

而这篇文章,就权当我在学习之余的放松心情、自娱自乐罢。

那么现在,你能否就程序员群体提出的以下选择题给出正确解答了呢?

有话要说...