如何忽略防火長城(二)

7 戰略考慮

要讓流量順利通過中國防火牆就必須要求雙方忽略複位。“世界其他地方”的機器如果想在中國也能正常訪問,只需稍作調整。但在中國這邊的人就不那麽願意裝一些特殊軟件了。主要問題是防火牆可能做的,不僅是封鎖,還有記錄。隨之而來的可能就是偵查,安裝的特殊軟件便會被查獲,有人便會對你安裝此種軟件的動機産生某種看法。

中國防火牆的報文檢查功能也可以通過加密的方法規避。如果當局通過對內容的統計分析檢測出加密通信,那麽安裝特殊軟件遭到偵查的問題還是一樣的。由于加密系統一般會話結束後便廢棄密鑰,通信內容是色情還是政治演講這是無法分辨的。如果用丟棄複位的方法穿牆,防火牆可以通過日志的方法記錄封鎖觸發內容,當局便可以檢查日志並對這兩種通信采取不同措施。這兩種方法相比有人覺得丟棄複位法更有優勢。

如果複位丟棄廣泛以毫不相關的理由應用,中國政府可能不得不對複位丟棄軟件采取更加容忍的態度。

關于軟件防火牆的一些研究指出如果例行丟棄TCP複位會産生一些副作用。[40]複位報文主要是用來快速報告不受歡迎的傳入連接。如果遠端機工作良好,那麽忽略報文而不響應複位只會産生稍微多一點的流量。

然而,對于不想丟掉所有的TCP複位的人來說,當然這裏也有另一種策略。[41]目前TTL校驗就是一種檢測複位報文真僞的簡單方法。特別地,我們注意到Watson提出的通過第三方僞複位造成連接關閉的複位攻擊[42],通常的防禦手段是仔細驗證序列號。如果再加上複位報文的TTL校驗,就可以更好地識別僞複位。本文作者之一編寫了一段20行的FreeBDS補丁[43],可以丟棄TTL值嚴重偏離的複位報文。到現在用戶體驗都很好。其他操作系統和個人防火牆大概也不會覺得添加這個功能很麻煩。

當然,中國防火牆也可以改進,讓前面提及的規避方法難以實現。特別是它可以較容易地構造正確TTL的複位報文發往觸發報文的相同方向。不過要想獲得相反方向的正確TTL就不大容易了,因爲網絡路由基本上是非對稱的,防火牆不能透視通信的兩個方向。更複雜的方法是將報文從路由隊列中移除(或者延遲到內容檢測完成才放行)。除非報文在抵達終點前被阻止,我們的基本策略──無視防火牆發出的噪音──將繼續有效。

另一套完全不同的防火牆策略則是當封禁被觸發後不向該站點轉發任何報文。不過我們前面提到此法擴展性極差,因爲完成這個“內聯”過程需要路由器間的快速通路──而且,全面的封鎖無疑增加了DoS攻擊的威力。

7.1 打破“防火長城”的公共政策動力

特別是在美國,有相當的政治利益關心著中國之外的公司如何幫助中國政府壓制信息、鎖定持不同政見者和異見網志作者。特別地,在2006年2月的一次國會聽證會上,相當數量的美國大型公司由于其政策和行爲而受到了嚴厲譴責。[44]不過對于如何繞開中國的過濾技術現在也有更多的關注。比如由CIA部分資助的SafeWeb,在2000到2003年運營了一個匿名網絡代理,同時它還開發出一種昵稱TriangleBoy的反審查技術。[45]2006下半年發起的加拿大的Psiphon計劃旨在讓“不受審查國家的公民向在他們防火牆背後的朋友和家人提供自由的網絡連接”。[46]

可以預測本文所描述的通過忽略複位報文規避中國防火牆的方法也會引起相當的興趣。當然也會有“軍備競賽”的危險,所以雙方采取的策略可能複雜得多。讓防火牆立刻失效方法也是相當直接的;不過實現這個方案需要中國外的服務器和中國內的浏覽器同時丟棄複位。服務器一方顯然會有動力去實現複位丟棄,因爲這樣就讓在中國的人可以訪問。不過要是看看中國國內的情形和人們改變浏覽器(或者操作系統)配置的動力就會知道事情遠比這複雜得多。雖然都是運行在中國的機器上,這些軟件卻都是在中國以外開發,特別是大多數軟件都安裝在微軟開發的Windows上。

我們這裏提出一個關于公共政策的問題:是否應該鼓勵或者強制微軟修改程序以幫助規避中國防火牆?顯然對于中國的審查有著廣泛譴責,那麽反審查措施當然會得到政治意見和公共意見的贊同。[47]在本節前面我們提到,對這種改進的技術性反對意見是很有限的,這種改進可以提升對第三方攻擊(防火牆只是第三方幹涉網絡通信的特例)的防禦安全性。然而微軟(以及其他操作系統和浏覽器開發商)很可能不願意冒犯中國政府,那麽在被強制之前他們會一直拖下去。

一般的常識便是軟件容易修改,硬件不易修改。不過把硬件改動的時間與制訂新法規的時間相比就會知道,在強制供應商提供規避防火牆功能的法律生效之前,中國政府就會采用新的封鎖硬件。[48]可以推測,新的硬件會考慮到我們提到的問題並對複位丟棄免疫。因此我們認爲通過立法(強制供應商)並不是實用的辦法,除非立法是普遍意義上的、不關注技術細節的。讓供應商少去討好中國政府多關心其他所有人,這才是最現實的道路。

8 結論

本文我們展示了基于報文內容檢測的“防火長城”。當過濾規則觸發時,僞複位報文便發向TCP連接兩方。然而真正的報文亦完好通過防火牆,于是通過忽略這些複位,通信便不受幹擾。相同方向上的繼發連接也被封鎖(只有在端口相關的情況下),不過通過忽略複位通信仍可以順暢繼續。

以上結果對于中國當局具有相當的意義,他們也許會加強他們的系統、修補防火牆的漏洞。當然我們在前面也說,這並不容易。[49]然而對于希望自由訪問網絡的中國居民來說,以上結果意義就小得多,因爲他們的活動仍然受到記錄和監視。只有當丟棄複位報文成爲普遍做法以後,人們的才能說他們是無意中翻牆的。這種想法也不能算離譜,因爲驗證TCP複位是否爲僞造也是TCP/IP棧應該做的。

我們還展示了封鎖的副作用:爲DoS攻擊提供了可能性。當然這種DoS攻擊只能用在特定節點之間。利用一套封鎖機制來封鎖什麽東西這本身並沒什麽新意,但如果防火牆不作足夠的狀態記錄,我們也看不到避免這種攻擊的簡便方法。

我們展示的結果也關系到其他使用類似複位機制來保護自身利益的國家、機構、企業。他們應該謹慎地認識到這種封鎖完全依賴于被封鎖者的默許。一些相對中國來說的小國家會經受更大的DoS攻擊風險,因爲他們的終端節點要少得多,防火牆在攻擊效果變得顯著之前尚不會過載。

9 補記

2007年春另外一組研究者(Jedidiah R. Crandall和其他人的“ConceptDoppler”項目)[50]的一些實驗也揭露了這個防火牆的工作細節,但複位機制是基本不變的。不過他們的測量表明複位現在開始發生在中國互聯網的內部,不僅是邊際路由器;且與我們一年前觀察到的相比封鎖在繁忙時段變得更加斷斷續續。他們的研究手段也讓他們可以發表一份關于被過濾話題的統計列表。

注釋

    * [1] OpenNet Initiative, “Internet Filtering in China in 2004–2005: A Country Study,” OpenNet Initiative, http://www.opennetinitiative.net/studies/china/ONI_China_Country_Study.pdf (accessed October 21, 2007).
    * [2] OpenNet Initiative, “Probing Chinese Search Engine Filtering,” OpenNet Initiative: Bulletin 005, http://www.opennetinitiative.net/bulletins/005/ (accessed October 15, 2007).
    * [3] Ronald J. Deibert and others, eds., Access Denied: The Practice and Policy of Global Internet Filtering (Cambridge: MIT Press, 2007).
    * [4] Nart Villeneuve, “Censorship is in the Router,” June 3, 2005, http://ice.citizenlab.org/?p=113 (accessed October 15, 2007).
    * [5] OpenNet Initiative, “Probing Chinese Search Engine Filtering.”
    * [6] RST標志置位的TCP報文。這種報文表明一方要求立即關閉當前連接不再傳輸。
    * [7] See Maximillian Dornseif, “Government Mandated Blocking of Foreign Web Content,” Security, E-Learning, E-Services: Proceedings of the 17 DFN-Arbeitstagung über Kommunikationsnetze, eds. Jan van Knop, Wilhelm Haverkamp, Eike Jessen, 617–646 (Dusseldorf, Germany: GI, 2004).
    * [8] Richard Clayton, “Failures in a Hybrid Content Blocking System,” in Privacy Enhancing Technologies: 5th International Workshop Cavtat, Croatia, May 30-June 1, 2005 (Berlin, Germany: Springer, 2006): 78–92.
    * [9] Richard Clayton, “Anonymity and Traceability in Cyberspace,” Technical Report (2005), http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-653.pdf (for details of the complexity, see the extensive discussion in “Anonymity and Traceability in Cyberspace”) (accessed October 15, 2007).
    * [10] Benjamin Edelman, “Web Sites Sharing IP Addresses: Prevalence and Significance,” Berkman Center for Internet & Society, http://cyber.law.harvard.edu/people/edelman/ip-sharing (accessed October 15, 2007).
    * [11] Dornseif, “Government Mandated Blocking,” 626–27.
    * [12] Center for Democracy & Technology v. Pappert, 337 F. Supp. 2d 606 (E.D. Penn. 2004).
    * [13] King Abdulaziz City for Science and Technology: Local Content Filtering Procedure. Internet Services Unit (2004), http://www.isu.net.sa/saudi-internet/contenet-filtring/filtring-mechanism.htm (accessed October 15, 2007).
    * [14] OpenNet Initiative, “Internet Filtering in Burma in 2005: A Country Study,” OpenNet Initiative, http://www.opennetinitiative.net/burma/ONI_Burma_Country_Study.pdf (accessed October 15, 2007).
    * [15] Telenor, “Telenor and KRIPOS Introduce Internet Child Pornography Filter,” press release, September 21, 2004, http://presse.telenor.no/PR/200409/961319_5.html (accessed October 15, 2007).
    * [16] Dornseif, “Government Mandated Blocking,” 642-44; Clayton, “Failures in a Hybrid Content Blocking System,” 78–92.
    * [17] IDS可以將多種不規則的表現轉化爲標准形式,然後與封鎖列表比對作出正確決策。
    * [18] 這種對稱必須存在,因爲防火牆需要同時封禁網絡請求和回應。
    * [19] Villeneuve, “Censorship is in the Router.”
    * [20] SYN(同步)標志標明了打開TCP連接時的第一個報文。
    * [21] 這是對SYN報文的回應,其SYN和ACK(確認)置位,用“SYN/ACK”來表示在TCP連接打開過程中的第二個報文。
    * [22] 關于TCP的准確細節,和發起連接時交換SYN、SYN/ACK和ACK置位報文的方法原因,可以查閱很多好的網絡通信教材,比如W. Richard Stevens, TCP/IP Illustrated, Volume 1, The Protocols (Reading, MA: Addison-Wesley, 1994)。
    * [23] 當我們啓用TCP時間戳且報文包含12字節TCP附加選項的時候,這個值變成1448的倍數。
    * [24] TCP對所有數據報文用序列號進行標記,指示報文包含數據的順序。當報文丟失、延遲或重複時,可以靠序列號來重建數據流。“窗口”是指在沒有收到確認時最多可以發送的數據量。現在的互聯網中,檢查序列號落入窗口(複位報文序列號符合預期)是避免第三方幹擾連接的重要安全措施。
    * [25] Paul A. Watson, “Slipping in the Window: TCP Reset Attacks,” Open Source Vulnerability Database, http://osvdb.org/reference/SlippingInTheWindow_v1.0.doc (accessed October 15, 2007).
    * [26] 存活時間(TTL)初始值由報文發送者確定,通過一個路由就減一。這是爲了確保報文不在路由間無窮循環,當TTL爲零時報文就被丟棄了。于是通過校驗TTL值可以推算報文走過的距離。
    * [27] 如果複位在GET報文之前到達,則此複位報文不會被接受。服務器是FreeBSD系統,在連接的這個階段,TCP棧接受的複位的序列號必須精確匹配上次發送的確認的值,以防止拒絕服務攻擊。在GET報文到達前其值爲+1,于是這時所有的複位都是無效的。
    * [28] SYN/ACK報文含有連接雙方選定的序列號。
    * [29] AS指特定ISP擁有的骨幹網絡。我們采用的是CERNET的“China ASN List”,http://bgpview.6test.edu.cn/bgp-view/cur_ana/ipv4cn /china_asnlist.shtml。互聯網路由器保存有優化路徑列表,而“全球路由表”表達了特定AS對地址的所有權。
    * [30] See Jedidiah R. Crandall and others, “ConceptDoppler: A Weather Tracker for Internet Censorship” (14th ACM Conference on Computer and Communications Security, Alexandria, VA, October 29–November 2, 2007) http://www.cs.unm.edu/~crandall/concept_doppler_ccs07.pdf (accessed October 15, 2007).
    * [31] Earl Carter, Secure Intrusion Detection Systems (Indianapolis: Cisco Press, 2001).
    * [32] 即,檢測報文內容的設備是在實際連接“旁邊的”于是只能檢測“壞”流量而不能對其有任何直接影響。
    * [33] 路由器一般都有根據特定標准進行報文過濾的功能。
    * [34] Yi Wang, Guohan Lu, and Xing Li, “A Study of Internet Packet Reordering,” Information Networking (Heidelberg, Germany: Springer-Berlin, 2004): 350–359.
    * [35] J. Postel, ed., “Transmission Control Protocol, DARPA Internet Program Protocol Specification” (memo, Network Working Group Request for Comments, September 1981) http://www.ietf.org/rfc/rfc793.txt (accessed October 21, 2007).
    * [36] S. Bellovin, memorandum, May 1996, in Network Working Group Request for Comments, “Defending Against Sequence Number Attacks,” http://www.ietf.org/rfc/rfc1948.txt (accessed October 15, 2007).
    * [37] ──譯注,此節所述似已過時。在翻譯完成的時候譯者測試發現,繼發封鎖跟初始端口或者繼發端口沒有關系,所有端口的繼發連接都被屏蔽。
    * [38] HTTP通信不僅在80端口(tcp/http)上被封鎖,還有其他一些端口也受到影響。不過一個端口被封不影響其他鄰近端口,比如80端口被封不影響433端口(tcp/https)。
    * [39] 見圖1。
    * [40] See Clayton, “Anonymity and Traceability,” 81.
    * [41] 未來中國的防火牆還可能通過FIN報文來打斷連接,然而忽略所有FIN報文則會導致不能正常連接,到那時TTL校驗法會更好。
    * [42] Watson, “Slipping in the Window.”
    * [43] Robert N. M. Watson, “Patches Associated with My Academic Research,” http://www.cl.cam.ac.uk/~rnw24/patches (accessed October 15, 2007).
    * [44] Suzanne Goldenberg, “Congress Accuses Google of Collusion,” The Guardian, February 16, 2006, http://www.guardian.co.uk/china/story/0,,1710616,00.html (accessed October 15, 2007).
    * [45] SafeWeb, “TriangleBoy Whitepaper,” SafeWeb, 2003, http://web.archive.org/web/20030417171335/http://www.safeweb.com/tboy_whitepaper.html (accessed October 15, 2007).
    * [46] Psiphon, http://psiphon.civisec.org (accessed October 15, 2007).
    * [47] Stokely Baksh, “US Calls for Fall of Great Firewall,” United Press International, February 15, 2006; Kate Allen, “Today, Our Chance to Fight a New Hi-Tech Tyranny,” Observer, May 28, 2006; Cory Doctorow, “See No Evil?,” Guardian, July 6, 2007.opinion. 47
    * [48] “此法案是近年來孕育期最長的。導致此法案産生的斯科特報告是在五年半前的1996年2月發表的。保守黨政府接受了此報告的提議並立即發出了資訊文書。工人黨1997年的宣言堅定承諾要采取行動。于是1998年出了那本白皮書。不過之後政府就不聞不問于是,過了三年此法案才推出。”Hansard Parliamentary Debates, Commons, 6th ser., vol. 374 (2001), col. 457.
    * [49] 本文中描述的實驗都是在2006年春進行的,本文的初始版發表在2006年6月的隱私增強技術研討會上。
    * [50] ──譯注:見http://www.conceptdoppler.org/。

 

如何忽略防火長城(一)
如何忽略防火長城(二)

 

來源:譯言    原文    翻譯:萬柳烈士旅

Go Back

Comment

Follow me on Twitter