查看原文
其他

文钞|个人使用 VPN “翻墙”是否违法?——基于法律与技术的综合分析

黑羊公社 2022-11-02

The following article is from 不能使用该名称 Author 王宇扬

编者按:

由于原文比较长,为便于阅读已作删减(虽然删了也很长)。文末附有原文链接,感兴趣的或者想要参考文献链接的读者可以自行查阅。
在本文大致框架形成以前,我已查阅国内几乎所有关于“翻墙”的论文和文章,大部分探讨都存在着严重的问题,有些是法学常识性问题(或不讨论法律层面的问题),有些是计算机技术方面的常识性问题(常出现在法学类文章中)。
这是一个很有趣的现象——“翻墙”是一个同时牵涉法学和计算机技术的两个领域的跨学科问题。很多法学专家不了解技术;很多技术人员,也没有意愿探讨技术涉及的法律问题。这个疑难问题今天终于被我这个“既没学好法,又没学好计算机”的奇葩捡了漏。望两个学科的大佬们对于本文可能出现的纰漏予以指正!
本文论证的逻辑链如下:
国际出入口信道是物理信道,现行法只规定不允许非法架设物理信道——翻墙必定使用合法物理信道(主要在第二章展开论证)——翻墙不违法
本文的主要结论如下:
  • “个人使用vpn等工具翻墙”的禁止性规定是不存在的,无论是从技术角度还是法律方面,访问境外网站和境内网站没有任何本质区别;
  • 一切翻墙行为都必须使用国家批准的合法国际出入口信道,因为全球互联网的本来面貌就是所有国家网络基建的互联互通(主要在第二章展开论证)
  • GFW的运行基本原理是“网络攻击或入侵检测”(主要在第二章展开论证)
  • “翻墙”的基本原理是抵御“网络攻击或入侵检测”(主要在第二章展开论证)

一、法条分析及相关专业名词释义

网上流传的诸多与“翻墙”有关的行政处罚案件的处罚往往是依据以下法律法规:

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


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

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

北大法宝 【法宝引证码】 CLI.2.13908
关于发布《计算机信息网络国际联网出入口信道管理办法》的通知(邮部〔1996〕492号)
第二条 我国境内的计算机信息网络直接进行国际联网,必须使用邮电部国家公用电信网提供的国际出入口信道。任何单位和个人不得自行建立或者使用其它信道(含卫星信道)进行国际联网
北大法宝 【法宝引证码】 CLI.4.14832


1、什么是邮电部国家公用电信网提供的国际出入口信道
有很多人一看到“自行建立或使用”、“国际出入口信道”就激动地跳了起来,认为其含义和“使用vpn访问境外网站”是同一种意思,但实际上这是一个非常大的误解。
首先,从立法渊源上看,“国际出入口信道”一词最早起源于1996年出台的《中华人民共和国计算机信息网络国际联网管理暂行规定》(下称暂行规定)和关于发布《计算机信息网络国际联网出入口信道管理办法》的通知(邮部〔1996〕492号)(下称管理办法)。但很遗憾,在两部规范性法律文件内,并没有对“国际出入口信道”作出释义。但从后者的第二条第二款我们可以从“(含卫星信道)”这一标注中洞察到“信道”可能的含义——即它很可能具有物理意义。
好在,1998年国务院信息化领导小组又出台了一部相关的部门规章,对“国际出入口信道”的含义作出了明确的规定。
关于印发《中华人民共和国计算机信息网络国际联网管理暂行规定实施办法》的通知
(国信[1998]001号)

第三条 本办法下列用语的含义是:(三)国际出入口信道,是指国际联网所使用的物理信道
北大法宝 【法宝引证码】 CLI.4.19760

因此,国际出入口物理信道,只限于陆地光缆、海底光缆以及卫星通讯等实际存在的、供国内外进行数据、信息交换的物理介质。

根据《电信业务分类目录(2015年版)》,国际联网所使用的物理信道包括但不限于以下几种:国际陆缆、国际海缆、陆地入境站、海缆登陆站、国际地面传输通道、国际卫星地球站、卫星空间段资源、国际传输通道的国内延伸段,以及国际通信网带宽、光通信波长、电缆、光纤、光缆等国际通信传输设施。

与此同时,我们在立法中可以发现不少细节,其足以就“国际出入口信道属于物理信道”这一论点找出进一步的佐证。

首先必须对GFW的渊源有一定的了解。

防火长城(英语:Great Firewall,常用简称:GFW,中文也称中国国家防火墙,中国大陆民众俗称墙、网络长城、功夫网等等),是对中华人民共和国政府在其互联网边界审查系统(包括相关行政审查系统)的统称。此系统起步于1998年,其英文名称得自于2002年5月17日Charles R. Smith所写的一篇关于中国网络审查的文章《The Great Firewall of China》,取与Great Wall(长城)相谐的效果,简写为Great Firewall,缩写GFW。
维基百科

可以发现,GFW项目在1998年才刚刚起步,其命名甚至在2002年才出现,继而才出现“翻墙”这一概念。1996年《中华人民共和国计算机信息网络国际联网管理暂行规定》出台之时,甚至没有GFW这一概念的存在,事实上也根本不存在互联网审查,那么,1996年、1998年规范性法律文件中的概念何以提前预测并指向1998年以后才诞生的事物?一项禁止性规定又何以禁止不存在的东西?

因此,毫不避讳地说,若国内各地基层公安机关真的广泛存在“依据上述规范性法律文件对公民的‘翻墙’行为予以处罚”的现象,那绝对是明显的适用法律错误

更进一步,《暂行规定》为“擅自设立非法国际出入口信道”的行为设定了行政处罚事项,而该处罚的裁量基准是“15000元人民币以下”。这个数字,从当今的经济水平来看,对于个人来说不算一个很大的数字(但实际上这个上限对于个人来说已经很高了)。但是我们不要忘了,设立该处罚事项的规范性法律文件是在1996年出台的,我们必须关注1996年前后的职工平均工资水平,才能洞察“1万5”在行政裁量基准上的合理与否。

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


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

沪劳保综发(1999)18号 上海市劳动和社会保障局

你很难想象,在1998年,上海市作为全国经济重镇,职工的年平均工资才1万余元,但“翻一次墙”的行政处罚上限就可以达到一个上海普通职工工作一年半获得的工资——这不仅完全与行政法比例原则相违背,且即使是没有法学基础的人看到这样的景象都会感到震惊和难以置信。因此,我们从行政处罚的裁量基准可以反推得出,触犯上述规定的行政相对人,更可能是资本力量雄厚的企业——毕竟,一家有能力往台湾海峡私拉电线埋下海底光缆、或者为了“逛推特”专门制造并发射私人通信卫星的企业,才可能承受1万5的罚金。“建立国际出入口信道”,还真不是你普通人玩得起的!

但很有意思的是,《暂行规定》历经20多年,裁量基准竟然从未发生变化,依旧是上限一万五。但是1996年的一万五和2020年的一万五,可完全不是一个数量级的。但立法部门竟然从没有想着修订,也着实让人奇怪。

2、1996年的“国际出入口信道”的概念在20年间是否发生变化
有人会进一步质疑,“国际出入口信道”这一概念,有没有可能随着时代的发展以及新规范性法律文件的出台,从而被赋予新的内涵和外延呢?我们不妨找一找最近几年的相关文件和新闻来分析一下。
为了推动中国与塔吉克斯坦、巴基斯坦间国际通信业务的共同发展,促进区域的共同繁荣,工业和信息化部批准中国电信设置塔什库尔干国际通信信道出入口,为中亚、南亚区域经济发展提供良好的通信平台和保障。  

中塔直达光缆的建设,可以满足中塔间双边落地业务需求……(省略)……中巴直达光缆的建设将从根本上改变……(省略)……,满足中把双边落地及转接业务需求,对巴基斯坦国际出入口带宽能力的丰富和提升具有重大战略意义
工业和信息化部批准设置塔什库尔干国际通信信道出入口

首先,从2011年工业和信息化部的“批准设置塔什库尔干国际通信信道出入口”的新闻中,我们可以明显看出一个因果联系,即“国际出入口的设立→提升了国际出入口带宽能力”,而只有物理意义的光缆才可能事实上增强数据出入境的吞吐量,虚拟网络连接是做不到的,因此很容易进一步推导得出——“设置国际通信信道出入口”其本身就是“建设直达光缆”,因此,此时“信道”仍然是物理意义上的。

进一步,从近期的规范性法律文件来看,与“翻墙”关系最密切的莫过于工业和信息化部关于清理规范互联网网络接入服务市场的通知(工信部信管函[2017]32号) 以及工业和信息化部办公厅关于深入推进互联网网络接入服务市场清理规范工作的通知(工信厅信管函〔2018〕161号)。

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


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


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

北大法宝 【法宝引证码】 CLI.4.314373

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


二、工作重点 


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


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

北大法宝 【法宝引证码】 CLI.4.289332

看到这两份文件的一些措辞,很多人又会将“专线(含虚拟专用网络VPN)等其他信道”等同于1996年、1998年文件提及的“国际出入口信道”,但两者是不同的概念。

首先应当明确的是,两者的规制主体范围是不同的,1996年文件针对的是所有企业和个人,而2017年文件仅限于跨境业务经营的企业;96年文件中“国际出入口信道”概念的外延仍然受到1998年《中华人民共和国计算机信息网络国际联网管理暂行规定实施办法》的限制,即其外延仅限于物理层面的信道,而2017年文件中的“专线”(含虚拟专用网络VPN)同时包含物理层面的信道以及虚拟专用网络。因此,前者(因“信道”的物理性而)不限制个人使用虚拟vpn,后者也(因规制主体不包括个人而)不限制个人使用虚拟vpn

另外,分析法条不能脱离于立法背景,之所以将17年、18年两份文件并列展示,是因为两者立法在“规制vpn”领域的意图是一致的——“部分企业违规自建传输网络、非法经营传输业务及违规经营跨境数据通信等问题仍较为突出”、“防范网络资源被用于非法经营”。其表明,相关文件的出台针对的是企业违规跨境经营以及无资质企业非法经营网络服务(包括云服务、CDN服务),但与个人访问境外网站皆无直接关系。

值得一提的是,虽然上述文件是为了规制“企业违规使用vpn服务”的乱象,但其具体的措施却是将市场上一切没有相关资质的vpn服务全部一刀切,而相当多的vpn服务的主要受众是普通大众。因此,从名义上,政府规制的是企业违规跨境经营,但实际上对于个人用户访问境外网站产生了极为深远的消极影响,一个很直观的事实就是——自2018年以来,apple store的所有vpn软件全部下架。因此,其公开的立法目的和最后的政策效果是有很大差距的。


3、当我们讨论“翻墙行为”究竟是否违法时,我们首先应该讨论什么
我认为近些年人们对于“翻墙”的研究和讨论有些本末倒置了。
行政法规作出一个禁止性规定,首先要有禁止的主体和对象。换言之,在我们讨论“翻墙违法性”之前,我们应当先讨论到底什么是“墙”,“墙”到底存不存在。
这道墙在我们每个人眼中看来,显然它是事实存在的。我在上一篇文章提及一个想法——“在一个个生活事实和亲身体验中,人的大脑永远不会欺骗自己”。但是,生活事实和亲身体验很可能影响我们对于一件事情在法律意义上的判断——因为人们倾向于相信,如果一件事情在生活中是被事实禁止的,那么他就一定规定在了法条上。
但实际上:
没有任何一个公开的规范性文件规定过:个人不允许访问境外网站。
没有一个怕是效力最低的红头文件敢声称:访问youtube、Twitter是违法的。
如果你觉得有,请带着法条来找我(但请不要携带上述我提及的规范性法律文件来找我)。
其实到这一段为止,关于个人翻墙的法律问题已经全部讲完了,但还没有形成完整的逻辑链。因为上文只解决了大前提的问题,若没有论证翻墙行为的本质这一小前提,那么就不能得出翻墙合法或违法的结论。因此在下面一节,我提前总结了技术方面的几个重要结论(虽然不是法律问题,不应放在这一章),它们的论证部分统一放在本文第四章,其论证过程是相当庞杂和啰嗦的,因此第四章仅供感兴趣的朋友们阅读。而对于大多数人来说,看完下一节的结论性总结(且无条件相信的话),对于个人翻墙问题的讨论实际上已经可以就此终结了。

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

在上文,我们明确了现行法对于个人上网的禁止性规定只限于“禁止违规搭建违法物理信道”,那么翻墙是否就是其字面意思——从一堵墙私拉一根网线翻过去呢?答案是否定的。

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

(1)

任何人通过任何手段访问任何境外网站,不管是合法手段还是非法手段,不管是访问合法网站还是有违法信息的网站,其必定要通过中国电信、中国联通和中国移动三家电信运营商(经批准)架设的陆上或海底光缆。因此,翻墙不可能违反关于“物理信道”的规定,如果有,那就是适用法律错误。

(2)

全球互联网的本来面貌并非是每一个国家都在各自为政,各自建立一个庞大的“局域网”,相反,几乎所有国家的网络都是互联互通的。有了国家之间建设的陆上、海底光缆,民众访问境内网站和境外网站从技术上是没有任何区别的,在现行法意义上也是没有任何区别的。

(3)

你不能访问境外网站唯一的原因,是你正在遭受DNS劫持、域名污染、DDOS攻击、TCP旁路阻断、BGP劫持(黑洞路由)等网络攻击或防御手段。(这些专业名词会在第四章详细介绍。)这些攻击防御手段只有技术人员才能感受到,普通人唯一的感受就是无法访问外网。当前没有任何公开的官方文件证实了上述攻击手段存在,现行法也没有为上述任何网络攻击手段提供合法性依据。

(4)

你通过任何手段进行翻墙,这一行为的本质是抵御或逃避上述网络攻击,并使用国家批准的合法互联网基础设施访问境外网站,不存在违法的问题,也没有实际的社会危害。


二、从计算机技术角度解读:什么是墙,什么是翻墙
在了解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地址。


b1.浏览器拿到ip地址后向正确的服务器发送http请求

http协议(第七层:应用层)是建立在tcp协议(第四层:传输层)基础之上的的,tcp在建立连接前有三次握手。

通过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就像一个严谨、可靠、负责、慢条斯理的承运人,它在为你进行货物运输时会不断和你建立联系,在送货前不停打电话跟你反复确认,而且要打三次,生怕送错了人,送完货物也会不紧不慢地和你再三确认,要跟你打四通电话。

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

TCP 三次握手好比在一个夜高风黑的夜晚,你一个人在小区里散步,不远处看见一位漂亮妹子迎面而来,但因为路灯有点暗等原因不能100%确认,所以要通过招手的方式来确定对方是否认识自己。
你首先向妹子招手(syn),妹子看到你向自己招手后,向你点了点头挤出了一个微笑(ack)。你看到妹子微笑后确认了妹子成功辨认出了自己。
但妹子有点不好意思,向四周看了一看,有没有可能你是在看别人呢?她也要确认一下。妹子也向你招了招手(syn),你看到妹子向自己招手后知道对方是在寻求自己的确认,于是也点了点头挤出了微笑(ack),妹子看到你的微笑后确认了你就是在向自己打招呼。于是两人加快步伐,走到一起,彼此之间相互拥抱。
《关于TCP三次握手,这是我见过最好的解读了,通俗易懂》


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

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

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

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

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

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

维基百科

BGP协议使得各大骨干网的路由节点可以以tcp数据包的形式互相转发其掌握的路由信息,从而形成一个庞大的、完整的决策网,对数据包提供全面的“导航服务”,它能计算出数据包从一个客户端通往另一个外省客户端必经的最优路线和路由节点。条条大路通罗马,当一个路由节点故障时,因为各个节点都互相沟通,从而可以带领数据包选择其他路线通网可达的节点,避免“兜圈子”、“迷路”等情况。

使用traceroute(链接:https://tools.ipip.net/traceroute.php),可以利用ICMP 协议定位您的计算机和目标计算机之间的所有路由器节点。下图展示了我从自己的计算机访问百度设在北京的服务器39.156.69.79所经过的骨干网和路由节点,可以看见其经过了AS4812(中国电信163骨干网)的124.74.232.53、124.74.166.125等路由节点,而其途径的AS9808为中国移动骨干网的AS自治系统。

c.传输数据,发送http请求报文,加载页面(省略)
  • http协议是明文协议
  • https协议更加安全,其在tcp握手的基础之上增加了以下步骤:
    • 验证服务器数字证书、在SSL安全加密隧道协商加密算法的密钥等。

d.关闭连接前的tcp四次握手(省略)


(2)境外网站访问原理
在了解了国内数据包交换原理之后,全球的数据交换就很好理解了——你可以简单地把它理解为国家级骨干网之间的连接和交换。而从国内访问境外服务器有一个特殊之处就在于,我国的国际出入口运营资质是被中国电信、中国联通、中国移动三家国家级ISP垄断的。

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

2018年1月10日在北京召开了《跨境数据通信业务政策宣贯会暨产业联盟筹备大会》,国内数十家IP-VPN等相关业务经营企业参加了此次大会。

而国内数据跨境的物理传输介质一般为陆上光缆和海底光缆。通过上海直达美国的CN2骨干网海底光缆,亦或是从广州到香港的163骨干网线路的连接,国内和国外的数据完全可以自由地进行交换,而服务器的连接、数据包的交换、路由的选择,其本质上和访问国内服务器并没有什么区别,其协议的使用也是全球通用的。

所以,一个真正的国际互联网并不存在所谓的“墙”,它依旧是通过海底光缆等物理介质,作为OSI模型中的第一层,为其他几个层次的互联网运行提供服务。不管你是否翻墙,不管你访问的是合法的境外网站还是受到管制和审查的网站,一旦你成功ping同,实现了数据的交换,那么数据包就一定要通过我国设立的互联网国际出入口,从一条条光缆直达国外的服务器。

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

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

《天衡解析 | “翻墙”上网的正确姿势》

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

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

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

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

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

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

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

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

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

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


2、GFW的原理

首先,我们反复强调,GFW这个概念在当前一切公开的规范性法律文件中都是不存在的。因此,对“翻墙”进行处罚、甚至将“翻墙”这个词写在一个法律文书中简直是无中生有、自取其辱,是非常荒谬的行为。

其次,在学习了以下原理之后,你将清楚地认识到:现行法律规定的所谓“信道”都是在物理层的,而GFW和翻墙的较量基本上都发生在传输层、网络层、会话层、应用层(参见OSI模型)等等,这些层级是法外之地。

在看下文之前,可以同时回顾——你究竟是如何能够访问一个网站的页面的。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路由劫持/“路由黑洞”

我们依稀记得BGP好像是各个ISP主干网之间路由节点共享信息的协议,BGP劫持就是伪造位于主干道的路由节点的路由表,将其根本没有或者不可能连通的ip地址导入路由表,诱骗邻近节点相信该节点拥有这一ip地址的访问通道。GFW通过人工方式维护一个针对特定IP地址封锁的列表,从而实现特定ip地址的路由欺骗,这样一个节点我们将其称之为“路由黑洞”。因为基于BGP协议,各个节点之间是无条件信任的,所以这个“谎言”一传十、十传百,只要一个主干道路由节点被诱骗,其连接的所有节点都会被骗,成为GFW运作的"帮凶"。而BGP劫持的“可传染性”特征曾经导致全球互联网访问故障。

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

A Chinese ISP Momentarily Hijacks the Internet. PC World. 2010-04-09 [2011-05-19]. (原始内容存档于2011-06-22).
我们依旧可以通过traceroute观察到这一技术的运行效果,我们尝试traceroute一下google.com的真实ip地址,得到如下结果:

可以看见,当数据包跳转给中国电信上海AS4812群组的101.95.120.166路由节点之后,就再也跟踪不到数据包的踪迹了。这是因为在这一节点,存在着一个无效的路由黑洞,其声称自己拥有172.217.24.12这一ip地址的访问可达性,但话音刚落,它就把数据包丢弃在角落了……

与此同时,骨干路由器还有一种ACL Based Forwarding (ABF)的匹配规则,可以在全国骨干路由器同步步数ip端口封锁规则,由于理解不太深入,这里不做专门介绍。

另外,在路由黑洞成为封锁ip的主要途径以前,GFW在早期使用的是访问控制列表(ACL)技术来封锁特定的IP地址,但这种方法有性能不佳的问题。这里不做专门介绍。


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

我们依稀记得TCP建立连接前的三次握手,也一定还记得那天在小区里与美女浪漫的邂逅。将TCP RST重置套用到这个浪漫的故事里,可以直接表现为:当你对着妹子招手时,旁边突然冲出来一陌生男子骗你说,“对不起,这是我的女朋友,请不要打扰她”;而随后,他又挡在你面前伪装成你的样子,冲向那位女子说,“刚刚招手的就是我,你别误会,我根本就不是在跟你打招呼,我只是在打蚊子,拜拜”——这个生动的故事为我们展现了,一个无耻的第三人就这样强行闯入了一个纯洁男子和妙龄女子的浪漫邂逅。

RST阻断也称为TCP旁路阻断,其运行的原理如下:

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

《协议分析之TCP旁路阻断》

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

《G.F.W的原理》

与此同时,DNS解析服务并非全部都使用UDP协议,也有部分使用TCP协议的DNS解析请求,其被封禁也是依靠TCP的RST重置。

通过这一技术的反推,有业内人士定位了GFW存在的大致位置。其原理如下:

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地址地理位置的数据库就可以知道其地理位置。

《G.F.W的原理》

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

我们在上面一段曾了解到,GFW的TCP旁路阻断的前提是“将主交换机的数据镜像到控制系统”。这其实也是目前业内猜测的 GFW系统存在的主要方式——GFW存在于骨干路由器节点,其作为一个设备附着在主干路由器身边,通过“分光”的方式把数据包复制到另外一根光纤上。


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

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

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

写到这里已经有点写累了hhh,不知道有多少人看到了这里。当前流行的一切翻墙协议例如shadowsocks、v2ray的VMess 协议等不具有非常显著的特征,而后者可以伪装成其他类型的流量,例如伪装成微信视频等。但无论如何,对于混淆流量和非传统加密协议,GFW正在使用大家耳熟能详的“人工智能”技术,将这些各种各样难以判断和识别的翻墙流量与正规的政企跨境流量相区分开来。
(6)DDoS攻击
不再展开论述,可参考近年来Github网站遭受的攻击。

3、翻墙的原理

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

  • 各种奇形怪状的加密协议,包括流量伪装,避免被直接拆包作关键词审查

  • 无视GFW发送的RST重置数据包(无视那个第三人,继续暧昧的相遇)

  • 连接境外未被封禁的代理服务器作为中转站,逃过GFW的ip封锁
……


五、结语

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

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

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

而这篇文章,就权当我在学习之余的放松心情、自娱自乐罢。
转载自公众号「不能使用该名称」,作者王宇扬。




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存