2013年6月14日 星期五

金盾防火牆概述

對於在中國地區的人們來說,要能夠自由的上網是非常麻煩的事情。許多人在連到國外網站時,常常會看到連線已重設或是作業逾時的錯誤訊息(圖1、圖2)。本文以中國金盾工程(註1)中的的防火牆(註2)為例,說明中國地區的翻牆(或稱科學上網)方式,以及防火牆存在的意義。



圖1、作業逾時錯誤訊息



圖2、連線已重設錯誤訊息



原理



要了解翻牆,先要了解網路運作的方式,以及封鎖的原理。網路運作是這樣的。事實上,當你在瀏覽器中輸入一個網址以後,瀏覽器就會先拿這個網址去DNS伺服器查詢,找出IP。之後在連往IP,取得網頁內容。而傳輸的過程,就是以封包的方式傳遞資料。如果容量大,就會切割成很多封包來傳遞。


我知道很多人對這邊的描述不太有概念,所以在這邊解釋一下。瀏覽器瀏覽網站,其實就像去一個朋友家裡搬東西回來放到面前給你看一樣。要去朋友家,那麼就要先知道朋友家的地址。通常我們很難記住那麼長一串地址,怎麼辦呢?DNS就像問路的人一樣。如果你不知道地址,那麼就問DNS,他會告訴你正確的地址在哪裡。如果DNS也不知道,他就會去找他的長官一層一層的問,直到問到位址為止。


根據上面的連線原理,金盾防火牆使用了三種不同的封鎖方式。金盾防火牆就像警察一樣,站在國內、國外網路的交接口。如果這個警察發現你要前往被封鎖的地址,他會把你攔下來不給你過。或者是當你在問路的時候,故意報給你一個錯誤的網址。就算你好不容易找到資料搬回來,警察也會打開每個貨物檢查。如果在檢查貨物的時候發現是違禁品,就會沒收貨物。


這就是三種封鎖方式。第一種就是封鎖特定IP,第二種是DNS汙染,第三種是封包竄改或丟棄(又稱為丟包)。在錯誤訊息上,前兩者瀏覽器會回應作業逾時(圖1),第三種會回應連線被重設(圖2)。


不過除了技術上的這三種,還有第四種:備案。在中國,每個網站在成立的時候都要向公安備案,負責人要拍照存證,而且內容也會隨時被審核。如果網站出了問題,放上了不該出現的內容,公安會聯絡網站把東西撤下來。如果情節嚴重,還會直接逮捕網站負責人。在中國,政府也能管DNS的查詢內容,因此如果瀏覽器問中國國內的DNS怎麼找到Facebook,他會故意給你錯誤的IP地址讓你連不到(第二種)。


中國政府在每個國外和國內的網路交界處都設立了檢查站,國內的網路裡也有隨機抽查的檢查站。這些檢查站會檢查每一個通過的封包。如果發現IP地址已經列入禁止訪問的名單,這些檢查站會直接丟棄封包,讓你看不到網站(第一種)。如果你連上的網站有敏感詞(回應的封包裡有敏感詞),那麼檢查站也會把這個回傳的封包丟掉,並且阻止你前往那個網站三分鐘(第三種)。三分鐘之後,又可以正常連線了。


剛剛不是提到問路嗎?有的人會說,既然國內的DNS不能問,那我去問國外的好了。但中國的檢查站一旦發現了你問的網址是不允許問的,會故意把你問路的封包攔下來,換另外一個偽裝的封包來給你錯誤答案。這個被稱作DNS汙染(圖3)。


結果就是在中國,許多網站都難以訪問。就算國外網站可以連,也會因為這些層層檢查而連線緩慢。



圖3:金盾防火牆的封鎖方式


突破方式



突破方式其實不難。前面不是有個檢查站嗎?只要外頭有個朋友可以幫你,其實很多東西就方便許多。首先,檢查站只防止前往特定網站,你可以先連去別的網站,再從那個網站轉往原本要去的網站。再來,為了避免檢查站發現你的內容不合法,因此要先把這些內容偽裝起來,讓檢查員不知道那到底是什麼。這就是加密。這條路只要建立起來,就可以透過這條路直接詢問國外的DNS,也能透過這條路去訪問國外的網站了。別人也可以透過先連到你的電腦來突破封鎖了(圖4)。


從原理來看,我們就能了解目前的翻牆方式了。首先,你需要建立一條加密的連線,連到外面可以訪問的一個中繼站,再來從中繼站前往其他的網站。這些連線方式很多,基本的是VPN,還有ssh加密、goagent等幾乎也都是這種方式。


不過,有些加密連線的方式已經被中國政府破解了。像是L2TP、openVPN都已經不能用了。目前為止VPN的通訊協議裡只有PPTP使用正常。其他還算正常的有ssh連線的方式。不過這些連線和協議的使用狀況依據不同的運營商、不同的連線方式還是有不一樣的限制。比如說,雖然ssh協議的連線還算正常,但如果發現傳輸速度過快,還是可能會把封包丟棄,或是強制降低連線速度。而防火牆也會對部份網站進行間歇性封鎖,或是在特殊時期封鎖特定網站。這些無法預測、煩不勝煩的阻擾方式才是防火牆令人討厭的原因。


這邊所提到的翻牆方式目前是可以運作的。中國現在的防火牆是只讓你不能去訪問有問題的網站,其他網站預設都是可以訪問的。這被稱做黑名單模式。如果變成只能訪問沒有問題的網站,也就是白名單模式,這條路就沒有辦法運作了。因為那些網站肯定是不會幫助你瀏覽其他網站的。這就是北韓所做的網路封鎖。


關於更詳細的原理,請參考後面所附上的《翻墙路由器的原理与实现》(註3)一文。



圖4、翻牆破解方式


為什麼要進行網路封鎖?



大體而言,中國的網路封鎖並不是真正讓你沒有辦法看到外面的網站,而是提高獲得外部訊息的成本。在這個網路時代,取得訊息是快速、方便又低成本的事情。一旦取得資訊需要花上大量的精力,就會降低許多人想要獲得這些資訊的慾望。


而中國的金盾防火牆就是針對這一點。防火牆的存在不是為了「阻斷所有資訊」,而是為了「提高資訊取得的成本」。只要提高成本,減少願意取得「有害資訊」者的數量,他就已經成功了。金盾防火牆可以有效的阻止那些沒有好奇心的人知道不該知道的東西,這些人才是防火牆真正的標的。人們會花時間去尋找遊戲和影片,卻很少有人願意花心思、功夫去看一篇可能會改變自己想法的文章。因此雖然突破的方法只要有心就找的到,但對於沒有好奇心的人來說,金盾就足以阻止他們的行動了。


防火牆分割了中國和外國的網路,也導致中國的網路文化和世界上其他國家的網路文化格格不入。許多有行動能力進行翻牆的人在第一次接觸到外來的網路文化時,常常會因為文化衝突的緣故而不喜歡、甚至對外來思想產生反感。網路論壇上常見的中國憤青就是由此而來。能夠放下身段、包容不同文化甚至接受不一樣思想的人又更少了。


舉個例子來說,中國的魔獸世界由於遲遲無法更新,因此大批中國玩家蜂擁至台灣的魔獸世界伺服器遊玩。但他們來到台灣伺服器以後,往往就直接帶來當地的遊戲文化,甚至用語、說法完全不改,不懂的入境隨俗,造成許多台灣玩家的不滿。有的台灣玩家和中國玩家甚至在遊戲的公共頻道上互罵。在這種對中國玩家不友善的環境中,能夠包容、接受不一樣文化的中國玩家就更少了(註4)。


在行動力、技術能力、文化衝突的多重過濾下,導致能取得「有害資訊」的人數成等比級數的降低。再加上國內網站的關鍵字屏蔽、過濾,中國政府就能有效的控制那些異議者的數量。剩下來的異議者,只要單純打為「反革命份子」、「異類」、「精神病」,就能控制他們思想的傳遞。金盾就像資訊的海關,可以用來保護「政府希望人民所相信的思想」。


中國的網路上又時常出現審查、刪帖的訊息(圖5)。這些網路警察的行為會先在人們心理中塑造出恐懼。你根本不知道自己的言論何時會受到審查,因此大多數人就會假定「自己的言論會被審查」。這會導致所謂的「自我審查」。自我審查的效果,比起網路審查的效果還來的巨大。有些台灣的新聞網站為了避免被防火牆給封鎖,損失來自中國的流量,因此自我審查,過濾對中國不利的新聞,就是最好的例子。



圖5、新浪微博的審查訊息(圖片來源:微博 @平湖春晓)


恐懼把審查這件事情放大了許多倍。只要大家認為審查是存在的,審查的效果就出現了。這,也就是金盾防火牆的存在意義。(註5)



0 意見: