穿越G一F一W的技術和軟件下載

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

【陳懷臨注:原文來自大清國清華大學計算機系網絡安全課程的作業–穿越GFW技術及其控制方法。主講老師是段海新教授。他整的這個course.ccert.edu.cn有點像MIT的Open Course。有點意思。另外,大家請注意,彎曲評論不反對轉載文章,但務必請注明出處。從而編輯們可以做一些調研以決定發表于否。在提交文章的時候,請自己先Preview;否則我們花費大量的時間幫您調整格式,您自己也過意不去。。。】

一、引言

WWW空前廣泛的應用,正在影響和改變人們的生活方式。但在WWW龐大的網絡信息空間中,夾雜著大量的有害信息,主要包括:垃圾信息、虛假信息、政治滲透信息、種族歧視信息和惡意代碼等,這些信息的泛濫對Internet造成了嚴重的信息污染。 對網絡空間的監控能有效地阻止有害信息的傳播,控制計算機犯罪。放置在可信任網絡和不可信任網絡之間的防火墻,是運用非常廣泛和效果最好的選擇[1]。 Internet可以分為國內網絡與國外網絡兩部分。由于各國的安全策略各不相同,因此不同的國家對有害信息的認定有不同的標準。對于我國來說,不良信息主要集中在國外網絡。防止信息污染不僅要保證國內網絡空同的潔凈,同時要防止國外網絡不良信息的侵蝕。目前我國的國際互聯網出口的核心節點設在北京、上海和廣州,國內的計算機信息網絡進行國際聯網,必須使用國家公用電信網提供的國際出入口信道。為了有效的控制信息流動,在出口處安裝了防火墻[2]。 防火長城,也稱中國防火墻或中國國家防火墻,這是對“國家公共網絡監控系統”的俗稱,是指中華人民共和國政府在其管轄互聯網內部建立的多套網絡審查系統的總稱,包括相關行政審查系統。其英文名稱Great Firewall of China,縮寫為GFW[3],國內簡稱“防火長城”,國外也叫“功夫網”。

二、GFW及其主要技術

1、概述

GFW主要指公共網絡監控系統,尤其是指對境外涉及敏感內容的網站、IP地址、關鍵詞、網址等的過濾。GFW的效果通常為,國內網絡用戶無法訪問某些國外網站或者網頁;或者國外網絡用戶無法訪問國內的某些網站或者網頁。這里的無法訪問,有永久性的無法訪問(比如某些色情網站),也有因為URL中含有敏感關鍵詞或者網頁上有敏感內容而暫時性的無法訪問。國家防火墻并非中國的專利。其他國家也有類似的防火墻,對危害其國家安全的信息進行偵聽,而中國的國家防火墻會直接切斷敏感連接。伊朗、巴基斯坦、烏茲別克斯坦、北非共和國、敘利亞、緬甸、馬爾代夫、古巴、北韓、南韓、沙特阿拉伯、阿拉伯聯合酋長國、也門使用與GFW類似的國家防火墻。以下是猜想的GFW工作原理圖[5]。 

 

2、GFW所采用的關鍵技術

(1)、國家入口網關的IP封鎖從90年代初期開始,中國大陸只有教育網、高能所和公用數據網3個國家級網關出口,我國政府對認為違反國家法律法規的站點進行IP封鎖,這是有效的封鎖技術。對于IP封鎖,用普通Proxy技術就可以繞過。只要找到一個普通的海外Proxy,然后通過Proxy就可以瀏覽自己平時看不到的信息了。所以,網絡安全部門現在通常會將特別反動的網站的網址加入關鍵字過濾系統,以防止網民透過普通海外HTTP代理服務器訪問。 一般情況下,GFW對于海外非法網站會采取獨立IP封鎖技術。然而,部分非法網站使用的是由虛擬主機服務提供商提供的多域名、單(同)IP的主機托管服務,這就會造成了封禁某個IP,就會造成所有使用該服務提供商服務的其他使用相同IP的網站用戶一同遭殃,就算是內容健康、正當的網站,也不能幸免。例如如森美的個人網站,內容并無不當之處,但網站使用的是虛擬主機托管服務,而因為有一個香港BBS亦使用該托管服務,這就造成了GFW為了封鎖該BBS,直接把這個固定IP:203.80.210.5封禁了。隨之,有82個香港網站由于GFW封鎖了這個IP地址,不論合法與否,都不能在中國大陸訪問。

(2)、主干路由器關鍵詞過濾攔截主干路由器關鍵字過濾攔截在2002年左右開始,中國公安部門研發了一套系統,并規定各個因特網服務提供商必須使用。思科等公司的高級路由設備幫助中國大陸實現了關鍵字過濾,最主要的就是IDS(Intrusion Detection System)— 入侵檢測系統。它能夠從計算機網絡系統中的關鍵節點(如國家級網關)收集分析信息,過濾、嗅探出指定的關鍵字,并進行智能識別,檢查網絡中是否有違反安全策略的行為。 IDS主要進行IP數據包內容的過濾,如果符合既定的規則,則向該連接兩端的計算機發送IP RST包,這可以從前后IP報頭TTL值相差較大的特點可推測出來,用這種方法干擾兩個通信終端間的正常TCP邊接,使數據流中斷,而在終端主機上會顯示連接失敗。這種關鍵字過濾-重置技術只對TCP連接有效。而廣泛應用的HTTP協議正是使用TCP作為傳輸層協議,從目前來看,GFW對HTTP報文的過濾僅限于HTTP頭,通常URL請求就位于HTTP的頭部分,而GFW對HTTP數據部分很可能不作過濾,這正是某些用PHP編寫的HTTP在線代理能避開關鍵詞過濾的原因,例如PHProxy,它將明文的URL請求放在HTTP數據部分,而不是放在HTTP的頭部。對UDP(DNS通常使用UDP,GFW對捕獲的DNS查詢報文也進行關鍵詞過濾并返回偽DNS響應,但因UDP沒有復位標志而無法進行傳輸層的干擾)及其他第四層協議無效,對明文數據有效,對加密數據無效。不同的IDS有可能在一段預定或隨機的時間內持續干擾剛剛被中斷的兩計算機間的所有TCP通信。所以在訪問境外網站時,如果數據流里有敏感字詞,即會立即被提示“該頁無法顯示”或網頁開啟一些后突然停止,隨后在1-3分鐘或更長時間內無法用同一IP瀏覽此域名或IP地址上的內容,屏蔽時間可能與敏感詞等級以及所屬網站有關。此種過濾是雙向的,也就是說,國內含有關鍵詞的網站在國外不可訪問,國外含有關鍵詞的網站在國內不可訪問。以上所述的技術,也稱為域名劫持,原理如下圖所示。

某些特定的海外網站網址會被列入關鍵詞過濾,即使IP地址未被封鎖,也不能訪問。 不過,GFW對于網頁中含有的關鍵詞字符并不是100%可以過濾成功,即使某些網頁被成功過濾并導致“該頁無法顯示”,此時只要在瀏覽器進行多次刷新就有機會顯示出來。而且,GFW還會偶爾出現故障而導致關鍵詞過濾系統失效,此時部分只被網址關鍵詞過濾的網站就能正常使用。 對于Google.com的查詢返回結果可能是專門過濾的,即GFW針對Google.com返回結果中的網頁地址進行過濾,對關鍵詞的過濾并不嚴格。 從GFW的分布來看,審查過濾系統主要位于國際出口處,但最近通過對審查過濾系統返回的RST復位包IP頭進行TTL值分析,發現存在兩個欺騙源,其一位于國際出口處,另一個位于骨干網省級接入處。因此推測GFW對于境內的非法內容也具有一定審查能力。對于境內網絡內容的審查可能主要是通過ICP備案來實現的。 從2007年2月前后,GFW開始對境外及境內的WAP網站含有的敏感字符進行過濾,原本在移動版Google可以打開的維基百科中文版現已不能通過Google網頁轉換功能進行訪問,連帶的就是在訪問含有“zh.wikipedia.org”的Google連結后,5分鐘內再次訪問Google被攔截。 關鍵字過濾的弱點就是對已加密的信息無能為力,而網址的關鍵字和網頁的關鍵字都可以用不同的手段來加密,從而使這樣的信息過濾系統從根本上失去作用。不同的加密手段也是后來所有突破網絡封鎖軟件的基礎。

(3)、關鍵詞過濾-復位包分析有些網站含有大量的有用信息,同時也夾雜著大量的有害信息,如Google搜索引擎,如果使用域名重定向、lP地址過濾或者URL過濾都會禁止用戶訪問合法的信息。在這種情況下,可以使用基于內容的過濾,即只屏蔽掉含有有害信息的頁面。 通常使用網址的關鍵字和網頁的關鍵字過濾的方法屏蔽有害頁面。防火墻建有一個敏感詞詞庫,一旦網址或Web頁面中的內容含有這個詞庫中的詞時,防火墻將截獲該網頁,阻止對該頁面的訪問。 這種過濾是一種細粒度的過濾,實際上是對報文數據內容的過濾。在應用層可以實現對URL的過濾以及報文內容的過濾。應用層有害內容過濾不可避免地降低了互聯網的通行效率,并且一般其有較大的誤報率,但總的來說監控效果較好。 當前基于內容的過濾主要針對文本內容,對圖像、音頻、視頻等多媒體內容的過濾仍未達到實用階段。 由文[7]的試驗,可得GFW具體的過濾方式:采用嗅探軟件記錄HTTP客戶端進出站數據包,且只考慮TCP連接。從進站RST復位包IP頭TTL域值的分析,可認為邏輯上存在兩個欺騙源(實際可能只是初始TTL不同),可分別稱為“偽源1”和“偽源2”,偽源1離客戶端路由跳計數較大,邏輯位置大致在因特網運營商國際出口處,偽源2離客戶端路由跳計數較小,邏輯位置大致在因特網運營商骨干網省級節點處。  1)IP頭部分: Identification(標識)字段:在第一批RST包中,偽源1和偽源2將其設置為一個固定的值,而正常的處理方式是發送的每個IP報文都有不同的標識值,一般按生成次序遞增。觀察中發現偽源2的第二批RST包中該域值會改變。 Flags(分片標志)字段:偽源1和偽源2處理方式不同,例如偽源1將DF(不分片)標志置0,偽源2將DF標志置1。 Time to Live(生存時間)字段:如前所述,偽源1的RST包到達客戶端PC時經過的跳計數較大,而偽源2較小,且可推測與真正的源物理位置有差距。  2)TCP頭部分: Sequence number(序列號)字段:關鍵詞過濾系統很可能會偶而繁忙導致本地出口堵塞,以致RST包發送延遲并晚于真正的源發回的數據包到達客戶端PC,造成RST包被客戶端PC丟棄,從而整個過濾干預行為失敗。考慮到這個因素,偽源還具有序列號預測功能,例如偽源2相鄰的3個RST包中該值分別相差1460(以太網默認MSS值)和2920(即1460*2)。 Window size(窗口大小)字段:偽源1和偽源2處理方式不同,例如偽源1似乎為該字段設置了一個隨機值,偽源2將其置0。正常的RST包是將該字段置0。 此外還包括HTTPS證書過濾、對破網軟件的反制、對電子郵件的通訊的攔截等技術。 從以上的分析可知,GFW的主要技術手段大概有兩種: 1)、IP封鎖 這種方法主要針對國外知名的新聞網站,比如:http://news.bbc.co.uk/,http://wikipedia.org等,從技術上直接禁止了國內對這些IP地址的訪問,或者利用的是國內的域名解析服務,可以將某些網站導向到廣告網站或者警告網站。但是,這樣的手段只能是重點防衛,而不能全面使用。為了規避IP封鎖,只能通過借用國外代理服務器的方式,以國外的代理服務器為跳板,間接的訪問這些被封鎖的網站,具體的工具如無界瀏覽器、加拿大大學研究人員開發的Psiphon等。 2)、關鍵字過濾 針對多若繁星的個人網站,博客網站,社群網站,采用IP封鎖的方法就不合適了,對這些網站的防衛主要依靠關鍵字過濾,比如說,一旦發現內容中包含了china,中國共產黨這樣的關鍵字,就切斷連接。但是,這種技術手段很難在骨干網和骨干路由器上實現,否則骨干路由器的負担太重,難以保持合理的運行速度。所以,一般的做法是在接入網末端部署具備關鍵字過濾功能的防火墻,一旦檢測到不和諧的關鍵字,這些防火墻就向兩端都發送TCP RST包,讓兩端的機器以為連接中斷了,實際上,原始的TCP包已經通過了防火墻,路本來是通的,只是亮了一下紅燈,如果假裝沒看到紅燈,閉著眼睛走過去,反而不會有任何障礙。

 

三、幾種破網軟件的原理早期的破網軟件都是普通代理工具的進一步完善。

因為當時還沒有采用內容和網址的過濾技術,所以只要找到合適的代理,在瀏覽器中設置代理服務器和端口,基本就可以暢通無阻。這些工具擅長于代理的搜索、校驗和動態切換,比較有代表性的是“代理獵手”和“MultiProxy”等[6]。 2002年采用關鍵字過濾技術后,各種加密的代理也就應運而生了。其中比較有名的是SSL加密頁面代理,它能夠根據用戶的請求,把其他網站的內容抓過來,然后用SSL的加密傳遞給用戶。用戶使用加密代理,就能夠瀏覽其他各種被審查封鎖的網站,而所有的信息都是加密傳輸的,包括網址URL。但隨著軟件升級,金盾可以嗅出個別固定域名網站的證書,維基百科443端口的SSL加密瀏覽也被封住了。 此外利用服務端和客戶端的軟件,自己定義加密手段,把服務端軟件安裝在海外的機器后,就可以用客戶端軟件加密瀏覽海外的信息了。隨著各種加密代理的成熟,它們互相之間也開始吸取各自的長處,有些甚至在易用性上進展很大,做到了用戶點擊運行就可以自由瀏覽的程度。 使用這些技術的軟件包括無界瀏覽,自由門,花園軟件,世界通,火鳳凰等等。其中前三個被稱為“破網三劍客”。它們的基本工作原理基本上是一樣的:運行軟件后自動尋找預置軟件服務器列表中的代理服務器,通常尋找最快的那幾個,連接成功后自動設置IE,使IE成為代理訪問模式。這樣就可以直接用IE訪問幾乎任何網站了。通過代理返回的數據包經過加密,可以有效穿過關鍵詞的過濾,達到可以訪問任何信息的目的。這些軟件里內置的代理服務器大多設置在國外。

代理服務器可以用于突破防火墻對IP的封鎖。如上圖所示。但是要突破GFW對海外網站的封鎖,一般的代理就遠遠不夠了。 下圖中顯示了三種用代理訪問海外被封網站的情況。第一個用一般國內的代理,第二個用一般的海外代理,第三個用自由門。對于網頁瀏覽器(如IE或火狐FireFox)而言,使用自由門時自由門就是網頁瀏覽器的代理,所有的數據流都是經過自由門加密后傳輸的,所以也叫加密代理。從圖中可以看到,三種情況中只有自由門可以有效的突破網絡封鎖。如下圖所示。(自由門下載地址見文章最下方 )

 

1、Tor原理分析  (1)概述、功能 Tor(The Onion Router),中文叫“洋蔥路由”,是一種點對點的代理軟件,依靠網絡上的眾多電腦運行的Tor服務來提供代理,幫助用戶抵御流量分析系統,對個人的自由與隱私等進行保護。 流量分析是一種對網絡的監視行為,它能夠從計算機網絡系統中的關鍵點(如國家級網關)收集分析信息,過濾、嗅探指定的關鍵字,并進行智能識別,檢查網絡中是否有違反安全策略的行為,主要進行網址的過濾和網頁內容的過濾,如果符合既定的規則,會干擾用戶與服務器的連接,使數據流中斷,達到禁止訪問的目的。 Tor軟件將用戶的通信通過一個由遍及全球的志愿者運行的中繼(relay)所組成的分布式網絡轉發,以此來保護用戶的安全,它令監視用戶的Internet連接的那些流量分析系統無法知道所訪問的站點,它還令所訪問的站點無法知道用戶的物理位置。Tor能與現有的許多應用程序配合工作,包括 Web 瀏覽器、即時通訊客戶端、遠程登錄和基于Internet的TCP協議的其他應用程序。  (2)工作原理利用Tor軟件可以構建一個分布式、匿名的網絡來抵御流量分析系統。 Tor有助于降低簡單的和高級的流量分析的風險,把用戶的流量分散到互聯網上的多個地點,所以不存在單一的一點可以把用戶和目的地聯系起來。在Tor網絡上,來源和目的地是由一條通過數臺中繼的隨機的路徑連接的,數據包在這條路徑上傳輸,因此,不存在在任何單一點上的觀察者能夠知道數據從哪里來、到哪里去。 Tor的一個特色是,只要用戶運行了Tor server,用戶的電腦就成為一個Tor節點,別人可以通過這個節點訪問其它節點,用戶也可以通過別人的節點進行訪問。在Tor節點和節點之間的通信是完全加密的(SSL),所以不用担心你的通信會泄密。當要訪問一個地址時,Tor利用一種路由算法在眾多Tor節點中找到一條可達路徑。數據經過幾“跳”以后,最終能夠到達一個可以訪問目標資源的Tor節點。Tor的選路過程并不是按照最優的原則,而是隨機的。這和它的設計目的:防止數據追蹤有關。使用隨機的路由就使得數據追蹤幾乎不可能。以下圖1–圖3是Tor的工作原理圖。

圖1 工作原理一用Tor創建一條私有路徑時,用戶的軟件或客戶端通過網絡上的中繼遞增地建立一條由若干加密連接組成的電路(circuit)。電路一次擴展一跳(hop),電路上的中繼僅僅知道它從哪一個中繼接收數據以及向哪一個中繼發送數據。沒有一臺單獨的中繼會知道數據包的完整路徑。客戶端為電路上的每一跳分配獨立的加密密鑰以保證連接數據通過時不被跟蹤。

圖2 工作原理二一旦一條電路建立完成,多種類型的數據可以進行交換,不同種類的軟件應用程序也可以在Tor網絡上部署。因為每一臺中繼最多只能知道電路中的一跳,竊聽者(eavesdropper)或者被入侵的中繼(compromised relay)都無法通過流量分析把連接的來源和目的地聯系起來。Tor僅作用于TCP數據流,任何支持SOCKS的應用程序都可以使用它。

圖3 工作原理三出于有效性,Tor 為大約在相同的十分鐘內發生的連接分配同一電路。以后的請求被分配不同的電路,這樣攻擊者就不能把你早先的行為和新的行為聯系起來。  (3)技術原理 Tor網絡是一個overlay網絡,每個節點(onion router,OR)都是運行在用戶級,不需要內核級等特權;而且與其他的OR維持著一個TLS的連接;運行本地的代理軟件(onion proxy,OP)去獲取服務器目錄,建立電路回路等。 每個OR都維持著一個長期的identity key和一個短期的onion key。Identity key用來給TLS證書做簽名,給OR的路由描述符(密鑰,地址,帶寬,出口規則,等)做簽名,給目錄做簽名(有目錄服務器做)。Onion key用來解密用戶的請求,然后建立一個電路,協商一個臨時密鑰。 傳輸單元 OR同其他的OR,或者OP通訊時,使用了協商好的臨時密鑰,經由TLS連接進行通訊,將數據隱藏起來,安全的進行轉發,阻止了攻擊者對數據的修改。 流量按照固定的大小單元(cell)在鏈路上進行傳輸。每個單元是512字節,由一個頭(header)和一個有效載荷(payload)組成。這個頭中包括:一個電路的標識(circID),指明數據單元要經過的電路號;一個命令字段,表明將要對payload做何處理。基于命令類型,cell要么是控制單元(control cell),通常由接收者進行解釋處理;要么是中繼單元(relay cell),攜帶著端到端的數據流。控制單元的命令主要有:padding(用來保持存活等),create或created(建立一個新的電路),destroy(銷毀一個電路)。 而中繼單元在有效載荷的開始又有自己額外的中繼頭,包含:一個流標識(streamID),一個端到端的校驗和(用來做完整性檢查),一個中繼載荷的長度,一個中繼命令。整個的中繼頭和中繼載荷采用了128-比特的AES加密后進行傳輸。下圖為傳輸單元的格式。

cell結構 電路的建立 下圖表明了電路如何建立,密鑰如何商議,以及如何訪問網頁。

Alice建立一個2跳的電路,并訪問一個網頁 Alice與OR1和OR2的密鑰協商: 1) Alice發送一個create命令的包,其中包含了電路標識C1,以及用OR1的公鑰加密的密鑰,這個密鑰是Alice單方選擇的。C1是Alice和OR1之間需要建立的電路的標識號。 2) OR1接收到后,回復一個created命令的包,其中包含了,電路標識C1,OR1選擇的密鑰,以及對雙方協商好的密鑰K1的Hash值。 3) Alice發送一個relay(中繼包)命令給OR1,包的載荷中有一個用K1加密的信息,這個信息中包含了extend命令,OR2名字,和用OR2的公鑰加密的密鑰。 4) OR1接收到后,用K1進行解密,然后創建一個create包,選取一個OR1和OR2間沒有用過的電路標識C2,連同用OR2的公鑰加密的密鑰一起發送給OR2。 5) OR2接收到后,回復一個created包給OR1,其中包含了自己選取的密鑰,和對與Alice協商好的密鑰K2的Hash值。 6) OR1接收到后,給Alice發送一個用K1加密的包,包中含有extended命令,OR2選取的密鑰,以及K2的Hash值。 7) Alice接收到后,用K1解密,獲得與OR2協商好的密鑰K2。至此,Alice便與OR1和OR2協商好了密鑰。 Alice經由上面的電路訪問網頁: 1) Alice將要訪問的網頁先用K2加密,然后用K1加密,將結果放進一個relay包中給OR1。 2) OR1用K1解開后,將結果信息也放進一個relay包中發送給OR2。 3) OR2接收到后,用K2解密,然后與目標網址進行TCP連接的建立。成功后,用K2加密connected命令包發送給OR1。 4) OR1接收到后,替換掉電路標識,然后對加密的信息再用K1進行加密,將最終結果放進relay包中發送給Alice。 5) Alice接收到connected信息之后,就發送Http請求進行訪問,以后的通訊與前幾步類似。 中繼包 一旦Alice建立好了電路之后,就可以發送中繼包。接收到中繼包的OR,會查詢相應的電路,對數據包進行解密,來查看是否有一個有效的校驗。如果無效,OR查詢電路上的下一個OR和電路標識,將原來的電路標識替換后,把解密后的relay包傳送給下一個OR。若最后一個OR不能識別這個relay包,表明有錯誤發生,這條電路就會被銷毀掉。 每個OP對待relay包基本上都是相同的操作,反復對relay包的頭和有效載荷用相應的密鑰進行解密。如果哪個階段校驗信息是有效的,則表明這個包是在這層的OR上創建的。要針對一個確定的OR創建relay包,Alice先確定一個摘要信息,然后對relay頭和有效載荷進行重復加密,所用的密鑰是與路徑上由遠及近的OR商議好的密鑰。Relay包中這個摘要信息只有在經過最后一個OR的時候,才會發現是一個有效的值,這個OR得到了Alice真正的目的明文,然后進行目的地的訪問。 當這個OR返回給Alice信息時,先用協商好的密鑰對這個relay包進行加密,然后按原路返回,每經過一個OR都會進行相應的加密處理,最終傳送到Alice時,Alice需要進行多次解密才能提取到真正的信息。 數據流的傳輸開始與關閉 當Alice的應用程序想要與指定的地址和端口進行一個TCP連接時,她會要求OP去完成這個連接。OP選擇一條最新的或者建立一條電路,選擇一個合適的OR作為出口節點與目標機連接。然后OP向出口節點發送一個relay begin包,隨機選取一個流標識。一旦出口節點連接到目標機,便回復一個relay connected包。OP接收到后,會給應用程序發送一個連接成功的回應信息。于是OP便開始接收應用程序的數據,將數據打包成relay data包進行發送。 當數據傳輸完畢需要關閉時,也存在與TCP類似的方法:進行兩次握手的正常操作,一個握手的非正常操作。非正常關閉,只需要發送一個relay teardown包。而正常關閉是發送一個relay end包。 目錄服務器 Tor用一些共知的OR來記錄網絡拓撲的變化,節點的狀態,包括密鑰和出口策略。每一個這樣的OR稱為目錄服務器(directory server),就像一個HTTP服務器,客戶端可以從這里獲取當前網絡的狀態和路由列表,其他的OR也可以上傳自己的狀態信息。OR會定期的向每一個目錄服務器發布他們的狀態信息的簽名聲明。所有客戶端軟件都事先加載了服務器的列表資料和他們的密鑰。 當目錄服務器接收到一個OR的簽名聲明后,會檢查這個OR的identity key是否被識別,服務器不會對未識別的OR進行發布。

2、使用SSH穿越GFW  1)SSH簡介傳統的網絡服務程序,如 FTP、Pop和Telnet在傳輸機制和實現原理上是沒有考慮安全機制的,其本質上都是不安全的;因為它們在網絡上用明文傳送數據、用戶帳號和用戶口令,攻擊者可以輕易獲得這些數據。而且,這些網絡服務程序的簡單安全驗證方式很容易受到”中間人”(man-in-the-middle)攻擊。 SSH是英文Secure Shell的簡寫形式。通過使用SSH,可以加密所有傳輸的數據,以抵御”中間人”攻擊,而且還能夠防止DNS欺騙和IP欺 騙。使用SSH,還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為 FTP、Pop、甚至為PPP提供一個安全的”通道”。 最初的SSH是由芬蘭的一家公司開發的。但是因為受版權和加密算法的限制,現在很多人都轉而使用OpenSSH。OpenSSH是SSH的替代軟件包,而且是免費的,可以預計將來會有越來越多的人使用它而不是SSH。 SSH在運行方式也不像其他的TCP/IP應用,SSH被設計為工作于自己的基礎之上,而不是利用包裝(wrappers)或通過Internet守護進程inetd來進行。

2)SSH協議的內容 SSH協議是建立在應用層和傳輸層基礎上的安全協議,它主要由以下三部分組成,共同實現SSH的安全保密機制。 傳輸層協議,它提供諸如認證、信任和完整性檢驗等安全措施,此外它還可以任意地提供數據壓縮功能。通常情況下,這些傳輸層協議都建立在面向連接的TCP數據流之上。 用戶認證協議層,用來實現服務器的跟客戶端用戶之間的身份認證,它運行在傳輸層協議之上。 連接協議層,分配多個加密通道至一些邏輯通道上,它運行在用戶認證層協議之上。 當安全的傳輸層連接建立之后,客戶端將發送一個服務請求。當用戶認證層連接建立之后將發送第二個服務請求。這就允許新定義的協議可以和以前的協議共存。連接協議提供可用作多種目的通道,為設置安全交互Shell會話和傳輸任意的TCP/IP端口和X11連接提供標準方法。

3)SSH的安全驗證 從客戶端來看,SSH提供兩種級別的安全驗證。 第一種級別(基于口令的安全驗證),只要你知道自己的帳號和口令,就可以登錄到遠程 主機,并且所有傳輸的數據都會被加密。但是,這種驗證方式不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就 是受到”中間人”攻擊。 第二種級別(基于密鑰的安全驗證),需要依靠密匙,也就是客戶端必須為自己創建一對密鑰,并把公鑰放在遠程服務器上。如果客戶端要連接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用客戶端的密鑰進行安全驗證。服務器收到請求之后,先在該服務器的用戶根目錄下尋找客戶端的公鑰,然后把它和客戶端發送過來的公鑰進行比較。如果兩個密鑰一致,服務器就用公鑰加密”質詢” (challenge)并把它發送給客戶端軟件。客戶端軟件收到”質詢”之后就可以用客戶端的私鑰解密再把它發送給服務器。 與第一種級別相比,第二種級別不需要在網絡上傳送用戶口令。另外,第二種級別不僅加密所有傳送的數據,而”中間人”攻擊也是不可能的(因為攻擊者沒有私鑰)。但是整個登錄的過程可能慢一些。

4)SSH的應用 首先,SSH最常見的應用就是,用它來取代傳統的Telnet、FTP等網絡應用程序,通過SSH登錄到遠程主機并執行工作或命令。在不安全的網絡環境中,它提供了很強的驗證機制與非常安全的通訊環境。實際上,SSH開發者的原意是設計它來取代原UNIX系統上的rcp、rlogin、rsh等指令程序的;但經過適當包裝后,完全可以取代傳統的Telnet、FTP等應用程序。 而用來替代r系列指令的SSH,則在安全方面做了極大的強化,不但對通訊內容可以進行極為安全的加密保護,同時也強化了對身份驗證的安全機制,它應用了在密碼學中已發展出來的數種安全加密機制,如 Symmetric Key Cryptography,Asymmetric Key Cryptography, One-way Hash Function,Random-number Generation等,來加強對于身份驗證與通訊內容的安全保護。通訊時資料的加密有IDEA,three-key triple DES,DES,RC4-128,TSS,Blowfish 等多種安全加密算法可供選擇,加密的key則是通過 RSA 進行交換的。資料的加密可以對抗IP spoofing,RSA這種非對稱性的加密機制則可用來對抗DNS spoofing與IP routing spoofing,同時RSA也可以進行對主機身份的驗證。 其次,通過使用用SSH可以在本地主機和遠程服務器之間設置“加密通道”,并且這樣設置的“加密通道”可以跟常見的Pop應用程序、X應用程序、Linuxconf應用程序相結合,提供安全保障。 SSH的“加密通道”是通過“端口轉發”來實現的。客戶端可以在本地端口和在遠程服務器上運行的某個服務的端口之間建立“加密通道”。然后只要連接到本地端口。所有對本地端口的請求都被SSH加密并且轉發到遠程服務器的端口。當然只有遠程服務器上運行SSH服務器軟件的時候“加密通道”才能工作。

5)利用SSH突破GFW 我們知道,GFW對國外敏感網站的封鎖主要是通過ip限制與關鍵詞過濾來實現,SSH顯然可以突破關鍵詞過濾攔截,即SSH通過創建一條加密隧道來防止特定關鍵詞被GFW發現。以下介紹利用SSH突破GFW的限制的原理。 幾個相關的概念。 SSH客戶端,SSH服務端,應用程序客戶端,應用程序服務端。 就突破GFW限制這個應用而言,SSH客戶端與應用程序客戶端都位于本地,而SSH服務端與應用程序服務端位于遠端。(注:也可以在本地創建SSH服務端,讓應用程序客戶端與SSH服務端都位于本地,而SSH客戶端與應用程序服務端都位于遠端。然后通過一個SSH的反向連接來達到目的。然而,多數的應用還是前面講述的情形)。那么,為了突破GFW的封鎖,我們有什么要做的呢? 首先,應當在國外有一個運行SSH服務的主機,至于如何獲得這樣的主機不在本文的討論范圍內(無論你是通過黑客入侵的手段,還是租用此類服務等)。SSH的服務應當位于國外,否則將無法規避GFW的IP限制。 其次需要運行一個國外代理服務器,如果沒有,本地的應用將受到限制。因為此時本地的應用將被局限在某一個被限制的站點,而不是一些。如果在運行SSH服務的主機上有足夠的權限,當然也可以在其上安裝相應的代理服務。 第三是讓本地的SSH客戶端監聽某一端口,一旦該端口有數據要傳送,SSH客戶端將會在在本地與遠端的SSH服務端建立一個加密連接。然后被監聽端口的數據將加密傳送給SSH服務端,而SSH服務端在收到數據后,將做相應的端口轉發。

這樣做能規避GFW的原因在于: 1)運行SSH服務的主機并非被禁止的IP,因此你可以與其建立連接。 2)本地與遠程SSH服務的主機所傳送的數據都經過加密,因此GFW防火墻并不能輕易發現敏感信息。 下面具體舉一例說明: 比如想通過web方式訪問維基百科,而通常情形下這是被GFW所禁止的。所要做的是,先在本地SSH客戶端執行如下命令: ssh –L9999:proxy:proxy_port sshd_server 這個命令的用途為:讓ssh客戶端監聽9999端口,如果有數據,將其加密傳輸至ssh服務端,而服務端則相應向proxy的proxy_port轉發。命令說明:9999是客戶端的本地端口,也就是SSH客戶端所監聽的端口。Proxy,proxy_port分別為代理服務器的名字(或IP)以及它的服務監聽端口。sshd_server是運行SSH服務的主機。這么做以后,只需將本地的瀏覽器代理設置為localhost:9999。接下來就可以順利訪問維基百科了。(本例中proxy可為http代理或socks代理)。  3、自由門自由門可以非常安全的讓你自由暢游網絡世界。其加密強度程度可以與國際金融系統的相比,會自動隱藏你的IP,任何人絕對看不到你的IP。其最新版為自由門6.34版,修復了個別情況下代理密碼的設置問題。 該軟件的功能就是連接代理服務器,客戶端和代理服務器端之間的數據經過高強度的SSL加密,數據傳輸速度很快,它自動搜索到代理服務器,連接并使用,訪問美國骨干網絡的速度快很多,能突破多種限制。 自由門軟件工作模式分為:代理模式和經典模式。在經典模式下程序會自動設好與密道有關的設置文件并設好IE代理。 自由門軟件其實質是用加密代理服務器的技術。為確保包含關鍵字信息的數據包不被GFW截獲,加密代理服務系統器需要與客戶端進行安全通信。一次安全通信分為密 鑰建立和保密通信兩部分。這里詳細介紹密鑰建立和廣泛應用的網絡安全套件SSL協議。自由門軟件界面如下圖所示。

(1)密鑰建立在客戶端和加密代理服務器開始交互大量信息之前,兩者需要建立一個安全的信道。于是,雙方需要進行密鑰建立以確定本次通訊所使用的公共密鑰。 密鑰建立分為無服務器的對稱密鑰建立和基于服務器的密鑰建立,可根據代理服務器的類型和客戶端的數量自行設計。無服務器的對稱密鑰建立又包括點對點密鑰更新(有共享長期密鑰)和無預先共享密鑰的密鑰建立兩種。無預先共享密鑰的密鑰建立可以使用Diffie-Hellman密鑰交換協議來實現分發公共密鑰。其缺點是容易受到中間人攻擊。

(2)SSL SSL協議用來在客戶端和服務器之間建立安全的TCP連接,并向基于TCP/IP協議的客戶/服務器應用程序提供客戶端和服務器的驗證、數據完整性及信息保密性等安全措施。主要用于瀏覽器和Web服務器之間建立安全的數據傳輸通道,還適用于Telnet、FTP和NNTP等服務。 然而,SSL協議在具體使用中還面臨如下3個問題: ①客戶端對服務器的身份確認; ②服務器對客戶的身份確認; ③在服務器和客戶之間建立安全的傳輸信道。

(3)加密代理服務器的實現加密代理服務技術使用了加解密技術。只有加密通信雙方使用相同的協議,客戶端才能連接到加密服務器的端口進行訪問。因此,如下圖所示,客戶端需要運行加密代理軟件,來實現應用程序和加密服務器之間的信息轉發和明密文轉換。

 

(4)自由門技術的改進目前GFW偵測類似自由門軟件的方法主要根據它們數據包中的特征碼方式進行偵測,并進行截獲。并對數據包進行IP包進行跟蹤,查獲到境外的代理服務器后,將其IP地址列入黑名單中。 在自由門的新版本中改變以前的特征碼,使數據包的特征碼在不斷變化中。以及改變數據包經過SSL加密后的特征碼。定期對加密代理服務器進行IP更換措施,并將更換后的加密代理服務器的IP地址通過BBS,Email,聊天室內進行公布。  4、無界瀏覽器無網界瀏覽 8.8是由美國極景網絡科技公司推出的高品質軟件產品。原理是根據其內置(或軟件服務器上)的代理服務器列表不停查找選擇速度最快的代理服務器。聯機完成后會自動幫IE設定好HTTP代理服務器:127.0.0.1:9666,如果用其他瀏覽器也可以手動設定使用。在無界退出時,因為自動清除了主機上的所有使用信息,所以如要再使用無界瀏覽器,代理軟件將重新搜索可用的加密代理服務器。使用動態SSL代理服務器,完全規避了防火墻的屏蔽。  (1)無界瀏覽的使用方法 1)啟動該軟件的可執行文件; 2)如果需要的話,添入代理(局域網需要在這里添代理,普通的撥號用戶不需要); 3)無界瀏覽會自動尋找海外代理,找到后,右下角會彈出一個金黃色的鎖,這表示無界漫游啟動成功了; 4)接著一般會彈出一個Internet Explorer窗口,此時的IE已經被設置了無界瀏覽的代理127.0.0.1:9666,默認訪問的網站,就是無界網絡; 5)用戶再通過IE訪問網絡時,都通過無界瀏覽找到的加密代理,進行數據傳輸。 6)如果使用其它瀏覽器(如Mozilla Firefox)訪問,無界網絡啟動成功后,可自己手動設置代理127.0.0.1:9666即可。  (2)版本沿革 1)6.9版 2)網絡上曾出現無界瀏覽7.0版,極景網絡公司聲明于此版本無關,并非自己所出品,完全系被惡意冒用,并跳過7.0版直接推出了8.0版。 3)8.2版在2007年8月初遭到封鎖。 4)8.3版于2007年8月6日推出的。 5)8.4版在2007年8月16日推出。 5)8.5版在2007年8月19日(美國時間)推出。 6)8.6版在2007年9月17日(美國時間)推出。 7)8.7a版(測試版)在2007年10月26日推出。 8) 8.7b版(測試版)在2007年10月27日推出。 9) 8.7正式版在2007年10月30日推出。 10)8.8版在2007年11月20日推出。  (3)無界瀏覽器使用示意圖: 

(4)特點: 1)、幾乎可以訪問國外所有的網站。 2)、速度快,比一般的代理服務器速度快很多,而且越多人訪問的網站,速度越快。 3)、傳送過程高度加密。在傳輸過程中將網頁地址(URL)和內容都加密。 4)、當退出運行時,會清除所有訪問記錄。如果是非正常退出,當重新運行并正常退出后,所有訪問記錄也都將被清除。 5)、支持多媒體文件傳送與下載,包括聲音與圖像文件。 6)、網站集錦欄目特別收集海外被禁網站連結,為有興趣的用戶瀏覽導航。 7)、特別支持Google, AltaVista 等搜索引擎,使搜索到的內容不被過濾。 使用無界軟件無法訪問國內網站,這可能與GFW屏蔽了國外破網軟件的IP地址有關。解決方法是退出無界再重新打開,直到無界的出口IP換成沒被屏蔽的IP地址為止。  5、其他穿越GFW的技術除了以上介紹的四種破網技術外,還可以通過忽略TCP RST包的方式以通過具備關鍵字過濾功能的防火墻。也有更專業的技術論文詳細解釋了其技術原理和實踐方法,具體請請參考ignoring.pdf。所提出的穿越GFW的解決手段,對于Linux,用如下指令: iptables -A INPUT -p tcp —tcp-flags RST RST -j DROP 對于FreeBSD,請用對應的指令: ipfw add 1000 drop tcp from any to me tcpflags rst in 點擊不能訪問的鏈接,即可實現正常訪問。

四、對破網軟件的控制針對突破防火長城的各類破網軟件,防火長城也在技術上做了應對措施以減弱破網軟件的穿透能力。

比如每年的特定關鍵時間點,無界等軟件就可能會無法正常連接或連接異常緩慢,這時境內外的正常網絡互聯也會受到干擾。  1、對Tor 可采取建立虛假Tor節點的封鎖措施。鑒于無法真正的完全封鎖Tor,網絡安全部門可在國內網絡中安裝了大量虛假 Tor節點服務器,所有經過這些“節點”的信息都將被最大程度的審查,與此同時,所有到達這些虛假節點的網絡請求都將被屏蔽。有意見認為因為此舉會暴露防火長城的位置,網絡審查部門對虛假節點的設立有所節制。但另一方面,tor節點的大量增加很可能僅僅是因為國內用戶增加的緣故,即使存在有虛假節點,對于使用圖形界面Vidalia的用戶也可以輕松將含有境內節點的路由刪除,以確保安全。  2、對加密代理型瀏覽器主要針對無界瀏覽器進行分析。  (1)無界加密代理的工作原理加密代理服務器的工作原理見下圖。

(2)網絡活動概述網絡活動步驟如下: 1)、探測。訪問國內外知名網站,用來探測是否接入互聯陰。 2)、訪問。訪問“專職DNS服務器”。這些DNS服務器專門為無界提供信息更新支持。 3)、加密。訪問加密代理服務器。  (3)各步驟的發包規律 1)、探測。隨機選擇4~6個知名網站進行測試。由于程序存儲有限,因此可以找到所有被該程序記錄的網站的IP。 2)、訪問。這一部分是規律最多、最容易識別的部分。所有的DNS數據包解析地址均為[ns 1.4546355dc.net,即“ns”+數字1或2+“.”+9位十六進制編碼+“ net”。由于這樣的域名與常規域名存在較大的差異,因此容易發現并跟蹤。但是,這個步驟僅出現于程序的第1次運行中。捕獲這樣的數據包的概率相對較少。 3)、加密。加密代理把秘密信息裝扮成普通HTTP數據包的形式。實現和機密服務器的保密通信。由于網絡上有海量的HTTP數據包,因此即使找到加密數據的規律也很難及時地進行數據包過濾查找。但是,當發現加密代理向加密服務器申請信息時,HTTP數據包中總有“GET”字段,所接收的URL地址有如下規律: 1)包含4~6個由“/',分隔的部分; 2)每部分由3~6的英文小寫字母組成; 3)字母隨機組合且不是單詞。  (4)偵察監控方法無界v6.9的偵控方法主要有IP跟蹤法和數據包篩選法兩種。其中,IP跟蹤法速度快效率高,但準確性欠佳;而數據包篩選法則有較好的準確性。  1)、IP跟蹤法通過運行加密代理軟件,采用截取數據包的方法,可以獲得相應的IP地址信息。對IP地址信息的跟蹤分為3類: a)、對專職DNS服務器的跟蹤。這是偵察工作的重要環節,也是唯一可以全面控制加密信息來源的環節。專職DNS服務器的特點是:1)固定。每個版本的加密代理軟件只能包含有限個專職DNS的IP地址。即使加密代理軟件隨機地使用全部IP中的幾個,也可以通過多次跟蹤找到絕大多數的IP地址。2)專職。這種DNS服務器只向相應的加密代理軟件提供所謂的“域名解析”,而不提供通常意義的域名解析。將獲取的專職DNS服務器的IP地址存放在數據庫表DNSIP中。 b)、對加密代理服務器的跟蹤。盡管加密代理服務器的IP地址是經常變換的,但是它在短時間內具有相對的穩定性,比如同一地區同一天內不會變化。可以建立一個IP地址采集機制,對保存時問超過一天的IP地址進行重新檢測,以確認它是否已作廢。將獲取的加密代理服務器的IP地址存放在數據庫表CPRIP中。 c)、對加密代理軟件用戶的跟蹤。通過對專職DNS和加密代理服務器IP地址的收集,可通過數據包的簡單分析查找到使用加密代理服務的用戶的IP地址。將這些IP地址保存起來就可以對它們進行進一步的分析,從而找到可疑對象。將獲取的加密代理軟件用戶的IP地址存放在數據庫表USRIP中。  2)、數據包篩選法面對海量的DNS數據包和HTTP數據包,為了提高效率,將針對數據包的信息過濾作為IP跟蹤法的輔助方法。即重點跟蹤IP地址在表USRIP中的用戶的DNS數據包和HTTP數據包,從而找到新的專職DNS和加密代理服務器的IP地址。利用上文中加密代理數據包的特征規律,對DNS數據包和HTTP數據包采用不同的過濾方式: a)、DNS:過濾域名為“ns”+數字1或2+“.”+9位十六進制編碼+“.net”的數據包。 b)、HTTP:過濾URL有上文提到的3個特點的數據包。確認獲取的DNS和Web服務器是所需的專職服務器和加密代理服務器。將獲得新的專職DNS和加密代理服務器的IP地址存放在表CPRIP和表CPRIP中。  (5)具體工作流程通過以上的2種方法,就可以實現對該加密代理軟件的應用范圍的擴大尋找,對本地區網絡的全面覆蓋。具體操作流程見下圖。

具體工作步驟如下: 1)、通過單機截包實驗,找到為實驗機提供信息的“專職DNS服務器”和“加密代理服務器”。并將IP地址分別存放在數據庫表DNSIP和CPRIP中。 2)、通過在大規模的網絡出口節點(例如各省的網絡出口)截取具有數據庫表DNSIP和CPRIP中IP地址的數據包,將使用該軟件的用戶的IP存放進數據庫表USRIP中。 3)、對數據庫表USRIP中的IP按照獲取次數的頻率進行分級。 4)、對數據庫表USRIP中的頻率級別較高IP進行跟蹤,通過數據包篩選法,尋找新的“專職DNS服務器”和“加密代理服務器”,并將IP地址分別添加在數據庫表DNSIP和CPRIP中。 5)、對數據庫表CPRIP中的IP進行活性檢測,定期去除已經失效的“加密代理服務器”。在整個監控系統初具規模后,可以做以下的工作: 1)、全面封殺該破網軟件。因為一個版本的無界瀏覽器只可能預設有限個“專職DNS服務器”,所以只需要在數據庫表DNSIP相對穩定時,封鎖所有來往于所有“專職DNS服務器”的數據包即可。 2)、掌握使用無界瀏覽器的用戶情況。通過對數據庫表USRIP的操作,可以發現使用該破網軟件的用戶的分布情況,還可以對經常性的用戶進行重點控制和深入的走訪排查。 采用本方法,可以在較短的時間里收集到網絡上的相關破網軟件的詳細信息,為掌控代理工作情況、用戶狀況等相關信息提供了必要的保障。破網與補網、滲透與反滲透對于國家安全來說是一對矛盾。破網軟件設計者可以在以后的版本中通過技術改進,逃避現存的偵察手段。但是,只要它們還是面向普通網絡用戶的宣傳工具,就可以找到數據包的規律,進而實現對它們的跟蹤和監控。 對無界8.9的偵察仍然可以采用以上的方法來實現,下圖為用WireShark在局域網中捕獲無界第一次運行時的數據包,從中可見,仍然具有上文所述的特征。

對花園瀏覽器和自由門瀏覽器的偵測依然可以采用本文中的方法。就是先對一個普通的瀏覽器客戶端進行小規模的局域網內的截包實驗。在找到相應的數據包規律后,在大型網絡的出口上進行動態的監測。 上述方法是基于有特定格式數據包的檢測來實現的,如果在數據包中不使用有格式的字符串,或定期變換這些字符串,則可成功規避GFW的檢測。 另外,如果引入新的密碼學技術,例如使用信息隱藏技術,將“加密代理服務器”的IP地址隱藏在一些知名門戶網站的合法信息中,這樣也可以有效地避免這種“專職通告”機制受到監控和破壞。  3、一種基于透明Web Cache的內容過濾方法通用的內容過濾技術都是基于實時的“事先判別”技術,即在用戶瀏覽網頁之前先期進行內容判別,對網頁進行內容分析和過濾。其缺點是時延長,實時性差,準確率低,往往影響用戶的瀏覽速度,而對設備性能的也要求較高。面對實時內容過濾中存在的這些問題,文[8]提出的基于高速緩存服務器(Cache Server)的過濾系統框架,對系統緩存的網頁數據進行“事后審計”方式的內容過濾,據此生成過濾用的黑名單數據庫,并配合偵聽匹配阻斷服務系統。該模式采用內容分析和網址過濾相互協同、分時工作的方法,可很好地提高內容過濾的準確性和實時性。  1)邏輯架構圖本系統架構是在位于出口路由器上的緩存服務器旁邊加裝了一臺偵聽服務器,該偵聽服務器不占用路由器資源,它本身通過網絡和緩存服務器相連,路由器支持WCCP(WebCache Communication Protoco1)協議,緩存服務器工作在透明模式下。

2)透明緩存服務器的工作原理透明緩存的意思是客戶端根本不需要知道有高速緩存服務器的存在,客戶不需要在瀏覽器中設置任何代理,只需要設置缺省網關,客戶訪問外部網絡的數據包都被發送到缺省網關,而這時缺省網關處運行有一個緩存服務器,數據實際上被重定向到緩存服務器的代理端口(如3128),即由本地緩存代理服務器向外請求或直接提供所需數據,然后拷貝給客戶端。 要完成透明緩存代理,目前所普遍采用的技術就是WCCP。WCCP協議是由Cisco公司提出并于1997年正式發布的,至今已有V1和V2兩種版本。WCCP V1所要服務的資料類型僅僅是HTTP的資料類型。WCCP協議主要的功能是提供路由器和緩存引擎之間透明重定向的機制,將用戶的請求在經過路由器時,利用GRE(Generic Routing Encapsulation,通用路由封裝)技術封裝起來,再送往緩存服務器,緩存服務器收到之后,解開GRE封包,并解讀其中的HTTP請求,然后檢索緩存內容,如果緩存服務器儲存了符合用戶所要求的資料,則緩存服務器便直接將該資料回應給用戶;否則緩存服務器再向外界網站抓取資料,抓取完成之后,緩存服務器將資料同樣用GRE封包,送回路由器,接著路由器改寫封包還給發出請求的客戶。WCCP這種運作機制對于用戶來說是毫不知覺的。而如果WCCP溝通失敗或緩存服務器發生問題時,用戶的請求會完全不受影響地被路由器傳送到目的地,用戶需要的服務也不會遭受任何的中斷。WCCP技術可以有效地降低Intemet網絡流量,節省廣域網鏈路費用。  3)黑名單—— 不良網址過濾數據庫數據庫過濾技術是將用戶請求的IP或URL與不良信息庫進行比對,阻斷數據庫中存在的不良站點。不良信息庫即黑名單,它采用一個駐留于緩存服務器中的類似于語義識別網絡機器人技術或單一功能的進程,針對Cache中的緩存數據,根據過濾規則在緩存服務器相對空閑時進行內容安全方面的過濾,并記錄符合過濾規則的網頁對應的URL地址和IP地址,然后登記于文件中,再傳給偵聽服務器處理,進而形成過濾數據庫。因為IP地址和URL地址都是分級的,如URL=協議名稱+宿主名+路徑與文件名,所以數據庫采用目錄型數據庫,按照宿主機名、路徑、文件名等組成分級樹型數據結構,還可根據需要生成必要的索引。 過濾數據庫中包括了:色情、恐怖、邪教、賭博、暴力、毒品、黑客等類型的不良站點,且每天都可更新,以確保內容過濾引擎和互聯網的發展相一致。  4)網絡數據包的偵聽、匹配與阻斷利用網絡中信息的傳輸是在用戶端與服務器端之間進行這一特性,可以在這兩端之間進行數據監聽。在以太網上,任何一臺主機發出的數據包都是在共享或交換以太網傳輸介質上傳輸的,每個數據包的包頭部分都包含了源地址和目的地址。如果需要讓一臺主機能夠接收所有的數據包,即進行網絡數據包的“偵聽”,只要設置該主機的網卡工作在“混雜模式”下(對交換網絡需要設置流量鏡像),則不論數據包的目的地址是否本機,都能夠截獲并傳遞給上層進行處理。 網絡數據包的偵聽可以使用一些現成的開發包來實現,如WinPcap和libpcap是比較著名的開發包,提供了較強的網絡數據包截獲功能,或者利用現有的監聽工具,如Snifer、Netxray、Tcpdump等工具就可以輕而易舉地截取數據包。 對于截獲的數據包,拆包進程經過P—>PH—>GREH—>IP—>TCP—>HTTP等層層拆包,提取出IP、URL等信息,通過將最常用的數據放入內存的預取策略,首先在內存中與部分黑名單數據進行快速匹配,如果匹配不成功,再進行全面匹配;而如果匹配成功,則啟動阻斷進程,進入會話阻斷階段。 阻斷的方式有:與防火墻聯動、中斷TCP會話、阻塞HTTP請求、模擬SYN/ACK等。“阻斷會話”機制是目前IDS最常用的方式,它既不需要外部設備的支持(如防火墻),而且易于實現。可利用TCP/IP的工作原理來設計 。TCP使用端到端的連接,即TCP用源IP,源TCP端口號,目的lP,目的TCP端口號來唯一標識每一條已經建立連接的TCP鏈路。TCP對話通過三次握手來完成。三次握手的目的是使數據段的發送和接收同步;告訴其它主機一次可接收的數據量,并建立虛連接。其三次握手的簡單過程如下: a)發出請求的主機通過一個同步標志置位的數據段發出會話請求。 b)接收主機通過發回具有以下項目的數據段表示回復:同步標志置位、即將發送的數據段的起始字節的順序號、應答并帶有將收到的下一個數據段的字節順序號。 c)發出請求的主機再回送一個數據段,并帶有確認順序號和確認號。 若能匹配出合適的信號則會向通信的兩端各發送一個TCP RESET包,從而實現主動切斷連接的目的,此時通信雙方的堆棧將會把這個RESET包解釋為另一端的回應,然后停止整個通信過程,釋放緩沖區并撤銷所有TCP狀態信息。阻斷的流程如下: a)偽裝成Server給Client發一個RAT包; b)偽裝成Client給Server發一個數據包; c)Server回一個ACK包給Client; d)因為Cleint的連接已經給RESET掉了。所以Client回一個RST包給Server。

五、可能的破網方法:

1、使用內容壓縮、加密、變換和信息隱藏對網頁內容進行壓縮、加密和變換后,可極大地增加基于內容過濾防火墻的過濾難度。文本內容壓縮后,為保證防火墻的工作效率,一般不會對壓縮包解壓后過濾;通信內容加密后,在文件名或網頁上公布解密密鑰,防火墻對此是無能為力的;也可以對關鍵字做變換,由于目前基于多媒體內容的過濾還有較大的難度。文本可以以圖片方式顯示在頁面上,這可以逃避基于文本的過濾,或者通過文本置亂(如在文本中夾雜一些特殊字符)、文本代換(如以諧音、拼音、外文代替)等簡單的信息隱藏方式逃避過濾;利用復雜信息隱藏技術完全能夠將網頁的受限信息隱藏于可見的Web頁面中,達到保護真實信息的目的,封防火墻來說發現網頁中隱藏的信息將是一項不可勝任的工作。  2、利用主機漏洞搭建代理,自己創建動態代理服務器。漏洞是指硬件、軟件或策略上的缺陷,使系統受到未經授權的訪問。攻擊者利用掃描軟件捕獲國外有漏洞的一臺普通的計算機主機,在該傀儡機上搭建加密代理(服務器)后,進行加密連接,再利用該主機去獲得想要得到的受限資料,加密傳回,達到突破絡絡封鎖的目的。由于傀儡機本身是受害機器,并其地域分布具有較大的隨機性,這給防火墻監控提出了難題。

為了使利用漏洞搭建的代理長期有效,還可以在該傀儡機上裝載代理型木馬。代理型木馬的服務端(被控制端)定時監測客戶端(控制端)的存在,一旦發現控制端上線就立即主動連接控制端。為了隱蔽起見,控制端的被動端口一般開在80,這樣,即使用戶使用端口掃描軟件,也會以為是在瀏覽Web。代理型木馬的服務端可以通過代理獲取控制端的lP地址。如事先約定好一個個人主頁的空同,控制者上線后自動上傳一個文本文件,內容是通過加密的lP地址。木馬每隔一定時間取一次這種文件,如果文件內容為空,就什么都不做,如果有內容就按照文本文件中的數據計算出控制端的IP地址。代理型木馬全部使用HTTP協議進行通信,能夠有效地逃避包過濾。攻擊者可以通過代理型木馬(甚至多級代理型木馬)訪問受限站點,有效地逃避監控。  3、VPN技術 VPN,又叫虛擬專用網,相對于以上介紹的兩種方法,VPN可能是一種更快、更受青睞、更正式的方法。本質上,VPN是用正常的信道建立一條專屬的加密信道。VPN可以將國內客戶機連上海外的某個服務器。客戶機的下載及瀏覽請求就會傳送到美國、芬蘭或是日本的服務器,然后這個服務器去發現并將客戶機要找的東西加密傳輸回來。GFW將無法阻止這種經過加密的通信。目前,在中國的外國公司幾乎都在使用這樣的網絡。而且,VPN在國內的使用沒有受到限制,因而個人也能使用。缺點可能是個人需要支付一定的費用。 VPN的具體實現可參見[15]。下圖為使用VPN“隧道”技術示意圖。

六、結語

從上面介紹的幾種軟件成功破網的事實可知,當前GFW的策略是:如果通過GFW的信息由于加密而不能識別,就揮手放行。在技術上講,GFW可以隨時切斷所有代理服務器和VPN連接,但這種做法的后果是極其嚴重的。因為銀行、外國制造商、零售商、軟件廠商等與國外有業務往來的單位或部門都需要成功穿越GFW的應用技術才能存在。可以想象,如果商業明文信息通過公眾互聯網或GFW傳送,會有什么樣的后果,可能沒有哪個公司能冒這樣的風險。同樣,如果GFW關閉免費、容易操作的代理服務器,也會遇到這樣的問題,只不過是結果更溫和一些。 除了下載及瀏覽請求外,加密的郵件也能不通過審查進行傳送。Web界面郵件系統的用戶能夠通過將通常使用的“http”前綴更改為“https”來建立加密通道。例如,使用如下方式來實現郵件的安全傳送: https://mail.yahoo.com/, https://mail.google.com/, e.com/。 為了有一個有利的國際環境,GFW必須在采取的措施中允許例外——即使知道許多網民會借機“透氣”。


小古 2013-07-23 09:29:29

[新一篇] 使用CLR Profiler分析.NET程序

[舊一篇] Windows操作系統讓我們養成了什么臭毛病
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表