摘要:為保證云服務(wù)的安全可靠,在使用云服務(wù)前,用戶(hù)需要對(duì)云平臺(tái)進(jìn)行可靠性和安全性的遠(yuǎn)程證明。本文基于云計(jì)算,研究了基于屬性的遠(yuǎn)程證明機(jī)制,并采用AIK證書(shū)對(duì)用戶(hù)的身份進(jìn)行安全性認(rèn)證,同時(shí)使用加密和簽名等手段保證配置、屬性證書(shū)等敏感信息在傳輸中的安全性并確保其不被篡改。
關(guān)鍵詞:屬性證書(shū);遠(yuǎn)程證明;云計(jì)算;AIK
0引言
隨著云計(jì)算技術(shù)的發(fā)展,各類(lèi)網(wǎng)絡(luò)應(yīng)用向云端遷移,大量的用戶(hù)敏感信息存儲(chǔ)于云端。云計(jì)算在減輕企業(yè)和用戶(hù)計(jì)算、存儲(chǔ)負(fù)擔(dān)的同時(shí),也將安全問(wèn)題帶入到了“云”中。如何通過(guò)各種安全機(jī)制保證用戶(hù)得到安全、可信的云計(jì)算服務(wù),確保用戶(hù)數(shù)據(jù)、計(jì)算任務(wù)的安全性,成為云計(jì)算中非常重要的研究?jī)?nèi)容[1]。在用戶(hù)使用云服務(wù)之前,云端應(yīng)當(dāng)能夠向用戶(hù)提供自身安全性和可靠性的證明。另一方面,為了保證用戶(hù)信息的安全性,云端也必須要認(rèn)證用戶(hù)的身份。身份認(rèn)證是云服務(wù)安全的第一道大門(mén),也是實(shí)施各種安全措施的前提。
當(dāng)前遠(yuǎn)程證明的研究可分為基于身份、基于平臺(tái)、基于行為等方向[2],基于屬性的遠(yuǎn)程證明是一種基于平臺(tái)的遠(yuǎn)程證明方式,這種證明方法,挑戰(zhàn)者不需要知道平臺(tái)的配置,只需要知道平臺(tái)是否能滿(mǎn)足某種或某些安全屬性,在證明了平臺(tái)安全可靠的同時(shí),保證平臺(tái)真實(shí)配置不被泄露。為使基于屬性的遠(yuǎn)程證明可以更好地適用于云計(jì)算,需要研究如何針對(duì)云計(jì)算平臺(tái)進(jìn)行基于屬性的遠(yuǎn)程證明。同時(shí),需要可信第三方來(lái)提供可靠的屬性證書(shū)頒發(fā)和驗(yàn)證服務(wù),在平臺(tái)的配置和證書(shū)等相關(guān)信息傳輸時(shí),需要保證信息的安全性和不被篡改。
1相關(guān)技術(shù)
1.1基于屬性的遠(yuǎn)程證明
基于屬性的遠(yuǎn)程證明是指通過(guò)屬性與平臺(tái)配置之間的映射關(guān)系,在可信第三方的幫助下,頒發(fā)屬性證書(shū),來(lái)證明被證明方的可信安全屬性的遠(yuǎn)程證明機(jī)制。在進(jìn)行屬性證明的過(guò)程中,證明請(qǐng)求由一系列“滿(mǎn)足屬性p1i的系統(tǒng)聲明其滿(mǎn)足屬性 p2i”的聲明組成[3]。遠(yuǎn)程證明模型如圖1。
相對(duì)于直接匿名證明和基于二進(jìn)制的遠(yuǎn)程證明模型等,基于屬性的遠(yuǎn)程證明模型具有靈活性強(qiáng)、安全性高的優(yōu)勢(shì)[4]。
1.2可信平臺(tái)模塊TPM
TPM是可信計(jì)算平臺(tái)的信任根,其結(jié)構(gòu)如圖2所示。它由執(zhí)行引擎、內(nèi)存、I/O、密碼協(xié)處理器、隨機(jī)數(shù)產(chǎn)生器等部件組成。其中,執(zhí)行引擎主要是CPU和相應(yīng)的固件。密碼協(xié)處理器用于加速公鑰密碼的產(chǎn)生。密鑰產(chǎn)生部件基于ECC產(chǎn)生公鑰密碼的密鑰,隨機(jī)數(shù)產(chǎn)生器是TPM的隨機(jī)源,產(chǎn)生隨機(jī)數(shù)和對(duì)稱(chēng)密碼的密鑰。SHA1引擎是Hash函數(shù)SHA1的硬件引擎。HMAC是基于Hash函數(shù)SHA1的消息認(rèn)證碼硬件引擎。電源檢查監(jiān)視TPM的電源狀態(tài),并作相應(yīng)處理。配置開(kāi)關(guān)對(duì)TMP的資源和狀態(tài)進(jìn)行配置[5]。
1.3基于TPM的云框架
為使可信遠(yuǎn)程證明可以在云環(huán)境中執(zhí)行,需將TPM模塊引進(jìn)云計(jì)算,并進(jìn)行管理。TPM功能是通過(guò)對(duì)可信平臺(tái)模塊進(jìn)行虛擬而實(shí)現(xiàn)的。虛擬TPM設(shè)計(jì)的目標(biāo)是使可信平臺(tái)模塊的功能對(duì)每臺(tái)虛擬機(jī)都可用,讓每臺(tái)需要此功能的虛擬機(jī)都感覺(jué)是在訪問(wèn)自己私有的可信平臺(tái)模塊[6]。一般來(lái)說(shuō),一個(gè)虛擬機(jī)系統(tǒng)只有一個(gè)硬件可信平臺(tái)模塊,而虛擬機(jī)的數(shù)目要遠(yuǎn)大于此,因此需要?jiǎng)?chuàng)建多個(gè)虛擬可信平臺(tái)模塊實(shí)例,其中每一個(gè)實(shí)例都要模擬硬件可信平臺(tái)模塊的功能。下面介紹本文使用的TPM管理方式[7]。
參考文獻(xiàn)[8]在通用云計(jì)算框架的基礎(chǔ)上提出了基于TPM的云框架。如圖3所示。vTPM manage在云基礎(chǔ)設(shè)施層運(yùn)行。虛擬機(jī)(VM)中含有vTPMi實(shí)例,該實(shí)例是由vTPM manage提供,但其功能實(shí)際是調(diào)用底層的TPM硬件來(lái)實(shí)現(xiàn)。vTPM manage預(yù)先分配好每個(gè)vTPMi的序列號(hào),與每個(gè)VM一一對(duì)應(yīng),因此VM不可用vTPMj對(duì)消息進(jìn)行偽裝。底層的TPM硬件在執(zhí)行vTPMi所請(qǐng)求的命令時(shí),根據(jù)序列號(hào)判斷vTPMi來(lái)自哪個(gè)VM。
2基于屬性的云計(jì)算遠(yuǎn)程證明認(rèn)證模型
本文對(duì)用戶(hù)平臺(tái)和云平臺(tái)都進(jìn)行了基于AIK的身份認(rèn)證,在此基礎(chǔ)上,利用基于屬性的遠(yuǎn)程證明思想,形成了基于屬性的云計(jì)算遠(yuǎn)程證明模型。
2.1涉及到的主體
該框架涉及到的主體包括以下幾個(gè):
?。?)云平臺(tái)(Cloud):具有統(tǒng)一的TPMi管理模塊vTPM manage以及與虛擬機(jī)一一對(duì)應(yīng)的vTPMi模塊。vTPM manage和vTPMi都有自己的EK證書(shū),vTPM manage的EK證書(shū)由硬件TPM產(chǎn)生,而vTPMi的虛擬EK證書(shū)由vTPM manage向vTPM分發(fā)唯一序列號(hào)時(shí)生成并提供。
(2)AIK證書(shū)中心:頒發(fā)AIK證書(shū),驗(yàn)證AIK證書(shū)的有效性。
?。?)用戶(hù)平臺(tái)(user):向云平臺(tái)發(fā)起服務(wù)請(qǐng)求,并要求其提供相應(yīng)服務(wù)所涉及到的模塊屬性證書(shū)。此外,用戶(hù)平臺(tái)包含TPM模塊,并有自己的EK證書(shū)。
?。?)屬性權(quán)威中心(Issuer):頒發(fā)屬性證書(shū),驗(yàn)證屬性證書(shū)的可靠性。
2.2相關(guān)參數(shù)說(shuō)明
Cs:虛擬平臺(tái)配置;
Cs’:虛擬平臺(tái)相應(yīng)映射到的相關(guān)底層物理配置集。
2.3證明認(rèn)證過(guò)程
2.3.1屬性證書(shū)申請(qǐng)
?。?)Guest OS向?qū)?yīng)的vTPMi發(fā)起全部模塊屬性證書(shū)申請(qǐng)的流程。
?。?)vTPMi對(duì)Cs’和AIK證書(shū)計(jì)算出簽密值α,然后將(Cs’,α)用自己的私鑰加密后發(fā)送給vTPM manage。
?。?)vTPM manage用vTPMi的公鑰解密并驗(yàn)證是否被篡改。
?。?)vTPM manage通過(guò)Cs’計(jì)算得到vTPMi涉及到的底層配置Cs,再對(duì)Cs和自己的AIK證書(shū)計(jì)算簽密值β,再用自己的私鑰對(duì)(Cs,β)加密后發(fā)送給vTPMi。
?。?)vTPMi解密出Cs后即驗(yàn)證是否被篡改,將Cs用issuer的公鑰加密后發(fā)送給Issuer。
(6)屬性權(quán)威中心將根據(jù)Cs值按照一定規(guī)則推斷出vTPMi所在虛擬平臺(tái)和底層涉及的物理平臺(tái)配置屬性值Ps,并發(fā)布屬性證書(shū)AC。 AC在先后采用vTPM manage的AIK公鑰和vTPMi的AIK公鑰加密之后發(fā)送給vTPM manage和vTPMi。
?。?)vTPMi與vTPM manage采用各自的私鑰解密后得到AC。根據(jù)Cs,由F(Cs,P)計(jì)算出值E并將(E,AC)發(fā)送給Guest OS,其中F為單向函數(shù),P是隨機(jī)大素?cái)?shù)。
(8)Guest OS驗(yàn)證AC中各值的正確性,并存儲(chǔ)AC以及E值。AC和E預(yù)先存儲(chǔ)于Guest OS中,由于E的計(jì)算是基于離散對(duì)數(shù)的基礎(chǔ)上進(jìn)行的,因此即使Guest OS被攻擊者獲取,也無(wú)法獲得Cs值[9]。
2.3.2身份認(rèn)證
?。?)用戶(hù)平臺(tái)包含的TPM模塊生成一對(duì)密鑰對(duì)(Kup,Kus),并將自身的一些身份信息和公鑰發(fā)給AIK證書(shū)中心。
?。?)AIK證書(shū)中心驗(yàn)證用戶(hù)身份信息,利用用戶(hù)身份信息和公鑰生成AIK證書(shū),并用用戶(hù)的公鑰給身份證書(shū)加密后發(fā)給用戶(hù)。
(3)用戶(hù)平臺(tái)向云平臺(tái)發(fā)送自己的用戶(hù)ID、口令、AIK證書(shū)以及某種服務(wù)請(qǐng)求。
(4)云平臺(tái)驗(yàn)證用戶(hù)的身份和口令,驗(yàn)證通過(guò)后提取用戶(hù)的AIK證書(shū),將用戶(hù)的ID和AIK證書(shū)發(fā)送給AIK證書(shū)中心。
?。?)AIK證書(shū)中心驗(yàn)證證書(shū)的可靠性,并將驗(yàn)證結(jié)果發(fā)送給云平臺(tái),驗(yàn)證通過(guò)的情況下繼續(xù)后面的驗(yàn)證[10]。
2.3.3屬性證書(shū)驗(yàn)證
?。?)在用戶(hù)平臺(tái)的AIK證書(shū)可靠的情況下,根據(jù)用戶(hù)提出的服務(wù)請(qǐng)求,云平臺(tái)選取某個(gè)Guest OS。
?。?)該Guest OS向vTPMi發(fā)起屬性認(rèn)證流程;vTPMi生成隨機(jī)數(shù)K←{0,1}t,對(duì)(K,Csi,AC)計(jì)算序列值σ,對(duì)Cs用屬性權(quán)威中心的公鑰加密后得到Ei(Cs),對(duì)(σ,Ei(Csi),AIKvTPMi)計(jì)算序列值ω,將K、σ、ω、Ei(Csi)、AC和自己的AIK證書(shū)使用用戶(hù)的公鑰加密后發(fā)給用戶(hù)[11]。
?。?)用戶(hù)平臺(tái)收到相應(yīng)模塊的屬性證書(shū)之后,用私鑰進(jìn)行解密,驗(yàn)證ω是否正確并檢查AC上聲明的屬性是否滿(mǎn)足安全要求,若滿(mǎn)足則將K、σ、AC、Ei(Csi)和vTPMi的AIK證書(shū)用屬性證書(shū)中心的公鑰加密發(fā)給屬性證書(shū)權(quán)威中心。
?。?)屬性權(quán)威中心檢驗(yàn)σ簽名是否正確,并驗(yàn)證以下兩點(diǎn):
①AC證書(shū)是否可信;
?、谟蒀si配置計(jì)算出的配置值Psi是否與AC證書(shū)所標(biāo)明的屬性Ps一致。
(5)屬性權(quán)威中心在驗(yàn)證結(jié)束后,將驗(yàn)證結(jié)果發(fā)送給用戶(hù)平臺(tái)。
(6)屬性權(quán)威中心驗(yàn)證通過(guò)后,用戶(hù)將繼續(xù)對(duì)話(huà)的消息發(fā)給云平臺(tái),平臺(tái)將此次服務(wù)的GuestOS id、K、σ、AC、Ei(Csi)和vTPMi的AIK證書(shū)、繼續(xù)對(duì)話(huà)時(shí)間戳存放到數(shù)據(jù)庫(kù)一段時(shí)間。每次選中某個(gè)Guest OS后,在數(shù)據(jù)庫(kù)中查找是否有該Guset OS對(duì)應(yīng)的簽名值,避免重復(fù)計(jì)算。
2.4安全性分析
本文結(jié)合云計(jì)算下的TPM框架和基于屬性的遠(yuǎn)程證明方案,通過(guò)引進(jìn)屬性權(quán)威中心、AIK證書(shū)中心作為可信第三方,保證云對(duì)用戶(hù)的認(rèn)證、用戶(hù)對(duì)云平臺(tái)的遠(yuǎn)程證明都安全可靠。
在申請(qǐng)屬性證書(shū)的過(guò)程中,對(duì)于參與者vTPMi、vTPM manage以及Guest OS,本文假設(shè)相互之間的交互過(guò)程是不安全的。為保證這三者之間傳輸信息的安全性,加入了簽密手段和公鑰加密,保證信息在傳遞過(guò)程中不被篡改。
在屬性證書(shū)驗(yàn)證過(guò)程中,對(duì)發(fā)給用戶(hù)和屬性權(quán)威中心的數(shù)據(jù)做兩層不同的簽名,一是保證敏感信息(如平臺(tái)配置)不被用戶(hù)看到,二是保證信息在傳輸過(guò)程中的安全性。
作為可信第三方,屬性權(quán)威中心不僅對(duì)AC的可信性進(jìn)行驗(yàn)證,也對(duì)配置值對(duì)應(yīng)的屬性值重新計(jì)算,保證云平臺(tái)提供的最新服務(wù)符合其承諾的安全性,從而保護(hù)了用戶(hù)的利益,也使用戶(hù)對(duì)云服務(wù)商的信任加強(qiáng),從而使云計(jì)算有更廣闊的運(yùn)用空間。
3結(jié)論
本文介紹了基于云計(jì)算下的TPM框架實(shí)現(xiàn)的基于屬性的云計(jì)算遠(yuǎn)程證明,在進(jìn)行屬性遠(yuǎn)程證明過(guò)程中,采用了屬性權(quán)威中心作為可信第三方,對(duì)云平臺(tái)的配置計(jì)算其滿(mǎn)足的屬性,并能夠驗(yàn)證屬性證書(shū)的可靠性。此外,本文基于可信第三方AIK證書(shū)中心對(duì)用戶(hù)和平臺(tái)身份進(jìn)行認(rèn)證。針對(duì)屬性證書(shū)驗(yàn)證中的簽密過(guò)程,本文做了緩存處理,減少了簽密算法的計(jì)算頻率,提高了系統(tǒng)效率。
本文在研究過(guò)程中未對(duì)配置到屬性的計(jì)算進(jìn)行詳述,未來(lái)研究工作可以在這個(gè)方向展開(kāi)。
參考文獻(xiàn)
?。?] 吳朱華. 云計(jì)算核心技術(shù)剖析[M]. 北京:人民郵電出版社, 2012.
[2] 楊陽(yáng). 基于云計(jì)算IaaS環(huán)境的遠(yuǎn)程證明的研究與設(shè)計(jì)[D]. 廣州:華南理工大學(xué), 2012.
?。?] 杜蕓蕓, 謝福, 牛冰茹. 基于遠(yuǎn)程證明的云計(jì)算認(rèn)證問(wèn)題研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2014, 31(3): 304307.
[4] 梁元. 基于云計(jì)算環(huán)境下的可信平臺(tái)設(shè)計(jì)[D]. 成都:電子科技大學(xué), 2013.
?。?] 鄭一龍. 基于屬性的遠(yuǎn)程證明隱私保護(hù)技術(shù)研究[D]. 大連:大連海事大學(xué), 2013.
?。?] 邢劍鋒, 王鵬飛, 沈松. 基于虛擬機(jī)的可信云計(jì)算平臺(tái)研究與設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2010, 29(16): 7577.
[7] 陳曉雙. 面向云計(jì)算的可信分布式計(jì)算環(huán)境關(guān)鍵技術(shù)的研究[D]. 北京:北京郵電大學(xué), 2013.
?。?] 陳婷. 可信遠(yuǎn)程證明協(xié)議的研究[D]. 上海:華東理工大學(xué), 2013.
?。?] XIN S Y, ZHAO Y, LI Y. Propertybased remote attestation oriented to cloud computing[C].Computational Intelligence and Security (CIS), 2011 Seventh International Conference on IEEE, 2011:10281032.
[10] 呂群. 基于云服務(wù)的身份認(rèn)證服務(wù)的研究與設(shè)計(jì)[D]. 北京:北京郵電大學(xué), 2012.
?。?1] Mei Songzhu, Wu Jiangjiang, Cheng Yong, et al. Trusted bytecode virtual machine module: towards dynamic remote attestation in cloud computing[C].Intelligence Information Processing and Trusted Computing (IPTC), 2011 2nd International Symposium on IEEE, 2011:1923.