中國網路『長城』探究與實作(待更新)
中國網路”長城”,作為中國政府實施的網絡監控和篩選系統,一直以來引起了廣泛的關注。這道看似無形的牆壁,背後隱藏著複雜的技術和政治考量。本報告將簡單解釋網路訪問運作原理,並深入探討中國網路”長城”的背後動機、實際運作方式,最後在實際架設簡單的長城並自行翻越。通過這次報告,我將不僅深入了解中國網路治理的現狀,也瞭解基本網路運作原理及網路安全的重要性。
探究部分
若對網路訪問運作有基本了解,可直接到長城簡介開始查看。
網路訪問運作原理簡介
比如我們現在訪問 google.com,簡單來說就是本地電腦給google的伺服器發請求訪問的數據包,當接受到來自你的電腦的數據包後,google伺服器會將的數據包給送回來,一來一往,就形成上網的流程。
以下為網路訪問運作原理簡介:
用戶發送請求
當你在瀏覽器中輸入網址或點擊連結時,你的電腦發送一個請求到指定的伺服器,去請求需要的資源,比如網頁、圖片、影片等。
graph LR
本地電腦 --我要訪問---> 伺服器
伺服器 ------> 本地電腦
IP地址
世界上有屬不清的伺服器,要如何找到它們呢?這時候就需要IP地址,通俗點講就是門牌號。有了門牌號這樣就可以讓你發送的請求成功送到指定伺服器。
DNS服務器
IP通常都是由一串數字(如:142.251.42.238)組成,這顯然不太符合人類的記憶,所以這時候DNS服務器就登場了,DNS服務器通俗講就是一個大型的查號台,可以幫我們把複雜的數字變成人類好記的文字(如:google.com)
DNS解析
如果輸入的內容為網址如:www.gooogle.com,瀏覽器需要將這串域名解析換為IP地址(如:142.251.42.238)已找到相應的伺服器。
建立TCP連結
一旦確定目標伺服器的IP位置,瀏覽器就會與對方伺服器建立TCP(Transmission Control Protocol)連接
:::info
:bulb: 註:TCP是一種可靠的連接協議,確保數據的可靠傳輸
:::
發送HTTP請求
通過已經建立的TCP連接,瀏覽器向伺服器發送HTTP請求,請求需要的資源。
伺服器處理請求並返回數據
伺服器接收到請求後,根據請求的內容進行處理,並返回相應的數據,通常是HTML、圖片、CSS等網頁內容,並顯示在請求者的瀏覽器上。
斷開TCP連結
當請求者與伺服器完成請求後,瀏覽器跟電腦之前的TCP連接被關閉,結束通信。
TLS的簡介
最早的上網過埕中,所有的東西都是透明的,包含了帳號密碼等,路由、DNS服務器都可以查看到所有內容,這會衍伸資安問題,這時候就需要『TLS傳輸層安全協議』(Transport Layer Security),TLS傳輸層會將所有數據進行加密,只會看到目標IP地址,判斷是否開啟了TLS加密,當你訪問的網站開頭為https時,對方主機有開啟加密,若開頭為http就沒有,傳輸的內容全部都是明文傳輸,非常不安全。
:arrow_up: 開頭為https就是有使用TSL進行加密
SNI的簡介
上面有提到IP是網路世界中的門牌號,那麼SNI就可以理解成網路世界房間號,在互聯網通信中,IP地址就像是一個地址的門牌號,但當伺服器使用共享的IP地址時,SNI允許伺服器擁有多個域名,這就像是一個地址上可以有多間房間。當發送的數據包到達時,SNI能夠指定將數據包送進特定的房間,這樣伺服器就能正確識別和處理不同的域名,實現在共享IP地址的伺服器上同時提供多個網站的功能。
網路訪問流程圖
graph TD;
請求端-->路由器-->是否需要DNS解析-->要-->DNS解析-->請求端
是否需要DNS解析-->不要-->對方伺服器
若需要解析DNS(google.com)會先走左邊,解析完DNS後(142.251.42.238)並回傳至請求端,再走右邊至對方的伺服器
路徑圖如下:
請求端(google.com)->路由器->需要DNS解析->
DNS解析->請求端->不需要DNS解析->對方的伺服器
(google.com->142.251.42.238)
長城簡介
什麼是中國防火長城(GFW)???
中國網信辦稱其為數據跨境安全網關,是中華人民共和國政府過濾國際網際網路出口內容的軟硬體系統集合,中國防火長城指的是網站內容被防火長城所封鎖或者指伺服器的通訊被封阻,「防火長城」英文「Great Firewall of china」一詞最早是由白傑明和桑曄提出,也可以稱為「牆」、「網路長城」、「防火牆」、「中國國家防火牆」等等…
歷史
中國於1994年引入網際網路功能,白傑明和桑曄於1997年發表的文章《The Great Firewall of China》稱這一系統開發開始在1996年,在當年在金橋資訊網和ChinaNet已經有國外新聞網站被封鎖。
長城主要技術應用
一開始防火長城僅使用IP封鎖,這無法應對網站時常更換IP的情況。自2002年開始,開始自動執行針對特定域名的DNS劫持,並能夠檢測HTTP連接中的特定關鍵字,使用TCP重設攻擊的方法阻止連接。2010年後,HTTPS(加密的HTTP)開始被廣泛使用,而防火長城在很長一段時間內都沒有處理加密連接。直到2018年8月,對加密連接中「伺服器名稱指示」(SNI)資訊的檢測才出現。
DNS汙染
既剛剛解說的DNS解析,長城也有在DNS部分動手腳,由於DNS所有數據都是明文顯示,一旦長城偵測到不被允許的域名,長城會趕在外國域名服務器解析出正確的域名前先給你解析出錯誤的域名,讓你無法正確瀏覽請求的網站,但是這種方法無法攔截已經知道確切IP(如:142.251.42.238)的用戶,所以常長城會使用IP地址及端口封鎖的方法來攔截知道確切IP的用戶。
IP地址及端口封鎖
長城會通過實時監測網絡數據流量,識別和封鎖被認為是敏感的IP地址。這種手段不僅用於封鎖特定網站,甚至可以影響使用者訪問特定服務的能力。還使用端口封鎖技術,通過封鎖特定的網絡通信端口(如:22端口、443端口…等),限制了特定應用程序或服務的訪問。