由於企業的「翻牆」行為既未使用合法的「國際出入口信道」,也未接入合法的「接入網絡」,甚至未使用境內的「網際網路」,已經違反了《中華人民共和國計算機信息網絡國際聯網管理暫行規定》的規定,公安機關有權責令企業停止國際聯網行為,同時給予警告,並處以15000元以下的罰款。
(在看完第四章的基礎上),你將對「GFW」、「翻牆」等話題有更深入、更正確的認識,同時避免被不懷好意的人的類似觀點(見下文引用部分)欺騙。
因為全球大部分根域名伺服器都設立在美國,所以美國掌握網際網路的底層,而中國必須建立GFW來保障網際網路安全。這也是網際網路+產業安全運轉的重要基礎。
國際出入口信道是物理信道,現行法只規定不允許非法架設物理信道——翻牆必定使用合法物理信道(主要在第四章展開論證)——翻牆不違法1、什麼是郵電部國家公用電信網提供的國際出入口信道?
2、1996年的「國際出入口信道」的概念在20年間是否發生變化
3、當我們討論「翻牆行為」究竟是否違法時,我們首先應該討論什麼
4、翻牆行為是否屬於私自架設物理信道?
1、網際網路訪問基本原理——OSI參考模型
(1)國內網站訪問原理
(2)境外網站訪問原理
2018年12月28日,廣東韶關南雄市公安局對「翻牆」的朱某某作出行政處罰決定,理由為「擅自建立、使用非法定信道進行國際聯網」,處以1000元人民幣罰款,其處罰依據為《中華人民共和國計算機信息網絡國際聯網管理暫行規定》第六條、第十四條。廣東公安執法信息公開平臺行政處罰決定書信息韶雄公(網)行罰決字 [2019]1號
http://www.gdgafz.alldayfilm.com/bookDetail.html?type=1&id=1134323a.樣圖中的文書格式非常極其不規範,正文字體大小懸殊、行距和字距不統一。表面上,該文書似乎是一份標準模板,橫線是提前固定的,但細看便可發現,正文文字下劃線與頁面的邊距不統一,因此這明顯是在正文文字填寫之後才事後加上「下劃線」格式的。且文字沒有統一邊距;
b.在「現查明」的正文部分,「『藍燈』(Lantern Pro)軟體APP」中的「軟體」和「APP」系表意相同的兩個名詞,此處連用存在語病,十分怪異;
c.在內容部分,「且最近一周的登陸次數為487次」並沒有相應的證據材料予以佐證。首先,行政相對人不可能記住自己使用vpn的連接次數,因此該數據不可能從詢問筆錄中反映出來。
其次,手機app本身並不會保存每天的連接次數,也沒有日誌的功能;
此外,即使該數據在手機和app內部以日誌的形式保存,行政機關也不可能靠妄加猜測突然檢查朱某某的手機,而是只可能使用遠程手段(例如公安機關遠程監控系統、電信運營商的舉報或直接向運營商收集用戶訪問境外ip地址相關信息),但這樣的證據並沒有在此份決定書樣圖中反映出來,所以在證據層面是可疑的。
另附一份我在實習期間曾經手的一份行政處罰決定書的模板(關鍵信息已經隱藏)。從圖中可見,基層機關行政處罰決定書的格式和行文要求是非常高的。而前後兩相比較,可以看出前一份處罰決定書頗有些山寨的味道。上述行政處罰案件的處罰依據如下:
《中華人民共和國計算機信息網絡國際聯網管理暫行規定》(國務院令第195號)(1996年1月23日)
第六條 計算機信息網絡直接進行國際聯網,必須使用郵電部國家公用電信網提供的國際出入口信道。任何單位和個人不得自行建立或者使用其他信道進行國際聯網。
第十四條 違反本規定第六條、第八條和第十條的規定的,由公安機關責令停止聯網,給予警告,可以並處15000元以下的罰款;有違法所得的,沒收違法所得。
北大法寶 【法寶引證碼】 CLI.2.13908 (現行有效)關於發布《計算機信息網絡國際聯網出入口信道管理辦法》的通知(郵部〔1996〕492號)第二條 我國境內的計算機信息網絡直接進行國際聯網,必須使用郵電部國家公用電信網提供的國際出入口信道。
任何單位和個人不得自行建立或者使用其它信道(含衛星信道)進行國際聯網。
北大法寶 【法寶引證碼】 CLI.4.14832 (現行有效)1、什麼是郵電部國家公用電信網提供的國際出入口信道?
有很多人一看到「自行建立或使用」、「國際出入口信道」就激動地跳了起來,認為其含義和「使用vpn訪問境外網站」是同一種意思,但實際上這是一個非常大的誤解。首先,從立法淵源上看,「國際出入口信道」一詞最早起源於1996年出臺的《中華人民共和國計算機信息網絡國際聯網管理暫行規定》(下稱暫行規定)和關於發布《計算機信息網絡國際聯網出入口信道管理辦法》的通知(郵部〔1996〕492號)(下稱管理辦法)。但很遺憾,在兩部規範性法律文件內,並沒有對「國際出入口信道」作出釋義。但從後者的第二條第二款我們可以從「(含衛星信道)」這一標註中洞察到「信道」可能的含義——即它很可能具有物理意義。好在,1998年國務院信息化領導小組又出臺了一部相關的部門規章,對「國際出入口信道」的含義作出了明確的規定。
關於印發《中華人民共和國計算機信息網絡國際聯網管理暫行規定實施辦法》的通知工業和信息化部辦公廳關於深入推進網際網路網絡接入服務市場清理規範工作的通知
但隨著清理規範工作深入開展,一些深層次矛盾逐步浮出水面,部分企業違規自建傳輸網絡、非法經營傳輸業務及違規經營跨境數據通信等問題仍較為突出,……(省略)……有關事項通知如下:
四、各基礎電信企業要加強網絡資源和用戶臺帳管理,採取技術、管理、法律等措施,防範網絡資源被用於非法經營。要配合各通信管理局做好違規線索核查,及時關停被用於非法經營、違規使用的網絡資源。
北大法寶 【法寶引證碼】 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是違法的。如果你覺得有,請帶著法條來找我(但請不要攜帶上述我提及的規範性法律文件來找我)。其實到這一段為止,關於個人翻牆的法律問題已經全部講完了,但還沒有形成完整的邏輯鏈。因為上文只解決了大前提的問題,若沒有論證翻牆行為的本質這一小前提,那麼就不能得出翻牆合法或違法的結論。因此在下面一節,我提前總結了技術方面的幾個重要結論(雖然不是法律問題,不應放在這一章),它們的論證部分統一放在本文第四章,其論證過程是相當龐雜和囉嗦的,因此第四章僅供感興趣的朋友們閱讀。而對於大多數人來說,看完下一節的結論性總結(且無條件相信的話),對於個人翻牆問題的討論實際上已經可以就此終結了。在上文,我們明確了現行法對於個人上網的禁止性規定只限於「禁止違規搭建違法物理信道」,那麼翻牆是否就是其字面意思——從一堵牆私拉一根網線翻過去呢?答案是否定的。在看完第四章的網際網路技術討論部分,你會對以下幾個重要事實有基本的認識。
(1)
本院認為,被告人為牟取非法利益,違反國家規定,在網際網路推廣用於侵入計算機信息系統的程序、工具,情節特別嚴重,其行為已構成提供侵入、非法控制計算機信息系統的程序、工具罪。公訴機關指控的罪名成立。經查,本案的「XXX」軟體,利用公用網絡架設專用網絡,並進行數據加密傳輸,使計算機信息系統自由訪問中國境內無法訪問的境外網站,因此,該軟體屬於「用於侵入計算機信息系統的程序、工具」。被告人在未經電信主管部門批准的情況下,提供的「XXX」軟體使客戶的計算機自由訪問境外網站,數據傳輸受到加密保護,突破我國技術安全防護措施,危害了國家信息網絡安全,符合提供侵入、非法控制計算機信息系統的程序、工具罪的客體。
自從我學習了這個罪名以來,就對此抱有極大的質疑。翻牆工具怎麼可以等同於「用於侵入計算機信息系統的程序、工具」?一個最簡單的反駁實例就是,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是怎麼樣阻止你訪問網頁,而翻牆又是如何讓你穿越重重阻礙成功訪問境外伺服器的頁面的。我們之中一定有很多人還依稀記得高中、大學計算機課曾提及「網際網路分成好幾個層次」。最淺顯易懂的當然是物理層,因為日常生活中,光纖、網線、電話線之類的東西是隨處可見、看得見摸得著的。那麼,關於GFW和翻牆的一切話題,都在上述模型中的哪一層呢?你以為他們在第一層(物理層),實際上他們分布在第三層(網絡層)、第四層(傳輸層)和第七層(應用層)。通過dns解析之後,拿到了ip,就可以通過ip向伺服器發送http請求了,因為http是工作在第七層應用層,tcp是工作在第四層傳輸層,所以發生http請求之前,還會進行tcp的三次握手。
tcp的三次握手是:客戶端首先向伺服器發送一個帶有SYN標識和一個seq的隨機數,服務端收到後,需要給客戶端回應一個ack,ack的值就是剛才的seq隨機數的值+1,在回應包裡,還包含一個SYN的標識和一個seq隨機數。客戶端收到服務端發過來的回應包之後,再給服務端發送一個ack,ack的值就是剛才服務端發過來的seq的值+1。上面三步完成之後,三次握手就完成了,下面就可以開始傳數據了。
《用戶訪問網站原理及流程》 連結:https://blog.csdn.net/heart_mine/article/details/79539224為什麼建立連接要這麼複雜呢?一切為了安全和可靠。DNS服務所運用的UDP協議和http請求的tcp協議最大的區別在於,UDP就像一個在國際貨物運輸過程中前赴後繼、不顧一切的承運人,它努力以最快的速度把「貨物」交付到你手上,但態度極差,從來不主動跟你聯繫,也不會接你的電話,貨物是否損毀或者送錯了人都不在它的義務範圍內;而TCP就像一個嚴謹、可靠、負責、慢條斯理的承運人,它在為你進行貨物運輸時會不斷和你建立聯繫,在送貨前不停打電話跟你反覆確認,而且要打三次,生怕送錯了人,送完貨物也會不緊不慢地和你再三確認,要跟你打四通電話。
網上一個更形象的例子是——
TCP 三次握手好比在一個夜高風黑的夜晚,你一個人在小區裡散步,不遠處看見一位漂亮妹子迎面而來,但因為路燈有點暗等原因不能100%確認,所以要通過招手的方式來確定對方是否認識自己。你首先向妹子招手(syn),妹子看到你向自己招手後,向你點了點頭擠出了一個微笑(ack)。你看到妹子微笑後確認了妹子成功辨認出了自己。但妹子有點不好意思,向四周看了一看,有沒有可能你是在看別人呢?她也要確認一下。妹子也向你招了招手(syn),你看到妹子向自己招手後知道對方是在尋求自己的確認,於是也點了點頭擠出了微笑(ack),妹子看到你的微笑後確認了你就是在向自己打招呼。於是兩人加快步伐,走到一起,彼此之間相互擁抱。CSDN 連結:https://blog.csdn.net/weixin_42221136/article/details/90765716 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)之間的可達性,屬於矢量路由協議,其使用基於路徑、網絡策略或規則集來決定路由。
維基百科 https://zh.wikipedia.org/wiki/%E8%BE%B9%E7%95%8C%E7%BD%91%E5%85%B3%E5%8D%8F%E8%AE%AEBGP協議使得各大骨幹網的路由節點可以以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自治系統。→http協議是明文協議
→https協議更加安全,其在tcp握手的基礎之上增加了以下步驟:
驗證伺服器數字證書、在SSL安全加密隧道協商加密算法的密鑰等。
(2)境外網站訪問原理
在了解了國內數據包交換原理之後,全球的數據交換就很好理解了——你可以簡單地把它理解為國家級骨幹網之間的連接和交換。而從國內訪問境外伺服器有一個特殊之處就在於,我國的國際出入口運營資質是被中國電信、中國聯通、中國移動三家國家級ISP壟斷的。跨國企業使用跨境服務合規方式。跨國企業因協同辦公、數據交互等自用需求,可以採用以下方式實現跨境聯網:跨國企業從境內發起直接租用3家基礎電信企業的國際專線(包括虛擬專網),與企業辦公自用網絡和設備連接;跨國企業從境外直接發起或委託境外運營商,向3家基礎電信企業租用國際專線(包括虛擬專網),與企業辦公自用網絡和設備連接。跨國企業租用國際專線自建自用辦公網絡時,可委託有資質的第三方(含持國內IP-VPN、固定網國內數據傳送等業務許可的企業)提供系統集成、代維代管等外包服務,但第三方企業不得從事國際專線(包括虛擬專網)的線路資源租售等電信業務經營活動。
2018年1月10日在北京召開了《跨境數據通信業務政策宣貫會暨產業聯盟籌備大會》,國內數十家IP-VPN等相關業務經營企業參加了此次大會。而國內數據跨境的物理傳輸介質一般為陸上光纜和海底光纜。通過上海直達美國的CN2骨幹網海底光纜,亦或是從廣州到香港的163骨幹網線路的連接,國內和國外的數據完全可以自由地進行交換,而伺服器的連接、數據包的交換、路由的選擇,其本質上和訪問國內伺服器並沒有什麼區別,其協議的使用也是全球通用的。因此,我很遺憾地看到,即使是律所發表的相關文章《天衡解析 | 「翻牆」上網的正確姿勢》,也犯了非常嚴重的計算機常識性錯誤,導致該篇文章論證的前提就是不正確的。這篇文章指出:
由於企業的「翻牆」行為既未使用合法的「國際出入口信道」,也未接入合法的「接入網絡」,甚至未使用境內的「網際網路」,已經違反了《中華人民共和國計算機信息網絡國際聯網管理暫行規定》的規定,公安機關有權責令企業停止國際聯網行為,同時給予警告,並處以15000元以下的罰款。
(連結:http://www.tenetlaw.com/index.php?m=content&c=index&a=show&catid=8&id=989)然而, 當我們對網際網路運行的機制和原理有了初步的了解後就能輕鬆發現這句標紅的話的嚴重錯誤——我在上文所介紹的一切專業術語的實際運作,不管是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。
維基百科 連結:https://zh.wikipedia.org/wiki/%E9%98%B2%E7%81%AB%E9%95%BF%E5%9F%8E#TCP%E8%BF%9E%E6%8E%A5%E9%87%8D%E7%BD%AEDNS汙染殃及全球用戶的基本原理很簡單,就是諸多國外用戶的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地址,得到如下結果:
(3)TCP RST重置(包括對基於TCP協議的DNS域名解析的重置)
我們依稀記得TCP建立連接前的三次握手,也一定還記得那天在小區裡與美女浪漫的邂逅。將TCP RST重置套用到這個浪漫的故事裡,可以直接表現為:當你對著妹子招手時,旁邊突然衝出來一陌生男子騙你說,「對不起,這是我的女朋友,請不要打擾她」;而隨後,他又擋在你面前偽裝成你的樣子,衝向那位女子說,「剛剛招手的就是我,你別誤會,我根本就不是在跟你打招呼,我只是在打蚊子,拜拜」——這個生動的故事為我們展現了,一個無恥的第三人就這樣強行闖入了一個純潔男子和妙齡女子的浪漫邂逅。RST阻斷也稱為TCP旁路阻斷,其運行的原理如下:通常需要進行阻斷的情況是審計控制系統旁路監聽內網。旁路監聽的方式一般是將主交換機的數據鏡像到控制系統,控制系統可以採用libpcap捕獲數據包。在這種情況下要阻斷tcp連接的建立只要在監聽到第一次握手的時候,控制系統偽造伺服器發起第二次握手回應,就能阻斷客戶端與伺服器連接的建立。因為我們的系統在內網,發出的報文肯定比伺服器快,這樣客戶端接收到我們偽造的報文以後會回應第三次握手,當伺服器真正的報文到達的時候客戶端將不再處理,此時客戶端再向伺服器請求數據,因為seq號和ack號出錯,伺服器不會受理客戶端的請求。
、版權聲明:本文為CSDN博主「pluton」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本聲明。 原文連結:https://blog.csdn.net/pluton/java/article/details/5816227TCP協議規定,只要看到RST包,連接立馬被中斷。從瀏覽器裡來看就是連接已經被重置。大部分的RST是條件觸發的,比如URL中包含某些關鍵字。目前享受這種待遇的網站就多得去了,著名的有facebook。還有一些網站,會被無條件RST。也就是針對特定的IP和埠,無論包的內容就會觸發RST。比較著名的例子是https的wikipedia。GFW在TCP層的應對是利用了IPv4協議的弱點,也就是只要你在網絡上,就假裝成任何人發包。所以GFW可以很輕易地讓你相信RST確實是Google發的,而讓Google相信RST是你發的。
《G.F.W的原理》 http://www.oneyearago.me/2019/06/14/learn_gwf/與此同時,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的原理》 http://www.oneyearago.me/2019/06/14/learn_gwf/
(4)協議檢測→根據流量協議拆包→關鍵詞匹配→封鎖
我們在上面一段曾了解到,GFW的TCP旁路阻斷的前提是「將主交換機的數據鏡像到控制系統」。這其實也是目前業內猜測的 GFW系統存在的主要方式——GFW存在於骨幹路由器節點,其作為一個設備附著在主幹路由器身邊,通過「分光」的方式把數據包複製到另外一根光纖上。
基於此,GFW作為一個獨立設備就可以作為旁觀者分析經過其附著的主幹路由器的所有數據包。
HTTP協議有非常明顯的特徵,可以輕易被GFW系統檢測和識別,GFW進而依據HTTP協議規則對數據包進行拆解,由於其表現為明文,所以可以直接進行關鍵詞匹配。例如,從HTTP的GET請求中取得請求的URL。然後GFW拿到這個請求的URL去與關鍵字做匹配,比如查找Twitter是否在請求的URL中。而關鍵字匹配使用的依舊是一些高效的正則表達式算。
(5)深度包檢測(機器學習識別翻牆流量→直接阻斷)
寫到這裡已經有點寫累了hhh,不知道有多少人看到了這裡。當前流行的一切翻牆協議例如shadowsocks、v2ray的VMess 協議等不具有非常顯著的特徵,而後者可以偽裝成其他類型的流量,例如偽裝成微信視頻等。但無論如何,對於混淆流量和非傳統加密協議,GFW正在使用大家耳熟能詳的「人工智慧」技術,將這些各種各樣難以判斷和識別的翻牆流量與正規的政企跨境流量相區分開來。不再展開論述,可參考近年來Github網站遭受的攻擊。
3、翻牆的原理
這一部分我不再展開論述,因為是有法律風險的。有一定網絡基礎知識的人,在看完上述GFW原理之後,應當能夠頭腦風暴一下,想出很多合理的逃避審查的思路,也能理解為什麼我在上文提及「翻牆不等於侵入計算機系統」了。主要的翻牆原理有以下幾種。
(1)早期對DNS汙染的應對——給hosts文件添加一個離線庫就行了(2)各種奇形怪狀的加密協議,包括流量偽裝,避免被直接拆包作關鍵詞審查(3)無視GFW發送的RST重置數據包(無視那個第三人,繼續曖昧的相遇)(4)連接境外未被封禁的代理伺服器作為中轉站,逃過GFW的ip封鎖……
在文章結尾,我依舊要強調,本文不涉及有關「翻牆」的任何技術指導或方法的具體介紹,同時必須強調——千萬不要翻牆訪問、發布、傳播違法有害信息。
我們很多人都記得2012年以前的那個時代,想要用谷歌搜索資料,只需要修改DNS伺服器為8.8.8.8即可,再不濟,改個hosts文件就行了。現在,越來越多的方法被封鎖了,在這個節骨眼上,居然還有很多人盲目樂觀,甚至以他人不懂翻牆而沾沾自喜,這樣的現象伴隨著民族主義思潮愈演愈烈。
但是我相信,認真學習自己的專業知識,同時廣泛地接受和學習其他領域的專業知識,就能輕鬆避免被網上大肆輸出情緒的人鼓動和欺瞞,保持冷靜地思考——你真的可以對現狀有一個清晰的認識和判斷,並在不久的將來參與到各行各業的運行過程中,為社會做出貢獻。
而這篇文章,就權當我在學習之餘的放鬆心情、自娛自樂罷。
那麼現在,你能否就程式設計師群體提出的以下選擇題給出正確解答了呢?