Internet網路瀏覽的監聽、攔截和過濾-淺析GFW原理

來源:互聯網
上載者:User

標籤:class   blog   http   com   get   strong   

一月 2, 2010 by Hans Adreaman 

我國網路界“和”風勁吹,GFW威力無邊,網民不斷抱怨網站被“牆”,這固然是制度、利益等政策性原因導致的,我們這裡就不多言政治了,僅僅對相關技術問題探究一二。

據我所知,網路瀏覽的攔截無外乎下列三個方式:IP過濾、內容過濾和DNS劫持。這些過濾的前提就是瀏覽者“瀏覽”動作的相關IP報文均能被攔截者截獲和分析。這一前提對於ISP來說是天然成立的。

先簡單介紹一下一次瀏覽網頁的技術流程。使用者在終端上使用瀏覽器(IE、Firefox等)向網頁伺服器(例如IIS、Apache等等)發出一個HTTP協議的請求報文(一般是一個HTTP的GET或POST請求),這個請求報文中指明了瀏覽器想要擷取的網頁內容,網頁伺服器收到這個請求後把相應訪問結果以HTTP響應的方式發回給瀏覽器(例如狀態代碼200表示成功,404表示網頁不存在,等等類似的一系列狀態),而且如果是可正常處理的訪問請求,就把使用者請求的網頁內容(一般就是HTML字串)發送回使用者的瀏覽器,瀏覽器收到之後,將HTML字元碼解釋後以網頁的形式呈現在使用者面前。當然,這一系列HTTP協議的互動是以TCP串連為通道通訊的,TCP串連的建立和維護是這一切的基礎和前提。

假如使用者終端和網頁伺服器的TCP串連通道之間存在防火牆等類似的裝置,這些裝置就可以截獲這個TCP串連的建立,乃至其上承載的HTTP互動動作,使用者和伺服器之間的任何HTTP通訊都沒有秘密可言,防火牆可以決定整個瀏覽過程的各個方面。

一、IP過濾(封IP)

攔截者(防火牆)截獲了瀏覽者的HTTP請求,發現瀏覽器請求的網站的IP是“非法”、應該被禁止訪問的,就可以直接丟棄掉(這樣網頁伺服器就不能收到)這個請求,然後防火牆再分別把瀏覽器和網頁伺服器之前建立的TCP串連斷開(可通過TCP的RST報文實現,實際上,TCP串連的建立也是在防火牆的監管下進行的)。對使用者的每次請求都進行這樣的處理,這樣一來,搭建在這個IP地址上的網頁伺服器的所有網頁就都無法訪問到了。

二、內容過濾

網頁伺服器收到瀏覽器的請求後,會將自己的服務內容(網頁內容)發回給瀏覽器,這時,位於瀏覽者和網頁伺服器之間的防火牆截獲這一內容(一堆字串),一旦發現這些內容有“非法”資訊,丟掉這一內容報文,RST掉兩端的TCP串連,這一含有“非法”內容的網頁就不能被訪問到了。

三、DNS劫持

瀏覽者訪問網站時,一般是使用網站的網域名稱來訪問,也就是說,以這個網域名稱為目的地建立前面提到的TCP串連、再發送HTTP請求報文等。但是TCP和HTTP這些IP報文,實際上是以IP地址來訪問目的伺服器主機的,所以,瀏覽器終端首先要把這個網域名稱轉換為IP地址。這個轉換過程是通過DNS協議來進行的。瀏覽器發起DNS請求,問DNS伺服器“這個網域名稱的IP地址是多少?”,DNS伺服器回應“這個網域名稱的IP是xxx.xxx.xxx.xxx”。然後瀏覽器得到目的IP地址後,就可以如前面介紹的那樣繼續後面的瀏覽過程了。首先,網路服務商(ISP)給瀏覽器自動分配的DNS伺服器是可以“搗亂”的,它提供的DNS服務是否“可靠”關係到DNS的結果;另外,防火牆當然可以截獲瀏覽器終端和DNS伺服器之間的 DNS報文(防火牆無所不能,因為它處於我們和伺服器之間,我們與外面互動的所有報文都經過它),所以它可以讓你獲得不到這個IP地址,也可以給你假的IP地址!剩下的就不用多說了吧…

 

應對之策:

首先,孫猴鬥不過如來,因為猴子永遠在佛祖的手中。使用者使用ISP的網路,就不可能有ISP對付不了的手段。

對於IP過濾,簡單直接,封一個IP就換一個IP。

對於內容過濾,網頁伺服器提供HTTPS訪問支援的話,瀏覽器用https方式訪問網頁伺服器,所有的報文都是ssl方式加密的,那防火牆雖然可以截獲報文,但是它無法“看懂”,也就無法過濾。瀏覽者撥入專用的VPN網路的技術也是在此範疇之內。

對於DNS劫持,可以不使用ISP提供的DNS而自己指定更可靠的DNS,另外,瀏覽終端的作業系統也可以跳過DNS解析這一步,例如HOSTS檔案等。

另外,如果瀏覽者可以找到並使用合適的Proxy 伺服器(就是一個位於防火牆和網頁伺服器之間的伺服器主機),瀏覽者就可以通過這個Proxy 伺服器跳過某些防火牆的封鎖。

 

四 特定連接埠封鎖

GFW會丟棄特定IP地址上特定連接埠的所有資料包,使該IP地址上伺服器的部分功能(如SSH的22、VPN的1723或SSL的443連接埠等)無法在中國大陸境內正常使用。 

在中國移動、中國聯通等部分ISP(手機IP段),所有的PPTP類型的VPN都被封鎖。 

2011年3月起,GFW開始對Google部分伺服器的IP地址實施自動封鎖(按時間段)某些連接埠,按時段對www.google.com(使用者登入所有Google服務時需此網域名稱加密驗證)和mail.google.com的幾十個IP地址的443連接埠實施自動封鎖,具體是每10或15分鐘可以連通,接著斷開,10或15分鐘後再連通,再斷開,如此迴圈,令中國大陸使用者和Google主機之間的串連出現間歇性中斷,使其各項服務出現問題。GFW這樣的封鎖手法很高明,因為Gmail並非被完全阻斷,這令問題看上去好像出自Google本身。這就是你們認為Google抽風的原因。 

 

五、SSL串連阻斷

GFW會阻斷特定網站的SSL加密串連,方法是通過偽裝成對方向串連兩端的電腦發送RST包(RESET)幹擾兩者間正常的TCP串連,進而打斷與特定IP地址之間的SSL(HTTPS,443連接埠)握手(如Gmail、Google檔案、Google網上論壇等的SSL加密串連),從而導致SSL串連失敗。 

當然由於SSL本身的特點,這並不意味著與網站傳輸的內容可被破譯。 

 

Reference:

http://adreaman.com/0102internet-web-snooping-block-filter-firewall-gfw.html

http://blog.renren.com/share/201954194/12564032401

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.