一種低開銷的覆蓋網(wǎng)安全組播方法
【專利摘要】本發(fā)明公開了一種低開銷的覆蓋網(wǎng)安全組播方法,它涉及數(shù)據(jù)通信【技術(shù)領(lǐng)域】,特別是用于覆蓋網(wǎng)的數(shù)據(jù)安全高效傳輸。采用自底向上的分層分簇策略構(gòu)造組播樹,通過裁剪簇首的子節(jié)點數(shù),使得所有節(jié)點維護拓撲關(guān)系的控制算法復雜度為常量,保證節(jié)點開銷不隨組規(guī)模增大而加重;簇內(nèi)采用自平衡二叉樹算法,構(gòu)建組播分發(fā)路徑,保證系統(tǒng)穩(wěn)定性的同時減少數(shù)據(jù)延時;數(shù)據(jù)分發(fā)時采用區(qū)分密鑰策略,第0層節(jié)點和非第0層節(jié)點采用不同的密鑰策略,對數(shù)據(jù)進行加密傳輸,提供數(shù)據(jù)安全性。
【專利說明】—種低開銷的覆蓋網(wǎng)安全組播方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明公開了一種低開銷的覆蓋網(wǎng)安全組播方法,它涉及數(shù)據(jù)通信【技術(shù)領(lǐng)域】,特別是用于覆蓋網(wǎng)的數(shù)據(jù)安全傳輸方法。通過子節(jié)點的重加入,減少節(jié)點轉(zhuǎn)發(fā)開銷,采用區(qū)分密鑰策略,在保證效率的前提下,提高數(shù)據(jù)的安全性。
【背景技術(shù)】
[0002]目前Internet覆蓋網(wǎng)中的組播應用不同程度地要求數(shù)據(jù)的可靠傳輸,如視頻會議、網(wǎng)絡游戲、交互式仿真??煽拷M播正是針對不同的應用實現(xiàn)不同程度、不同要求的數(shù)據(jù)可靠傳輸,沒有可靠性保障的組播通信將無法在Internet中普及應用。以往可靠組播的研究都是針對IP組播,而IP組播本身由于技術(shù)和非技術(shù)因素目前仍無法普及,這就導致基于IP層的可靠組播的應用存在很多局限性。
[0003]應用層組播技術(shù)因其不需要路由器的支持、無需改變原有網(wǎng)絡的體系結(jié)構(gòu)等特征所表現(xiàn)出的靈活性而被廣泛應用。然而節(jié)點可自由退出組播樹,在節(jié)點失效或退出后其子節(jié)點的組播連接被迫中斷。因此,如何減少節(jié)點退出后帶來的傳輸中斷,是應用層組播樹穩(wěn)定性的主要問題。
[0004]目前應用最廣的NICE協(xié)議主要采取了層次化的節(jié)點集群思想。它可以支持大量不同的數(shù)據(jù)轉(zhuǎn)發(fā)樹,有較強的可擴展性。在NICE協(xié)議中,假設(shè)k為簇大小,N為節(jié)點個數(shù),節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)復雜度為k -O(1gkN),隨N的增加而增長,當N比較大時,節(jié)點轉(zhuǎn)發(fā)復雜度很大,對節(jié)點能力造成很大的負擔,可能導致節(jié)點異常,影響整個組播性能。
[0005]其次,NICE協(xié)議沒有考慮數(shù)據(jù)的安全傳輸,在計費視頻、行業(yè)內(nèi)部數(shù)據(jù)共享、保護用戶隱私上,存在嚴重缺陷。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是提供一種低節(jié)點開銷的覆蓋網(wǎng)安全組播方法。
[0007]本發(fā)明所采用的技術(shù)方案是:一種低開銷的覆蓋網(wǎng)安全組播方法,其基于由組播管理服務器,密鑰服務器,以及多個節(jié)點組成的網(wǎng)絡架構(gòu),包括以下步驟:
[0008]步驟1:系統(tǒng)啟動時,組播管理服務器端探測當前網(wǎng)絡中存在的所有存活的節(jié)點信息,并構(gòu)造一個全局控制網(wǎng)絡拓撲結(jié)構(gòu)。組播管理服務器端采用自底向上的分層分簇策略構(gòu)造組播樹,通過裁剪簇首的子節(jié)點數(shù),使得所有節(jié)點的維護控制拓撲的復雜度為常量,從而保證節(jié)點開銷不隨組規(guī)模增大而加重。組播管理服務器端負責控制節(jié)點的加入和退出,節(jié)點加入后和節(jié)點退出前的行為通過節(jié)點的客戶端由其父節(jié)點負責,以減輕組播管理服務器的開銷;節(jié)點的客戶端通過統(tǒng)一數(shù)據(jù)傳輸接口,完成數(shù)據(jù)的可靠傳輸。
[0009]步驟2:節(jié)點加入組播。待加入節(jié)點通過其客戶端向組播管理服務器發(fā)送加入請求,組播管理服務器端將頂層節(jié)點地址反饋給待加入節(jié)點的客戶端;待加入節(jié)點向頂層節(jié)點發(fā)送加入請求,并計算與頂層節(jié)點及頂層節(jié)點的子節(jié)點之間的往返時延;待加入節(jié)點繼續(xù)向往返延遲最小的節(jié)點發(fā)送加入請求,直到往返延遲最小的節(jié)點就是請求加入節(jié)點本身,或者往返延遲最小的節(jié)點是葉子節(jié)點,這時該節(jié)點就作為待加入節(jié)點的父節(jié)點。
[0010]步驟3:節(jié)點退出組播。節(jié)點退出組播分為主動退出和異常退出。節(jié)點主動退出時,節(jié)點的客戶端向組播管理服務器發(fā)送退出組播請求,組播管理服務器端的組播路由重構(gòu)模塊重新構(gòu)造組播路由,并將更新后的組播路由分發(fā)給各節(jié)點。節(jié)點異常退出時,是在節(jié)點異?;蛲ㄐ殴收蠒r發(fā)生,組播管理服務器端的心跳響應模塊在3個心跳周期中都沒有接收到節(jié)點的心跳消息,則判斷該節(jié)點異常退出,組播管理服務器端的組播路由重構(gòu)模塊重新構(gòu)造組播路由,并將更新后的組播路由分發(fā)給各節(jié)點。
[0011]步驟4:構(gòu)建組播分發(fā)路徑。在所有參與組播的節(jié)點中選取一個節(jié)點作為組播分發(fā)源,以組播分發(fā)源為根節(jié)點,簇首節(jié)點與簇成員節(jié)點之間根據(jù)父子關(guān)系,簇內(nèi)節(jié)點間根據(jù)自平衡二叉樹算法,構(gòu)建組播分發(fā)路徑。
[0012]步驟5:全局密鑰服務器端生成并發(fā)布全局的密鑰。數(shù)據(jù)分發(fā)時采用區(qū)分密鑰策略,第O層節(jié)點和非第O層節(jié)點采用不同的密鑰策略,對數(shù)據(jù)進行加密傳輸,提供數(shù)據(jù)安全性。第O層節(jié)點間采用點對點密鑰方式,非第O層節(jié)點采用全局密鑰方式。在組播分發(fā)路徑上屬于父子關(guān)系的第O層節(jié)點,相互之間通過握手方式確定點對點密鑰;非第O層節(jié)點,采用全局密鑰服務器端廣播全局統(tǒng)一密鑰。
[0013]步驟6:非第O層節(jié)點間的數(shù)據(jù)分發(fā)。組播分發(fā)源節(jié)點客戶端的數(shù)據(jù)接收模塊,監(jiān)測到需要分發(fā)數(shù)據(jù),數(shù)據(jù)加密模塊調(diào)用密鑰管理模塊中的全局統(tǒng)一密鑰,對分發(fā)數(shù)據(jù)進行加密,數(shù)據(jù)轉(zhuǎn)發(fā)模塊查找本地路由管理模塊中的下一跳節(jié)點,將加密后的數(shù)據(jù)分發(fā)給下一跳節(jié)點。
[0014]步驟7:非第O層節(jié)點與第O層節(jié)點間的數(shù)據(jù)分發(fā)。第O層節(jié)點的簇首節(jié)點的組播接收模塊,接收到上一跳發(fā)來的分發(fā)數(shù)據(jù),數(shù)據(jù)解密模塊調(diào)用密鑰管理模塊中的全局統(tǒng)一密鑰,對分發(fā)數(shù)據(jù)進行解密,并將解密后的數(shù)據(jù)存儲在本地。數(shù)據(jù)轉(zhuǎn)發(fā)模塊查找本地路由管理模塊中的下一跳節(jié)點,數(shù)據(jù)加密模塊從密鑰管理模塊中獲取與下一跳節(jié)點之間的點對點密鑰,對分發(fā)數(shù)據(jù)進行加密,將加密后的數(shù)據(jù)分發(fā)給下一跳節(jié)點。
[0015]步驟8:第O層節(jié)點間的數(shù)據(jù)分發(fā)。簇內(nèi)節(jié)點的組播接收模塊,接收到來自上一跳的分發(fā)數(shù)據(jù),數(shù)據(jù)解密模塊從密鑰管理模塊中獲取與上一跳節(jié)點之間的點對點密鑰,對分發(fā)數(shù)據(jù)進行解密,并將解密后的數(shù)據(jù)存儲在本地。數(shù)據(jù)轉(zhuǎn)發(fā)模塊查找本地路由管理模塊中的下一跳節(jié)點,數(shù)據(jù)加密模塊從密鑰管理模塊中獲取與下一跳節(jié)點之間的點對點密鑰,對分發(fā)數(shù)據(jù)進行加密,將加密后的數(shù)據(jù)分發(fā)給下一跳節(jié)點。
[0016]本發(fā)明與現(xiàn)有技術(shù)相比,具有如下其顯著特點:
[0017](I)提出降低節(jié)點維護開銷的復雜度方法:通過重新分配簇首節(jié)點的低級子節(jié)點,從而保證簇首節(jié)點的維護開銷復雜度為一個常數(shù)。
[0018](2)簇內(nèi)部數(shù)據(jù)分發(fā)時,采用自平衡二叉樹算法來構(gòu)建分發(fā)路徑,提高數(shù)據(jù)分發(fā)效率。
[0019](3)在數(shù)據(jù)分發(fā)時加入安全機制,極大提高數(shù)據(jù)安全:簇首節(jié)點間采用全局統(tǒng)一密鑰機制,非簇首節(jié)點內(nèi)部采用點對點密鑰機制,在保障安全的前提下,提高系統(tǒng)穩(wěn)定性。
[0020]該發(fā)明適合大規(guī)模組播應用,采用分層分簇管理策略,通過子節(jié)點的重加入,減少節(jié)點的數(shù)據(jù)轉(zhuǎn)發(fā)負載,提高組播樹穩(wěn)定性;采用自平衡二叉查找樹——紅黑樹算法,提高簇內(nèi)節(jié)點的數(shù)據(jù)分發(fā)效率;采用區(qū)分的加密方案,在盡量不影響效率的前提下,提高數(shù)據(jù)傳輸?shù)陌踩浴?br>
[0021]隨著行業(yè)領(lǐng)域中文件分發(fā)和流媒體傳輸需求日益增強,采用無需更改網(wǎng)絡結(jié)構(gòu)的覆蓋層組播技術(shù)進行安全可靠的數(shù)據(jù)傳輸有著迫切需求,本發(fā)明具有廣泛的應用前景。
【專利附圖】
【附圖說明】
[0022]圖1是本發(fā)明的組播管理服務器端模塊結(jié)構(gòu)圖。
[0023]圖2是本發(fā)明的組播密鑰服務器端模塊結(jié)構(gòu)圖。
[0024]圖3是本發(fā)明的組播客戶端模塊結(jié)構(gòu)圖。
[0025]圖4是本發(fā)明的覆蓋網(wǎng)節(jié)點分層分簇的控制拓撲生成過程圖之一。
[0026]圖5是本發(fā)明的覆蓋網(wǎng)節(jié)點分層分簇的控制拓撲生成過程圖之二。
[0027]圖6是本發(fā)明的覆蓋網(wǎng)節(jié)點分層分簇的控制拓撲生成過程圖之三。
[0028]圖7是本發(fā)明的覆蓋網(wǎng)節(jié)點數(shù)據(jù)分發(fā)示意圖之一。
[0029]圖8是本發(fā)明的覆蓋網(wǎng)節(jié)點數(shù)據(jù)分發(fā)示意圖之二。
[0030]圖9是本發(fā)明的覆蓋網(wǎng)節(jié)點數(shù)據(jù)分發(fā)示意圖之三。
[0031]圖10是本發(fā)明的分層分簇組播拓撲結(jié)構(gòu)圖。
[0032]圖11是本發(fā)明的組播樹構(gòu)造流程圖。
[0033]圖12是本發(fā)明的組播路由優(yōu)化流程圖。
[0034]圖13是本發(fā)明的組播路由安全密鑰流程圖。
[0035]圖14是本發(fā)明的狀態(tài)反饋模塊流程圖。
[0036]圖15是本發(fā)明的仿真效果比較圖。
【具體實施方式】
[0037]本發(fā)明采用分層分簇的組播樹構(gòu)建方法,通過釋放簇首節(jié)點的子節(jié)點開銷,采用數(shù)據(jù)區(qū)分加密傳輸方式,保證數(shù)據(jù)安全傳輸?shù)耐瑫r提高系統(tǒng)的健壯性。本系統(tǒng)從部署上來劃分,可以分為組播管理服務器,密鑰管理服務器以及客戶端;從功能上來劃分,可以分為組播管理模塊,數(shù)據(jù)分發(fā)模塊,密鑰管理模塊。其基本原理如下:采用自底向上的分層分簇策略構(gòu)造組播樹,通過裁剪簇首的子節(jié)點數(shù),使得所有節(jié)點的維護控制拓撲的復雜度為常量,保證節(jié)點開銷不隨組規(guī)模增大而加重;簇內(nèi)采用自平衡二叉樹算法,構(gòu)建組播分發(fā)路徑,保證系統(tǒng)穩(wěn)定性同時減少數(shù)據(jù)延時;數(shù)據(jù)分發(fā)時采用區(qū)分密鑰策略,第O層節(jié)點和非第O層節(jié)點采用不同的密鑰策略,對數(shù)據(jù)進行加密傳輸,提供數(shù)據(jù)安全性。
[0038]本發(fā)明的基本方法是:初始化時,所有節(jié)點都位于第O層,將第O層節(jié)點劃分成大小為k的簇,在每一個簇中選取簇首節(jié)點,形成第I層的成員;然后將第I層節(jié)點劃分成大小為k的簇,在每一個簇中選取簇首節(jié)點,形成第2層的成員,同時將第2層成員的子節(jié)點中非第I層成員的節(jié)點轉(zhuǎn)移到第I層的子節(jié)點下;依次類推,將第i_l層節(jié)點劃分成大小為k的簇,在每個簇中選取簇首節(jié)點,形成第i層的成員,同時將第i層成員的子節(jié)點中非第1-1層成員的節(jié)點轉(zhuǎn)移到第i_l層的子節(jié)點下,直到頂層為I個節(jié)點,這樣就形成了節(jié)點最大復雜度為k的組播拓撲結(jié)構(gòu)。在簇內(nèi),采用自平衡二叉樹算法,構(gòu)成粗內(nèi)節(jié)點的數(shù)據(jù)拓撲結(jié)構(gòu),在保證時效性的同時控制節(jié)點的開銷。針對第O層節(jié)點的動態(tài)性較大(如頻繁加入退出,低性能導致異常死機),而簇首節(jié)點穩(wěn)定性較強,采用區(qū)分密鑰策略對數(shù)據(jù)傳輸進行加密,在非第O層簇內(nèi)數(shù)據(jù)分發(fā)時,采用統(tǒng)一全局密鑰管理策略,在第O層的簇內(nèi)節(jié)點數(shù)據(jù)分發(fā)時,采用點到點密鑰管理策略。根據(jù)這種方法,在大規(guī)模節(jié)點管理時,控制拓撲復雜度是一個常量k,不受規(guī)模影響;采用自平衡二叉樹一紅黑樹算法能降低樹的深度,其復雜度為logk,k為簇大小,這種分法方法有效減少數(shù)據(jù)轉(zhuǎn)發(fā)延時;采用區(qū)分密鑰策略,在保證數(shù)據(jù)安全性的同時盡量減少對效率的影響,這種設(shè)計方案在同類產(chǎn)品中處于國內(nèi)領(lǐng)先水平。
[0039]本發(fā)明的技術(shù)方案主要分為以下三步:
[0040]步驟1、在分層分簇的組播分發(fā)拓撲結(jié)構(gòu)中,高層節(jié)點擔負著轉(zhuǎn)發(fā)數(shù)據(jù)的任務,因此高層節(jié)點的轉(zhuǎn)發(fā)復雜度,直接影響到底層節(jié)點接收數(shù)據(jù)的延時,復雜度越高延時越大。本發(fā)明通過負載平衡方法,轉(zhuǎn)移高層節(jié)點的子節(jié)點數(shù),保證高層節(jié)點的轉(zhuǎn)發(fā)復雜度為常量,減少高層節(jié)點間轉(zhuǎn)發(fā)數(shù)據(jù)延時,提高數(shù)據(jù)分發(fā)效率。
[0041]步驟2、構(gòu)建簇內(nèi)數(shù)據(jù)分發(fā)路由時,采用紅黑樹算法構(gòu)造組播分發(fā)樹,紅黑樹算法是一種自平衡二叉查找樹,針對大小為k的簇,其復雜度為1gk為常量。采用平衡二叉樹算法能有效降低簇內(nèi)分發(fā)樹的高度,平衡簇內(nèi)部成員的轉(zhuǎn)發(fā)負載,有效縮短簇內(nèi)部數(shù)據(jù)分發(fā)的延時。
[0042]步驟3、采用區(qū)分密鑰策略對數(shù)據(jù)進行加密傳輸。通過自下而上的組播樹構(gòu)造策略得到的組播拓撲結(jié)構(gòu),可以得到以下結(jié)論:第O層節(jié)點性能較低動態(tài)性較強,而第I層及以上層的節(jié)點性能較高穩(wěn)定性較高。本發(fā)明采用數(shù)據(jù)加密算法(Data EncryptionAlgorithm, DEA)這一對稱算法對數(shù)據(jù)進行加密,針對密鑰管理策略常用的方法有兩種:一是全局統(tǒng)一密鑰策略,即所有節(jié)點通過相同的全局密鑰來加密解密數(shù)據(jù);二是點到點密鑰策略,即兩節(jié)點間的密鑰由這兩個節(jié)點來生成,不同節(jié)點間的密鑰不相同。方法一的優(yōu)點是轉(zhuǎn)發(fā)節(jié)點直接轉(zhuǎn)發(fā)加密數(shù)據(jù)即可,轉(zhuǎn)發(fā)效率和非加密數(shù)據(jù)是等效的,缺點是節(jié)點動態(tài)加入退出操作頻繁時,需要在全部節(jié)點中更新密鑰,增加控制開銷。方法二的優(yōu)點是節(jié)點的動態(tài)加入退出只需要重新生成其與父節(jié)點、子節(jié)點的密鑰,不會影響全局密鑰,缺點是每個節(jié)點接受到數(shù)據(jù)后,都需要先解密,然后通過與下一跳節(jié)點的協(xié)商密鑰加密再傳輸給下一跳,極大地增加了節(jié)點的轉(zhuǎn)發(fā)開銷。因此本發(fā)明采用區(qū)分密鑰策略,在穩(wěn)定性較強的非O層節(jié)點采用全局統(tǒng)一密鑰,在穩(wěn)定性較差的第O層節(jié)點采用點到點密鑰。通過分析可知,假設(shè)
N為節(jié)點數(shù),k為簇大小,則采用全局同一密鑰的節(jié)點數(shù)為;,采用點到點密鑰的節(jié)點數(shù)為
AT。簇首節(jié)點的動態(tài)性導致控制開銷復雜度為\第O層節(jié)點的動態(tài)性導致的開銷復 k k
雜度為I。這種方法在保證數(shù)據(jù)安全的前提下,極大降低了由于安全機制帶來的開銷。
[0043]下面結(jié)合附圖對本發(fā)明作進一步詳細描述。
[0044]本發(fā)明為實現(xiàn)覆蓋網(wǎng)數(shù)據(jù)的高效安全組播,基于NICE協(xié)議框架,在組播構(gòu)建時采用均衡負載機制,簇內(nèi)節(jié)點采用紅黑樹算法得到一個平衡二叉樹的分發(fā)路徑,采用區(qū)分密鑰策略加密數(shù)據(jù)。組播管理服務器、組播密鑰服務器及客戶端層次分明,各自功能明確,組播管理服務器是整個系統(tǒng)的核心,負責節(jié)點的加入退出以及組播路由的構(gòu)建,組播密鑰服務器負責全局密鑰的生成以及分發(fā),客戶端負責數(shù)據(jù)的轉(zhuǎn)發(fā)及接收。
[0045]本發(fā)明的一種低開銷的覆蓋網(wǎng)安全組播方法基于組播管理服務器、組播密鑰服務器及多個節(jié)點組成的架構(gòu)。組播管理服務器上安裝組播構(gòu)造軟件,負責路由構(gòu)建、路由重構(gòu)、路由分發(fā)、界面響應、可信節(jié)點驗證等,簡稱組播管理服務器端。組播密鑰服務器上安裝密鑰生成與分發(fā)軟件,負責全局密鑰管理與全局密鑰分發(fā),簡稱組播密鑰服務器端。多個節(jié)點上均安裝組播節(jié)點接收軟件,負責本地的組播路由與數(shù)據(jù)分發(fā),簡稱組播客戶端。
[0046]結(jié)合圖1,本發(fā)明的組播管理服務器端模塊結(jié)構(gòu)圖。組播管理服務器端包括有組播路由構(gòu)建模塊、組播路由重構(gòu)模塊、路由分發(fā)模塊、界面響應模塊、可信節(jié)點驗證模塊以及守候進程模塊組成,其中守候進程模塊又分為加入響應模塊、退出響應模塊、心跳響應模塊和成員注冊響應模塊。
[0047]組播管理服務器端,采用自底而上分層分簇的組播構(gòu)造技術(shù),通過拆分低層子節(jié)點,維護一個低開銷的簇首節(jié)點。
[0048]組播管理服務器端可以通過在標準C平臺上實現(xiàn),并部署運行在組播管理服務器上,通過Internet來響應節(jié)點的行為,在組播管理服務器上構(gòu)造一個全局控制網(wǎng)絡拓撲結(jié)構(gòu)。所述的標準C平臺,通過少量庫包的修改及編譯,可適應多種平臺(如Windows,UNIX,麒麟,ARM)的應用。另外,由于C平臺天生的接近底層開發(fā),可以將開發(fā)平臺的處理時延降到最低。
[0049]組播管理服務器端的組播路由構(gòu)建模塊和組播路由重構(gòu)模塊,負責構(gòu)建和優(yōu)化組播拓撲結(jié)構(gòu)。
[0050]組播路由構(gòu)建模塊,用于根據(jù)分層分簇低開銷策略,以探測到的節(jié)點距離為依據(jù),對節(jié)點進行分簇,最后達到分層分簇的節(jié)點拓撲結(jié)構(gòu)圖。
[0051]組播路由重構(gòu)模塊,用于監(jiān)測分層分簇的組播拓撲中,對異常的父-子-孫鏈路進行優(yōu)化,提高數(shù)據(jù)的分發(fā)效率。
[0052]路由分發(fā)模塊,用于將路由構(gòu)造模塊和路由重構(gòu)模塊生成好的路由信息,分發(fā)給各成員節(jié)點。
[0053]界面響應模塊,用于解析用戶輸入的命令,以及將系統(tǒng)信息輸出到控制臺,負責與用戶交互界面的操作。
[0054]可信節(jié)點驗證模塊,用于驗證節(jié)點的MAC地址、IP地址、用戶名、密碼是否滿足可信任節(jié)點的約束策略。
[0055]守候進程模塊是負責客戶端的操作響應。其中:加入響應模塊,用于響應節(jié)點的加入請求,并發(fā)出反饋消息。退出響應模塊,用于響應節(jié)點的推出請求,并發(fā)出反饋消息。
[0056]心跳響應模塊,用于響應節(jié)點心跳消息,并發(fā)出反饋消息。成員注冊響應模塊,用于解析節(jié)點注冊消息,通過可信節(jié)點驗證模塊認證后,反饋注冊成功消息,否則,反饋注冊失敗消息。
[0057]結(jié)合圖2,本發(fā)明的組播密鑰服務器端模塊結(jié)構(gòu)圖。組播密鑰服務器端包括有全局密鑰管理模塊和全局密鑰分發(fā)模塊組成。全局密鑰服務器端用來生成并發(fā)布全局的密鑰,在節(jié)點加入時,廣播新的密鑰,更新全局密鑰。數(shù)據(jù)源所在服務器,先通過全局密鑰服務器的密鑰來生成加密數(shù)據(jù),然后轉(zhuǎn)發(fā)加密數(shù)據(jù)到下一跳節(jié)點。
[0058]全局密鑰管理模塊,用于生成DES (Data Encryption Standard,數(shù)據(jù)加密標準)所需要的64比特的密文,并通過系統(tǒng)自帶的密文進行加密,形成全局密文。
[0059]全局密鑰分發(fā)模塊,用于將全局密鑰管理模塊生成好的密鑰,發(fā)送給組播成員節(jié)點。[0060]結(jié)合圖3,本發(fā)明的組播客戶端模塊結(jié)構(gòu)圖。組播客戶端分為組播管理模塊和數(shù)據(jù)分發(fā)模塊。
[0061]組播管理模塊又分為節(jié)點心跳模塊、節(jié)點加入模塊、節(jié)點退出模塊、界面響應模塊、本地路由管理模塊和異常處理模塊。節(jié)點心跳模塊負責簇內(nèi)節(jié)點間周期的心跳測量,客戶端每隔一個心跳周期,就向父節(jié)點報告節(jié)點存活狀態(tài)。節(jié)點加入模塊和節(jié)點退出模塊負責向組播管理服務器上報節(jié)點狀態(tài),客戶端加入組播時,向組播管理服務器發(fā)起節(jié)點加入請求;客戶端退出組播時,向組播管理服務器發(fā)起節(jié)點退出請求。界面響應模塊用于解析用戶輸入的命令,以及將系統(tǒng)信息輸出到控制臺,其功能與組播管理服務器中的模塊功能相同,負責與用戶交互。本地節(jié)點路由管理模塊負責解析并存儲本簇的路由信息,其用于解析組播管理服務器發(fā)來的路由信息,對本地路由表的記錄進行增加、刪除、修改操作。異常處理模塊負責管理組播節(jié)點的異常信息,并上報組播管理服務器。
[0062]數(shù)據(jù)分發(fā)模塊包括密鑰管理模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)解密模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)轉(zhuǎn)發(fā)模塊、任務狀態(tài)監(jiān)控模塊、數(shù)據(jù)調(diào)度模塊、緩沖區(qū)管理模塊。數(shù)據(jù)分發(fā)模塊負責數(shù)據(jù)安全高效傳輸,其中密鑰管理模塊、數(shù)據(jù)加密模塊、數(shù)據(jù)解密模塊基于DEA數(shù)據(jù)加密策略,保證數(shù)據(jù)的安全傳輸;數(shù)據(jù)接收模塊和數(shù)據(jù)轉(zhuǎn)發(fā)模塊,負責數(shù)據(jù)落地供本節(jié)點使用,以及根據(jù)路由信息中的下一跳,將數(shù)據(jù)轉(zhuǎn)發(fā)給下一個節(jié)點;數(shù)據(jù)調(diào)度模塊用于優(yōu)化本地數(shù)據(jù)的讀取以及高效存放;緩沖區(qū)管理模塊負責清理緩沖區(qū)中過期的或是臟的無用數(shù)據(jù),釋放內(nèi)存空間。
[0063]數(shù)據(jù)接收模塊將接收到的數(shù)據(jù),通過數(shù)據(jù)解密模塊,解密后存儲在本地,重新加密或直接轉(zhuǎn)發(fā)加密數(shù)據(jù)到下一跳。
[0064]密鑰管理模塊,用于接收密鑰服務器發(fā)送來的密鑰,同時也負責生成本節(jié)點的密鑰。數(shù)據(jù)加密模塊,用于對接收到的數(shù)據(jù)進行加密操作。數(shù)據(jù)解密模塊,用于對接收到的數(shù)據(jù)進行解密操作。數(shù)據(jù)接收模塊,用于接收父節(jié)點上一跳發(fā)送來的數(shù)據(jù),將數(shù)據(jù)解密后存儲在本地。數(shù)據(jù)轉(zhuǎn)發(fā)模塊,用于將接收到的數(shù)據(jù)轉(zhuǎn)發(fā)給下一跳節(jié)點。任務狀態(tài)監(jiān)控模塊,用于節(jié)點接收到數(shù)據(jù)后,向上一跳反饋接收狀態(tài)。數(shù)據(jù)調(diào)度模塊,用于在本地文件系統(tǒng)中存儲和讀取數(shù)據(jù)。緩沖區(qū)管理模塊,用于定期清理本地的緩存,釋放系統(tǒng)內(nèi)存。
[0065]客戶端的加入和退出直接由組播管理服務器負責,節(jié)點加入后和節(jié)點退出前,節(jié)點的行為均為父節(jié)點負責,減輕組播管理服務器的開銷;客戶端通過統(tǒng)一數(shù)據(jù)傳輸接口,完成數(shù)據(jù)的可靠傳輸。
[0066]組播客戶端接收、存儲和轉(zhuǎn)發(fā)(非葉節(jié)點)組播數(shù)據(jù)源的數(shù)據(jù),同時具有數(shù)據(jù)緩存能力,在子節(jié)點數(shù)據(jù)接收失敗時,可迅速實現(xiàn)數(shù)據(jù)重傳。
[0067]結(jié)合圖4至圖6,本發(fā)明的覆蓋網(wǎng)節(jié)點分層分簇的控制拓撲生成過程圖。本發(fā)明的組播拓撲結(jié)構(gòu)構(gòu)建步驟是自下而上、分層分簇的構(gòu)建方法,圖4表示初始化時,所有的組播節(jié)點進行分簇,設(shè)定簇大小k = 4,以相互間的距離為權(quán)值,劃分成4個簇:[A0,Al, A2, B0]、[A3, A4, A5, CO]、[A6, A7, A8, BI]、[A9, A10, All, B2],為第 O 層。簇首定義:每個簇中距離其他節(jié)點累加權(quán)值最小者為族首。根據(jù)簇首定義:B0、B1、B2、C0為第O層的簇首,它們形成了第I層的成員節(jié)點;同理,根據(jù)簇首定義:C0為第I層的簇首,其也形成了第2層的成員節(jié)點。此時CO的子節(jié)點中有第I層節(jié)點B0、B1、B2,以及第O層節(jié)點A3、A4、A5。根據(jù)基本方法中敘述的:將第i層成員的子節(jié)點中非第1-1層成員的節(jié)點轉(zhuǎn)移到第1-1層的子節(jié)點下。結(jié)合圖5,需要將第2層成員的子節(jié)點中非第I層(第O層)節(jié)點A3、A4、A5,轉(zhuǎn)移到第I層節(jié)點B0、B1、B2的子節(jié)點中,轉(zhuǎn)移規(guī)則是第O層節(jié)點在CO的下一層子節(jié)點B0、B1、B2中,尋找距離各自最近的節(jié)點作為父節(jié)點。結(jié)合圖6,最終CO節(jié)點的子節(jié)點中,只有第I層節(jié)點:B0、B1、B2,沒有第O層節(jié)點:A3、A4、A5,這樣保證了高層節(jié)點的維護復雜度為常量k。
[0068]結(jié)合圖7至9,本發(fā)明的覆蓋網(wǎng)節(jié)點數(shù)據(jù)分發(fā)示意圖。本發(fā)明的分層分簇覆蓋網(wǎng)組播,是支持多源分發(fā)的:每一個成員節(jié)點都可以作為分發(fā)源,不同的分發(fā)源根據(jù)分層分簇中的組播路徑形成分發(fā)路徑。結(jié)合圖7,以節(jié)點AO為數(shù)據(jù)分發(fā)源的分發(fā)路徑。結(jié)合圖8,以節(jié)點A7為數(shù)據(jù)分發(fā)源的分發(fā)路徑。結(jié)合圖9,以節(jié)點CO為數(shù)據(jù)分發(fā)源的分發(fā)路徑。
[0069]結(jié)合圖10,本發(fā)明的目標是要構(gòu)建一個節(jié)點維護復雜度為常量的分層分簇組播拓撲結(jié)構(gòu)。最底層為第O層,是所有的非簇首節(jié)點以及第O層的簇首節(jié)點;第1層為第O層的簇首節(jié)點以及第二層的成員節(jié)點;第2層為最頂層,其成員為第I層的簇首節(jié)點。每一個簇首節(jié)點,都跨層存在,既是下一層的簇首節(jié)點,也是上一層的成員節(jié)點,但不會存在一個節(jié)點跨越超過2層。在第O層中采用點對點密鑰管理策略,每對節(jié)點之間維護一個密鑰,非第O層節(jié)點之間采用全局密鑰管理策略。
[0070]結(jié)合圖11,本發(fā)明的組播樹構(gòu)造流程圖。本發(fā)明的組播樹構(gòu)造算法位于組播管理服務器端。執(zhí)行以下步驟:
[0071]步驟1:獲取節(jié)點間距離,作為分簇的依據(jù);
[0072]步驟2:得到所有組播成員節(jié)點信息;
[0073]步驟3:初始化層i = 0,將第i層中距離最近的節(jié)點歸為同一簇,直到簇大小為k,并給分簇節(jié)點打上已分簇標記FLAG ;
[0074]步驟4:每個簇中選取一個距離其他節(jié)點累計權(quán)值最小的作為簇首;
[0075]步驟5:從沒有FLAG標記的節(jié)點中,繼續(xù)執(zhí)行分簇算法,直到所有的成員節(jié)點都屬于某個簇;
[0076]步驟6:第i層的簇首節(jié)點形成第i+Ι層的成員;
[0077]步驟7:將第i+Ι層的子節(jié)點中不屬于第i層的,以第i層的子節(jié)點為父節(jié)點,重新加入組播樹中;
[0078]步驟8:判斷第i+Ι層節(jié)點是否只有I個節(jié)點,如果是,則跳到第九步,否則繼續(xù)執(zhí)行第四步至第八步的流程;
[0079]步驟9:組播路由構(gòu)建結(jié)束;
[0080]步驟10:組播路由分發(fā)。
[0081]結(jié)合圖12,本發(fā)明的組播路由優(yōu)化流程圖。本發(fā)明的組播重構(gòu)算法,是優(yōu)化組播拓撲結(jié)構(gòu)。一是簇內(nèi)成員節(jié)點,在父兄節(jié)點中進行比較,是否有更優(yōu)的父節(jié)點。二是簇內(nèi)部,是否有比現(xiàn)有粗首節(jié)點的累計權(quán)重更小的節(jié)點,有則更新該簇的簇首節(jié)點。
[0082]結(jié)合圖13,本發(fā)明的組播路由安全密鑰流程圖。本發(fā)明的采用區(qū)分密鑰機制進行數(shù)據(jù)安全傳輸。按照密鑰機制的不同,將節(jié)點分為三類:第O層非簇首節(jié)點、第I層非簇首節(jié)點和第2層及以上層節(jié)點。第一種情況,第O層非簇首節(jié)點接收到數(shù)據(jù),獲取與上一跳的密鑰對數(shù)據(jù)進行解密,存儲到本地,然后獲取與下一跳的密鑰,對數(shù)據(jù)進行加密,然后獲取下一跳地址進行轉(zhuǎn)發(fā)。第二種情況,第I層非簇首節(jié)點接收到數(shù)據(jù),獲取全局統(tǒng)一密鑰對數(shù)據(jù)進行解密,存儲到本地,然后獲取與下一跳的密鑰,對數(shù)據(jù)進行加密,然后獲取下一跳地址進行轉(zhuǎn)發(fā)。第三種情況,第2層及以上層節(jié)點,獲取全局統(tǒng)一密鑰對數(shù)據(jù)進行解密,存儲到本地,然后直接將接收到的加密數(shù)據(jù)進行轉(zhuǎn)發(fā)。
[0083]結(jié)合圖14,本發(fā)明的狀態(tài)反饋模塊流程圖。首先數(shù)據(jù)接收失敗分兩種情況,接收超時和解析失敗,分發(fā)源接收到分發(fā)失敗消息后,如果重傳次數(shù)不到3次,則將重傳次數(shù)加1,然后進行重傳,否則不執(zhí)行重傳,直接得出數(shù)據(jù)分發(fā)失敗結(jié)論。分發(fā)源接收到數(shù)據(jù)分發(fā)成功消息后,得出數(shù)據(jù)分發(fā)成功結(jié)論。
[0084]結(jié)合圖15,本發(fā)明的仿真效果比較圖。仿真環(huán)境采用NS2的emulation半仿真試驗模式,首先用GT-1TM生成10個傳輸拓撲,每個拓撲結(jié)構(gòu)都有兩層的傳輸網(wǎng)絡及節(jié)點網(wǎng)絡,每個拓撲都有4個傳輸域和64個節(jié)點域,每個節(jié)點域生成50個終端節(jié)點,終端節(jié)點通過局域網(wǎng)連接到節(jié)點路由器。
[0085]本發(fā)明方法與NICE組播、IP組播在數(shù)據(jù)傳輸延時與組規(guī)模關(guān)系的比較,NICE算法是基于大規(guī)模節(jié)點的應用層組播分層分簇構(gòu)造方法,IP組播是分發(fā)效率最高的組播分發(fā)方法。在組播數(shù)據(jù)分發(fā)過程中,隨組規(guī)模的增長會增加數(shù)據(jù)的傳輸路徑,導致數(shù)據(jù)傳輸延遲增大,圖15可以看出,隨著組規(guī)模的增長,IP組播的時延增長較緩慢,而本發(fā)明方法的時延要小于傳統(tǒng)的NICE協(xié)議,而且隨著組規(guī)模增長,這種優(yōu)勢越來越明顯。
【權(quán)利要求】
1.一種低開銷的覆蓋網(wǎng)安全組播方法,是基于由組播管理服務器,密鑰服務器,以及多個節(jié)點組成的網(wǎng)絡架構(gòu),其特征在于包括以下步驟: 步驟1:組播管理服務器端探測當前網(wǎng)絡中存在的所有存活的節(jié)點信息,并構(gòu)造一個全局控制網(wǎng)絡拓撲結(jié)構(gòu): 組播管理服務器端采用自底向上的分層分簇策略構(gòu)造組播樹,通過裁剪簇首的子節(jié)點數(shù),使得所有節(jié)點維護拓撲關(guān)系的控制算法復雜度為常量; 組播管理服務器端負責控制節(jié)點的加入和退出,節(jié)點加入后和節(jié)點退出前的行為通過節(jié)點的客戶端由其父節(jié)點負責; 節(jié)點的客戶端通過統(tǒng)一數(shù)據(jù)傳輸接口,完成數(shù)據(jù)傳輸; 步驟2:節(jié)點加入組播: 待加入節(jié)點通過其客戶端向組播管理服務器發(fā)送加入請求,組播管理服務器端將頂層節(jié)點地址反饋給待加入節(jié)點的客戶端;待加入節(jié)點向頂層節(jié)點發(fā)送加入請求,并計算與頂層節(jié)點及頂層節(jié)點的子節(jié)點之間的往返時延;待加入節(jié)點繼續(xù)向往返延遲最小的節(jié)點發(fā)送加入請求,直到往返延遲最小的節(jié)點就是請求加入節(jié)點本身,或者往返延遲最小的節(jié)點是葉子節(jié)點,這時該節(jié)點就作為待加入節(jié)點的父節(jié)點; 步驟3:節(jié)點退出 組播: 節(jié)點退出組播分為主動退出和異常退出; 節(jié)點主動退出時,節(jié)點的客戶端向組播管理服務器發(fā)送退出組播請求,組播管理服務器端的組播路由重構(gòu)模塊重新構(gòu)造組播路由,并將更新后的組播路由分發(fā)給各節(jié)點; 節(jié)點異常退出時,組播管理服務器端的心跳響應模塊在3個心跳周期中都沒有接收到節(jié)點的心跳消息,則判斷該節(jié)點異常退出,組播管理服務器端的組播路由重構(gòu)模塊重新構(gòu)造組播路由,并將更新后的組播路由分發(fā)給各節(jié)點; 步驟4:構(gòu)建組播分發(fā)路徑: 在所有參與組播的節(jié)點中選取一個節(jié)點作為組播分發(fā)源,以組播分發(fā)源為根節(jié)點,簇首節(jié)點與簇成員節(jié)點之間根據(jù)父子關(guān)系,簇內(nèi)節(jié)點間根據(jù)自平衡二叉樹算法,構(gòu)建組播分發(fā)路徑; 步驟5:全局密鑰服務器端生成并發(fā)布全局的密鑰: 數(shù)據(jù)分發(fā)時采用區(qū)分密鑰策略,第O層節(jié)點和非第O層節(jié)點采用不同的密鑰策略,對數(shù)據(jù)進行加密傳輸; 第O層節(jié)點間采用點對點密鑰方式,非第O層節(jié)點采用全局密鑰方式; 在組播分發(fā)路徑上屬于父子關(guān)系的第O層節(jié)點,相互之間通過握手方式確定點對點密鑰;非第O層節(jié)點,采用全局密鑰服務器端廣播全局統(tǒng)一密鑰; 步驟6:非第O層節(jié)點間的數(shù)據(jù)分發(fā): 組播分發(fā)源節(jié)點客戶端的數(shù)據(jù)接收模塊,監(jiān)測到需要分發(fā)數(shù)據(jù),數(shù)據(jù)加密模塊調(diào)用密鑰管理模塊中的全局統(tǒng)一密鑰,對分發(fā)數(shù)據(jù)進行加密,數(shù)據(jù)轉(zhuǎn)發(fā)模塊查找本地路由管理模塊中的下一跳節(jié)點,將加密后的數(shù)據(jù)分發(fā)給下一跳節(jié)點; 步驟7:非第O層節(jié)點與第O層節(jié)點間的數(shù)據(jù)分發(fā): 第O層節(jié)點的簇首節(jié)點客戶端的數(shù)據(jù)接收模塊,接收到上一跳發(fā)來的分發(fā)數(shù)據(jù),數(shù)據(jù)解密模塊調(diào)用密鑰管理模塊中的全局統(tǒng)一密鑰,對分發(fā)數(shù)據(jù)進行解密,并將解密后的數(shù)據(jù)存儲在本地; 數(shù)據(jù)轉(zhuǎn)發(fā)模塊查找本地路由管理模塊中的下一跳節(jié)點,數(shù)據(jù)加密模塊從密鑰管理模塊中獲取與下一跳節(jié)點之間的點對點密鑰,對分發(fā)數(shù)據(jù)進行加密,將加密后的數(shù)據(jù)分發(fā)給下一跳節(jié)點; 步驟8 --第O層節(jié)點間的數(shù)據(jù)分發(fā): 簇內(nèi)節(jié)點客戶端的數(shù)據(jù)接收模塊,接收到來自上一跳的分發(fā)數(shù)據(jù),數(shù)據(jù)解密模塊從密鑰管理模塊中獲取與上一跳節(jié)點之間的點對點密鑰,對分發(fā)數(shù)據(jù)進行解密,并將解密后的數(shù)據(jù)存儲在本地; 數(shù)據(jù)轉(zhuǎn)發(fā)模塊查找本地路由管理模塊中的下一跳節(jié)點,數(shù)據(jù)加密模塊從密鑰管理模塊中獲取與下一跳節(jié)點之間的點對點密鑰,對分發(fā)數(shù)據(jù)進行加密,將加密后的數(shù)據(jù)分發(fā)給下一跳節(jié)點。
【文檔編號】H04L12/761GK103997463SQ201410223572
【公開日】2014年8月20日 申請日期:2014年5月23日 優(yōu)先權(quán)日:2014年5月23日
【發(fā)明者】沈曄, 馮徑, 印敏, 蔣磊, 周愛霞 申請人:中國人民解放軍理工大學