(武漢大學 軟件工程國家重點實驗室/計算機學院, 湖北 武漢 430072)
摘 要:首先介紹了TCP/IP協議中的漏洞及常用的IP欺騙的攻擊手段,并針對以上問題引入生物多樣性的思想,使得對話雙方在通信中進行計算機認證,用多樣性函數方法代替可預知序列號,建立安全的通信信道。
關鍵詞:網絡安全; TCP/IP協議; 多樣性; 安全認證
中圖法分類號:TP393.08文獻標識碼:A
文章編號:1001-3695(2006)08-0104-03
Strategy Based on Diversity to Prevent IP Cheating
CHENG Xiao ou, LIANG Yi wen
(State Key Laboratory of Software Engineering/College of Computer Science, Wuhan University, Wuhan Hubei 430072, China)
Abstract:This paper first discusses the limitations of the TCP/IP protocol suite and the usual attacking ways based on IP cheating. Later, the paper introduces the theory of diversity in biological systems to this field. In this model, both sides take computer authentication and use variety of functions instead of predictable sequence numbers while exchanging data, establish a safer channel.
Key words:Internet Security; TCP/IP Protocol; Diversity; Security Authentication
隨著信息時代的到來、計算機網絡的普及化,人們開始越來越依賴于互聯網所提供的通信平臺和資源共享,由此對網絡的安全要求也在不斷升高。網絡安全面臨著越來越高對信息保護的要求和日益增強的攻擊手段,因此將成為信息技術中的主要問題。
現有的Internet是基于TCP/IP協議簇建立的,而該協議在制定初期只限于軍方內部的使用,因此沒有充分考慮安全問題,在網絡安全方面存在很多漏洞[1],其中最常用的攻擊手段便是IP欺騙與IP偽裝。TCP/IP參考模型的網絡接口層包括網絡層與數據鏈路層,其主要負責把IP包放在網絡傳輸介質上和從網絡傳輸介質上接收數據幀。在執行此功能時主機過分依賴于IP地址認證,從而不能有效地防范IP欺騙與IP偽裝,需要新的安全認證策略來堵住網絡安全的漏洞。
多樣性的概念來源于生物界,是指具有相同本質的事物在表象上有一定的不同,生物和它們組成的系統的總體多樣性和變異性提高了物種生存幾率,多樣性是生物群體安全的基礎。而在網絡安全方面,多樣性的目的是提高認證過程的復雜性和不可預知性。本文借鑒對安全認證多樣性方法的研究,旨在介紹一種新的安全認證策略,防范IP欺騙,增強網絡安全。
1多樣性方法在現階段的應用
1.1軟件的多樣性[2]
由于軟件,特別是操作系統之間普遍存在的同構性,使得攻擊者只要發現某個方面的安全漏洞,就能有效地攻擊類似的軟件甚至操作系統。基于生物多樣性的原理,在程序的基本語義不變的前提下,通過一些細節的改變(文法、處理流程等),使程序運行在不同時間、不同環境下具有不同的表現特征,從而實現軟件的多樣性,減小攻擊特別是重復攻擊的可能性[3]。
1.2入侵檢測技術研究[4]
計算機的入侵檢測系統的功能類似于生物體的免疫系統。免疫系統是一個多樣性的系統,不同機體的免疫系統各不相同,對同種抗原的反應能力也不相同。生物體正是通過免疫系統的多樣性來增強個體和群體的健壯性?;谝陨显恚庖哂嬎銠C應根據特權進程的系統調用及參數短序列來區分正常行為和入侵行為,只有與正常行為特征數據庫相匹配的行為才被視為正常。免疫計算機具有自適應能力,類似生物體免疫系統中抗體的產生,從而能抵抗更多的入侵行為。
2TCP/IP協議簇的多樣性
2.1TCP/IP協議簇的缺陷
TCP/IP是面向連接的協議,它利用不可靠的IP數據報為通信雙方提供面向連接的、可靠的數據流服務。面向連接意味著使用TCP的兩個應用程序在交換數據之前必須建立TCP連接;可靠性是通過為每一個要傳送的數據字節分配一個序列號,并從接收方獲得一個確認信息,TCP得以進行可靠的數據傳遞。
它在通信的兩臺主機間建立端點對端點的邏輯連接。在數據傳輸之前,兩端點間交換信息機以建立對話,稱為握手[5]。TCP使用的握手方式為三段式握手,一共要交換三個數據段。開始連接時,主機A傳送給主機B一個數據段,設置了同步序號SYN位。這個數據段告訴主機B,A希望建立連接以及A將使用的數據段起始序號(序號用來保持數據的適當順序)。B主機用設置了ACK及SYN位的數據段回應A。B的數據段向A確認,收到了A的數據段,同時也告知將使用的起始序號。最后,A再傳送一個數據段給B,同時B已收到數據段,接著開始傳送真正的數據。經過這個交換步驟以后,主機A的TCP確知遠程TCO正在運作并準備接收數據。連接一建立,數據就開始傳送。當相互合作的模塊傳送完數據時,再來一次三段式握手,以結束連接。
基于以上原理,文獻[6]提出了入侵者通常采用的TCP序列號襲擊與欺騙攻擊步驟:
(1)讓可信賴的主機A休眠,使之處于停頓狀態。
(2)偽裝成被信任主機A的IP地址,然后向目標主機B發送連接請求。
(3)目標主機B對連接請求作出反應,發送SYN/ACK數據包給被信任主機A,由于被信任主機已喪失處理能力而拋棄該SYN/ACK數據包。
(4)侵襲者再次偽裝成A向目標主機發送ACK(侵襲者所預測目標系統的數據序列號數據包),如果序列號正確,目標主機將會接收該ACK,從而建立正式的相互連接。目標系統會認為這是內部系統的安全連接,開始進行數據傳輸。
這樣,侵襲者假扮成目標系統B的被信任主機A,便可對目標系統進行隨心所欲的攻擊。在這樣的認證過程中,初始序列號像是隨機選擇的,但是其實是由一種非常簡單的算法產生的,使入侵者能有把握的預測系統將要發出的序列號??深A知的序列號為網絡安全留下漏洞,因此,我們必須找到不可預知的安全認證策略,使入侵者難以找到重復的方式來侵入主機。
2.2多樣性思想的引入
TCP采取的握手方式僅僅需要一個序列號便完成了認證過程,序列號具有的可預知性,使得計算機高手容易對通信過程進行攻擊,獲取非法信息。本文介紹的多樣性的方法是在通信的認證環節用多樣性函數的隨機變換來替代可預知的序列號,使得入侵者無法用重復的方式多次截取傳輸的信息,也就無法偽裝被信任主機參與通信。而對于通話雙方的機器而言,這種變化又是可以用簡單的方式得到和共享的,從而不會影響正常的通信。
3安全認證策略多樣性方法的實現
3.1多樣性的基本模型
先看一個基本模型(圖1):在通信的主機A和目標主機B之間建立安全信道,在安全信道建立后,兩機之間的通信正式開始。在主機A和主機B上分別設置相同的初始函數池,a1,a2,a3,…,an和函數發生器f1,f 2,f3,…, 當數據包傳到主機A時,主機A隨機調用一個函數和函數初始值,并進行運算,如b=fi(a),同時把運算結果b,函數映射的序號i和函數初始值a 封裝入數據頭Head發給B(當然,兩種數據的傳輸需要分開傳輸以增加安全性)。B收到A發來的數據頭,對應A發來的函數序號,調用函數發生器,進行反函數運算, s=f-1i(a)看函數初始值是否為a ,如果是則接收A發來的數據包,反之丟棄。在A,B的一次會話期內采用同一個函數表達,每傳輸一次數據包就更新一次函數表達。
3.2多樣性思想的體現
在這一算法中,不同層面的多樣性的應用保證了通信過程的安全性。
3.2.1序列的多樣性
我們運用一個生成器產生一個密鑰流,該生成器運用一個秘密的密鑰種子產生一個長偽隨機序列(圖2)。例如我們已知的Fibonacci數列,這個序列在通話的兩臺主機間是共享的。主機要進行通話時,我們用上節中談到的辦法引入函數庫,讓主機進行函數運算。但我們采用的自變量是由主機任意指定的,為了提高通信的安全性,改為采用隨機序列中的某一位的值。主機現在要指定的由具體的自變量的值變為序列中的一個序號,那么即使通信過程中這一部分的信息被截獲,入侵方得到的也只是一個序號,由于入侵方沒有正確的序列,所以這個信息對于他來說是無效的,對正常的通信產生不了任何影響。必要的時候我們也可以對序列進行變化,復雜的序列變化方法可以增加信息截取的難度。需要指出的是:序列是可以通過大量數據的分析得到的,所以對于長期的需要大量信息交流的機構,序列的變化就會顯得非常必要了。
文獻[7]介紹了一個基于鏈路層的安全策略模型,首先建立對話雙方的安全信道,保證對話雙方能同時且不受干擾地交換信息。通過認證信息發生器、認證信息回復器與驗證器進行計算機間的認證,確保對話雙方不被替代、欺騙。然后,認證鑰匙組件與認證鎖組件協商對稱加密算法和密鑰,序列生成器協商隨機序列算法和隨機種子,并建立信道。本文嘗試用多樣性的辦法來替代上述序列生成器。這樣的一個安全策略模型,在以上討論的兩機間發送偽隨機序列的過程中,是安全通信的一個基本構件和保證。
如上文所說,用隨機序列代替主機直接指定函數自變量的值增加函數運算的不可預知性,提高了運算的復雜度,我們也可以類似在函數中采取復合函數運算的方法增加算法內部的復雜性。密鑰流生成器用不同的密鑰種子,產生兩個或多個偽隨機序列,把它們分多次發送給接收主機B。隨后,主機A自定義一種新的排列方式,根據剛才的幾個序列產生一個新的序列,并告訴主機B這種新的排列方式。那么主機B將會根據這些信息產生一個與A的新序列一樣的序列,并根據A發過來的序列號,在序列中選取某個值作為函數的自變量。
不妨來看一個簡單的例子。
序列1:a1,a2,…,an;序列2:b1,b2,…,bn 。主機A定義的運算設為ci=ai+bi則將得到一個新的序列c1,c2,…,cn。
主機B得到的并不是直接的序列C ,而是序列1和序列2,以及新序列的運算式ci=ai+bi。
這樣就可以增加通信的安全性。利用類似的方法我們可以分解所要發送的信息多次發送來增加信息截取的難度。
類似的運算可定義很多,由此組成不同的排列方式來構成新的序列。
3.2.2密鑰流生成器的多樣性
由隨機序列生成中可以很明顯地看出,密鑰流生成器的多樣性取決于密鑰種子的多樣性。但是如果沒有一種有效的機制來保證生成器的多樣性,那么如果采用相同的密鑰種子將會得到相同的隨機序列,顯然這不是我們想要的結果。如果入侵者采用針對密鑰流生成器的攻擊,很有可能會得到這個生成器生成隨機序列的算法,從而為網絡通信的安全制造了隱患。唯一的解決方法就是通過實現生成器的多樣性,也就是要求一個生成器生成密鑰流的算法不是單一的,而是具有變換性的,使得即使采用同樣的密鑰,也能得到不同的輸出序列。這一思想與分組密碼算法中的密文鏈接的思想是一致的,該思想掩蓋了明文的數據模式,提高了密碼的安全性。
3.2.3函數運算的多樣性
顯然在上面關于函數方法的多樣性的引入中講的是一個比較簡單的情形,但是如果在網路上有不懷好意的機器在追蹤兩邊發送的認證信息,那么如果一個函數被運算多次,且函數本身較為簡單,如 f(x)=ax+b,那么機器只需經過兩次就可以得出a,b 的值,得到函數庫信息從而偽造機器A給機器B發信息。所以,我們設置了一種更有安全系數的認證方式。
我們不再采用單一的函數表達式,而改用復合函數。讓主機A進行復合函數的運算,主機A先在兩機共同的函數庫中隨機挑選兩個函數,fi…fj并挑選一個初始值a, 計算b=f i(…fj(a)),并將i…j, 即函數在庫中的序號(按照一定的順序排列)和結果 b 發送給主機B;主機B在收到A的信息以后,進行反函數運算,求出函數初始值,并與A發過來的初始值序號相比較,若相同則接收A發來的數據包。對于入侵者而言,要偽造數據就變得困難了許多。多次發送不同初始值的重復確認也可以增加數據傳輸的安全性。
3.2.4函數的選擇
從以上模型中很容易看出,要提高網絡通信安全,函數庫要盡量選用復雜的函數。在當今密碼學的研究中,人們早已認識到線性變換的不安全性,在廣泛采用的DES,AES等密碼技術中,非線性變換,即S盒變換,都是整個加密過程中必不可少且最為重要的一部分,決定著整個加密算法的安全性。在這個函數模型中,選用非線性變換顯然是比線性變換更好的選擇。
為了完成反函數的驗證過程,且要求函數本身必須是雙射的,即對于每一個 f(x),有且僅有一個x 與之對應。但有時我們也可以通過選擇非雙射函數并同時發送確認信息來進一步加強其安全性,也就是說對于一個函數值主機A可以自行計算出所有的自變量值并與接收主機B利用反函數求出的自變量的值進行比較,這樣多個值的確認可以更一步地加強整個過程的安全性。同時,通信主機A必須是一個可信任主機,才可以讓A與B在通信中使用同樣的函數庫。這樣的算法可以提高網絡安全認證的可信度。
4結束語
本文針對TCP/IP協議簇缺陷提出一種簡單的安全策略,構造了一個基于鏈路層的安全模型。這個模型在鏈路層建立一條安全信道,并用多樣性的函數運算代替可預知序列號來防范IP欺騙,保證通信安全,希望能用新的方法建立一個具有高安全性的網絡。
參考文獻:
[1]Florian Kerschbaum, Eugene H Spafford, Diego Zamboni. Using Embedded Sensors for Detecting Network Attacks[R]. CERIAS Tech. Report, 2000.
[2]Janusz Zalewski, Wolfgang Ehrenberger,et al.Safety of Computer Control Systems: Challenges and Results in Software Development[J]. Annual Review in Control, 2003,27:23-37.
[3]揭瑋,梁意文,等. 基于穩定模型的軟件多樣性與安全初探[J]. 計算機工程與應用,2004,40(7):53-55.
[4]Anchor K P, Williams P D, Gunsch G H,et al.The Computer Defense Immune System: Current and Future Research in Intrusion Detection[C]. Proceedings of the 2002 Congress on Evolutionary Computation, 2002.1027-1032.
[5]于富強. TCP/IP網絡的進攻方式與安全對策[J]. 電視技術, 2003,(3):90-91.
[6]王浩.基于TCP/IP協議的網絡安全分析[J]. 湖北電力,2002,(6):40-42.
[7]司馬云瑞.基于鏈路層的安全認證策略[J]. 計算機應用研究,2003,20(3):60-62.
作者簡介:程小鷗(1984-),女,本科;梁意文(1962-),男,教授,博士,主要研究方向為人工免疫、信息安全。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。