摘 要: 研究了移動(dòng)環(huán)境IP組播" title="組播">組播密鑰管理" title="密鑰管理">密鑰管理協(xié)議,通過對(duì)幾個(gè)目前有影響的協(xié)議進(jìn)行分析和討論,指出它們的特點(diǎn)和不足,對(duì)研究移動(dòng)環(huán)境IP組播密鑰管理具有指導(dǎo)意義。
關(guān)鍵詞: IP組播 移動(dòng)IP 組密鑰管理
隨著移動(dòng)IP技術(shù)的發(fā)展,IP組播系統(tǒng)需要?jiǎng)討B(tài)的組播源或組播接收者的加入,現(xiàn)有的組播協(xié)議如DVMRP、PIM-DM等基于靜態(tài)組播" title="靜態(tài)組播">靜態(tài)組播源和主機(jī)的協(xié)議都需要進(jìn)行擴(kuò)展[1]。移動(dòng)環(huán)境IP組播密鑰管理除了要解決靜態(tài)組播要解決的如:機(jī)密性、完整性、認(rèn)證、同謀破解等網(wǎng)絡(luò)安全基本問題以外,還要解決前向加密、后向加密、密鑰生成計(jì)算量、密鑰發(fā)布占用帶寬、密鑰發(fā)布延遲、健壯性、可靠性、抵制攻擊、協(xié)議獨(dú)立等問題[2~3]。近幾年來有很多組播協(xié)議被相繼提出,同時(shí)為了更加安全地通信,也提出了一些基于移動(dòng)IP的組播密鑰管理協(xié)議。
本文就目前存在的移動(dòng)IP組播密鑰協(xié)議進(jìn)行研究,分析各個(gè)協(xié)議的優(yōu)缺點(diǎn),并對(duì)以后移動(dòng)IP組播密鑰管理的發(fā)展發(fā)表自己的看法。
1 基于樹形的密鑰管理協(xié)議
在這種密鑰管理拓?fù)浣Y(jié)構(gòu)中,密鑰被分成兩種,一種是組會(huì)話密鑰(group session key),用來加密組成員之間的信息交換;另一種是組輔助密鑰(group auxiliary key)用來有效地分發(fā)和更新組會(huì)話密鑰。
下面對(duì)幾種基于樹形的密鑰管理協(xié)議進(jìn)行介紹和分析。
1.1 簡(jiǎn)單密鑰分發(fā)協(xié)議
由H. Hugh等提出[4],在這種協(xié)議中,簡(jiǎn)單密鑰分發(fā)協(xié)議中心是組控制器GC(Group Controller),GC和每一個(gè)成員分別分享一個(gè)密鑰kC,i并負(fù)責(zé)分發(fā)給Mi,組成員共享組密鑰KG,當(dāng)一個(gè)新的成員MN+1 加入時(shí),GC分配MN+1共享密鑰kC,N+1,然后GC需要把新的組密鑰kG′用舊的組密鑰KG加密并且組播給M1、M2、…、MN;用kC,N+1加密單播給MN+1。但是當(dāng)一個(gè)成員離開時(shí),就不能用舊的組密鑰來加密新的組密鑰,因?yàn)殡x開者知道舊密鑰,這時(shí)GC只能用與留下成員的共享密鑰分別加密新的組密鑰單播給相應(yīng)的成員。很顯然,這種方式在組規(guī)模比較大的情況下,成本是很昂貴的,需要N次加密和發(fā)送N次更新消息。
1.2 利用密鑰圖表的組密鑰管理協(xié)議
C. K. Wong等提出了利用密鑰圖表的密鑰管理協(xié)議(Group Key Management Using Key Graphs)[5],這個(gè)協(xié)議通過密鑰圖表表示子組的安全方案" title="安全方案">安全方案。該協(xié)議定義了三種策略對(duì)成員加入/退出時(shí)更新密鑰的消息進(jìn)行分組,分別是面向用戶(user-oriented)、面向密鑰(key-oriented)和面向組(group-oriented)。
首先需要定義以下概念:一個(gè)安全的組可以用三元組(U,K,R)表示。U是有限非空的組成員集合,K是有限非空的密鑰集合,RU×K表示成員和密鑰的二元關(guān)系。有兩個(gè)函數(shù)表示如下:keyset(Mi)={k|(Mi,k)∈R},表示一組被Mi持有的密鑰,并且keyset(Φ)=Φ;userset(k)={Mi|(Mi,k)∈R},表示一組持有密鑰k的成員。拓?fù)鋱D如圖1所示。
(1) 面向用戶
在面向用戶方式中,GC把Mi的新密鑰Kinew作為單個(gè)密鑰更新消息并利用輔助密鑰加密后發(fā)送給Mi,輔助密鑰被用來加密是由于它被最大" title="最大">最大的成員集合(Umax)共享,U={Mj∣Kjnew=Kinew and Ij(keyset(Mj)-keyset(x))≠Φ, j=1,…,N},當(dāng)x=Φ時(shí)表示有成員加入,x是退出發(fā)生時(shí)離開組的那個(gè)成員。利用“最大”組的目的是為了最小化加密成本,減少流量開銷,更新密鑰的消息通過組播發(fā)出,這些消息只能被持有正確輔助密鑰的成員解密。
(2)面向密鑰
對(duì)于一個(gè)組來說,一旦加入或離開發(fā)生,一系列決定性的密鑰更新相應(yīng)地發(fā)生了。在面向密鑰方式中,每一個(gè)更新密鑰消息包含一個(gè)單一的新密鑰。為最小化加密成本,GC將選擇一個(gè)輔助密鑰去加密一個(gè)密鑰更新消息,更新盡可能多的持有這個(gè)輔助密鑰的成員。
(3)面向組
在這種方式中,GC試圖允許一個(gè)密鑰更新消息包含與新密鑰盡可能一樣多的新密鑰。新密鑰被適當(dāng)?shù)淖咏M密鑰加密,這樣做的目的是盡量把加密的成本降到最低。
相對(duì)于SKDC方式,該方法加密成本大大降低。全組維持密鑰的所有數(shù)目為n=N-,每一個(gè)成員持有的密鑰數(shù)量為h=logdN+1,h是密鑰樹的高度,d是層數(shù),N是組成員數(shù)目。GC需要維持O(N)個(gè)密鑰,每一個(gè)成員存儲(chǔ)O(logdN)個(gè)密鑰。與SKDC相比,這種方法的復(fù)雜性無論在加密還是密鑰更新消息時(shí),成本與成員數(shù)目N是成比例的;同時(shí),面向組充分提高了密鑰分發(fā)和管理的可伸縮性。
1.3 布爾函數(shù)最小化技術(shù)組密鑰管理協(xié)議
布爾函數(shù)最小化技術(shù)BFMT(Boolean Function Minimization Techniques)由Chang等提出[6]。該方法為每一個(gè)用戶定義一個(gè)用戶ID,這個(gè)UID由n比特的二進(jìn)制字符串組成,一個(gè)用戶的密鑰系列整個(gè)由它的UID決定。既然任何兩個(gè)用戶必須持有至少一比特不同的UID,當(dāng)它們中一個(gè)離開組播組時(shí),其他的用戶可以通過收到離開用戶不持有的密鑰加密密鑰更新消息。
全組維持n個(gè)輔助密鑰對(duì):ki和,(i=0,…,n-1),每個(gè)密鑰對(duì)對(duì)應(yīng)UID中的一個(gè)比特。除了組會(huì)話密鑰kG以外,每個(gè)密鑰還被分配n個(gè)密鑰,例如,成員Mj持有密鑰ki,如果它的UID的第i個(gè)比特是“1”,或者它持有ki;如果它的UID的第i個(gè)比特是“0”,一個(gè)UID和對(duì)應(yīng)的密鑰分配表示如圖2所示。
組會(huì)話密鑰kG在根節(jié)點(diǎn)處,輔助密鑰ki和作為內(nèi)部節(jié)點(diǎn)的密鑰,而成員Mj是它的葉子。圖2中每一個(gè)成員都有一個(gè)UID,例如成員M5的UID是“101”,表明它擁有輔助密鑰k2、和k0,另外還有每個(gè)成員都共享的密鑰kG,每一個(gè)成員的密鑰由它到根的路徑表示。
一般情況下,每個(gè)成員的離開都導(dǎo)致kG和輔助密鑰的更新,所以離開的成員不能解密以后的通信內(nèi)容。利用定量的方法,組的變化定量、密鑰更新過程根據(jù)指定的時(shí)間超時(shí)進(jìn)行,這個(gè)過程被稱為一個(gè)“巡回”(round)。對(duì)于第r個(gè)“巡回”,組會(huì)話密鑰表示為kG(r),輔助密鑰表示為ki(r)和(r)。
(1)刪除單個(gè)成員
在第r個(gè)“巡回”,有一個(gè)成員離開時(shí),為了更新密鑰kG(r),GC計(jì)算新的會(huì)話密鑰kG(r+1)。新的密鑰利用與離開成員“互補(bǔ)”的密鑰加密。如在圖3中,假如M5離開組,“互補(bǔ)”密鑰是,那么kG(r+1)就可以使用這三個(gè)密鑰加密并組播給所有的組成員。由于M5不知道這些密鑰中的任何一個(gè),所以它不能解密組播的更新密鑰信息而得到新的會(huì)話密鑰。另一方面,任何一個(gè)成員,它的UID至少有一個(gè)比特與M5不同,因此持有的keyset(Mj)使得∩keyset(Mj)≠Φ,其中j≠5。這樣就確保了其他的任何一個(gè)成員至少能解密一個(gè)密鑰更新的數(shù)據(jù)塊。
為了保證離開的成員不能利用它的輔助密鑰解密以后的會(huì)話密鑰更新,輔助密鑰利用單向hash函數(shù)f進(jìn)行更新:ki(r+1)=f(ki(r),kG(r+1))。
(2)刪除多個(gè)成員
為了最小化密鑰更新消息加密的成本,最值得做的是定時(shí)地成批刪除組成員。在圖2中,不失一般性,假設(shè)M0和M4離開組,沒有定量的情況下,一共需要2×3=6個(gè)消息需要發(fā)出,因?yàn)樵趦奢喼忻看味夹枰褂?個(gè)輔助密鑰用來加密發(fā)送的消息。在成批刪除時(shí),利用布爾算法計(jì)算M0和M4都擁有的輔助密鑰S,在這個(gè)例子中,,所以S={k1,k0}=。那么利用S加密新的會(huì)話密鑰可以確保任何一個(gè)離開的成員不能算出新的會(huì)話密鑰kG(r+1),而所有剩余的成員可以正確計(jì)算出來。
當(dāng)M0和M4離開時(shí),可以借助布爾函數(shù)最小化技術(shù)計(jì)算S,相應(yīng)的布爾成員函數(shù)和它的最小化成員函數(shù)Karnaugh圖被表示出來。
這個(gè)方法具有以下特點(diǎn):第一, 采用了最普通的二進(jìn)制算法,所以很容易理解;簡(jiǎn)化了密鑰更新產(chǎn)生和分發(fā)算法,僅僅計(jì)算離開成員互補(bǔ)密鑰S,密鑰更新組播消息僅僅一次;對(duì)于加密成本,最大成本是O(n)=O(logN),n是輔助密鑰對(duì)的數(shù)目,所以用n比特代替所有N個(gè)用戶已經(jīng)足夠了。第二,它提出了定量更新密鑰的思想,從布爾算法中找到了最小化技術(shù),有效解決了最少成員加密問題。但是,它還沒有提供一個(gè)滿意的方式去控制高成本,這種成本和組規(guī)模N成比例,O(N)復(fù)雜性可能嚴(yán)重地影響這種方法的可伸縮性。
1.4 單向函數(shù)樹的組密鑰管理協(xié)議
單向函數(shù)樹OWFT(One-Way Function Trees)由McGrew 等提出[7],這種方法在組成員變化時(shí)基于單向函數(shù)樹來建立組會(huì)話密鑰。
在這個(gè)方法里,GC維持著二叉樹,所有的組成員在葉子節(jié)點(diǎn)上,但葉子不一定都是成員,每一個(gè)節(jié)點(diǎn)x (包括葉子)有兩個(gè)關(guān)聯(lián)的密鑰:一個(gè)unblinded 節(jié)點(diǎn)密鑰kx和一個(gè)blinded節(jié)點(diǎn)密鑰k′x,它們由著名的單向函數(shù)g和一個(gè)“混合” 函數(shù)f計(jì)算得到:kx=f(g(kleft(x)),g(kright(x)))=f(k′left(x),k′right(x)), 式中l(wèi)eft(x)和right(x)表示x的左邊和右邊子節(jié)點(diǎn)。根據(jù)這個(gè)規(guī)則,借助于節(jié)點(diǎn)的unblinded 密鑰和其兄弟節(jié)點(diǎn)的blinded密鑰得出其父節(jié)點(diǎn)的unblinded密鑰。
密鑰更新說明如下:
(1)添加一個(gè)成員
當(dāng)一個(gè)成員Mnew加入時(shí),GC做的就是挑選一個(gè)葉子節(jié)點(diǎn)x,用擁有兩個(gè)節(jié)點(diǎn)的一個(gè)新的內(nèi)部節(jié)點(diǎn)x′代替,其中一個(gè)子節(jié)點(diǎn)是x本身,另一個(gè)是新加入的Mnew,如圖3所示。受影響的節(jié)點(diǎn)子組用灰色表示,因此,那些灰色節(jié)點(diǎn)的unblinded密鑰需要更新以實(shí)現(xiàn)后向保密。
為了計(jì)算新的組會(huì)話密鑰,存儲(chǔ)舊版本blinded密鑰的節(jié)點(diǎn)應(yīng)該被通知更新它們的新版本。例如,節(jié)點(diǎn)y應(yīng)該得到節(jié)點(diǎn)z的最新blinded密鑰k′z,需要得到密鑰k′z的節(jié)點(diǎn)集合是Sz={u,v,y,M0,M1,M2,M3},包括z的兄弟節(jié)點(diǎn)u和u的所有派生節(jié)點(diǎn)。這個(gè)新的blinded 密鑰k′z被u的unblinded密鑰ku加密后包含在一個(gè)密鑰更新消息中組播給Sz。
(2)刪除一個(gè)成員
圖3表示當(dāng)一個(gè)成員Mnew離開時(shí),節(jié)點(diǎn)x′被刪除并被節(jié)點(diǎn)x代替,所有從節(jié)點(diǎn)x到根r的密鑰被更新。同樣,當(dāng)一個(gè)成員加入時(shí),最新的blind密鑰被安全地傳輸給那些存儲(chǔ)舊版本密鑰的節(jié)點(diǎn)。
OWFT最新穎之處是提高了密鑰管理的可伸縮性,因?yàn)樗ㄟ^維護(hù)一個(gè)單向函數(shù)樹和每個(gè)成員獨(dú)立計(jì)算組密鑰把會(huì)話密鑰直接傳送出去,更新密鑰消息的數(shù)量和加密復(fù)雜性取決于需要更新blinded密鑰子組的數(shù)量。既然blinded密鑰更新的最大數(shù)量是h(樹的高度),那么密鑰更新組播消息和加密成本一樣都是O(h)=O(logN)。McGrew等給出系統(tǒng)存儲(chǔ)的密鑰數(shù)量為O(N),每個(gè)成員存儲(chǔ)的密鑰數(shù)量為O(logN)。
但是,GC不得不維持2N-1個(gè)子組成員的信息,因?yàn)槊恳粋€(gè)樹中的節(jié)點(diǎn)對(duì)應(yīng)于一個(gè)包含它自己和由它所派生節(jié)點(diǎn)的子組,價(jià)值不高并強(qiáng)加給GC的工作影響這個(gè)算法應(yīng)用在大規(guī)模組時(shí)的可伸縮性。
以上三個(gè)樹形的密鑰管理協(xié)議比較如表1所示。
2 其他密鑰管理協(xié)議
除了以上提到的幾個(gè)密鑰管理協(xié)議,其他的還有很多。Iolus協(xié)議是一個(gè)分布式等級(jí)樹的典型方法、W. Waldogel等提出的LKH+(logical key hierarchy)協(xié)議、A. Perrig 等提出了ELK協(xié)議、S.Rafaeli等提出的EHBT(efficient hierarchical binary tree)協(xié)議等。
本文比較了一些協(xié)議的優(yōu)點(diǎn)和不足,代表了目前這個(gè)研究領(lǐng)域的研究成果。目前還沒有一個(gè)公認(rèn)的都能接受的合適的協(xié)議。關(guān)于組播密鑰管理最主要的問題是可伸縮性,有些協(xié)議利用分等級(jí)的方法有較好的可伸縮性,是這個(gè)領(lǐng)域以后發(fā)展的一個(gè)重要方向。
參考文獻(xiàn)
1 孫利民. 移動(dòng)IP技術(shù)[M].北京:電子工業(yè)出版社,2003:202~230
2 徐明偉.組播密鑰管理的研究進(jìn)展[J].軟件學(xué)報(bào),2004;15(1):141~150
3 C.Boyd,A.Mathuria. Key Establishment Protocols for Secure Mobile Communications:A Selective Survey. Information Security and Privacy, LNCS 1438, Springer Verlag,1998:344~355
4 Harney Hugh, Carl Muckenhirn, Thomas Rivers. Group Key Management Protocol Architecture, Request for comments(RFC) 2093, Internet Engineering Task Force,March 1997
5 C. K. Wong, M. Gouda.Secure Group Communications Using Key Graphs. S. S. Lam, Department of Computer Sciences,University of Texas at Austin, Technical Report 97~23,July 28, 1997
6 I. Chang, R. Engel, D. Kanlur, D. Pendarakis,etc. Key Management for Secure Internet Multicast using Boolean Function Minimization Techniques. IEEE Infocomm,1999
7 David A. McGrew, Alan T. Sherman. Key establishment in large dynamic groups using one-way function trees.Technical Report 0755,TIS Labs at Network Associates, Inc.,Glenwood, MD, May 1998(收稿日期:2005-02-21)