摘要:該文介紹了一種新的安全通信技術—跳端口技術,借鑒了在通信領域發展比較成熟的跳頻技術的思想,實現計算機網絡環境下的安全通信。跳端口傳輸能夠以較小的代價獲得安全傳輸。跳端口技術的原理是通信雙方端口隨時間不間斷地跳躍,使攻擊者定位不到開放的端口,從而就不能對系統進行攻擊,保證了系統的安全性。該文描述了利用跳端口技術進行信息傳輸的原理、端口跳變機制以及實現方法等,證明了該技術的可行性。
關鍵詞:網絡安全;通訊技術;跳端口
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)27-7632-03
Port Hopping Communication Technologies Based on Internet Protocol
WANG Feng-lei
(Qingdao Hismile College, Qingdao 266100, China)
Abstract: The paper introduces a new communications technology-port hopping,this technologyusing the mind of frequency-hopping technology,it implements the communications of computer networks.Port hopping can transfer information with a smaller price。Using port hopping technique,the ports of communication both hop continuously with random time function,so an attacker can not locate the opening port,in other words,which will not be able to attack the system to ensure the safety of the system.This paper introduces the principle,the mechanisms and methods of implementation about port hopping,and prove the feasibility of the technology.
Key word: network security; intrusion tolerance; port hopping
近幾年,網絡攻擊倍增,人們設計了防火墻、入侵檢測等安全技術,但目前為止它們只能較有效地抵擋已知的和定義好的攻擊,且性能及誤警率等方面比較差。一種新的網絡信息傳輸方法—跳端口技術(Port Hopping,簡稱PH)應用到網絡安全中。該技術采用跳頻技術的原理、方法,在信息傳輸過程中,通信雙方的端口隨跳變圖案有規律的變化,這樣既保證了通信的正常進行,又提高了信息傳輸的安全性,使攻擊者不能確定通信雙方的端口,也就無從偵聽、竊取通信信息,更不可能通過端口入侵。
1 Internet協議族簡介[1]
TCP/IP協議族是一組包括TCP協議和IP協議,UDP(User Datagram Protocol)協議、ICMP(Internet Control Message Protocol)協議和其他一些協議的協議組。TCP/IP協議族是美國國防部高級研究計劃局計算機網(Advanced Research Projects Agency Network,ARPANET)和其后繼因特網使用的參考模型。ARPANET是由美國國防部贊助的研究網絡。最初,它只連接了美國境內的四所大學。隨后的幾年中,它通過租用的電話線連接了數百所大學和政府部門。最終ARPANET發展成為全球規模最大的互連網絡-因特網。
TCP/IP參考模型分為四個層次:應用層、傳輸層、網絡互連層和主機到網絡層的鏈路層。如圖1所示。
鏈路層,只是要求能夠提供給其上層-網絡互連層一個訪問接口,以便在其上傳遞IP分組。網絡互連層的功能是把分組發往目標網絡或主機。同時,為了盡快地發送分組,可能需要沿不同的路徑同時進行分組傳遞。傳輸層的功能是使源主機和目標主機上的對等實體可以進行會話。在傳輸層定義了兩種服務質量不同的協議。應用層面向不同的網絡應用引入了不同的應用層協議。其中,有基于TCP協議的,如FTP、TELNET等;也有基于UDP協議的,如SNMP、TFTP等。
TCP/IP協議族涉及網絡的各個層次,是網絡通訊的基礎。Internet應用(服務器和客戶端)中,為了交換數據而采用TCP或者UDP協議,并且用套接字(socket)來確立一個通信通道。我們用通信雙方主機的IP地址及TCP、UDP協議端口號來定義通信通道雙方的確切“位置”,例如,<源IP地址,源端口號,目的IP地址,目的端口號>。然而對一次會話而言,無論采用TCP協議還是UDP協議,通信雙方的端口號是固定不變的。
2 跳端口技術簡介
美國陸軍研究實驗室(Army Researcher Laboratory,ARL)提出網絡安全中可以利用跳頻 [2]。無線通信中的跳頻技術,通過變換通信頻率以達到抗干擾和抗截獲的目的,為網絡環境下實現隱蔽通信提供了非常好的借鑒。跳端口技術借鑒了在通信領域發展比較成熟的跳頻技術,實現了計算機網絡環境下安全的隱蔽通信。
傳統定端口通信方式是收發雙方約定一對固定的端口號,這十分類似無線通信中的定頻通信。攻擊者只要掌握了通信雙方相應的端口號或中心頻率,就能全部截獲通信的內容或者干擾通信的進行。為此通信界學者研究出一種新的技術—跳頻通信技術。跳頻(Frequency Hopping,FH)[3]通信時雙方擁有相同的頻點資源和跳頻圖案,通信時雙方實際使用的頻率變化可以高達每秒幾百次到上千次,第三方企圖通過同步跟蹤的方法竊取信息是難以實現的。跳頻的工作原理是指收發雙方傳輸信號的載波頻率按照預定規律進行離散變化的通信方式。
跳端口通信在通信中的一個重要特征就是端口號隨機跳躍,通信雙方不斷地在新端口號上建立通信連接,每一個數據包和每一次會話所使用的端口號都是不一樣的。在跳端口通信中,雙方通過連接初始的數據交換,擁有約定好的跳端口圖樣和跳端口時間,在通信過程中按照跳端口圖樣進行端口的跳變,這樣偵聽者就難以掌握端口跳躍規律,從而難以跟蹤通信全過程。
3 基于TCP/IP協議族的跳端口技術
3.1 通信的基本機制
端口的跳動序列是一個時間函數,將原本連續的傳輸時間分割成離散的得時間片Si,這里i的取值范圍是正整數{0,1,2…},兩時間片之間有延遲時間。在傳統通信過程中,針對某一個會話常用的基于TCP/UDP協議網絡通信服務中,端口號通常是不變的。而如果采用了跳端口技術,同一個服務在不同的時間片所采用的端口號是不同的。
設Pi表示在時間片Si內某服務所使用的端口號,Pi由公式(1)所決定的,這里k是服務器和客戶端之間的共享密鑰,f是某一個偽隨機數生成算法。
Pi=f(i,k) (1)
當一個客戶端需要同服務器進行通信時,首先利用利用公式1,通過獲取的共享密鑰k和時間片序號i(i∈{0,1,2…}),來確定服務器當前端口號Pi,服務器端口是根據端口跳變圖案24小時連續跳變的,并且只接收帶有跳端口號圖樣中指定端口號的數據包。當服務器收到攜帶“不正確”端口號的數據包時,那些數據就很容易地被識別并且被過濾掉。即使惡意數據包被系統接收,那么在下一時刻也會把其他的惡意數據包丟棄。在這個過程中,系統不需要拆包檢查數據的內容就能監控數據包的合法性。
3.2 臨界時間的處理
根據文獻[4][5],所謂臨界時間就是指在端口進行跳變的時候,前后兩個相鄰的時間片的空隙時間。數據包在臨界時間到,我們采用端口延遲關閉的方法來處理。當某端口通信結束后,服務器和客戶端的通信連接并不會立即關閉,通信的兩端口在臨界時間內一直處于連接的活動狀態。這樣處理也是為了保證通信的效率,在下一個跳轉的端口上建立新的通信連接,等待數據發送。因此在Si與Si+1之間存在一個時間重疊。重疊時間用于臨界信息的處理以及下一個通信連接的確立。我們把重疊時間段定義為額外傳輸時間,稱為σ,σ是通信雙方進行異常信息處理以及收發端之間傳輸時延所耗費的時間;非重疊時間段稱為必要傳輸時間段,定義為τ。時間段的結構示意圖如圖2所示,重疊時間段示意圖如圖3所示。
3.3 通信同步性
由于跳端口通信需要頻繁建立新的通信連接,故通信中保持同步非常重要,而且對網絡的同步性要求更高。通信雙方必須要同時清楚地知道對方端口的跳變方式,否則就會因為不同步而丟掉數據包,從而達不到跳端口的目的,甚至連正常的通信都無法保證。
采用前置同步法對通信時鐘進行同步,處理過程為客戶端首先向服務器發一個同步信息,在信息中可以包括密鑰。所以采用前置同步方式進行始終一致性確認,而且通過該同步方式提前獲取密鑰,并對雙方生成的跳端口序列進行驗證和確認,跳端口序列的生成算法事先通過其它方式進行雙方的確定,數據收發兩端要保持生成跳端口序列算法的一致,以保證通信雙方的跳端口序列在通信中保持一致。
同步之后,通信雙方分別利用公式1生成各自的跳端口圖案,雙方生的跳端口圖案一定要保持一致,或者雙方圖案有一定規律的變化。在通信中,收發端口按照跳端口圖樣進行“有規律”的跳變,當某一端口受到干擾或被占用時,可通過異常處理,跳變至下一個端口處進行通信。特別的,當跳端口圖樣用盡時,收發兩端生成新的跳端口圖樣,并進行交換和確認。
3.4 同步中的密鑰管理
公式中1中的參數f、t及k,是跳端口抗干擾能力的保證,本小節討論如何安全地獲取密鑰K。跳端口技術需要客戶端知道服務器在當前時間片內用于決定端口號的密鑰ks,上節已闡述,我們采用前置同步法進行網絡同步確認,在同步過程中對密鑰進行加密傳輸,在傳遞過程中有兩種加密形式可以采用:對稱密鑰加密和公共密鑰(PKC)加密。
3.5 系統的實現原理
從實現的角度來說,這種機制可以采用中間件的方式來實現。我們可利用現有的網絡協議,像TCP、UDP協議均可以采用。在端口選擇上,跳端口就像一個實際的跳頻系統有2^16個可以選擇的跳頻率一樣,跳端口PH技術有64K個可能的端口用于傳送信息。
基于會話的跳端口(Session Based Hopping,SBH)技術采用TCP協議,雖然有通信效率的限制,因為在采用TCP通信時,需要三次握手處理,一個鏈接一旦確立之后,雙方的地址及端口號也就相應地確立而不會改變,所以采用TCP協議實現的時候,效率要差一些??蛻舳税l送SYN對服務器當前正在使用的端口號,服務器收到SYN之后,就會在本時間片內進行通信,通過設置底層相關軟件,在本時間片內通信結束時,自動關閉通信端口號而開啟另外一個。
基于數據包的跳端口(Packet based Hopping,PBH)采用UDP協議,前文我們討論了時間片因素,在服務器端,在某時刻開放一個新的端口并且在此時刻關閉這個端口,同時底層相關軟件設置只能接受含有正確端口號的UDP數據。采用UDP通信時,客戶端的端口號可以不變化,只要按時改變目的端口號即可。
TCP或者UDP使用端口號信息傳送到上一層,并且使用端口號來分辨在同一時間通過網絡的不同對話。理想情況下,兩種跳端口的方法都只是簡單的在網絡層和數據鏈路層之間進行的打包。這些層都是在TCP/IP或UDP的下面,然而TCP/IP或UDP是在傳輸層和會話層進行的。
4 結束語
采用跳端口技術的通信網絡比定端口通信網絡,在信息傳輸安全方面有了顯著的提高,系統的端口隨時間不間斷地跳躍,使攻擊者定位不到開放的端口,從而就不能對系統進行攻擊,保證了系統的安全性。
參考文獻:
[1] (美)W.Richard Stevens.TCP/IP詳解 卷1:協議[M].范建華,譯.機械工業出版社,2000:4.
[2] 馬祺,戴浩.運用跳端口技術進行信息隱藏[J].計算機工程與設計,2007(4):849-851.
[3] Proakis J G.DigitalCommunications.Fourth Edition[M].北京:電子工業出版社,2003.
[4] Lee, H.C.J., Thing, V.L.L.Port Hopping for Resilient Networks[J].VTC2004-Fall, IEEE 60th Volume 5, Issue,26-29.
[5] 楊林,向京,馬祺.一種新的網絡隱蔽通信技術—跳端口技術[J].國家信息安全測評認證,2004.