李 江 王 湛 彭丹丹 潘朋威
1(湖北省自然資源廳信息中心 湖北 武漢 430071) 2(武漢大學計算機學院 湖北 武漢 430079)
隨著云計算模式的發(fā)展,傳統(tǒng)集中式架構(gòu)的數(shù)據(jù)中心正逐漸遷移至資源按需擴展、負載動態(tài)均衡的云環(huán)境中,但云環(huán)境下構(gòu)建的數(shù)據(jù)中心在提高擴展計算和存儲資源時只能在單一數(shù)據(jù)中心內(nèi)部垂直擴容,同時,獨立云節(jié)點仍然會因其電力、通信等地域性故障從而失去高可用的特性,因此,基于分布式云架構(gòu)搭建的多地域數(shù)據(jù)中心已成為未來的發(fā)展趨勢[1]。分布式云數(shù)據(jù)中心根據(jù)其耦合程度的不同表現(xiàn)為混合架構(gòu)、對等架構(gòu)和聚合架構(gòu)三種模式[2],無論哪種模式,都面臨著異構(gòu)云環(huán)境下用戶和數(shù)據(jù)安全策略的合理規(guī)劃問題,尤其因數(shù)據(jù)中心為增強其高可用性和數(shù)據(jù)冗余性而導(dǎo)致的服務(wù)信任域擴展,從而引發(fā)云間不同安全域之間的安全信任問題,因此,如何實現(xiàn)安全高效的跨域認證成為目前分布式數(shù)據(jù)中心安全問題的研究熱點。
當前很多國內(nèi)外的學者已經(jīng)投身到相關(guān)的研究當中,文獻[3]提出一種混合云環(huán)境下基于異構(gòu)系統(tǒng)的跨域身份認證方案,該方案適用于PKI體系和CLC體系之間的跨域認證,但其本身使用的仍然是證書管理思想。文獻[4]提出一種基于區(qū)塊鏈的高效跨域認證方案,該方案結(jié)合區(qū)塊鏈技術(shù),使用哈希算法驗證證書,減少了公鑰算法簽名驗證的次數(shù),實現(xiàn)了跨域認證的效率提升,但也是基于證書管理的方案。文獻[5]提出一種基于區(qū)塊鏈技術(shù)的跨域認證方案,該方案基于區(qū)塊鏈技術(shù)實現(xiàn)跨密碼體系間的跨域認證,但作者也表明該方案未能解決區(qū)塊鏈系統(tǒng)因存儲數(shù)據(jù)造成的開銷浪費問題,且在ISE端的計算量有待優(yōu)化[5]。文獻[6]提出一種云環(huán)境下基于混合密碼體系的跨域控制方案,該方案以CA為不同域的安全認證中心,實現(xiàn)不同密碼體系之間的跨域認證,但其根本思想仍然是基于證書管理的方案。文獻[7]提出一種云環(huán)境下基于簽密的異構(gòu)跨域身份認證方案,該方案通過引入CA安全認證中心來實現(xiàn)PKI體系和CLC體系間的跨域認證,但若在CLC體系中使用該方案將會引入證書管理問題。文獻[8]提出一種基于代理重簽名的跨域認證模型,實現(xiàn)了強不可偽造的域之間的跨域認證,但是在異構(gòu)系統(tǒng)的跨域認證和效率上仍然存在不足。文獻[9]提出一種基于無證書簽名的云端跨域身份認證框架,該方案具有較高的安全性,但沒有解決異構(gòu)系統(tǒng)的跨域認證。文獻[10]提出了基于身份的公鑰密碼體制域之間信息服務(wù)實體的跨域認證模型,但是無法滿足不同密碼體制的跨域認證。文獻[11]提出一種新的信息服務(wù)實體跨域認證模型,實現(xiàn)了跨信任域的雙向?qū)嶓w認證和密鑰協(xié)商,但是該方案在進行跨域認證的時候仍然使用的是基于證書的思想。文獻[12]通過證書對云端身份進行驗證,但是驗證過于頻繁,導(dǎo)致驗證效率不高。文獻[13]提出使用盲簽名的方案來將用戶的身份數(shù)據(jù)從一個域授權(quán)給另一個域。文獻[14]基于某些場景分析了使用PKI體系的點對點和橋式CA交叉認證方案,使用該方案可實現(xiàn)在必要時建立或者撤銷與其他域的交叉鏈接。文獻[16]提出一種普適環(huán)境中基于身份的跨域認證方案,該方案的跨域認證主要依賴于作者所提出的簽名方案。
綜合以上研究成果可以看出,目前針對跨域認證的方案,大多都是基于證書管理思想實現(xiàn)的跨域認證。基于證書管理思想實現(xiàn)跨域的技術(shù)經(jīng)過多年的實踐積累,技術(shù)已經(jīng)相對成熟,而且PKI體系本身就存在證書管理問題,所以在基于PKI體系的跨域問題上使用基于證書管理的方案是相對合適的。但若是在IBC體系中使用基于證書管理的跨域方案,將會在IBC體系中引入證書管理問題,這樣就違背了IBC體系無證書的設(shè)計原則。如何在保留IBC體系無證書優(yōu)勢的同時實現(xiàn)跨域認證,仍然是一個值得研究的問題。
隨著分布式云計算技術(shù)的發(fā)展和人們對安全需求的日益加深,信息安全技術(shù)已經(jīng)成為分布式云計算發(fā)展中不可或缺的技術(shù)。IBC體系以其運營管理方便、成本低、靈活、標識即公鑰等優(yōu)點成為目前分布式云環(huán)境中首選的安全解決方案。但是由于云計算虛擬化和分布式的特點,每個云服務(wù)提供商可能不在同一個安全域中[16],而在IBC體系中,信任同一系統(tǒng)根公鑰的用戶之間構(gòu)成一個相對獨立的信任域,在同一信任域之間用戶的相互認證是容易實現(xiàn)的,但在不同的信任域中,因為用戶所信任的KGC不同,用戶之間是無法互信的。具體如圖1所示。
圖1 域間不信任現(xiàn)狀
為了解決在分布式云環(huán)境下基于IBC體系的跨域認證問題,本文提出一種基于身份標識的層級化公鑰信任模型,使用該模型搭建的基于IBC體系的信息系統(tǒng)不僅可以保留IBC無證書優(yōu)點,實現(xiàn)安全的跨域認證,而且無論是在計算效率還是通信開銷以及存儲開銷上都要優(yōu)于通過傳統(tǒng)證書管理思想實現(xiàn)的跨域認證方案。
基于身份標識的層級化架構(gòu)采用樹狀結(jié)構(gòu),由一個最上級的根信任域逐級向下級節(jié)點延伸,并最終通過層級化跨域認證協(xié)議實現(xiàn)任意信任域內(nèi)的用戶可以驗證其他信任域的系統(tǒng)公鑰的真實性,進而實現(xiàn)兩個不同信任域內(nèi)用戶間的跨域認證,具體架構(gòu)如圖2所示。
圖2 層級化架構(gòu)
層級化架構(gòu)原則:
1) 所有用戶信任根信任域,即相信根信任域所公開的主公鑰的真實性。
2) 由上級節(jié)點賦予下級節(jié)點的信任關(guān)系。
3) 用戶可以驗證任一節(jié)點的系統(tǒng)公鑰的真實性。
層級化架構(gòu)中的角色:
1) 根信任節(jié)點。信任根為一個可信的第三方機構(gòu),其主要作用為建立下級節(jié)點的信任根,并為直屬下級節(jié)點生成系統(tǒng)公私鑰。
2) 節(jié)點。信任根下使用同一個系統(tǒng)公私鑰的所有用戶和KGC的集合。
3) KGC。每個節(jié)點中的密鑰生成中心,其作用為存儲由上級節(jié)點生成的系統(tǒng)根公私鑰,并為節(jié)點內(nèi)所有用戶生成密鑰。
4) 用戶。節(jié)點內(nèi)的某一個使用者,其存儲由所在節(jié)點KGC生成的用戶私鑰,和上級節(jié)點的ID、根公鑰、驗證參數(shù)。
為了方便讀者理解層級化跨域認證協(xié)議,這里引入處于不同信息系統(tǒng)安全域用戶DomainUser1和DomainUser2間互相通信的應(yīng)用場景,具體如下。
DomainUser1所屬安全域內(nèi)信息系統(tǒng)記為A,A的KGC記為KA,DomainUser2所屬安全域內(nèi)信息系統(tǒng)記為B,B的KGC記為KB,A和B都信任的第三方記為R,R的KGC記為KR。DomainUser1和DomainUser2若想實現(xiàn)安全通信需經(jīng)過以下步驟。
步驟一R建立信任根,具體流程如下:
1)R根據(jù)橢圓曲線密碼算法的曲線參數(shù){q,a,b,G,N}隨機生成根公私鑰對,其中q是一個用于構(gòu)建有限域Fq的奇素數(shù)或2的方冪,a、b為Fq中的元素,它們定義Fq上的一條橢圓曲線,G表示橢圓曲線的一個基點,其階為N。
2) 將R記為0級節(jié)點,KR隨機生成系統(tǒng)根私鑰記為Rpri,計算系統(tǒng)根公鑰Rpub=[Rpri]·G。
3) 公開參數(shù){q,a,b,G,N}以及Rpub,私密存儲Rpri,確定一個單向安全的哈希函數(shù),并確定一種能將比特序列映射到有限域的方法,記為H(·)并且公開。
步驟二生成A與B的公私鑰對,具體流程如下:
1)A和B將各自的標識AID和BID提交給R。
2)R使用自身私鑰Rpri分別對AID和BID進行非確定性簽名運算,簽名值記為SA和SB,秘密保存兩個簽名值。
3)R使用SA和SB計算下級A和B的系統(tǒng)私鑰Apri=H(AID‖SA)和Bpri=H(BID‖SB)。
4)R使用SA和SB計算下級A和B的系統(tǒng)公鑰Apub=[H(AID‖SA)]·G和Bpub=[H(BID‖SB)]·G。
5)R計算A和B的驗證參數(shù):
VA=(1+Rpri)-1·[Apri-H(AID‖Apub)·Rpri]modN
VB=(1+Rpri)-1·[Bpri-H(BID‖Apub)·Rpri]modN
6)R將{AID,SA,Apub,VA}發(fā)送給A,將{BID,SB,Bpub,VB}發(fā)送給B。
7)KA使用SA和AID生成系統(tǒng)私鑰Apri=H(AID‖SA),KB使用SB和BID生成系統(tǒng)私鑰Bpri=H(BID‖SB)。
若在A和B之上存在N層信任域,則由R為其直屬節(jié)點按照以上步驟生成公私鑰對,然后按照以上步驟逐級拓展,直至完成A和B所處安全域的系統(tǒng)公私鑰對的生成。
步驟三生成用戶私鑰,具體流程如下:
1) DomainUser1和DomainUser2分別將各自的標識IDA和IDB交給KA和KB。
2)KA和KB分別生成DomainUser1和DomainUser2的私鑰記為PA和PB,KA將{AID,Apub,VA,PA}返回為DomainUser1,KA將{BID,Bpub,VB,PB}返回為DomainUser2。
若在A和B之上存在N層信任域,則A和B應(yīng)將其上所有節(jié)點的ID、公鑰、驗證參數(shù)一起返回給DomainUser1和DomainUser2。
步驟四身份認證,具體步驟如下:
1) DomainUser1使用PA對消息M進行非確定性簽名得到簽名值SM,并將AID‖Apub‖VA‖SM發(fā)送給DomainUser2。
2) DomainUser2收到消息以后,先計算e=H(AID‖Apub),然后計算t=e+VA。
3) 判斷t是否等于0,若等于0,則直接驗證失敗,否則驗證Apub=[VA]·G+[t]·Rpub是否成立,若成立則驗證成功,否則驗證失敗。
4) DomainUser2使用DomainUser1的標識驗證簽名SM。若驗證成功則說明該簽名為合法用戶DomainUser1的簽名。類似的,DomainUser1也可對DomainUser2的合法性進行驗證。
認證流程如圖3所示。
圖3 單節(jié)點認證流程
若在A和B之上存在N層信任域,則DomainUser1發(fā)給DomainUser2的消息應(yīng)包含A節(jié)點以及A節(jié)點以上所有節(jié)點的ID、公鑰、驗證參數(shù)與DomainUser1對消息的簽名SM,當DomainUser2進行驗證的時候無須逐級驗證,可直接將所有節(jié)點的ID、公鑰、驗證參數(shù)放到一起進行級聯(lián)認證,認證成功以后再驗證DomainUser1的簽名。認證流程如圖4所示。
圖4 級聯(lián)認證流程
實體雙向認證:在認證的過程中,域內(nèi)用戶DomainUser2通過計算t=H(AID‖Apub)+VA,驗證Apub=[VA]·G+[t]·Bpub是否成立來完成對另一域用戶DomainUser1的身份認證,該方案是正確的,因為:
[VA]·G+[t]·Rpub=
[VA](G+Rpub)+H(AID‖Apub)·Rpub=
[VA](1+Rpri)·G+H(AID‖Apub)·Rpub=
[Apri]·G=Apub
同理,DomainUser1可以完成對DomainUser2的身份認證,從而實現(xiàn)雙向的實體身份認證。
未知密鑰共享安全:若A和B協(xié)商會話密鑰,那么B必須使用自己的私鑰來參與計算會話密鑰,因此,攻擊者C如果想計算出相同的會話密鑰,必須獲取雙方用戶的私鑰,但此私鑰只有B本人知道,所以攻擊者無法計算出會話密鑰。
前向安全性:由于簽名階段采用了非確定性簽名,因此每次協(xié)商得到的會話密鑰是不完全相同的。所以即使雙方用戶的長期私鑰都已經(jīng)泄露,攻擊者C也無法知曉之前建立的會話密鑰。
密鑰泄露偽裝安全:假定攻擊者C已獲得用戶A的私鑰,同時試圖偽裝成用戶B與真正的用戶A進行通信,且攔截了A傳遞過來的信息,由于用戶B發(fā)送的簽名值SM是由掌握其私鑰用戶本人構(gòu)造的,因此最終計算也無法得出相同的會話密鑰。
目前基于IBC體系的信息系統(tǒng)的跨域認證,普遍采用基于證書管理的方案,基于證書管理的方案不僅存在通信成本大、用戶存儲開銷大等缺點,而且隨著層級的增多,在認證時需要逐級解析證書的特點也會嚴重影響認證效率,最重要的是在IBC體系中引入證書管理方案,違背了IBC體系的無證書理念。本文所提出的方案不僅可以解決基于IBC體系信息系統(tǒng)的跨域問題,實現(xiàn)基于IBC體系信息系統(tǒng)的跨域認證,且保留了IBC體系無證書的特點,在驗證效率和通信開銷上都優(yōu)于基于證書的跨域方案。三種方案的基本情況如表1所示。
表1 三種跨域方案的基本情況對比
本節(jié)我們將通過對實驗獲取的本文方案和傳統(tǒng)基于證書方案的驗證效率和通信開銷數(shù)據(jù)進行對比,證明本文提出的方案的可行性和優(yōu)勢。為了控制由于實驗主機和操作系統(tǒng)等無關(guān)變量,消除其對實驗結(jié)果的影響,實驗采用虛擬機方式,在一臺Windows Server 2012服務(wù)器上通過虛擬化的方式搭建虛擬出一臺信任根服務(wù)器和五個分屬獨立信任域的數(shù)據(jù)中心,模擬實驗中所使用的分布式云環(huán)境。相關(guān)的服務(wù)器資源配置如表2所示。
表2 服務(wù)器資源配置表
實驗環(huán)境中所采用的算法庫為MIRACL庫,選取256比特的橢圓曲線參數(shù)。
在實驗中信任根為0級節(jié)點,其下有兩個一級節(jié)點,在其中一個一級節(jié)點下拓展信任鏈至4級節(jié)點。一級跨域至四級跨域下的計算效率和通信開銷數(shù)據(jù)來源于一級節(jié)點、二級節(jié)點、三級節(jié)點、四級節(jié)點分別與另一個單獨的一級節(jié)點之間進行安全認證的實驗數(shù)據(jù)。
本文通過實驗對比分析了在使用不同方案實現(xiàn)節(jié)點的跨域認證時的時間消耗,驗證了本文與其他兩種基于證書的跨域方案在計算耗時上的差異,具體實驗數(shù)據(jù)如表3所示。
表3 計算耗時對比表 單位:ms
通過計算效率差異對比表可以看出,在跨域認證時,本方案的計算時間消耗要小于傳統(tǒng)的證書管理方案,且優(yōu)勢隨著跨域級數(shù)的增加會越來越明顯。不僅如此,本方案在實現(xiàn)跨多層級認證時只需要調(diào)用一個級聯(lián)認證函數(shù)就可以完成認證,而基于證書管理思想的方案需要按照證書鏈來逐級驗證證書,增加了驗證的復(fù)雜度。
本文通過實驗對比分析了在使用不同方案實現(xiàn)跨域認證時的通信開銷,驗證了本文與其他兩種方案在通信量上的開銷差異,具體實驗數(shù)據(jù)如表4所示。
表4 通信開銷對比表 單位:Byte
在基于IBC體系的跨域方案中,證書管理方案在跨域認證時需要傳遞系統(tǒng)公鑰、ID以及證書鏈,其中每個證書大約需要400字節(jié),而本文所提的方案在排除系統(tǒng)公鑰與ID之后,只需傳輸32字節(jié)的認證參數(shù)即可。而且隨著跨域級數(shù)的增長,證書管理方案的通信開銷成倍數(shù)增長,當跨域的級數(shù)越多本方案在通信開銷上的優(yōu)勢將會越明顯。
本文基于身份密碼認證框架,在分布式云環(huán)境中提出一種層級化跨域架構(gòu),在此架構(gòu)中通過使用層級化跨域認證協(xié)議,實現(xiàn)基于IBC體系的層級化數(shù)據(jù)中心之間的跨域認證,解決了基于IBC體系的異構(gòu)環(huán)境中分布式云數(shù)據(jù)中心應(yīng)數(shù)據(jù)服務(wù)信任域擴展而導(dǎo)致的云間信任問題。相較于使用傳統(tǒng)證書管理方法實現(xiàn)的分布式云數(shù)據(jù)中心間跨域方案而言,不僅解決了證書管理方案所帶來的證書管理與計算量大的問題,而且通過實驗結(jié)果對比三種方案在跨域時所帶來的計算時間開銷和通信開銷,發(fā)現(xiàn)本文的方案無論在計算時間開銷還是通信開銷上都優(yōu)于傳統(tǒng)證書管理方案。
本方案雖然實現(xiàn)了在分布式架構(gòu)中基于IBC體系數(shù)據(jù)中心的跨域認證,但是并沒有解決IBC體系的密鑰托管問題,而且本方案無法實現(xiàn)在分布式架構(gòu)中跨密碼體系數(shù)據(jù)中心的跨域認證。如何在分布式架構(gòu)中實現(xiàn)安全、高效跨密碼體制的跨域認證,解決IBC體系的密鑰托管問題將是未來的研究重點。