-
在許多大型企業中和有些國家中,為了限制員工或人民訪問某些網站或使用某些網絡應用程序,通常做了一些訪問限制。限制的方法通常有路由器IP過濾和強制使用代理伺服器等幾種方式。
路由器IP過濾指的是透過在路由器中加入外網或國外的IP黑名單,使得內網或國內無法存取外網或國外的這些IP,達到限制存取的目的。強制使用代理伺服器的過濾方式通常只在大型企業中應用,指的是內部網路必須透過代理伺服器才能存取外網,那麼在代理伺服器上可以實現更複雜的過濾機制。本文主要講述IP過濾的攻防戰,關於代理伺服器的攻防戰下次討論。以下依序講述網路存取攻防戰的不斷升級過程:
首先,如果要禁止人們造訪某些網站,那麼路由器管理者可以在路由器中設定IP過濾規則,把這些網站的IP加入黑名單,自然人們就無法存取這些網站了。
之後,人們為了繼續造訪這些網站,就會用代理伺服器繞過限制。代理伺服器的IP成千上萬,而且不停在變化,使得限製網路存取的工作處於被動局面。
然而,由於代理伺服器協定是明文的,透過監聽網路封包並製作自動蒐集整理的程式可以知道人們訪問了哪些代理伺服器並自動把代理伺服器的IP加入到IP黑名單中,這樣使用普通代理伺服器繞過度存取限制的方式就失效了,繞過網路存取限制的工作處於相當被動的局面。
所以,為了避免被偵測到代理伺服器位址,加密代理軟體應運而生。使用者和代理伺服器之間的通訊協定進行了加密,使得無法簡單透過偵聽網路資料包分析出代理伺服器的IP位址。又一次使得限製網路存取的工作處於被動局面。
但是,加密代理軟體也需要和代理伺服器進行通訊,也需要知道加密代理伺服器的IP位址。所以加密代理軟體一般會在啟動時去某些發佈加密代理伺服器IP位址的地方取得加密代理伺服器的IP。那麼,只需要單獨拿出一台計算機,啟動加密代理軟體,對這台計算機的網路通訊進行監視,那麼即可知道發布加密代理IP位址的地方,從而對發佈點進行IP過濾。而且可以做成程式自動啟動加密代理軟體,自動監視資料包,自動把加密代理IP的發佈地點的IP加入黑名單,這樣加密代理軟體無法取得加密代理的IP,加密代理軟體失效,繞過網路限制的工作又一次處於十分不利的位置。
加密代理軟體為了對付這種情況,就需要把存取代理IP發佈點的流量混雜在存取非代理IP發佈點的流量中。例如,加密代理軟體啟動時,首先訪問其它大量網站,在訪問其它網站之中的某一次訪問代理IP發佈點,這樣就把流量進行混雜了,無法通過簡單的網絡數據包偵聽獲得代理IP發布點的IP位址。如果把所有偵聽到的地址全部加入黑名單,那麼將會誤封很多網站。限製網路存取的工作又處於不利的位置。
然後,為了能繼續對網路存取進行限制,網路管理員就轉而對加密代理的IP(而非發佈點的IP)進行過濾。在加密代理軟體啟動完畢之後,透過加密代理下載一個大文件,那麼流量比較大的IP即為加密代理的IP。透過這種方法,網路管理員仍舊可以做出自動封鎖加密代理軟體的程序,繞過網路限制的工作又失敗了。
那麼,加密代理軟體可以採取同樣的思路,把訪問代理IP的流量混雜在其它流量中,並使分散的流量平分並不斷變換代理IP,使得無法透過網路封包流量統計獲得加密代理的IP。人們又可以重新繞過網路存取限制了。然而,因為流量進行了平分,所以網速通常只有幾分之一了,大部分流量都耗費在混淆網路管理員的程式上面了。
到了這裡,網路存取攻防戰似乎走到頭了,但是聰明的網路管理員並不是束手無策了。透過對加密代理軟體進行逆向工程,還是可以找到代理IP的發佈點,從而過濾這個發佈點。不過,這樣已經不能透過分析網路流量用程式自動找出IP進行過濾了。
最後,加密代理軟體為了防止被逆向工程,對加密代理軟體本身進行了軟體加密處理,使得逆向工程變得十分困難。接下去就是軟體加密與破解之間的智力較量了。
總結:如果不進行網路流量混淆,那麼能被程式自動找出有用的IP進行過濾。如果不對加密軟體進行加密,也比較容易被逆向工程,從而找到有用的IP進行過濾。加密代理軟體作者需要時時提防軟體被破解,一旦被破解,那麼需要對升級加密代理軟體,使得限製網路存取的工作需要重新破解軟體才能繼續實施。
作者的Twitter: @davidsky2012 ,作者的Google Reader: https://www.google.com/reader/shared/lehui99