朱 巖,尹 昊,王秋艷
1(北京科技大學(xué) 計算機與通信工程學(xué)院,北京 100083)
2(中國計量科學(xué)研究院,北京 100013)
通訊作者:朱巖,E-mail:zhuyan@ustb.edu.cn
虛擬專用網(wǎng)(virtual private network,簡稱VPN)是指在不可信公網(wǎng)上建立的一個臨時的、安全的專有數(shù)據(jù)通信網(wǎng)絡(luò),為企業(yè)和個人提供高質(zhì)量的網(wǎng)絡(luò)服務(wù),實現(xiàn)對企業(yè)內(nèi)部網(wǎng)絡(luò)的擴展.它可以使用不安全網(wǎng)絡(luò)(如互聯(lián)網(wǎng))來發(fā)送可靠、安全的消息,核心是利用加密的隧道協(xié)議保證敏感信息的私密性、發(fā)送端認證、消息完整性等安全性質(zhì).
伴隨全球經(jīng)濟的快速發(fā)展,越來越多的企業(yè)需要在全國乃至世界范圍內(nèi)建立各種辦事機構(gòu)、分公司、研究所等,各分支機構(gòu)的網(wǎng)絡(luò)連接隨著機構(gòu)的增多使得網(wǎng)絡(luò)結(jié)構(gòu)趨于復(fù)雜,部署維護費用昂貴.利用VPN 提供的隧道[1]、加密等特性可以構(gòu)建滿足要求的內(nèi)聯(lián)網(wǎng)(Intranet),保證信息在整個內(nèi)聯(lián)網(wǎng)上安全傳輸.然而,現(xiàn)有大部分VPN 方案在分支機構(gòu)增多時傳輸效率顯著下降,難以滿足大規(guī)模企業(yè)組網(wǎng)的現(xiàn)實需求.其原因在于:現(xiàn)有VPN方案多使用集中式網(wǎng)關(guān)模式,由VPN 網(wǎng)關(guān)代理與客戶端實現(xiàn)隧道通信,這種集中式結(jié)構(gòu)難以支撐復(fù)雜的網(wǎng)絡(luò)拓撲變化.
針對上述內(nèi)聯(lián)網(wǎng)VPN 方案的缺陷,已有VPN 采用了對等技術(shù)(P2P),充分利用網(wǎng)絡(luò)中參與者的計算能力和帶寬而不依賴于集中式網(wǎng)關(guān),從而帶來在可擴展性、健壯性等方面的優(yōu)勢.例如,該網(wǎng)絡(luò)能夠以自組織方式建立,并允許分支機構(gòu)自由地加入和退出當(dāng)前內(nèi)聯(lián)網(wǎng),部分節(jié)點或網(wǎng)絡(luò)遭到破壞對其他部分的影響很小,具有耐攻擊、容錯性的優(yōu)點.鑒于上述優(yōu)點,基于P2P 的VPN 已成為目前研究熱點之一,并被應(yīng)用于協(xié)同計算、群組聊天、在線會議等領(lǐng)域.
采用對等技術(shù)的VPN 也稱為對等VPN 系統(tǒng),盡管這種系統(tǒng)融合了P2P 的非中心化、可擴展性等特性,但由于其依然延續(xù)了VPN 中的常規(guī)兩方密鑰交換方法(如Deffie-Hellman 密鑰交換協(xié)議)建立加密隧道和實現(xiàn)密鑰管理,因此,系統(tǒng)在實現(xiàn)動態(tài)多播(即一點對多點間通信)時的性能和安全性并沒有較大的提升.解決這一問題的難點在于如何建立具有非中心化、高擴展性、且與對等VPN 相適應(yīng)的安全多播協(xié)議,保證在一個主機用該多播協(xié)議向多個主機發(fā)送相同數(shù)據(jù)時,只需加密和發(fā)送一次,其數(shù)據(jù)由網(wǎng)絡(luò)中的路由器和交換機逐級進行復(fù)制并發(fā)送給各個授權(quán)接收方,這樣既節(jié)省服務(wù)器資源,也節(jié)省網(wǎng)絡(luò)主干的帶寬資源.
本文致力于解決對等VPN 系統(tǒng)中安全多播問題,通過實現(xiàn)具有非中心化、高擴展性的多播協(xié)議,提高對等VPN 中多播通信效率和安全性.本文所提出的方案是在現(xiàn)有的Overlay 虛擬專用網(wǎng)基礎(chǔ)上,針對其兩方密鑰交換方式在群組通信中的不足,利用基于身份的群組加密與簽名方案改造對等VPN 中的密鑰共享方法.所做創(chuàng)新工作如下.
(1)提出一種支持安全多播的對等VPN 框架,被稱為GroupVPN,該框架引入公鑰群組密碼系統(tǒng)改進了安全隧道層,并設(shè)計了便于動態(tài)群組管理、高效密鑰分發(fā)的群組管理層,能夠支持安全點播、多播、廣播等多種通信模式;
(2)設(shè)計一種多播密鑰分發(fā)協(xié)議,通過將公鑰群組密碼下的廣播加密與群簽名方案相結(jié)合,實現(xiàn)具有選擇和排除模式的高效密鑰分發(fā).分析表明:在SDH 假設(shè)下,該協(xié)議滿足數(shù)據(jù)私密性、數(shù)據(jù)完整性、身份真實性等3 方面安全性要求.
與基于對稱密碼的密鑰分發(fā)和基于公鑰密碼的密鑰交換協(xié)議相比較,本文所提多播密鑰分發(fā)協(xié)議實現(xiàn)的多播通信和密鑰存儲開銷與群組規(guī)模無關(guān).實驗分析表明:多播組通信分為會話密鑰共享和加密通信兩個階段,會話密鑰共享階段交互耗時與群組規(guī)模成正比,但加密通信階段多播耗時基本保持不變,從而使得由群組規(guī)模增長產(chǎn)生的通信延遲僅被限制在會話密鑰共享階段,提高了系統(tǒng)性能.
本文第1 節(jié)介紹VPN 和群組加密的相關(guān)工作.第2 節(jié)和第3 節(jié)詳細描述系統(tǒng)模型及多播密鑰分發(fā)的具體步驟.第4 節(jié)和第5 節(jié)描述密鑰管理方案及其實驗分析.最后,第6 節(jié)總結(jié)全文.
虛擬專用網(wǎng)是一種構(gòu)架在已有網(wǎng)絡(luò)技術(shù)之上的具有靈活性、安全性、高效性的通信網(wǎng)絡(luò).與普通網(wǎng)絡(luò)不同之處在于它所涉及的兩個核心技術(shù)點——虛擬和專用,其意義分別為:
(1)虛擬是指該網(wǎng)絡(luò)能夠通過路由技術(shù)、協(xié)議轉(zhuǎn)換等方式動態(tài)地接入網(wǎng)絡(luò)并保證數(shù)據(jù)可靠傳輸;
(2)專用是指該網(wǎng)絡(luò)能夠通過加密技術(shù)、隧道協(xié)議等方式有效地保護用戶數(shù)據(jù)的隱私不泄露.
因VPN 所擁有的這些優(yōu)點和現(xiàn)實生活中業(yè)務(wù)的需要,近年來,有關(guān)VPN 技術(shù)的研究以及工程應(yīng)用都在不斷更新.從網(wǎng)絡(luò)組織形式上,VPN 大體被分為兩類:點對點VPN(SSL,GRE,IPSec)、遠程接入VPN(PPTP,L2TP,MPLS);Knight 和Lewis 則在文獻[1]中按OSI 網(wǎng)絡(luò)模型將VPN 分為2 層和3 層VPN,并分析了兩者的架構(gòu)和解決方案;Berger[2]分析了當(dāng)前流行的幾種VPN 技術(shù),通過交互測試比較協(xié)議的優(yōu)劣;Jaha 等人[3]則試圖在已有的公共VPN 協(xié)議上,使用多種模型構(gòu)建一個新的VPN 協(xié)議;Hafiz 等人[4]比較了不同加密算法(如AES256,3DES,SAH-1,MD5)應(yīng)用于IPSec VPN 中的性能差異;Jahan 等人[5]則是站在應(yīng)用的角度對不同VPN 的特點以及應(yīng)用場景做了分析和推薦.然而,目前的方案仍僅限于用傳統(tǒng)密碼實現(xiàn)點對點安全隧道,尚無方案采用群組密碼體制開展安全多播領(lǐng)域的研究.
隨著軟硬件技術(shù)的發(fā)展,計算和網(wǎng)絡(luò)帶寬已不再是VPN 實現(xiàn)的瓶頸,近年來新開發(fā)的VPN 技術(shù)都構(gòu)架在應(yīng)用層,以便能夠更加靈活地滿足不同業(yè)務(wù)的需求.例如:基于集中式架構(gòu)的OpenVPN,通過設(shè)立特殊的網(wǎng)關(guān)來支持異構(gòu)設(shè)備,已廣泛應(yīng)用于教育、公司等機構(gòu);基于分布式架構(gòu)與P2P 技術(shù)的N2N[6],采用兩層結(jié)構(gòu),使用節(jié)點間的消息路由取代網(wǎng)關(guān);采用相同結(jié)構(gòu)的PeerVPN,則直接構(gòu)建平鋪的網(wǎng)絡(luò),自動發(fā)現(xiàn)并連接其他的節(jié)點.鑒于P2P網(wǎng)絡(luò)在網(wǎng)絡(luò)動態(tài)自組織方面的優(yōu)勢,本研究也將參考上述分布式構(gòu)架實現(xiàn)系統(tǒng)設(shè)計.
群組加密技術(shù)是一種面向大規(guī)模群組的安全通信方式[2].與傳統(tǒng)的具有1:1 公/私鑰對的加密系統(tǒng)不同,群組加密系統(tǒng)的密鑰結(jié)構(gòu)是1:n,也就是1 個公鑰對應(yīng)于n個不同的私鑰,已知的廣播加密(broadcast encryption)、身份基加密(identity-based encryption)、屬性基加密(attribute-based encryption)、角色基加密(role-based encryption)等都屬于群組加密的范疇.其中,廣播加密是最基本的群組加密.目前,面向群組的通信研究分為兩個方面:一方面是指定機制,即指定一個接受者集合,使得只有在指定集合內(nèi)的用戶才能解密;另一方面是撤銷機制,即指定一個撤銷者集合,使得只有在指定集合外的合法用戶才能解密.
關(guān)于指定機制的研究,最重要的工作是2005 年Boneh 等人[7]提出的方案,該方案利用雙線性映射以及連乘實現(xiàn)集合成員屬于關(guān)系的判定,能夠抵抗任意數(shù)目共謀者的攻擊,且密文和私鑰都是常數(shù)大小;隨后,Delerablée等人[8]提出了基于身份的廣播加密方案,該方案不僅保證了密文和私鑰是常數(shù)大小,并且公鑰大小與接受者集合的最大數(shù)目呈線性關(guān)系;近年來,該方向的研究還包括文獻[9-11].此外,撤銷機制也得到了學(xué)者們的廣泛研究[12-14].
可證明安全(provable security)是當(dāng)前群組密碼系統(tǒng)的基本要求[15].群組密碼方案的可證明安全性通常是指密文的語義安全性(semantic security),即已知密文不會泄露任何明文信息,也等價于密文不可區(qū)分性(indistinguishability)[16].但與傳統(tǒng)的加密方案不同,群組下的語義安全性需要考慮攻擊者與群組內(nèi)叛逆者(具有一定數(shù)量的解密密鑰,但對挑戰(zhàn)密文無效)共謀下的語義安全,用于模擬敵手具有一定先驗密鑰知識情況下的攻擊.由于可證明安全性的引入,使得群組密碼體制用于VPN 更加高效、靈活與安全[17].
針對 VPN 在安全、高效、動態(tài)性等方面的現(xiàn)實需要,本文以構(gòu)建一種采用公鑰群組密碼(public-key group-oriented cryptography,簡稱PGC)技術(shù)的密鑰管理框架為目標,并將該框架應(yīng)用于由對等節(jié)點組成的基于覆蓋網(wǎng)絡(luò)的安全群組通信系統(tǒng),提供密鑰分發(fā)、更新、銷毀等服務(wù).該框架可支持消息的安全點播、多播和廣播,被稱為群組虛擬專用網(wǎng)絡(luò)(簡稱群組VPN,或GroupVPN).
GroupVPN 中群組加密采用1:n結(jié)構(gòu)的公鑰密碼體制,即1 個群組公鑰與n個用戶私鑰進行關(guān)聯(lián),且用戶私鑰與其身份ID(標識身份的唯一字符串)進行綁定.在該密碼體制下,系統(tǒng)能夠?qū)θ航M內(nèi)的任意一組用戶通過群組公鑰對消息進行加密,而只有組內(nèi)的成員能夠解密信息.利用該特點,本文設(shè)計一種密鑰管理框架,為群組中的多個用戶創(chuàng)建共享密鑰,從而實現(xiàn)用戶組內(nèi)的消息安全共享.因此,本文所設(shè)計的系統(tǒng)需擁有如下特性.
(1)動態(tài)性:支持成員動態(tài)加入和退出,并在成員之間構(gòu)成通信間群組(多播組);
(2)高效性:保證身份認證、密鑰交換、數(shù)據(jù)加密與解密的高效性;
(3)高安全性:保證虛擬網(wǎng)絡(luò)提供的安全功能是密碼學(xué)可證明安全的.
針對研究目標,GroupVPN 被建立在由N 名成員{P1,…,PN}構(gòu)成的P2P 網(wǎng)絡(luò)上,利用虛擬化技術(shù)建立功能虛擬化的覆蓋網(wǎng)絡(luò),實現(xiàn)支持動態(tài)用戶群下的安全群組通信.圖1 顯示了GroupVPN 的系統(tǒng)模型圖,該系統(tǒng)由兩層網(wǎng)絡(luò)構(gòu)成.
(1)內(nèi)層(下層)是運行在互聯(lián)網(wǎng)中的物理網(wǎng)絡(luò),節(jié)點(交換機、路由器)之間直接互連組成核心的通信網(wǎng)絡(luò);
(2)外層(或上層)是各子網(wǎng)路由器(VPN 接入節(jié)點)組成的覆蓋網(wǎng)絡(luò),該網(wǎng)絡(luò)中節(jié)點可以看做通過虛擬或邏輯鏈路連接起來的一個虛擬全連通網(wǎng)絡(luò).
GroupVPN 所形成的虛擬網(wǎng)絡(luò)采用了全連通的完全網(wǎng)格拓撲(full mesh topology),使得用戶之間可以通過虛擬IP 地址相互訪問,與下層的實際網(wǎng)絡(luò)拓撲無關(guān),對用戶也是透明的.因此,在這種虛擬網(wǎng)絡(luò)進行節(jié)點間的直接通信是十分便捷的.
Fig.1 Group VPN system model diagram圖1 群組VPN 系統(tǒng)模型圖
鑒于防火墻或NAT 等技術(shù)對VPN 的現(xiàn)實約束,上述系統(tǒng)模型參考了N2N 系統(tǒng)中節(jié)點的功能劃分,將上層節(jié)點分成兩種角色——超級節(jié)點和邊界節(jié)點.超級節(jié)點處于公有網(wǎng)段,運行守護進程并監(jiān)聽綁定端口,等待邊界節(jié)點連接,并為其注冊必要的網(wǎng)絡(luò)地址和端口信息;對處于私有網(wǎng)段的邊界節(jié)點,則利用NAT 打洞、防火墻繞過等技術(shù),解決其他邊界節(jié)點與它的鏈路連通問題.據(jù)此,所提系統(tǒng)模型將實體和其功能劃分如下.
(1)對等節(jié)點(peer):是指參與群組間通信的實體,被看做GroupVPN 群組中的成員,類似于邊界節(jié)點,獲取必要的密鑰參數(shù)加入群組網(wǎng)絡(luò),維持與其他節(jié)點間的安全通信隧道;
(2)群組管理者(GM):建立和維護群組網(wǎng)絡(luò)的密碼系統(tǒng)和參數(shù),為新節(jié)點分配用戶密鑰并引導(dǎo)節(jié)點連接組成群組網(wǎng)絡(luò),但不參與群組通信.
GroupVPN 中的每個對等節(jié)點都相當(dāng)于分支機構(gòu)的VPN 網(wǎng)關(guān),通過對用戶數(shù)據(jù)的封裝加密以及虛擬目標地址的轉(zhuǎn)換實現(xiàn)遠程訪問.有別于遠程接入VPN 的網(wǎng)關(guān)代理(需要對所有報文進行轉(zhuǎn)發(fā)),GM 不處理任何VPN數(shù)據(jù)報文,其僅限于群組的密鑰管理以及網(wǎng)絡(luò)連接兩項功能:前者可為各節(jié)點產(chǎn)生和分發(fā)有效的群組密鑰,后者解決節(jié)點間地址發(fā)現(xiàn)和連接障礙問題.
GroupVPN 系統(tǒng)被構(gòu)架在參考模型協(xié)議棧中的傳輸層之上,屬于一種傳輸層協(xié)議.該架構(gòu)為應(yīng)用層提供一種透明的群組訪問接口,應(yīng)用程序遵循該訪問接口可實現(xiàn)安全群組內(nèi)通信.GroupVPN 系統(tǒng)架構(gòu)圖(如圖2 所示)在協(xié)議?;A(chǔ)上增加了兩個新的結(jié)構(gòu),包括:
(1)群組管理層:用于構(gòu)建和維護GroupVPN 所使用的公鑰群組密碼PGC 系統(tǒng),負責(zé)管理和響應(yīng)對安全參數(shù)索引(security parameter index)的查詢;
(2)安全隧道層:用于構(gòu)造GroupVPN 的主體,它包括3 個主要功能模塊:載荷封裝協(xié)議模塊、虛擬地址映射模塊、共享密鑰分發(fā)模塊,在與多個用戶成功共享加密密鑰后,對應(yīng)用層發(fā)來的數(shù)據(jù)報文進行載荷封裝,地址映射,并通過隧道廣播加密報文實現(xiàn)安全群組多播.
Fig.2 Group VPN system architecture diagram圖2 群組VPN 系統(tǒng)架構(gòu)圖
在群組管理層中,某個對等節(jié)點作為群組創(chuàng)建者向GM 申請注冊一個群組,GM 初始化有關(guān)該群組網(wǎng)絡(luò)所需要的系統(tǒng)參數(shù),節(jié)點獲得對應(yīng)自己身份的私鑰信息,并等待其他節(jié)點以同樣的方式向GM 通過身份驗證后與自己相連.群組管理者并不參與群組間的消息通信,只作為管理中心維護和監(jiān)管相關(guān)安全參數(shù),在群組建立和撤銷時,相應(yīng)地創(chuàng)建和回收密鑰信息.
安全隧道層是GroupVPN 系統(tǒng)的重要功能,用于在群組U={P1,P2,…,Pn}中建立臨時的多播組S進行組內(nèi)安全數(shù)據(jù)傳輸.該部分所包含的3 個模塊分別具有以下功能.
(1)共享密鑰分發(fā)模塊:采用公鑰群組加密實現(xiàn)對多播組內(nèi)成員的認證以及臨時會話密鑰的分發(fā),該會話密鑰在載荷封裝協(xié)議模塊中用于報文加密;
(2)載荷封裝協(xié)議模塊:采用隧道技術(shù)對數(shù)據(jù)報文進行封裝加密,提供機密性和抗重播服務(wù),可參考IPSec中的封裝安全載荷(ESP)協(xié)議對原始報文進行加密和隧道封裝;
(3)虛擬地址映射模塊:實現(xiàn)對多播組內(nèi)成員地址與真實IP 地址之間的轉(zhuǎn)換.
共享密鑰分發(fā)模塊提供與IPSec 中密鑰管理協(xié)議(ISAKMP)類似的密鑰協(xié)商功能和安全參數(shù)定義,但是具有以下不同:(1)使用公鑰證書(certificate)取代安全關(guān)聯(lián)(SA),通過對GM 的查詢,實現(xiàn)群組信息的獲取;(2)采用PGC 實現(xiàn)動態(tài)多播組的建立和會話密鑰分發(fā),避免IPSec 所采用的手動預(yù)置參數(shù)的密鑰管理;(3)在某個多播組中建立所有成員共享的會話密鑰,而不是單獨兩個對等體之間的協(xié)商.
這些不同得益于系統(tǒng)構(gòu)架在網(wǎng)際層隧道技術(shù)而非鏈路層的IP 隧道(L2TP),使它可支持TCP/IP 協(xié)議棧下異構(gòu)網(wǎng)絡(luò)間的邊界互聯(lián).同時,PGC 的使用簡化了多播組的密鑰管理過程,在宏觀層面上降低了系統(tǒng)的空間和時間復(fù)雜性.總之,GroupVPN 的系統(tǒng)架構(gòu)具有以下幾點優(yōu)勢.
(1)支持多種通信模式.目前的對等VPN 技術(shù)通常是在兩個對等節(jié)點間建立共享密鑰用于加密通信,而本文提出的GroupVPN 能夠在多個節(jié)點的用戶組中建立共享通信隧道,并且對用戶成員集合的大小不予限制,實現(xiàn)單點發(fā)送多點接收的安全多播;
(2)密鑰管理簡單.減少通信量,無需預(yù)先定義端對端安全關(guān)聯(lián)和相關(guān)協(xié)議,采用基于身份的公鑰群組密碼系統(tǒng)實現(xiàn)多播組成員身份認證和密鑰分發(fā).相較于TLS/SSL 的PKI 公鑰證書認證和預(yù)定義共享密鑰的IPSec 更加簡單有效,適用于多播下的群組通信;
(3)便于動態(tài)化的群組管理和網(wǎng)絡(luò)接入服務(wù).群組管理者GM 能夠提供公開可信的用戶身份和地址信息引導(dǎo)節(jié)點連接,并且通過虛擬地址映射模塊解決私有地址之間的連接障礙.
GroupVPN 的安全目標旨在通過公開不可信網(wǎng)絡(luò)環(huán)境實現(xiàn)端對端的安全互聯(lián)與融合,保證動態(tài)群組成員之間的互認證、通信中數(shù)據(jù)報文的機密性及密鑰在群組成員之間的一致性.為實現(xiàn)上述目標,群組管理者提供類似于密鑰中心的服務(wù),為節(jié)點的安全通信提供密碼學(xué)基礎(chǔ)環(huán)境.從層次關(guān)系上看,對等節(jié)點之間自組織形成網(wǎng)絡(luò),而不過度依賴上層管理中心,從而發(fā)揮對等網(wǎng)絡(luò)的優(yōu)勢.因此,所提架構(gòu)僅對GM 做出如下假設(shè).
假設(shè)(半忠誠假設(shè)).群組管理者是可信的,并忠誠地為節(jié)點提供注冊和唯一性群組私鑰分發(fā)服務(wù);同時,管理者不被接受成為群組中的成員,即,不與下層通信節(jié)點建立端對端的虛擬通信隧道.
系統(tǒng)模型所采用的是一種基于身份的群組密碼系統(tǒng),它要求用戶的身份和密鑰是一一對應(yīng)的,而身份標識對應(yīng)的群組私鑰又是由管理者驗證其身份而頒發(fā)的,因此在無法通過偽造身份騙取管理者的前提下,敵手因其沒有密鑰而無法冒充用戶身份.在此基礎(chǔ)上,鑒于 VPN 安全性主要體現(xiàn)在密鑰交換和隧道安全兩方面,GroupVPN 模型針對這兩方面需滿足如下安全性要求.
(1)數(shù)據(jù)私密性:保護用于加密通信數(shù)據(jù)的會話密鑰不被非授權(quán)用戶獲取.由于群組加密中該會話密鑰由發(fā)起者單方面隨機生成,若它不被發(fā)起者泄露,那么會話密鑰的私密性則確保了加密數(shù)據(jù)的私密性;
(2)數(shù)據(jù)完整性:保護群組中的多播通信數(shù)據(jù)無法被篡改,并能夠迅速被接收者檢測到異常.通常是在傳輸報文中添加密碼學(xué)校驗,如哈希函數(shù)或是校驗碼等,用來保護數(shù)據(jù)的完整性;
(3)身份真實性:保證發(fā)送方與接收方身份的真實性.在基于身份的PGC 系統(tǒng)中,接收方身份直接映射到密碼系統(tǒng)中的用戶標識ID,由發(fā)送者加入到可解密用戶集合生成密文,PGC 保證只有該集合內(nèi)的接收者可解密;發(fā)送者的身份真實性則可由接收者驗證發(fā)送者附帶的消息簽名來確定.
本文利用群組加密的廣播特性來設(shè)計并實現(xiàn)多播組生成和組內(nèi)密鑰分發(fā),具體定義如下.
定義1(多播密鑰分發(fā)).多播密鑰分發(fā)是指在群組內(nèi)多個用戶之間共享同一個會話密鑰以形成多播組的過程,該會話密鑰能夠安全地被多播組內(nèi)成員共享,保證除此之外的其他用戶無法得知.
多播密鑰分發(fā)是GroupVPN 中節(jié)點之間進行通信的基礎(chǔ),為群組內(nèi)的多播組產(chǎn)生一個共享的安全會話密鑰,數(shù)據(jù)傳輸則使用傳統(tǒng)的VPN 隧道技術(shù)處理完成.因此,該管理框架可構(gòu)架于現(xiàn)有的VPN 系統(tǒng)之上,耦合性低,易用性好.
該過程采用群組密碼技術(shù)取代已有VPN 系統(tǒng)中具有認證功能的密鑰交換協(xié)議(如基于口令授權(quán)的密鑰交換協(xié)議PAKE 或其三方版本3PAKE),后者是使通信雙方在認證服務(wù)器的幫助下相互進行認證并建立一個會話密鑰的過程.我們所提方案的不同之處在于,將兩方或三方認證和密鑰交換擴展為多播組下的多方認證和密鑰分發(fā).
為方便閱讀,本節(jié)所使用符號見表1.
Table 1 Description of notations表1 符號說明
本文采用文獻[18]中的標識集廣播加密方案(ISBE)作為多播密鑰分發(fā)協(xié)議構(gòu)建的基礎(chǔ),該方案由4 個算法構(gòu)成:Setup,KeyGen,Encrypt,Decrypt.但與通常加密方案不同的是,它可支持兩種加密模式:選擇模式和排除模式,即,給定集合S?U={P1,P2,…,Pn},兩種模式功能如下.
· 選擇模式:只有集合S內(nèi)的指定成員能解密信息;
· 排除模式:除集合S外的合法成員均能解密信息.
方案的核心算法是兩類聚合函數(shù):零點聚合函數(shù)ZerosAggr和極點聚合函數(shù)PolesAggr,用于實現(xiàn)標識集S的密碼學(xué)表示.以ISBE 為基礎(chǔ),GroupVPN 系統(tǒng)初始化分為兩個部分:管理者GM 初始化和新成員初始化.兩個初始化的具體操作如下.
(1)管理者初始化
本階段用于生成系統(tǒng)所需要的主私鑰msk和主公鑰mpk,它可通過采用ISBE 方案中的函數(shù)加以實現(xiàn):給定素數(shù)階雙線性群系統(tǒng),在G1和G2群上分別選擇兩個隨機元素g和h作為生成元,在整數(shù)域中選取兩個隨機指數(shù)γ,ε,得到主密鑰msk=(γ,ε,g,gε);令R=e(g,h)ε并設(shè)定最大聚合數(shù)目m,對?k∈[1,m]依次計算,得到主公鑰mpk={S,h,R,{gk}k∈[1,m],pp=?},其中,pp作為用戶記錄表可由用戶在任意時刻查詢獲取.
(2)用戶初始化
在GM 完成初始化后,用戶可向GM 注冊申請加入系統(tǒng),在提供身份信息Infok(由系統(tǒng)自行設(shè)定)并通過管理者的驗證后,GM 使用身份標識IDk調(diào)用KeyGen(msk,IDk)→skk函數(shù)獲取相應(yīng)的用戶私鑰skk成為群組成員.具體過程如下:令xk=hash(IDk),生成用戶私鑰,并計算,得到該用戶的公開記錄ppk=(IDk,Hk,Infok),并且將ppk添加到公開參數(shù)mpk的集合中,即pp=pp∪{ppk},以公示新成員加入到了當(dāng)前群組.
以上兩個初始化過程分別對應(yīng)系統(tǒng)框架中的管理和通信模塊:管理者初始化僅針對GM,在整個系統(tǒng)中只運行一次,關(guān)系到群組內(nèi)所有用戶的密鑰有效性,因此參數(shù)更新也將影響用戶的密鑰;用戶初始化過程也就是用戶注冊和申請群組私鑰的過程,它為多播組建立和密鑰分發(fā)做準備.本系統(tǒng)沒有用戶數(shù)目的限制,新用戶可以隨時、動態(tài)地進行注冊和添加到系統(tǒng);同時,系統(tǒng)內(nèi)節(jié)點通過向GM 發(fā)起基于成員標識IDk的用戶信息ppk查詢與其他節(jié)點連接成網(wǎng)絡(luò).
公鑰群組加密方案是實現(xiàn)安全多播密鑰分發(fā)的合理選擇,其1:n的密鑰結(jié)構(gòu)和聚合特性能夠做到只需一次加密,被選擇用戶集合S?U內(nèi)的所有用戶都可以解密獲取會話密鑰.因此,本文將ISBE 加解密過程應(yīng)用于密鑰分發(fā),由多播發(fā)起者構(gòu)建一個可解密用戶集合S作為通信對象,選取一個隨機的臨時會話密鑰ek作為明文,經(jīng)加密輸出密文并發(fā)送,多播組內(nèi)的用戶解密恢復(fù)出臨時會話密鑰,則完成了多播組的密鑰分發(fā)過程.多播密鑰分發(fā)協(xié)議具體步驟分為如下4 步.
1.多播組構(gòu)建
假設(shè)群組U內(nèi)的用戶子集T={P1,P2,…,Pm}需要發(fā)起多播組通信,其中,Pi擁有標識IDi.群組內(nèi)的任何用戶Pk∈T能夠發(fā)起多播組構(gòu)建過程:該用戶(稱為發(fā)起者)將該子集T發(fā)送給GM 并請求多播組構(gòu)建;GM 做出響應(yīng)進行模式判定:
(1)如果子群用戶數(shù)目m=|T|小于總?cè)藬?shù)n=|U|的一半,即m (2)如果子群用戶數(shù)目m=|T|大于等于總?cè)藬?shù)n=|U|的一半,即m≥n/2,那么設(shè)定模式為排除模式,即mode=Cut且令S=UT. 注意,上述模式也可由發(fā)起者指定.根據(jù)不同的加密模式,令選擇模式對應(yīng)的集合為T,排除模式對應(yīng)的集合為UT,再根據(jù)其模式分別計算零點聚合值GS和極點聚合值HS作為用戶集合的表示: 最后,GM 將{mode,GS,HS}發(fā)送給發(fā)起者用于多播組會話密鑰分發(fā).上述函數(shù)也可由發(fā)起者采用公開參數(shù)mpk自行計算,但是考慮到系統(tǒng)運行效率和易用性,本文選擇由GM 加以實現(xiàn).具體聚合算法見文獻[21]中的函數(shù)Aggrs(S,mode)→{GS,HS}. 2.會話密鑰分發(fā) 本階段由多播組通信的發(fā)起者完成會話密鑰選擇和對應(yīng)密文的生成,具體如下:隨機選取元素并計算ek=Rt作為臨時的會話密鑰,根據(jù)上一步得到的集合的聚合表示和相應(yīng)的加密模式{mode,GS,HS},發(fā)起者計算得到密文C=(S,mode,C1,C2),其中, 3.會話密鑰恢復(fù) 多播組T內(nèi)授權(quán)用戶Pk接收到多播密文C后,根據(jù)密文中的用戶集合S得知多播組的成員構(gòu)成,并判斷其加密模式恢復(fù)出隱藏的會話密鑰: (1)選擇模式:若滿足當(dāng)前用戶IDk∈S,令S-=S{IDk},用戶將其與模式一同發(fā)送給GM,請求用該集合計算零點聚合函數(shù),并在獲得返回值后使用私鑰skk恢復(fù)出會話密鑰: (2)排除模式:若滿足當(dāng)前用戶IDk?S,令S+=S∪{IDk},用戶將其與模式一同發(fā)送給GM,請求用該集合計算極點聚合函數(shù),并使用私鑰skk恢復(fù)出會話密鑰: 完成以上兩個初始化階段之后,就可在群組內(nèi)組建一個共享同一會話密鑰ek的多播組.會話密鑰分發(fā)階段時序圖如圖3 所示. Fig.3 Multicast key distribution sequence diagram圖3 多播密鑰分發(fā)時序圖 在上述協(xié)議運行過程中,多播組構(gòu)建是算法中比較耗時的操作,且聚合函數(shù)的特點決定了計算時長隨著多播組規(guī)模的增長而增加.但在具體應(yīng)用中,可以優(yōu)化這一過程:1)擁有選擇和排除兩種模式,在多播組規(guī)模超過群組大小的一半時可用其補集的排除模式減少聚合計算的時長;2)多播組構(gòu)建操作可作為獨立的模塊預(yù)加載或者緩存,其計算結(jié)果可被多次使用,從而不會影響網(wǎng)絡(luò)延遲. 4.發(fā)送者身份認證 多播發(fā)起者Pk(其標識為IDk)能夠采用數(shù)字簽名方式來驗證發(fā)起者的身份.適用于本系統(tǒng)的數(shù)字簽名方案包括基于身份的簽名(IBS)或群簽名(GS)等,下面以文獻[19]中的短群簽名SGS 方案為例加以說明:該SGS 方案由4 個算法構(gòu)成:KeyGen,Sign,…,Open,但與通常的簽名方案不同之處在于,群簽名中隱藏了簽名者的身份,需要Open函數(shù)才能找出真實簽名者.此外,由于SGS 方案采用了與ISBE 方案相同的用戶私鑰結(jié)構(gòu),因此用戶可使用已分發(fā)的用戶私鑰變換為用于SGS 方案,其中,gε可看做新的生成元. 基于上述簽名方案的構(gòu)造,可在第2)步中的會話密鑰分發(fā)結(jié)束后,由發(fā)起者生成群管理私鑰gmsk,使用用戶私鑰skk完成對發(fā)起者標識IDk和密文C的簽名δ=Sign(gpk,skk,(IDk,gmsk,C,M));再用通常的加密算法對簽名進行加密:C′=Enc(ek,(IDk,gmsk,δ,M)),最終將(C,C′)進行多播傳送給組內(nèi)成員. 與此對應(yīng),在第3)步中的會話密鑰恢復(fù)完成后,授權(quán)接收者首先用恢復(fù)后的會話密鑰ek解密獲得發(fā)起者標識IDk和密文C,即(IDk,gmsk,δ,M)=Dec(ek,C′);然后,驗證簽名Verify(gpk,(IDk,gmsk,C,M),δ)=True 且找出簽名者Open(gpk,gmsk,(IDk,gmsk,C,M),δ)=IDk.如果上述判定成立,則表明發(fā)起者與宣稱的一致. 如安全模型所述,GroupVPN 系統(tǒng)構(gòu)造采用了加密與簽名相結(jié)合的方式,可滿足數(shù)據(jù)私密性、數(shù)據(jù)完整性、身份真實性這3 方面的要求.在上述結(jié)構(gòu)中,分別采用了ISBE 群加密和SGS 群簽名方案,兩方案都以雙線性映射群為數(shù)學(xué)基礎(chǔ),不僅具有相同的用戶私鑰結(jié)構(gòu),而且都以強Diffie-Hellman(SDH)問題為安全基礎(chǔ): 定義2(SDH 問題).給定中元素,找到一對值(c,G1/(α+c)),其中,c≠0(modp). 下面分別對這3 個方面進行分析. 1.在數(shù)據(jù)私密性方面 系統(tǒng)通過數(shù)據(jù)加密實現(xiàn)數(shù)據(jù)私密性,這里的加密算法Enc是現(xiàn)有的標準常規(guī)加密算法(如AES、國標SM1等).在加密密鑰(即會話密鑰)不可猜測情況下,其安全性能夠滿足數(shù)據(jù)語義安全的要求,因此,數(shù)據(jù)私密性取決于ISBE 加密方案保護用于加密通信數(shù)據(jù)的會話密鑰不被非授權(quán)用戶集合獲取.下面的定理證明了ISBE 方案中會話密鑰的語義安全性(不可區(qū)分性). 定理1(ISBE 語義安全).對于0≤t≤n,假設(shè)任何(n,t)-GDHE1和(n,t)-GDHE2問題是困難的,那么基于標識集的加密方案在選擇(select-mode)和排除(cut-mode)模式下對選擇明文共謀攻擊下具有語義安全. 上述語義安全性等價于會話密鑰與隨機字符串兩者所生成密文的不可區(qū)分性,它意味著非授權(quán)集合中的用戶即便共謀(collusion)也無法獲取會話密鑰,從而解密多播信息獲得其內(nèi)容.這里的共謀是指非授權(quán)集合中用戶即便具有合法的密鑰,也無法對授權(quán)集合下的密文進行解密.上述定理的證明通過設(shè)計一個敵手與挑戰(zhàn)者之間的交互博弈過程,從而模擬敵手針對該方案在選擇明文以及共謀條件下的優(yōu)勢. · 首先,由挑戰(zhàn)者初始化密鑰參數(shù),指定加密模式mode和挑戰(zhàn)的授權(quán)用戶集合S*,敵手獲得主公鑰mpk; · 然后,為模擬共謀條件,敵手可重復(fù)n次查詢用戶IDi的私鑰,當(dāng)且僅當(dāng)被查詢用戶不在授權(quán)集合內(nèi),即滿足mode(IDi,S*)≠0,則挑戰(zhàn)者返回該查詢用戶的私鑰;否則返回該用戶的公開參數(shù),其中,t為共謀密鑰的數(shù)量且|S*|=n-t; · 接著,挑戰(zhàn)者完成加密操作Encrypt(mpk,S*,mode)=(C,ek)得到密文C和秘密ek,隨機擲幣b={0,1},令ekb=ek且ek1-b為另一隨機元素,將消息(C,ek0,ek1)發(fā)送給敵手; · 最后,敵手輸出對b的猜測b′. 2.在數(shù)據(jù)完整性方面 GroupVPN 系統(tǒng)通過SGS 數(shù)字簽名(及其使用的密碼學(xué)Hash 函數(shù))實現(xiàn)保護群組中的多播通信數(shù)據(jù)無法被篡改. (1)針對多播組外敵手的攻擊,ISBE 的組內(nèi)授權(quán)會話密鑰分發(fā)可阻止敵手對數(shù)字簽名δ的獲取; (2)針對多播組內(nèi)敵手的攻擊,即便敵手獲取到數(shù)字簽名δ,根據(jù)群簽名的抗偽造性,敵手偽造其他用戶的簽名也是計算困難的,并可通過簽名驗證算法Verify 迅速被接收者檢測到異常. 3.在身份真實性方面 GroupVPN 系統(tǒng)可保證發(fā)送方與接收方兩方身份的真實性,即雙向認證功能,具體安全保證如下. (1)采用SGS 簽名中的Open函數(shù)實現(xiàn)簽名者身份確認. 由于群簽名方案中群組內(nèi)成員具有相同的簽名權(quán),因此簽名驗證算法Verify 具有匿名性(anonymity),這一特性可滿足可信多播組內(nèi)的公平性協(xié)議要求,如選舉協(xié)議、競拍協(xié)議等;當(dāng)需要對發(fā)送方進行身份確認,可采用Open協(xié)議去匿名化找出原始簽名者,其安全性服從如下定理: 定理2(SGS 完全可跟蹤性[19]).如果SDH 問題在(G1,G2)群上是(q,t′,ε′)-困難的,那么上述群簽名方案是(t,qH,qS,n,ε)-完全可跟蹤的,其中,n=q-1,和t=Θ(1)·t′.這里,qH是哈希函數(shù)查詢次數(shù),qS是簽名查詢次數(shù),且n是群內(nèi)成員數(shù)目. 定理表明,敵手偽造簽名避免被追蹤或者假冒原始簽名者的概率是可忽略的,從而保證報文發(fā)送者或群組發(fā)起者的身份安全.類似于定理1 的證明過程,定理2 的證明依然采用敵手與挑戰(zhàn)者之間的交互博弈,模擬敵手能夠成功偽造不可被追蹤來源簽名的優(yōu)勢:首先,由挑戰(zhàn)者指定被挑戰(zhàn)的簽名者,將其公鑰發(fā)送給敵手;然后,敵手可以查詢到除被挑戰(zhàn)者之外的其他私鑰以及任意指定的簽名者對消息的有效簽名;接著,敵手偽造指定被挑戰(zhàn)者的簽名并返回給挑戰(zhàn)者;最后,若偽造的簽名不在查詢過程中出現(xiàn)過,且跟蹤算法錯誤地追蹤到指定被挑戰(zhàn)者,則敵手偽造成功. 同樣地,假設(shè)敵手能夠攻擊上述方案,即偽造出不可被追蹤來源的簽名,挑戰(zhàn)者能夠?qū)呈謱Ψ桨傅墓魞?yōu)勢轉(zhuǎn)換為對困難問題的求解優(yōu)勢,這表明敵手擁有不可忽略的優(yōu)勢,能夠在多項式時間內(nèi)解決定理中的SDH 問題.這與已知任何多項式時間算法求解上述困難問題的成功概率是可忽略的事實相矛盾.通過反證法可知,敵手能夠攻擊方案的假設(shè)不成立,即敵手無法偽造正確的簽名或該偽造簽名能夠被追蹤其來源. (2)采用ISBE 方案中的授權(quán)解密功能實現(xiàn)了多播組的接收方身份確認. 即,只有屬于多播組S的授權(quán)成員能夠解密ISBE 密文獲得會話密鑰.同樣地,定理1 中ISBE 針對抗共謀攻擊的安全性保證了非授權(quán)用戶無法恢復(fù)會話密鑰:假設(shè)任何非授權(quán)用戶(包括非系統(tǒng)內(nèi)攻擊者和系統(tǒng)內(nèi)的非授權(quán)用戶)能夠共謀獲取會話密鑰,那么也就意味著他們破壞了ISBE 方案的語義安全性,與定理矛盾,因此保證了只有多播組內(nèi)的接收者是合法會話密鑰持有者,間接實現(xiàn)了接收方身份確認. 本文提出的多播密鑰分發(fā)協(xié)議構(gòu)架于網(wǎng)絡(luò)協(xié)議棧的傳輸層之上,參考已有的VPN 封裝協(xié)議,我們設(shè)計了如表2 所示的數(shù)據(jù)封裝格式. Table 2 Data encapsulation message format表2 數(shù)據(jù)封裝報文格式 鑒于在多播組的構(gòu)建中群組密碼一對多的優(yōu)勢,即可以實現(xiàn)對于同一密文有多個被授權(quán)的私鑰能夠成功解密,本文建議采用UDP 協(xié)議裝載所述數(shù)據(jù)報文.這種傳輸層協(xié)議格式簡單、無連接,可支持在網(wǎng)絡(luò)中高效傳輸和廣播擴散所載荷的數(shù)據(jù)報文.相比于面向連接的TCP 協(xié)議需要與每個節(jié)點執(zhí)行3 次握手4 次揮手完成通信,UDP 協(xié)議結(jié)構(gòu)簡單,支持消息廣播,傳輸速率快,更適合于視頻直播、群組聊天等需要消息即時同步應(yīng)用場景.因此,本文所設(shè)計的這種多播密鑰分發(fā)協(xié)議正是有這種消息即時同步的需求.同時,為了彌補UDP 協(xié)議不可靠傳輸?shù)娜毕?我們在數(shù)據(jù)封裝格式中加入序列號以及在工程實現(xiàn)中采取心跳機制,完成對該協(xié)議的程序設(shè)計. 在所述協(xié)議報文格式中,字段{C1,C2,Mode}結(jié)合字段Data中的用戶集合S實現(xiàn)多播組的構(gòu)建.根據(jù)ISBE 方案的特點,群組密文的兩部分C1和C2為常量大小,與當(dāng)前多播組的規(guī)模無關(guān),由密鑰空間定義的位長(如256 bits)決定其密文的長度.字段{Next,Size,SPI,Seq}保持與IPSec VPN 一致.此外,字段{Op,Exp}用于管理多播組,其中,Op標記多播組會話密鑰的分發(fā)、更新和撤銷,Exp標記該多播組會話密鑰的有效時間.字段Data是可變長的有效數(shù)據(jù)載荷,它包括了當(dāng)前所構(gòu)建的多播組中用戶集合的身份標識信息,以及如之前方案所述的簽名驗證數(shù)據(jù)用以核實發(fā)起者的身份. 為方便多播組協(xié)議實現(xiàn),本系統(tǒng)定義3 種操作類型來表示如何組裝功能性的報文,并分別用于發(fā)起者分發(fā)(distribute)、更新(update)和撤銷(revoke)多播組.令S為當(dāng)前要建立的多播組成員集合,忽略密文生成具體采用何種加密模式的細節(jié),使用期限Exp為系統(tǒng)默認配置,3 種操作定義如下. (1)Distribute(S,Exp):用于生成多播報文,輸入多播組成員集合S和密鑰共享的有效時長Exp,它將操作類型Op標記為分發(fā),隨機產(chǎn)生初始序列號Seq,定義密鑰的有效期,根據(jù)多播組成員集合確定采取的加密模式填充密文部分,最后對該分發(fā)標記的報文簽名; (2)Update(S,Exp):用于更新多播會話密鑰,輸入多播組成員集合S和密鑰共享的有效時長Exp,將操作類型標記為更新,在上一個報文的序列號Seq基礎(chǔ)上加1 填入,重置密鑰的有效時長,生成一個隱藏了新的會話密鑰的密文,并為該更新標記的報文簽名; (3)Revoke(·):用于撤銷多播組,輸入為空,它設(shè)置操作類型為撤銷標記,序列號Seq繼續(xù)在已有基礎(chǔ)上加1,使用期限為空,不用填充密文,最后加上發(fā)送者簽名. 多播組生存周期從發(fā)起者初始化構(gòu)建并分發(fā)密鑰,而后多次更新當(dāng)前多播組的會話密鑰,直到最后撤銷密鑰刪除當(dāng)前多播組.對于多播組成員的添加和刪除,則都可以通過調(diào)用Update函數(shù)來為新的成員集合重新分配密鑰,舊的密鑰則被廢棄.例如,對于用戶Alice 的加入和用戶Bob 的退出,將分別對應(yīng)于集合的并和除,即調(diào)用函數(shù)Update(S∪{Alice},Exp)更新密鑰添加用戶,調(diào)用函數(shù)Update(S{Bob},Exp)更新密鑰刪除用戶. 多播組構(gòu)建過程中的聚合值計算是群組算法中的主要耗時部分,取決于多播組的規(guī)模.在本文中,我們將這一過程交由GM 實現(xiàn),用戶可隨時查詢并繼續(xù)使用聚合值進行會話密鑰分發(fā)操作,從而降低成員的計算負載和網(wǎng)絡(luò)延遲.因此,GM 和用戶都可以通過緩存計算結(jié)果并多次使用達到提高性能的目的. 為評估系統(tǒng)性能,本文在一種開源的對等VPN 軟件上進行二次開發(fā),分別比較原有軟件與采用本文方案后開發(fā)成型的軟件在密鑰分發(fā)和加密通信上的性能差異.我們選取采用對等技術(shù)構(gòu)建虛擬專用網(wǎng)絡(luò)的PeerVPN軟件,它使用C 語言編程實現(xiàn)并運行于Linux 系統(tǒng)上,在OpenSSL 開發(fā)包的支持下,使用DH 密鑰交換生成節(jié)點之間的會話密鑰,以及采用256 位的AES 算法加密通信數(shù)據(jù),通過節(jié)點之間消息路由構(gòu)建完全的平鋪網(wǎng)絡(luò),是一種比較典型的對等VPN. 在PeerVPN 的基礎(chǔ)上,我們嵌入本文所提出的多播密鑰分發(fā)方案,采用斯坦福大學(xué)的C 語言版本PBC 庫編寫ISBE 密碼算法,替換原有對等VPN 中的密鑰交換方法,而分發(fā)的會話密鑰則采用與該軟件相同的加密方式,目前已有程序代碼上萬行,部署在10 個節(jié)點上用于性能測試.測試環(huán)境使用三層交換機配置私有網(wǎng)段,并在物理服務(wù)器上安裝VMware 或VirtualBox 等軟件創(chuàng)建10 臺虛擬機,為其配置1GB 內(nèi)存、1 個CPU 單核、20GB硬盤存儲以及一塊虛擬網(wǎng)卡用于橋接至三層交換機上,每臺虛擬機安裝Ubuntu 16.04 操作系統(tǒng)作為程序的開發(fā)運行環(huán)境. 下面將分別通過理論對比和實驗分析對群組VPN 中密鑰分發(fā)方法的性能進行分析. 為了在兩方之間產(chǎn)生共享的會話密鑰,已有的會話密鑰分發(fā)技術(shù)可分為下面兩類. (1)基于對稱密碼的密鑰分發(fā)協(xié)議,如NS,Kerberos 等,它由用戶發(fā)出請求并與密鑰分發(fā)中心KDC 進行多步交互最終產(chǎn)生兩方(或多方)共享密鑰; (2)基于公鑰密碼的密鑰交換協(xié)議,如Diffie-Hellman 密鑰交換技術(shù),不依賴第三方,而由兩方共同生成一個隨機的會話密鑰. 表3 給出了群組分發(fā)方法與已有的兩種密鑰分發(fā)方法之間的簡單對比.在這兩種方法中:方法(1)簡稱對稱密鑰分發(fā)方法,可支持從兩方到多方的擴展,但等效于多次協(xié)議執(zhí)行,通信代價也隨著參與方規(guī)模線性增長;方法(2)簡稱密鑰交換方法,只支持兩方共同生成會話密鑰,由于該會話密鑰的計算取決于兩方各自選取的隨機數(shù),任意一方無法猜測該隨機會話密鑰的計算結(jié)果,因此不能直接從兩方擴展到多方,只能通過協(xié)議的多次執(zhí)行滿足在多播組內(nèi)共享相同的會話密鑰. 上述兩種方法與本文所提基于群組密碼的密鑰分發(fā)方法(簡稱多播密鑰分發(fā)方法)相比較,在分發(fā)方式、密碼基礎(chǔ)、通信開銷等方面都有較大差異.通過表3 的對比不難發(fā)現(xiàn):群組分發(fā)方法不需要中心機構(gòu)頒發(fā)會話密鑰,且能夠同時與多方共享相同的會話密鑰,其通信開銷和計算效率都有很大的提升;基于身份標識的認證方式能夠便捷用戶注冊過程,減少系統(tǒng)內(nèi)密鑰管理工作,提高針對身份偽造攻擊的安全防護. Table 3 Comparison of session key distribution methods表3 會話密鑰分發(fā)方法對比表 為使群組VPN 與對等VPN 之間性能對比結(jié)果更為顯著,上述實驗環(huán)境在設(shè)計上將VPN 程序運行時產(chǎn)生的網(wǎng)絡(luò)流量通過單臺交換機轉(zhuǎn)發(fā),從而忽略數(shù)據(jù)報文在公網(wǎng)中的傳輸時延.在此基礎(chǔ)上,本文分別對兩種VPN在密鑰分發(fā)和加密通信前后兩個階段進行實驗分析.密鑰分發(fā)階段用于生成隧道通信的會話密鑰,在工程實現(xiàn)上對等VPN 需要至少3 次交互以完成會話密鑰的生成,包括:1)產(chǎn)生一個會話;2)交換隨機數(shù);3)確認會話密鑰.在此之后,兩方交互初始化隧道參數(shù).而群組VPN 將一方產(chǎn)生的隨機會話密鑰隱藏在群組加密密文中,廣播該密文而無需交互,即可完成對可選用戶集合的會話密鑰分發(fā). 如圖4 所示,實驗分析結(jié)果顯示了隨著群組規(guī)模增大,兩種VPN 在為群組成員分發(fā)會話密鑰的交互耗時.實驗中,接收方群組規(guī)模從1~9 變化,交互耗時單位為毫秒.對等VPN 中密鑰交換協(xié)議需要與每個用戶單獨進行交互,所以實驗結(jié)果(三角)顯示,其密鑰交換耗時隨群組規(guī)模成線性增長.與之相比較,群組VPN(圓點)中多播分發(fā)在群組規(guī)模較小時,耗時相對較大;當(dāng)超過5 個節(jié)點時,其交互耗時逐漸優(yōu)于對等VPN 中密鑰交換.該實驗結(jié)果的原因在于:多播分發(fā)使用的群組密碼技術(shù)中的主要計算開銷是聚合值計算與橢圓曲線下的雙線性映射運算,當(dāng)群組規(guī)模較小時,由于基于雙線性映射的初始化過程耗時較多,導(dǎo)致群組VPN 性能弱于對等VPN.但該過程耗時并不隨群組規(guī)模增長而變化,而更多耗時被用于聚合值計算,但從圖中的擬合曲線可知,聚合值計算的耗時速率要小于密鑰交換的耗時速率,因而群組VPN 的交互耗時隨規(guī)模增長要小于對等VPN.因此,群組VPN 更適用于更大規(guī)模的網(wǎng)絡(luò)環(huán)境. 在相同實驗環(huán)境下,圖5 表明了在密鑰分發(fā)階段完成之后,群組內(nèi)成員通過加密隧道向群組內(nèi)其他成員進行多播通信的耗時. Fig.4 Interaction time-overheads in key distribution圖4 密鑰分發(fā)階段交互耗時 Fig.5 Multicast time-overheads in encrypted communication圖5 加密通信階段多播耗時 由于群組VPN 中多播組內(nèi)共享同一會話密鑰,因此消息只需加密一次,多播耗時隨群組規(guī)模的增長沒有太大的變化,這可通過圖中圓點及擬合直線予以驗證.而對等VPN 下的多播耗時則隨著群組規(guī)模增長呈較明顯的線性增長,其增長是由于不同會話密鑰對同一消息進行隧道加密計算造成的.因此,群組VPN 對消息的接收延遲較小,更適用于大規(guī)模群組內(nèi)多播消息的同步接收. 本文提出一種被稱為GroupVPN 的對等VPN 框架,該框架結(jié)合公鑰群組密碼下的廣播加密和群簽名方案,實現(xiàn)一種多播密鑰分發(fā)協(xié)議,保證在SDH 假設(shè)下滿足數(shù)據(jù)私密性、數(shù)據(jù)完整性、身份真實性這3 方面安全性要求.實驗分析表明,該協(xié)議可將通信延遲限制在會話密鑰分發(fā)階段,從而降低了加密通信階段的通信耗時.3.4 安全性分析
4 報文協(xié)議設(shè)計
4.1 數(shù)據(jù)封裝格式
4.2 會話密鑰管理
5 性能評估
5.1 密鑰分發(fā)方法比較
5.2 密鑰分發(fā)實驗分析
6 總結(jié)