

【摘要】 ? ?目前通信技術中的安全問題越來越重要,安全群組通信從而成為一個重要的研究方向。為確保組內通信數據的機密性,需要在組內成員間共享一個通信密鑰。公共對象請求代理結構(CORBA)不僅能夠實現分布式環境的異構通信,而且可以保證通信的安全性,在面向組播通信以及對等群組通信時,具有重要的作用?;诖藢崿F的組密鑰管理技術及動態密鑰協商機制,可以有效保證組通信的安全。
【關鍵詞】 ? ?分布式通信 ? ?CORBA ? ?組密鑰 ? ?動態密鑰協商
前言
網絡技術的發展以及通信技術的進步,使得各種多方參與的應用迅猛發展,諸如視頻點播、在線游戲、股市交易等面向開放式網絡的群組通信應用越來越受歡迎。然而,這種開放式網絡環境中的分布式應用的成員關系是動態變化的,群組內的成員可以隨時加入或離開,這就導致開發環境下的分布式群組通信必然存在各種安全威脅。要想保證群組通信的安全,一個可靠的分布式組通信系統(SGCS)需要具備如下功能:組成員的動態變化、可靠消息傳送、安全通信服務、屏蔽異步事件、同步及容錯機制。
CORBA安全規范定義了一個公共的安全框架,基于此框架實現的技術既具備面向對象的特性,又有互操作和可移植的優點。另外,CORBA安全規范還支持安全服務,詳細規定了分布式安全標準的概念、安全參考模型、分布式安全結構等方面。
一、 CORBA分布式通信機制
CORBA是一種面向對象的標準安全規范,可以用于解決分布式通信環境的異構通信以及通信過程中的安全問題。CORBA的核心是對象請求代理(ORB),除此之外還包括接口定義語言(IDL)、可互操作對象引用(IOR)、通用對象請求代理間通信協議(GIOP)等。
ORB為客戶端應用遠程調用對象方法提供可能,其模型如圖1所示。ORB中包括對象實現(Object Implementation)、客戶端、接口實現等。Object Implementation定義了CORBA接口能夠實現的操作,使用的編程語言等;客戶端指的是目標執行的主體,發起透明訪問服務端的調用接口。
圖1 ? ?ORB模型示意圖
IDL使CORBA安全規范實現了編程語言無關性,由于只定義了相關接口,因此具體的實現和編程語言沒有關系,并不依賴于特定的編程語言,這樣就可以只考慮進行功能描述,并不需要思考具體如何實現。
作為一種特殊的數據結構,IOR指明支持的數據類型、傳輸協議和可用的ORB服務。在創建ORB時,IOR中會包含type_id、IIOP協議等信息。GIOP提供了客戶端和服務的進行交互的通信協議。
CORBA安全主要包括身份驗證、安全通信、授權和訪問控制、安全審計以及不可否認性。其中身份認證的作用是實現對通信主體進行身份識別,和通信客體確認通信主體。通信資源的所有者根據相應的安全策略可以允許其他通信主體訪問,這就是授權;訪問控制指的是允許授權用戶訪問通信資源的同時拒絕非授權用戶訪問。安全通信功能是建立在傳輸層的,并不會“看”傳輸的數據內容。
另外,為了保證群組的安全通信,需要對組內的通信活動進行系統性的檢查,并作出相應的評價,這就是安全審計。為了保證組內通信實體不能否認自己的行為,需要借助數字簽名技術。
二、組密鑰安全管理技術
組密鑰的管理對實現安全組通信有著至關重要的作用,可以根據組密鑰的協商方式和分發方式,將安全組通信相關的密鑰管理方式分成三類:集中式密鑰管理、分散式密鑰管理以及分布式密鑰管理。
對于集中式管理而言,有一個中央控制節點負責創建并分發組密鑰,這一控制節點稱作組控制器(GC),在群組成員出席變化后,組控制器還會進行密鑰更新。根據集中式密鑰管理方案管理密鑰的層級,可以將集中式密鑰管理方案分成平面模式、層次模式兩種。其中層次模式借助密鑰邏輯樹管理組密鑰,從而提高了集中式密鑰管理方案的可擴展性。
對于前向安全要求不高的群組通信而言,組密鑰管理協議(GKMP)的密鑰分發中心集中管理組密鑰的分發。在組中加入第一個成員時,密鑰分發中心會生成一個組密鑰包(GKP),以及一個用來加密GKP的加密密鑰(GKEK)。密鑰分發中心會把GKP分發給組內的所有成員,并在有新成員加入時更新密鑰,與此同時使用GKEK加密新的 GKP,再次更新給所有組成員。這種組密鑰的更新方式保證了組密鑰更新的后向安全性,但無法實現前向安全性。
對于不需要考慮抗同謀攻擊的組通信中,平面模式的集中式密鑰管理方式可以發揮更大的作用。平面表管理并分發組密鑰,表中包含一個通信加密密鑰(TEK)以及2w個用于密鑰加密密鑰(KEK),其中w是組成員ID的位數。雖然平面模式的集中式密鑰管理方式能夠保證組通信的前向通信和后向通信,但難以保證抗同謀攻擊:即兩個用戶同謀的話就能夠破解組內的所有密鑰。
為了解決抗同謀攻擊,基于邏輯密鑰樹的層次模式的密鑰管理方案應運而生。在密鑰分發中心內保存了一個邏輯密鑰樹,邏輯密鑰樹內維持了兩個密鑰:數據加密密鑰和密鑰加密密鑰。其中數據加密密鑰用于加密群組內的通信數據,保證組通信數據的安全傳輸,密鑰加密密鑰的作用是更新組密鑰。這樣一來可以把群組內部通信時的加密任務和密鑰更新任務隔離開,提高了安全性。
通過上述分析可以知道,集中式密鑰管理方案中需要一個密鑰分發中心,用于進行組內通信的密鑰生成、分發、管理等。整個組通信的安全性依賴于密鑰分發中心,在其失效的情況下,組通信的安全性就會受到影響。
分散式組密鑰管理方案克服了集中密鑰管理的單點問題,把整個通信組分成幾個小的通信子組,每個子組中都會有一個子組控制器,用于管理子組內的密鑰生成及分發工作。分散式密鑰管理方案的一個典型例子是密鑰分發服務器模式,包括可擴展組通信密鑰分發(EGCKD)以及域內組密鑰管理方案(IGCP);其中前者使用組播路由協議建立一個密鑰樹,用于在組內分發密鑰,大大提高了群組的可擴展性。
三、分布式動態密鑰協商
對于規模不大的通信組,比如成員在1000個之內,組內各成員間的地位是平等的,和前文介紹的分布式密鑰管理方案一樣,并不存在控制節點,所有這些對等成員分布于開放式網絡環境中。對等群組通信時,組成員間的通信密鑰是由各成員間采用協商機制產生的,在成員加入或退出時還需要進行密鑰的更新。
在構建密鑰邏輯樹結構時,可以引入帶有認證功能的BD協議。首先,需要把所有用戶節點分成多個組,每個組可以對應密鑰邏輯樹的一個節點,子組內部借助帶認證功能的BD協議協商組密鑰。組密鑰的協商是從邏輯樹的葉子節點開始的,在選擇出本層次內的子組節點后,會代表參加上一層子組的密鑰協商,直到協商到密鑰邏輯樹的根節點為止。這種密鑰邏輯樹的結構如圖2所示:
圖2中,每個圓圈表示一個組成員。假設三個節點可以分成一個子組,則從密鑰邏輯樹的最底層開始,協商過程如下:
(1)選擇子組內部的代表節點。以子組(2,2)為例,選擇U5節點為其代表節點;其他子組以此類推,依次選擇各子組內的代表節點。如果選擇過程中有不誠實的節點存在,則將其從子組內剔除。
(2)第二層子組繼續進行密鑰協商,協商出本子組內的密鑰,并選擇代表節點,此處圖中代表節點為U7;其他子組同樣協商出子組密鑰,并選擇子組代表。
(3)繼續協商整個組的通信密鑰,然后用其加密組內的通信數據。
(4)通知組成員協商的組密鑰。根據子組協商的反向順序,各子組的代表節點從上往下依次通知各子組內的成員。
在有新成員要加入群組時,新成員可以加入成員個數沒有飽和的子組,或者是沒有達到邏輯樹深度的子組,以維持密鑰邏輯樹的平衡。新成員加入時并不是所有的子組都需要協商密鑰,而只是有新成員加入的子組進行密鑰協商,這樣可以保證沒有新成員加入的子組保持原來協商的子組密鑰,維持了原子組的安全性。同理,在有子組成員退出時,也是僅僅有成員退出的子組才進行密鑰協商和更新,既保證了組通信的安全性,又降低了密鑰協商和更新的復雜度。
四、總結
本文對基于分布式通信協議的安全通信技術進行研究。首先,介紹了CORBA安全規范;然后在此基礎上闡述了組密鑰管理技術,重點包括集中式密鑰管理和分布式密鑰管理機制;最后,說明了基于組密鑰管理技術的分布式動態密鑰協商機制。
參 ?考 ?文 ?獻
[1]王鎮威,張皓,朱命冬.基于分布式系統的加密實時通信架構設計[J].無線互聯科技,2020,17(14):5-8.
[2]張鴻,張金波,周云.大規模分布式系統的物理層安全技術研究[J].無線電工程,2019,49(01):1-5.
林雪(1979.11-),男, 江蘇南京,漢族,工程師,碩士,研究方向:電子信息工程專業。