專利名稱:基于物理層次的組播密鑰管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及因特網(wǎng)安全組播領(lǐng)域,用于組播服務(wù)中劃分子組、組播密鑰管理和組播通信的方法。
背景技術(shù):
組播技術(shù)可以節(jié)省網(wǎng)絡(luò)資源,便于在一對多及多對多的場合中使用。組播技術(shù)被越來越多的應(yīng)用到各種寬帶業(yè)務(wù)中,如新聞點(diǎn)播、視頻會議等。
圖1顯示的是一個(gè)組播服務(wù)的網(wǎng)絡(luò)拓?fù)鋱D。組播發(fā)送源(發(fā)送者,Sender)通過組播路由器(Multicast Router,MR)接入網(wǎng)絡(luò),向組播地址發(fā)送組播數(shù)據(jù)(例如圖1中的192.168.2.9);各個(gè)子網(wǎng)內(nèi)的用戶向網(wǎng)絡(luò)發(fā)送加入請求報(bào)文(IGMP),加入組播組成為組播成員(Receiver/Member),接收組播數(shù)據(jù)(例如圖1中的192.168.3.11和192.168.6.141);子網(wǎng)內(nèi)未加入組播組的用戶(Host/Non-member)不能接收組播數(shù)據(jù)(例如圖1中的192.168.3.75)。組播發(fā)送源和組播接收者統(tǒng)稱為組播參與者。組播路由器之間運(yùn)行距離矢量組播路由協(xié)議(DVMRP,Distance Vector Multicast Routing Protocol)或協(xié)議無關(guān)組播(PIM,Protocol Independent Multicast)等組播尋路協(xié)議,建立共享的組播樹,將組播數(shù)據(jù)從組播源傳送到組播成員。
當(dāng)前使用的組播控制方法允許任何用戶加入組播組。該用戶的主機(jī)可以發(fā)送加入請求報(bào)文給鄰近的組播路由器,該路由器即向上層組播樹發(fā)出加入請求。在現(xiàn)有的組播控制方法中,沒有任何的接入控制,所有加入請求都會被成功響應(yīng)。一旦請求加入成功,組播樹就會延伸到該子網(wǎng),發(fā)出加入請求的主機(jī)就可以接收組播數(shù)據(jù)。
現(xiàn)有組播控制方法中的另一個(gè)問題是,對于組播的數(shù)據(jù)源沒有認(rèn)證功能。某個(gè)主機(jī)只要知道了組播服務(wù)使用的組播地址,就可以向該組播地址發(fā)送干擾數(shù)據(jù)。這會造成如下后果①導(dǎo)致正常的組播業(yè)務(wù)質(zhì)量下降,②浪費(fèi)網(wǎng)絡(luò)資源,影響網(wǎng)絡(luò)服務(wù)質(zhì)量。
為解決以上問題,當(dāng)前安全組播研究中提出的一種方法是對組播數(shù)據(jù)進(jìn)行加密,只有獲得密鑰的用戶才能解密數(shù)據(jù)。在安全組播中,組播發(fā)送源用通信密鑰對數(shù)據(jù)加密,組內(nèi)每個(gè)用戶共享該密鑰用來解密加密的數(shù)據(jù)。該通信密鑰由一個(gè)可信賴的組控制者來發(fā)布和更新。當(dāng)有用戶加入或退出時(shí),為了保證新加入的用戶不能解密以前的數(shù)據(jù),退出的用戶不能解密以后的數(shù)據(jù),都要重新發(fā)布新的通信密鑰,稱為密鑰更新?,F(xiàn)有的組播密鑰管理方法中,密鑰更新是針對當(dāng)前組播組內(nèi)所有的用戶同時(shí)進(jìn)行,當(dāng)組播組的規(guī)模很大時(shí),每次密鑰更新的開銷都會非常大,嚴(yán)重影響了組播服務(wù)的質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于物理層次的組播密鑰管理方法,以減少組播密鑰更新時(shí)的開銷,并實(shí)現(xiàn)安全組播。
本發(fā)明的技術(shù)解決方案如下提出的基于物理層次的組播密鑰管理方法包括分組、通信及密鑰分配方法;其中的分組方法將所述組播組的子組僅僅分為兩個(gè)層次①用戶層包括多個(gè)物理子組,它們分別受控于各自的組安全代理,每個(gè)組安全代理負(fù)責(zé)維護(hù)一個(gè)本地子組通信密鑰;②代理層包括一個(gè)邏輯子組,它由多個(gè)組安全代理組成并使用一個(gè)邏輯子組通信密鑰。
基于上述分組方法,將動(dòng)態(tài)性低的用戶層物理子組合并到由靜態(tài)的組安全代理構(gòu)成的代理層邏輯子組,使子組融合。
其中的密鑰分配方法中所采用的密鑰更新方法為代理層子組的周期密鑰更新方法代理層的邏輯子組通信密鑰定期更換,由每個(gè)組安全代理采用相同的公式SEK0(n,t)=f0(s,n,v0)計(jì)算得出,不須發(fā)布密鑰更新報(bào)文;用戶層子組的批次密鑰更新方法組安全代理統(tǒng)計(jì)組播參與者加入或退出的次數(shù)達(dá)到門限時(shí),更新本物理子組的本地子組通信密鑰,采用公式SEKi(n,t)=fi(s,n,vi)計(jì)算得出,然后向組內(nèi)的組播參與者發(fā)布密鑰更新報(bào)文更新本地子組通信密鑰。
其中的密鑰分配方法中還增加了密鑰預(yù)告方法在物理子組內(nèi),組安全代理提前向各個(gè)組播參與者發(fā)布下一版本的本地子組通信密鑰。
組播組中的各個(gè)組播參與者的通信過程為①組播發(fā)送源用本地子組通信密鑰對消息進(jìn)行加密,在本物理子組內(nèi)組播該加密數(shù)據(jù),同一物理子組的用戶利用本地子組通信密鑰解讀該數(shù)據(jù);②本物理子組的組安全代理收到密文后用本地子組通信密鑰解密,再將解密的消息用邏輯子組通信密鑰加密,然后向本邏輯子組中的其它組安全代理組播加密的數(shù)據(jù);③其它物理子組的組安全代理用邏輯子組通信密鑰解密來自上述物理子組的密文消息,獲得消息后再各自用它們的本地子組通信密鑰加密,并向各自物理子組內(nèi)組播加密數(shù)據(jù);④其它物理子組的組播接收者接收到密文后,用各自物理子組的本地子組通信密鑰解密并獲得消息。
在上述方案中,各部分的工作過程如下所述的組播發(fā)送源的工作過程包括如下步驟①當(dāng)它要發(fā)送組播數(shù)據(jù)時(shí),它首先尋找最近的一個(gè)物理子組,將自己的認(rèn)證信息發(fā)送給該物理子組的組安全代理;②等待該物理子組的組安全代理的認(rèn)證,認(rèn)證成功后獲得本地子組通信密鑰;③使用本地子組通信密鑰進(jìn)行加密,將加密后的數(shù)據(jù)組播出去,并監(jiān)聽組安全代理的密鑰更新;④需要退出組播組時(shí),發(fā)送離開報(bào)文,退出組播組;所述的組播接收者的工作過程包括如下步驟①當(dāng)它要接收組播數(shù)據(jù)時(shí),它首先尋找最近的一個(gè)物理子組,將自己的認(rèn)證信息發(fā)送給該物理子組的組安全代理;②等待該物理子組的組安全代理的認(rèn)證,認(rèn)證成功后獲得本地子組通信密鑰;③接收組播數(shù)據(jù),使用本地子組通信密鑰進(jìn)行解密,并監(jiān)聽組安全代理的密鑰更新;④需要退出組播組時(shí),發(fā)送離開報(bào)文,退出組播組;所述的組安全代理的工作過程包括如下步驟①首先,計(jì)算獲得本代理層的邏輯子組通信密鑰以及本地子組通信密鑰,并定期計(jì)算更新邏輯子組通信密鑰;②啟動(dòng)進(jìn)程,不斷地監(jiān)聽組播參與者的加入或退出請求,并對認(rèn)證后的加入者給出本地子組通信密鑰;③統(tǒng)計(jì)組播參與者加入或退出的次數(shù),當(dāng)達(dá)到規(guī)定的門限,進(jìn)行密鑰預(yù)告操作,更新的本地子組通信密鑰是下一版本的本地子組通信密鑰;④根據(jù)組播參與者變化次數(shù),當(dāng)少于規(guī)定的門限時(shí),進(jìn)行子組融合,將該物理子組合并到邏輯子組;合并后,當(dāng)變化次數(shù)大于規(guī)定的門限時(shí),將該物理子組從邏輯子組中分離出來,成為獨(dú)立的物理子組;⑤啟動(dòng)進(jìn)程,監(jiān)聽本物理子組內(nèi)有無組播源需要發(fā)送數(shù)據(jù);⑥當(dāng)有組播源發(fā)送數(shù)據(jù)時(shí),接收數(shù)據(jù),使用本地子組通信密鑰解密,再使用邏輯子組通信密鑰加密數(shù)據(jù),組播給其他的物理子組;⑦啟動(dòng)進(jìn)程,監(jiān)聽有無從其它物理子組發(fā)送的組播數(shù)據(jù);⑧當(dāng)有本物理子組需要的組播數(shù)據(jù)時(shí),接收數(shù)據(jù),使用邏輯子組通信密鑰解密,再使用本物理子組的本地子組通信密鑰加密,然后組播到本物理子組。
本發(fā)明的關(guān)鍵在于將大規(guī)模的組播組按照地域劃分為多個(gè)物理子組,在各個(gè)物理子組內(nèi)進(jìn)行密鑰管理、密鑰更新和組播數(shù)據(jù)?;谖锢韺哟蔚慕M播密鑰管理方法在兩個(gè)層次(用戶層和代理層)上來劃分子組,用戶在劃分的物理子組內(nèi)使用本地子組通信密鑰加密或解密數(shù)據(jù),各個(gè)物理子組之間使用邏輯子組通信密鑰加密或解密數(shù)據(jù),將密鑰分層次進(jìn)行管理。還提出了在用戶層和代理層的密鑰更新方法,以及密鑰預(yù)告和子組融合的方法??梢栽诮M播環(huán)境中有效地對組播數(shù)據(jù)進(jìn)行加解密,并對加解密的密鑰進(jìn)行有效的管理和更新,解決了組播中的數(shù)據(jù)安全通信問題及密鑰管理問題。相比當(dāng)前使用的密鑰更新方法,本發(fā)明在各個(gè)物理子組內(nèi)獨(dú)立的進(jìn)行密鑰更新,大大減少了密鑰更新時(shí)的開銷,是一種適用于安全組播領(lǐng)域的有效方法,具有良好的應(yīng)用前景。
圖1是現(xiàn)有的組播服務(wù)網(wǎng)絡(luò)拓?fù)鋱D;圖2是簡單密鑰分發(fā)中心示意圖;圖3是安全分發(fā)樹的示意圖;圖4是基于物理層次的組播密鑰管理方法示意圖;圖5是密鑰更新報(bào)文格式圖;圖6是批次密鑰更新示意圖;圖7是子組密鑰預(yù)告示意圖;圖8是子組融合示意圖;圖9是組播發(fā)送源工作過程圖;圖10是組播接收者工作過程圖;
圖11是組安全代理的工作過程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明內(nèi)容及其所依據(jù)的背景技術(shù)作詳細(xì)敘述(1)簡單密鑰分發(fā)中心(SKDC)在現(xiàn)有的組播模型中允許任何主機(jī)不經(jīng)審核地加入組播組,沒有對組播參與者進(jìn)行接入控制。任何主機(jī)可以發(fā)送加入請求報(bào)文給鄰近的組播路由器,該路由器即向上層組播樹發(fā)出加入請求。一旦請求加入成功,組播樹就會延伸到該子網(wǎng),發(fā)出加入請求的主機(jī)就可以接收組播數(shù)據(jù)。
對于一個(gè)通信業(yè)務(wù),最實(shí)際可行的保密措施是對業(yè)務(wù)數(shù)據(jù)進(jìn)行對稱加密(如采用DES等加密算法)。對稱加密的特點(diǎn)是加密數(shù)據(jù)的密鑰和解密數(shù)據(jù)的密鑰是同一個(gè)(或者,能從其中一個(gè)立即推算出另一個(gè)),這在組播通信中就成為標(biāo)志組成員身份的通信密鑰。只要一個(gè)用戶持有當(dāng)前通信所使用的通信密鑰,它就可以對組播數(shù)據(jù)解密加密。一個(gè)不持有當(dāng)前通信密鑰的用戶,即便它能接收到組播數(shù)據(jù),它也無法解讀出其中的信息。
安全組播的一種方法就是所有組成員共享一個(gè)不被未授權(quán)用戶所知的通信密鑰,通常稱之為業(yè)務(wù)加密密鑰SEK(Session Encryption Key)。本發(fā)明中采用“通信密鑰”或“SEK”的叫法。SEK是對稱密鑰,組內(nèi)所有通信都用它進(jìn)行加密和解密。對于單源組播這種具有代表性的業(yè)務(wù),組播源采用SEK對明文業(yè)務(wù)進(jìn)行加密,而所有的組成員采用SEK對密文數(shù)據(jù)進(jìn)行解密。由于單源組播考慮的是只存在一個(gè)數(shù)據(jù)發(fā)送者的情況,有些問題會變得很簡單。例如,惡意的攻擊者雖然可以向組播組發(fā)送干擾數(shù)據(jù),但由于它不知道SEK,因而用戶能識別出哪些數(shù)據(jù)有用、哪些沒有用;只要接收到的數(shù)據(jù)能用SEK正確解密,那么它肯定來自授權(quán)源并且報(bào)文是完整的。
組控制者GC(Group Controller),負(fù)責(zé)訪問控制和密鑰管理。組控制者和數(shù)據(jù)發(fā)送源可以是不同的實(shí)體,盡管ISP(因特網(wǎng)服務(wù)提供商)可能會將組控制者和組播源用同一臺高端機(jī)器來實(shí)現(xiàn),應(yīng)用中可以視組播源為一永久組成員。
簡單密鑰分發(fā)中心SKDC(Simple Key Distribution Center)是最簡單、最直觀的密鑰管理方案,它的實(shí)質(zhì)就是組控制者通過加密的單播把通信密鑰SEK更新到組播組中的每個(gè)成員。
SKDC是最基本的線型(linear)密鑰管理方法,在SKDC方法中,每個(gè)成員擁有一個(gè)私有密鑰用來加密通信密鑰,稱為密鑰加密密鑰(Key Encryption Key),本發(fā)明中簡寫為KEK。每當(dāng)有成員關(guān)系變動(dòng)(加入或退出)時(shí),GC使用各個(gè)用戶的KEK加密SEK得到KEKi(SEK),然后依次將KEKi(SEK)單播給每個(gè)成員。GC存儲所有N個(gè)KEKi并負(fù)責(zé)產(chǎn)生SEK,用戶Mi則存儲僅為自己與GC所知的KEKi并用之解密出SEK,如圖2所示。這樣,GC添加一個(gè)成員需要執(zhí)行N+i次加密傳送,排除一個(gè)成員需要執(zhí)行N-1次加密傳送。
(2)物理層次結(jié)構(gòu)物理層次結(jié)構(gòu),這是一種具有可擴(kuò)展性的安全組播方法。圖3是一棵安全分發(fā)樹,它包含了一些小的安全組播子組(subgroup)并組織為一種物理的或地域的層次結(jié)構(gòu)。因此,這樣的一個(gè)安全組播組實(shí)際上是由各子組所聚合而成的一個(gè)虛擬的群組,這些子組是各自獨(dú)立的,物理層次結(jié)構(gòu)因此得以解決密鑰管理的擴(kuò)展性問題。
所謂獨(dú)立,不僅是指安全分發(fā)樹中的各子組使用不同的組播目的地址,它們還各自使用不同的子組密鑰。在物理層次結(jié)構(gòu)中不存在全局性質(zhì)的通信密鑰,而是每個(gè)子組使用各自的通信密鑰來加密數(shù)據(jù)業(yè)務(wù)。這樣,當(dāng)某個(gè)成員退出,或者某個(gè)用戶加入進(jìn)來時(shí),只有特定的子組發(fā)生成員關(guān)系變化;這種加入或退出由于子組的劃分而限制成為一個(gè)局部事件,不會波及到其他子組。因此,密鑰更新只是一種相對小范圍的操作。物理層次結(jié)構(gòu)通過把一個(gè)大型群組分割為多個(gè)相對無關(guān)的子組,從而克服了密鑰管理的可擴(kuò)展性問題。
物理層次結(jié)構(gòu)引入兩種類型的網(wǎng)絡(luò)實(shí)體來管理子組①組安全控制者GSC(Group Security Controller),它負(fù)責(zé)控制最高級別子組(top-level subgroup,如圖3中的G1),位于安全分發(fā)樹的樹根位置,它實(shí)際上就是前文中稱為GC的組控制者;②安全中介GSI(Group Security Intermediary),也是可信賴的服務(wù)器,負(fù)責(zé)控制其他子組(如圖3中的G2A、G2B、G2C,以及更低級別的G3A、G3B),且每個(gè)子組分派一個(gè);每個(gè)GSI都是上級GSI或者GSC的代理。
上面的GSC和GSI又統(tǒng)稱為組安全代理GSA(Group Security Agent)。
物理層次結(jié)構(gòu)考慮的是多對多組播,組成員既是數(shù)據(jù)發(fā)送者又是數(shù)據(jù)接收者,它們加入到各自的當(dāng)?shù)刈咏M,而這些子組又靠GSA“拼接”形成一個(gè)虛擬的大型群組,也就是面向應(yīng)用的安全組播組。這當(dāng)中其實(shí)主要是GSI在起作用,它們按照各自在層次結(jié)構(gòu)中的級別(level)加入到子組中負(fù)責(zé)控制第L級子組的GSI加入第L-1級的子組(當(dāng)L-1=1時(shí)就是GSC控制的頂級子組),并且在這兩個(gè)級別的子組之間進(jìn)行組播業(yè)務(wù)數(shù)據(jù)的轉(zhuǎn)發(fā)。由于不同的子組使用了不同的通信密鑰,因此GSI在轉(zhuǎn)發(fā)之前需要先對密文數(shù)據(jù)進(jìn)行解密,然后再次對明文數(shù)據(jù)進(jìn)行加密。物理層次結(jié)構(gòu)之所以采用安全分發(fā)樹這樣一種結(jié)構(gòu)是為了防止在數(shù)據(jù)轉(zhuǎn)發(fā)過程中出現(xiàn)回環(huán),這種樹狀結(jié)構(gòu)本身可以是比較松散的,如附圖3所示。物理層次結(jié)構(gòu)的主要優(yōu)點(diǎn)在于成員加入或退出只觸發(fā)特定子組內(nèi)的成員關(guān)系變動(dòng),但其主要缺點(diǎn)在于各GSI需負(fù)責(zé)不同子組之間的密文“翻譯”,即用一個(gè)通信密鑰解密消息,再用另一個(gè)通信密鑰加密后轉(zhuǎn)發(fā),如此反復(fù),從而引入了較大的計(jì)算開銷。
(3)基于物理層次的組播密鑰管理方法1、基本原理本專利提出的基于物理層次的組播密鑰管理(MKMPL,Multicast Key Managementbased on Physical Level)方法,如附圖4所示。它是一種新型的雙層次結(jié)構(gòu)及基于版本管理的密鑰更新和數(shù)據(jù)傳送協(xié)議。該方法將一個(gè)大型的組播組劃分為多個(gè)彼此不相關(guān)的物理子組。將物理或地域相近的組播參與者組織成為一個(gè)小的安全組播子組成為物理子組。各個(gè)物理子組由一個(gè)組安全代理進(jìn)行管理,多個(gè)組安全代理構(gòu)成了一個(gè)邏輯子組。
考慮到如圖3所示的物理層次結(jié)構(gòu)顯得過于松散,圖4提出的基于物理層次的組播密鑰管理方法只在兩個(gè)層次上來劃分子組①用戶層(user level)包括m個(gè)物理子組subgroup1~subgroupm,它們分別受控于各自的組安全代理GSAi,每個(gè)組安全代理負(fù)責(zé)維護(hù)一個(gè)本地子組通信密鑰SEKi;②代理層(agent level)包括一個(gè)邏輯子組subgroup0,它由m個(gè)組安全代理組成并使用一個(gè)邏輯子組通信密鑰SEK0。
在后文中,下標(biāo)i和下標(biāo)0將按以上的層次定義區(qū)分開來。例如subgroupi就是指用戶層的物理子組(i∈[1,m]),而代理層將使用明確的下標(biāo)0(如subgroup0)來指代。
當(dāng)新用戶加入組播組時(shí),它找到地域上最近的一個(gè)subgroupi,由GSAi進(jìn)行身份認(rèn)證,獲得本地子組通信密鑰SEKi。各個(gè)GSA獨(dú)立地維護(hù)其用戶層子組的SEK,采用密鑰管理方案SKDC進(jìn)行密鑰更新。
所有的GSA共享一個(gè)代理層的子組密鑰SEK0。這些GSA將扮演類似口譯人員的角色,在子組之間負(fù)責(zé)數(shù)據(jù)的“翻譯”和轉(zhuǎn)發(fā)。MKMPL既能適用于一對多組播,也能適用于多對多組播。例如,考慮在某個(gè)安全組播業(yè)務(wù)中,M1a是subgroup1中的一個(gè)成員,它要向全組發(fā)送一則消息,這個(gè)通信過程如圖4所示①M(fèi)1a用SEK1對消息data進(jìn)行加密,SEK1(data)表示加密后的數(shù)據(jù),在subgroup1內(nèi)組播SEK1(data),同一物理子組的用戶使用SEK1解密該數(shù)據(jù);②GSA1收到密文SEK1(data)后用SEK1解密。每個(gè)GSAi都既知道SEKi又知道SEK0。GSA1再將消息data用SEK0加密,然后向subgroup0內(nèi)的其它GSA組播SEK0(data);③GSAi(除了GSA1)用SEK0解密來自GSA1的密文消息,獲得data后再各自用SEKi加密,并向subgroupi內(nèi)組播SEKi(data)。
④subgroup1外的subgroupi的用戶在接收到GSAi的密文后,用SEKi解密并獲得data。
圖4中出現(xiàn)了三道加密和三道解密,所有不屬于subgroup1的群組成員現(xiàn)在都能獲得M1a發(fā)送的data了。上述加密過程分別發(fā)生在發(fā)送源端及GSA的輸出接口,而解密過程分別發(fā)生在GSA的輸入接口及用戶接收端。
2、密鑰生成與發(fā)布MKMPL的設(shè)計(jì)目標(biāo)是成為多對多保密通信的一般性解決方案,在其之上可以同時(shí)運(yùn)行多個(gè)安全組播業(yè)務(wù)。首先來看子組通信密鑰的生成與發(fā)布,這是一套基于版本管理的方法。①代理層周期密鑰更新代理層的邏輯子組subgroup0實(shí)質(zhì)上是一個(gè)靜態(tài)的子組,它由多個(gè)靜態(tài)的組安全代理組成,組安全代理在組播業(yè)務(wù)中不會發(fā)生加入或退出操作。該子組執(zhí)行相對簡單的周期密鑰更新,即SEK0定期更換,其特色在于subgroup0中將不會交換任何單播或組播的密鑰更新報(bào)文。
每個(gè)GSA都維護(hù)一個(gè)定時(shí)器,子組密鑰SEK0由各GSA同步地、各自地計(jì)算出SEK0(n,t)=f0(s,n,v0) (1)公式中的f0是一個(gè)帶有三個(gè)參數(shù)的單向函數(shù),單向函數(shù)指只能由參數(shù)計(jì)算出結(jié)果,而不能由結(jié)果推算出參數(shù)的函數(shù),滿足此條件的函數(shù)都可以使用,例如哈希函數(shù)就是一種單向函數(shù)。公式(1)的參數(shù)說明如下s是單向函數(shù)f0的秘密種子,它由各GSA在業(yè)務(wù)初始化階段協(xié)商產(chǎn)生,并且僅為GSA所知。
n是業(yè)務(wù)編號(session number)。這是組播業(yè)務(wù)的標(biāo)識符,它體現(xiàn)了MKMPL對多業(yè)務(wù)的支持。不同的組播組具有不同的業(yè)務(wù)編號。
v0是密鑰SEK0的版本號,由于它實(shí)際上還關(guān)聯(lián)著具體的業(yè)務(wù)(此處為業(yè)務(wù)n),因而它其實(shí)是v0n的簡寫。這是一個(gè)離散時(shí)間索引,它從某個(gè)協(xié)定的時(shí)間點(diǎn)開始,初值為0,每經(jīng)過一個(gè)密鑰更新周期Tmax增加1。這個(gè)協(xié)定的時(shí)間點(diǎn)就記為t=0,是業(yè)務(wù)n的起始時(shí)刻。因此,v0版本的SEK0具有生存期t∈[v0Tmax,(v0+1)Tmax]??紤]到subgroup0是一個(gè)靜態(tài)子組并且所有的GSA都是信任實(shí)體,故可以選取一個(gè)相對較大的Tmax。例如,取v0為16比特寬,Tmax取為8秒,則v0將在經(jīng)歷216Tmax秒后溢出并重新從0開始記數(shù),根據(jù)公式(1),SEK0的值也將循環(huán)使用。這樣,理論上用戶可以在記錄下全部216個(gè)版本的SEK0后退出組播,然后用他記錄下的密鑰解密后續(xù)的業(yè)務(wù)。但是216Tmax=524288秒≈6.1天,因而對于一個(gè)將SEK0值加以循環(huán)利用的用戶而言,這個(gè)時(shí)間已經(jīng)足夠防范攻擊了。如電視臺在凌晨要停止播放節(jié)目,組播業(yè)務(wù)的持續(xù)時(shí)間也不大可能持續(xù)24小時(shí)以上。進(jìn)一步,即使是那些持續(xù)時(shí)間長于6天的組播業(yè)務(wù),也可以通過重新分配業(yè)務(wù)編號n來抵抗這種攻擊。
②用戶層批次密鑰更新與代理層類似,用戶層的子組密鑰也是通過單向函數(shù)產(chǎn)生,但subgroupi不像靜態(tài)子組subgroup0那樣執(zhí)行周期密鑰更新,而是執(zhí)行基于過程的批次密鑰更新。密鑰更新報(bào)文格式如附圖5,具體內(nèi)容為當(dāng)前版本號(Current Version)當(dāng)前使用的密鑰SEK的版本號;長度域(Len)標(biāo)識后面的加密的下一版本號和下一密鑰的長度;更新密鑰(New Key)使用當(dāng)前密鑰加密的下一個(gè)密鑰的版本號和密鑰。
批次密鑰更新的基本原理是GC(這里則為GSA)并不是就每一個(gè)成員加入或退出立即進(jìn)行一次單獨(dú)的密鑰更新,而是在統(tǒng)計(jì)成員加入或退出次數(shù)達(dá)到規(guī)定的門限后,才執(zhí)行一次密鑰更新,如圖6所示。
圖6中時(shí)間軸t上方的箭頭表示新成員加入,而下方的箭頭表示成員退出群組。假如對圖中總共10次加入和10次退出都單獨(dú)密鑰更新,則系統(tǒng)需要更換20次密鑰,每個(gè)密鑰只使用很短暫的時(shí)間。如果改變策略,執(zhí)行批次密鑰更新,在每收集到4個(gè)成員關(guān)系變動(dòng)時(shí)更新一次密鑰,則可把這20次密鑰更新變動(dòng)合并為5次,并且這5個(gè)密鑰都能使用相對稍長的時(shí)間,是一種對資源的節(jié)約。這種批次密鑰更新既能降低GC的通信開銷,又能降低組成員的通信開銷。MKMPL在用戶層子組內(nèi)采用引入了批次密鑰更新的SKDC。實(shí)際上,在除SKDC之外的其他密鑰管理中也可以引入批次密鑰更新。
用戶層的子組密鑰SEKi也是通過單向函數(shù)來生成SEKi(n,t)=fi(s,n,vi)(2)s就是前面單向函數(shù)f0的秘密種子,它僅為GSA所知,這樣組成員就無法自己計(jì)算出SEKi(盡管他們知道n和vi)。
n是標(biāo)識特定組播業(yè)務(wù)的業(yè)務(wù)編號。假設(shè)subgroup1中存在兩個(gè)組播用戶M1a和M1b前者參與業(yè)務(wù)a而后者參與業(yè)務(wù)b,那么GSA1同時(shí)管理兩個(gè)組播業(yè)務(wù),且業(yè)務(wù)a和業(yè)務(wù)b沒有必要同時(shí)開始(即它們t=0的起始時(shí)間點(diǎn)不必重合)。GSA1把SEK1(a,t)發(fā)布給M1a,并把SEK1(b,t)發(fā)布給M1b。
vi是業(yè)務(wù)n在subgroupi中的通信密鑰版本。由于用戶層的物理子組執(zhí)行批次密鑰更新,vi每當(dāng)GSAi收集到B個(gè)成員關(guān)系變動(dòng)后增加1。這里B是批次密鑰更新閾值,每B個(gè)加入或退出事件觸發(fā)一次密鑰更新,例如在圖6中B=4。MKMPL規(guī)定,批次密鑰更新的時(shí)間間隔雖然是可變的,但須是受限制的。MKMPL限定用戶層子組的密鑰更新間隔上限為Tmax,即其更新速度不得慢于代理層子組的周期密鑰更新。另一方面,MKMPL再引入一個(gè)密鑰更新間隔下限Tmin,以防止vi過于快速地增長,也即防止一個(gè)具有高動(dòng)態(tài)性的子組過于頻繁地密鑰更新。這里三個(gè)門限Tmax、Tmin和B的取值應(yīng)依照子組劃分的實(shí)際情況及業(yè)務(wù)運(yùn)行經(jīng)驗(yàn)來設(shè)置??傊蚊荑€更新間隔總是在區(qū)間[Tmin,Tmax]之內(nèi),若它等于Tmin則表明GSA已經(jīng)收集到大于(或正好等于)B次的成員關(guān)系變動(dòng),若它等于Tmax則表明GSA在此期間收集到的成員關(guān)系變動(dòng)不足(或正好等于)B次。
GSAi在用戶層子組subgroupi內(nèi)采用單播的SKDC方案發(fā)布密鑰更新報(bào)文。除了向成員發(fā)布通信密鑰SEKi(n,t)外,它還把業(yè)務(wù)編號n和密鑰版本號vi同時(shí)發(fā)布給成員。這樣,盡管subgroupi內(nèi)可能并存多個(gè)群組的用戶集,并且一些用戶可能同時(shí)加入到多個(gè)群組,它們也能通過n來辨識到底是哪個(gè)群組發(fā)生了密鑰更新,并根據(jù)n來相應(yīng)更新其業(yè)務(wù)密鑰SEKi(n,t)及密鑰版本號vi。
3、密鑰預(yù)告MKMPL把版本管理引入到數(shù)據(jù)傳送協(xié)議中,利用對密鑰版本的管理來避免出現(xiàn)混亂。MKMPL要求數(shù)據(jù)發(fā)送者把它的子組密鑰版本附加在其密文消息中一并組播出去。
一個(gè)密鑰更新落后的成員在接收到使用最新SEK加密的數(shù)據(jù)時(shí),由于它只持有上個(gè)密鑰更新間隔所使用的密鑰,它必須暫時(shí)緩存密文數(shù)據(jù)。通常這會引起數(shù)據(jù)處理(如多媒體播放)延時(shí),這都是組播應(yīng)用中所不期望的。
MKMPL引入子組密鑰預(yù)告來避免這一問題。其基本思想是在物理子組subgroupi內(nèi),不是按正常時(shí)序發(fā)布版本為vi的SEKi,GSAi被調(diào)整為向組內(nèi)成員預(yù)先發(fā)布版本為vi+1的SEKi。這種方法的唯一例外發(fā)生在最開始的批次密鑰更新間隔(稱為時(shí)間段0,此時(shí)組內(nèi)成員個(gè)數(shù)為0,GSAi正在收集成員加入事件),在這個(gè)時(shí)段結(jié)束時(shí)(GSAi收集滿了B個(gè)成員關(guān)系變動(dòng),或者是間隔持續(xù)時(shí)間達(dá)到了上限Tmax),GSAi需要同時(shí)發(fā)布版本1和版本2的SEKi。
密鑰預(yù)告可一般性地歸納為GSAi在時(shí)間段vi-1收集成員加入和退出事件,但是,它并不是按正常操作去為下一間隔(即時(shí)間段vi對應(yīng)的時(shí)段)密鑰更新,而是為時(shí)間段vi+1作密鑰更新,如圖7所示。
4、子組融合MKMPL系統(tǒng)的可擴(kuò)展性是靠引入額外的計(jì)算開銷(GSA對業(yè)務(wù)數(shù)據(jù)的解密/加密)換取來的。為了限制成員關(guān)系變動(dòng),使之不波及到全組,每個(gè)物理子組各自采用本地子組通信密鑰,因而當(dāng)組播數(shù)據(jù)需要穿越物理子組時(shí),GSA需要承擔(dān)密文“翻譯”和轉(zhuǎn)發(fā)工作。數(shù)據(jù)發(fā)送者所在物理子組的GSA用本地子組通信密鑰把密文恢復(fù)為明文,再用邏輯子組通信密鑰把明文加密為密文;數(shù)據(jù)接收者所在子組的GSA則做相反的工作。子組融合的目的就是為了減免上述密文“翻譯”給GSA所帶來的計(jì)算開銷??紤]到子組是按地域劃分的,故難以對這套物理結(jié)構(gòu)直接進(jìn)行大規(guī)模的融合,相反,可以采取邏輯上的間接的辦法。
子組融合的基本思想是將動(dòng)態(tài)性低的用戶層子組合并到由靜態(tài)的GSA構(gòu)成的代理層子組。以圖8為例來說明,這是某個(gè)覆蓋子組subgroupi和subgroupj的業(yè)務(wù)n①起先,GSAi和GSAj都在各自的物理子組內(nèi)執(zhí)行常規(guī)的批次密鑰更新,如圖8(1)所示。
②當(dāng)subgroupi中的成員關(guān)系變動(dòng)頻率低于某個(gè)門限時(shí),GSAi認(rèn)為該物理子組的動(dòng)態(tài)性足夠低,就將subgroupi并入subgroup0。例如在批次密鑰更新中,GSAi在到達(dá)密鑰更新間隔上限Tmax后收集到的成員關(guān)系變動(dòng)次數(shù)小于B的二分之一,這時(shí)就判定該物理子組具有低動(dòng)態(tài)性。所謂合并,是指GSA不再按公式(2)向subgroupi發(fā)布SEKi(n,t),而是按公式(1)發(fā)布SEK0(n,t),也即用代理層的周期密鑰更新代替原本的用戶層批次密鑰更新,如圖8(2)所示。注意GSAi仍然要登記成員關(guān)系變動(dòng),仍然用單播SKDC向組內(nèi)成員發(fā)布SEK0(n,t),并且仍然沿用vi的計(jì)劃值,以使subgroupi內(nèi)的SEKi仍然按遞增規(guī)律變化,盡管SEKi的值現(xiàn)在等于SEK0(n,t)。
③不久,另一個(gè)物理子組subgroupj也變得具有低動(dòng)態(tài)性。GSAj按照相同的方法把subgroupj也并入subgroup0,如圖8(3)所示。此時(shí)subgroupi和subgroupj都已經(jīng)從原本不相關(guān)的、本地化的批次密鑰更新切換到了代理層的周期密鑰更新,它們都持有和subgroup0一樣的SEK0,因而GSAi和GSAj就可以簡單地在它們負(fù)責(zé)的物理子組與subgroup0之間轉(zhuǎn)發(fā)密文業(yè)務(wù),而不用先解密再加密。兩個(gè)物理子組內(nèi)的成員現(xiàn)在能直接用密文進(jìn)行交流,而無需GSA充當(dāng)“翻譯”。
④假定一段時(shí)間之后,GSAi檢測到subgroupi出現(xiàn)高動(dòng)態(tài)性(它在Tmax時(shí)段內(nèi)收集到的加入和退出事件個(gè)數(shù)多于門限值),為了維護(hù)全組的完整性(在根本上是維護(hù)組通信的機(jī)密性),GSAi切換回本地化的批次密鑰更新,這樣subgroupi就從subgroup0中退出,子組內(nèi)的成員關(guān)系變動(dòng)又被限定為局部事件,如圖8(4)所示。
一次組播業(yè)務(wù),例如某次足球比賽的電視直播,通常都會在節(jié)目剛開始時(shí)經(jīng)歷大量的成員加入請求,并在節(jié)目將結(jié)束時(shí)出現(xiàn)大量的成員退出;在節(jié)目進(jìn)行中間,群組通常會變得趨于穩(wěn)定,即只出現(xiàn)低限度的成員關(guān)系變動(dòng)。通過自適應(yīng)地將原本各不相關(guān)的物理子組融合為一個(gè)大規(guī)模的代理層的邏輯子組,MKMPL中的多次數(shù)據(jù)解密/加密得到了減免,從而有效地降低了GSA的計(jì)算負(fù)擔(dān)。當(dāng)然,為了滿足群組機(jī)密性要求并提供可擴(kuò)展性,GSA需要在組成員關(guān)系頻繁變化時(shí)切換回正常的批次密鑰更新操作,例如在節(jié)目的開始及結(jié)束階段。
具體的通信方法如下1、組播發(fā)送源的工作過程包括如下步驟①組播發(fā)送源,當(dāng)它要發(fā)送組播數(shù)據(jù)時(shí),它首先尋找最近的一個(gè)物理子組,假定為subgroupi,將自己的認(rèn)證信息發(fā)送給GSAi;②等待該物理子組的GSAi的認(rèn)證,認(rèn)證成功后獲得本地子組通信密鑰SEKi;③使用SEKi進(jìn)行加密,將加密后的數(shù)據(jù)組播出去,并監(jiān)聽GSAi的密鑰更新;④需要退出組播組時(shí),發(fā)送離開報(bào)文,退出組播組。
2、組播接收者的工作過程包括如下步驟①組播接收者,當(dāng)它要接收組播數(shù)據(jù)時(shí),它首先尋找最近的一個(gè)物理子組,假定為subgroupj,將自己的認(rèn)證信息發(fā)送給GSAj;②等待該物理子組的GSAj的認(rèn)證,認(rèn)證成功后獲得本地子組通信密鑰SEKj;③接收組播數(shù)據(jù),使用SEKj進(jìn)行解密,并監(jiān)聽GSAj的密鑰更新;④需要退出組播組時(shí),發(fā)送離開報(bào)文,退出組播組。
3、組安全代理的工作過程包括如下步驟①首先計(jì)算獲得代理層邏輯子組通信密鑰SEK0和本地子組通信密鑰SEKm(假定本子組為subgroupm),并定期計(jì)算更新SEK0;②啟動(dòng)進(jìn)程不斷的監(jiān)聽組播參與者的加入或退出請求,并對認(rèn)證后的加入者給出本地子組通信密鑰SEKm;③統(tǒng)計(jì)組播參與者的加入或退出請求次數(shù),當(dāng)達(dá)到規(guī)定的門限,進(jìn)行密鑰預(yù)告操作,更新的SEKm是下一版本的SEKm;④根據(jù)組播參與者變化次數(shù),當(dāng)少于規(guī)定的門限時(shí),進(jìn)行子組融合,將該物理子組合并到邏輯子組;合并后,當(dāng)變化次數(shù)大于規(guī)定的門限時(shí),將該物理子組從邏輯子組中分離出來,成為獨(dú)立的物理子組;⑤啟動(dòng)進(jìn)程監(jiān)聽本物理子組內(nèi)有無組播源需要發(fā)送數(shù)據(jù);⑥當(dāng)有組播源發(fā)送數(shù)據(jù)時(shí),接收數(shù)據(jù),使用SEKm解密,再使用SEK0加密數(shù)據(jù),組播給其他的物理子組;⑦啟動(dòng)進(jìn)程監(jiān)聽有無從其它物理子組發(fā)送的組播數(shù)據(jù);⑧當(dāng)有本物理子組需要的組播數(shù)據(jù)時(shí),接收數(shù)據(jù),使用SEK0解密,再使用本物理子組的通信密鑰SEKm加密,然后組播到本物理子組。
(4)效果為了檢驗(yàn)本發(fā)明的效果,在Linux操作系統(tǒng)的平臺上模擬了組播參與者接入組播組,經(jīng)組安全代理判斷加入組播組,獲得通信密鑰,組播源發(fā)送數(shù)據(jù),經(jīng)過組安全代理轉(zhuǎn)發(fā),組播接收者接收數(shù)據(jù)的過程。主要實(shí)施過程如下首先在Linux系統(tǒng)的主機(jī)上設(shè)置相應(yīng)的功能模塊(代表實(shí)際網(wǎng)絡(luò)環(huán)境下的組播源、組播接收者、組播路由器、物理子組。在實(shí)際網(wǎng)絡(luò)環(huán)境下,應(yīng)在組播參與者所在的局域網(wǎng)出口處位置設(shè)置組播路由器;在各個(gè)地域根據(jù)用戶情況劃分物理子組,決定各個(gè)物理子組的組安全代理;并將相應(yīng)的功能模塊裝配在其中),各具體模塊的實(shí)現(xiàn)框圖請參見附圖9~11。組播路由器上接收組播參與者的接入請求,并發(fā)出加入請求給相應(yīng)物理子組;該物理子組的組安全代理判斷組播參與者是否有權(quán)限訪問組播組,若有,即返回該物理子組的通信密鑰,以發(fā)送或接收組播數(shù)據(jù)。結(jié)果表明,沒有使用本發(fā)明方法的時(shí)候,沒有任何的安全功能,任意組播參與者可以接入組播組,發(fā)送或獲取未加密的組播信息;使用本發(fā)明方法后,增加了加密數(shù)據(jù)、密鑰管理功能,使得合法用戶可以有效地發(fā)送或接收組播信息,而非法用戶被拒絕提供組播服務(wù),并且各個(gè)物理子組可以根據(jù)本子組的情況更新密鑰,降低了密鑰更新的規(guī)模,減少了密鑰更新的開銷,可以有效的對密鑰進(jìn)行管理,是一種適用于安全組播領(lǐng)域的有效方法,具有良好的應(yīng)用前景。
權(quán)利要求
1.一種基于物理層次的組播密鑰管理方法,包括分組、通信及密鑰分配方法;其特征在于其中的分組方法將所述組播組的子組僅僅分為兩個(gè)層次①用戶層包括多個(gè)物理子組,它們分別受控于各自的組安全代理,每個(gè)組安全代理負(fù)責(zé)維護(hù)一個(gè)本地子組通信密鑰;②代理層包括一個(gè)邏輯子組,它由多個(gè)組安全代理組成并使用一個(gè)邏輯子組通信密鑰。
2.如權(quán)利要求1所述的方法,其特征在于基于上述分組方法,將動(dòng)態(tài)性低的用戶層物理子組合并到由靜態(tài)的組安全代理構(gòu)成的代理層邏輯子組,使子組融合。
3.如權(quán)利要求1或2所述的方法,其特征在于其中的密鑰分配方法中所采用的密鑰更新方法為代理層子組的周期密鑰更新方法代理層的邏輯子組通信密鑰定期更換,由每個(gè)組安全代理采用相同的公式SEK0(n,t)=f0(s,n,v0)計(jì)算得出,不須發(fā)布密鑰更新報(bào)文;用戶層子組的批次密鑰更新方法組安全代理統(tǒng)計(jì)組播參與者加入或退出的次數(shù)達(dá)到門限時(shí),更新本物理子組的本地子組通信密鑰,采用公式SEKi(n,t)=fi(s,n,vi)計(jì)算得出,然后向組內(nèi)的組播參與者發(fā)布密鑰更新報(bào)文更新本地子組通信密鑰。其中的密鑰分配方法中還增加了密鑰預(yù)告方法在物理子組內(nèi),組安全代理提前向各個(gè)組播參與者發(fā)布下一版本的本地子組通信密鑰。
4.如權(quán)利要求1或2所述的方法,其特征在于所述組播組中的各個(gè)組播參與者的通信過程為①組播發(fā)送源用本地子組通信密鑰對消息進(jìn)行加密,在本物理子組內(nèi)組播該加密數(shù)據(jù),同一物理子組的用戶利用本地子組通信密鑰解讀該數(shù)據(jù);②本物理子組的組安全代理收到密文后用本地子組通信密鑰解密,再將解密的消息用邏輯子組通信密鑰加密,然后向本邏輯子組中的其它組安全代理組播加密的數(shù)據(jù);③其它物理子組的組安全代理用邏輯子組通信密鑰解密來自上述物理子組的密文消息,獲得消息后再各自用它們的本地子組通信密鑰加密,并向各自物理子組內(nèi)組播加密數(shù)據(jù);④其它物理子組的組播接收者接收到密文后,用各自物理子組的本地子組通信密鑰解密并獲得消息。
5.如權(quán)利要求1或2所述的方法,其特征在于所述的組播發(fā)送源的工作過程包括如下步驟①當(dāng)它要發(fā)送組播數(shù)據(jù)時(shí),它首先尋找最近的一個(gè)物理子組,將自己的認(rèn)證信息發(fā)送給該物理子組;②等待該物理子組的組安全代理的認(rèn)證,認(rèn)證成功后獲得本地子組通信密鑰;③使用本地子組通信密鑰進(jìn)行加密,將加密后的數(shù)據(jù)組播出去,并監(jiān)聽組安全代理的密鑰更新;④需要退出組播組時(shí),發(fā)送離開報(bào)文,退出組播組;所述的組播接收者的工作過程包括如下步驟①當(dāng)它要接收組播數(shù)據(jù)時(shí),它首先尋找最近的一個(gè)物理子組,將自己的認(rèn)證信息發(fā)送給該物理子組;②等待該物理子組的組安全代理的認(rèn)證,認(rèn)證成功后獲得本地子組通信密鑰;③接收組播數(shù)據(jù),使用本地子組通信密鑰進(jìn)行解密,并監(jiān)聽組安全代理的密鑰更新;④需要退出組播組時(shí),發(fā)送離開報(bào)文,退出組播組;所述的組安全代理的工作過程包括如下步驟①首先,計(jì)算獲得本代理層的邏輯子組通信密鑰以及本地子組通信密鑰,并定期計(jì)算更新邏輯子組通信密鑰;②啟動(dòng)進(jìn)程,不斷地監(jiān)聽組播參與者的加入或退出請求,并對認(rèn)證后的加入者給出本地子組通信密鑰;③統(tǒng)計(jì)組播參與者加入或退出的次數(shù),當(dāng)達(dá)到規(guī)定的門限,進(jìn)行密鑰預(yù)告操作,更新的本地子組通信密鑰是下一版本的本地子組通信密鑰;④根據(jù)組播參與者變化次數(shù),當(dāng)少于規(guī)定的門限時(shí),進(jìn)行子組融合,將該物理子組合并到邏輯子組;合并后,當(dāng)變化次數(shù)大于規(guī)定的門限時(shí),將該物理子組從邏輯子組中分離出來,成為獨(dú)立的物理子組;⑤啟動(dòng)進(jìn)程,監(jiān)聽本物理子組內(nèi)有無組播源需要發(fā)送數(shù)據(jù);⑥當(dāng)有組播源發(fā)送數(shù)據(jù)時(shí),接收數(shù)據(jù),使用本地子組通信密鑰解密,再使用邏輯子組通信密鑰加密數(shù)據(jù),組播給其他的物理子組;⑦啟動(dòng)進(jìn)程,監(jiān)聽有無從其它物理子組發(fā)送的組播數(shù)據(jù);⑧當(dāng)有本物理子組需要的組播數(shù)據(jù)時(shí),接收數(shù)據(jù),使用邏輯子組通信密鑰解密,再使用本物理子組的本地子組通信密鑰加密,然后組播到本物理子組。
全文摘要
本發(fā)明是一種用于組播網(wǎng)絡(luò)中的基于物理層次的組播密鑰管理方法,它涉及到因特網(wǎng)安全組播領(lǐng)域,是用于組播服務(wù)中劃分子組、組播密鑰管理和組播通信的方法,可以有效的減少組播密鑰更新的開銷。組播發(fā)送源使用本地子組通信密鑰加密數(shù)據(jù)后組播給本物理子組,本物理子組的組安全代理收到后,解密后再使用邏輯子組通信密鑰加密后組播給其它的物理子組,其它物理子組的組安全代理收到后使用邏輯子組通信密鑰解密后,再使用本地子組通信密鑰加密組播給本物理子組的組播接收者,組播接收者使用本地通信密鑰解密獲得數(shù)據(jù)。本發(fā)明能夠有效的劃分子組,解決安全組播的密鑰管理問題,減少了組播密鑰更新的開銷,且沒有規(guī)模限制,具有良好的可擴(kuò)展性。
文檔編號H04L12/56GK1716853SQ200410041119
公開日2006年1月4日 申請日期2004年6月30日 優(yōu)先權(quán)日2004年6月30日
發(fā)明者洪佩琳, 朱文濤, 劉利, 王貴竹, 熊繼平 申請人:中國科學(xué)技術(shù)大學(xué)