陳 娟
(廣東舞蹈戲劇職業(yè)學(xué)院,廣東 廣州 51000)
組播與廣播相比,突破了廣播通信對同一個子網(wǎng)的限制;與單播相比具有優(yōu)化帶寬,減少了服務(wù)器負(fù)載,降低網(wǎng)絡(luò)流量和提高網(wǎng)絡(luò)通信效率,減少了主干網(wǎng)擁塞等優(yōu)點。所以,組播研究逐漸成為一個熱點,安全組播通信是組播通信研究中的重點。安全組播必須要解決的重要問題是如何通過組播密鑰管理的生成、發(fā)送和更新組播密鑰來滿足加密等安全需求。安全組播包括保密、組成員認(rèn)證、源認(rèn)證、匿名性和完整性。組播密鑰問題主要是分層數(shù)據(jù)處理問題,根據(jù)組成員的加入/離開,采用不同的管理方案。組播是建立在一個開放的網(wǎng)絡(luò)環(huán)境中的,它使用UDP包來實現(xiàn)一對多通信,可以接收發(fā)向某個組播組的組播數(shù)據(jù),組中的成員是動態(tài)的,可以隨時加入和退出組播組。組成員變動頻繁時,密鑰更新量也很大,使得組播的安全問題比單播更加嚴(yán)峻。相比于單播的密鑰管理,如何實現(xiàn)信息的排外共享是組播密鑰管理特有的問題。
現(xiàn)有的組播密鑰管理方法主要分三種:集中控制式、分布式和分層分布式。在這三類方案中,分層分組式通過糅合集中控制式和分布式這兩種形式,使得分層分組式在某些方面的性能有所改進(jìn),更能適用于規(guī)模大、分布廣泛的組。
分層分組式密鑰管理方案中是把集中式管理中單點失效的情況減少到最小作為目的。把子組定義分層不同的組成員,每個子組制定一個組管理者,再把組管理者繼續(xù)分成不同的組,層層分下去。
文獻(xiàn)[1]中提出的Iolus方案主要通過將組播組劃分成有層次的子組,已解決密鑰更新效率和可靠數(shù)據(jù)傳輸問題。每個子組都只有少量組成員,并且有自己的組播地址。Iolus是通過使用安全分發(fā)數(shù)來做到這點的。這種方法的優(yōu)點是組員的加入和退出只會影響所在的子組,并不會影響到整個組播組。缺點是如果GSC不能正常工作,很多子組將互相斷開;必須充分信任中間節(jié)點GSI,這將會帶來安全隱患。文獻(xiàn)[2]中提出的CBT方法,由一系列核心節(jié)點構(gòu)成核心樹,核心樹上的每個節(jié)點都可執(zhí)行身份認(rèn)證和密鑰分發(fā)。CBT使用統(tǒng)一的密鑰管理中心KDC,組播組創(chuàng)建,KDC產(chǎn)生密鑰加密密鑰KEK和數(shù)據(jù)加密密鑰DEK。成員加入組播組后會獲得這兩個密鑰。密鑰更新時,KDC向組播組發(fā)送使用KEK加密的新DEK的組播消息。在預(yù)定義的時間間隔到達(dá)后,成員開始使用新的DEK加密消息。這種方法的主要缺點是沒有考慮前向安全問題。文獻(xiàn)[3]中提出的STB方法,構(gòu)造了一條安全傳輸骨干STB。STB上的每個核心節(jié)點都有自己的公鑰,并存儲相鄰節(jié)點的公鑰。發(fā)送數(shù)據(jù)時,數(shù)據(jù)源產(chǎn)生DEK,對數(shù)據(jù)進(jìn)行加密傳輸,同時使用相鄰節(jié)點的公鑰加密DEK。此種方案的優(yōu)點是使用的密鑰數(shù)量較少,同時避免了復(fù)雜的密鑰管理問題。缺點是數(shù)據(jù)包經(jīng)每個安全主干上的核心節(jié)點轉(zhuǎn)發(fā)時,都要進(jìn)行私鑰解密/公鑰加密的操作,而公鑰算法開銷較大,嚴(yán)重影響效率并且未考慮到前向/后向的安全問題。
本文提出了一種新的分層分組式的密鑰管理方案,其主要思想是先在組播組管理成員中構(gòu)造一棵加權(quán)核心平衡樹,加權(quán)核心平衡樹上的核心節(jié)點構(gòu)成一個密鑰管理層次。每個核心節(jié)點與所在區(qū)域內(nèi)的其它組成員構(gòu)成一顆子樹并確保此密鑰樹是平衡樹。每個核心節(jié)點都帶有一個權(quán)值,這個權(quán)值在一定時間內(nèi)是其所在子樹中最大的。核心節(jié)點是子組的集中控制節(jié)點。GC中存有兩個數(shù)據(jù)結(jié)構(gòu)如下:1}……}
其中W11,W21,…..Wm1,為核心節(jié)點的權(quán)值。flag=0,表示核心節(jié)點試用期滿可以構(gòu)建子樹,flag=1,表示該節(jié)點為惡意節(jié)點,已經(jīng)離開組播組,刪除該數(shù)據(jù)結(jié)構(gòu)項。
圖1 加權(quán)核心平衡樹的結(jié)構(gòu)圖
為了防止單點失效問題,我們在這里采用一個輔助的組控制器來備份組控制器,其中輔助的組控制器的配置以及保存的信息與組控制器(GC)完全一樣。組播組初始化時,根據(jù)要求加入組播組的請求,我們分別算出各個client的權(quán)值,并將權(quán)值存入組控制器。根據(jù)圖1加權(quán)核心平衡樹的結(jié)構(gòu)圖可以看出若核心節(jié)點(CN)加入或退出的頻率大的話會嚴(yán)重影響子樹的重構(gòu)的頻率,會使整棵樹的振動率加大,這對數(shù)據(jù)的傳輸及其不利。所以我們在選取CN的時候,節(jié)點的在線時間(ST)是一個極為重要的考慮因素,由于CN是整棵子樹的集中控制器,所以,CN的CPU的主頻(GZ),內(nèi)存容量(MC),硬盤容量(DC)都是影響因素。
在此我們可以得出如下的權(quán)重公式:
其中ST=承諾離開時間-加入時間;
W=ST*50%+GZ*20%+DC*20%+MC*10%
核心樹與組控制器之間我們采用兩層結(jié)構(gòu),從圖1中可以看出,若CN離開,為了確保前向加密,密鑰更新的代價為M-1,其中M為CN的數(shù)量。由此可以看出,核心節(jié)點離開組時密鑰更新代價較高,并且CN的配置等都比較好,所以我們決定采用無需密鑰加密的方式,犧牲計算來換取有限的網(wǎng)絡(luò)帶寬。
每棵子樹的CN代替組控制器對子組進(jìn)行控制和管理,子樹采用LKH[4]管理方式。每棵子樹都有一個子組密鑰SKEKi,CN與每個字節(jié)點都有一個私密KEKi。
成員要求加入組播組是,GC根據(jù)加權(quán)公式計算出其權(quán)值并與其所存的權(quán)值相比較可以得出兩種結(jié)果:
(1)若新成員的權(quán)值大于所有的W11,W12……,則新成員成為核心節(jié)點(CN),并把權(quán)值存入GC的新集合中;
(2)若新成員加入權(quán)值 若是第二種情況,核心節(jié)點將當(dāng)前子組密鑰更新為SKEK‘i,將{SKEK‘i}用SKEK組播發(fā)送給當(dāng)前子組成員以保證后向安全。同時用分配給新成員的私密KEKi加密{SKEK‘i},發(fā)送給新成員。這樣根據(jù)LKH的原理我們可知,成員加入時密鑰更新代價為2logdN,其中d為密鑰樹的深度-1,N為子組成員個數(shù)。 節(jié)點離開分為兩種:核心節(jié)點位于加權(quán)核心平衡樹上,其它的為非核心節(jié)點。 當(dāng)子組成員離開時,只需要更新當(dāng)前子樹密鑰。子組采用LKH的方式,密鑰的更新代價為dlogdN-1. 若核心節(jié)點離開,此核心節(jié)點所在的子樹需要重新構(gòu)造。由于我們采用平衡樹的方式所以有兩種情況: (1)GC從該子樹中選取權(quán)值最大的為核心節(jié)點,重新構(gòu)造一課子樹。 (2)若根據(jù)第一這種情況構(gòu)造的子樹,導(dǎo)致整棵樹不平衡,則放棄此子樹,并且把其子節(jié)點加入到其它子樹中,并且修改GC中的數(shù)據(jù)結(jié)構(gòu)。密鑰更新代價為O(2N logdN).從中可以看出我們應(yīng)當(dāng)要選擇合適的d和N使得N logdN最優(yōu)。 由于核心樹采用無需密鑰更新,所以核心樹不需要進(jìn)行密鑰更新,只需要重新計算新密鑰。 當(dāng)向組成員發(fā)送數(shù)據(jù)時,若只發(fā)送本地子組,使用SKEKi加密數(shù)據(jù)即可。發(fā)送給其它子組成員的數(shù)據(jù),核心節(jié)點將參與數(shù)據(jù)加密/解密以及數(shù)據(jù)轉(zhuǎn)發(fā)過程。其它核心節(jié)點收到轉(zhuǎn)發(fā)消息后,一方面向核心樹上的其它節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù),同時解密數(shù)據(jù),以子組SKEKi加密數(shù)據(jù)后轉(zhuǎn)發(fā)給整個子組。 有些惡意節(jié)點會在一段時間內(nèi)不停地加入、離開導(dǎo)致系統(tǒng)不停地更新密鑰,嚴(yán)重影響網(wǎng)絡(luò)帶寬的可用率。在此,我們參考了文獻(xiàn)[5]中提出的基于時間片輪轉(zhuǎn)的思想。我們認(rèn)為可以給新加入的成員提供一個試用期T。新成員可以分為兩種情況進(jìn)行處理: (1)當(dāng)新成員為核心節(jié)點時,GC先不把其權(quán)重值存入,只是存入一個flag=1,表示其為使用,當(dāng)其實際在線時間大于T時,flag=0,并把其權(quán)值存入GC,表示允許其接受其它新成員成為子組控制器。 (2)當(dāng)新成員為非核心節(jié)點時,若其實際在線時間大于T時,CN分配其一個私鑰,并且更新組密鑰。并把其權(quán)值寫入GC。 若不采用上述方式,可能在T時間內(nèi)就會有m2N logdN次密鑰更新,其中m為惡意節(jié)點在T時間加入的次數(shù)。 密鑰更新次數(shù)對效率有很重要的影響。本實驗從成員加入及成員離開兩個方面描述了密鑰的更新次數(shù)。其中,d表示密鑰樹的深度,N表示節(jié)點數(shù),join_keynums表示成員加入時需要更新的密鑰次數(shù),leave_keynums表示成員離開時需要更新的密鑰次數(shù)。 表1 密鑰的更新次數(shù) 通過對表1及第3部分的分析,可以發(fā)現(xiàn)采用加權(quán)密鑰樹的方式具有如下優(yōu)缺點: 其中優(yōu)點為: (1)健壯性好。當(dāng)部分組成員失效時,仍然能夠繼續(xù)工作,避免了單點失敗問題。 (2)可擴(kuò)展性較好。子組成員變動不會影響到其它子組。 (3)數(shù)據(jù)傳輸開銷較小。當(dāng)組成員需要向其它子組發(fā)送數(shù)據(jù)時,只需子組的核心控制節(jié)點對數(shù)據(jù)做一次解密/加密即可,大大降低了數(shù)據(jù)傳輸開銷。 (4)密鑰更新代價小。子組成員離開時,本地子組正確地產(chǎn)生密鑰,進(jìn)行密鑰更新即可。使用層次式控制結(jié)構(gòu),密鑰更新增加了計算量,不需要網(wǎng)絡(luò)帶寬。 (5)安全性較好。組成員加入/離開時進(jìn)行密鑰更新,不能冒充組成員,不能重新分發(fā)密鑰,充分保證了播組的前向/后向安全。 缺點為: (1)在核心樹更新密鑰時,計算量大。 (2)要選擇合適的d和N使得N logdN最優(yōu)難度很大。 本文首先討論了組播密鑰管理的幾種主要解決方案,并其優(yōu)缺點進(jìn)行了分析。提出了一種新的分層分組式的密鑰管理方案,完善密鑰管理,使系統(tǒng)具有更強(qiáng)的適應(yīng)性。這種方案提高了可擴(kuò)展性、健壯性和可預(yù)測性,密鑰更新代價低,有效解決了其它分層分組式方案中普遍存在的難以統(tǒng)一的組播密鑰管理方案,同時保證了組播組前向/后向安全,提高效率。 [1]Mittra S.A Framework for Scalable SecureMulticasting[C]//Proceedingsof ACM SIGCOMM'97,Cannes,F(xiàn)rance.1997:277. [2]Ballardie T. Scalable Multicast Key Distribution[S]. RFC 1949,1996-05. [3]Du F,Ni L M,Esfahanian A H.Towards Solving Multicast Key-Management Problem[C]//Proceedings of International ConferenceonComputer Communications and Networks.1999:232-236. [4]Wallner D M Harder E J,Agee R C.Key Management for Multicast:Issues and Architectures[Z].1997.http://Internet Draft draft- wallner-kyarch-00.txt. [5]趙志國,楊波.一種基于時間結(jié)構(gòu)樹的多播密鑰管理方案[J].電子科技,2004,(8).3.3 成員離開
3.4 數(shù)據(jù)傳輸
3.5 對惡意節(jié)點的處理
4. 實驗結(jié)果及分析
5. 總結(jié)