彭新光,王曉陽(yáng)
(太原理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西太原030024)
可信計(jì)算通過(guò)建立信任鏈?zhǔn)箤?shí)體行為按照預(yù)期的方式與目標(biāo)運(yùn)行[1-2],遠(yuǎn)程證明指網(wǎng)絡(luò)中的兩個(gè)實(shí)體在信息交互前需要判定實(shí)體的可信狀態(tài)。因此,遠(yuǎn)程證明是可信計(jì)算的重要內(nèi)容之一??尚胚h(yuǎn)程證明已取得很多成果,其中,基于屬性的遠(yuǎn)程證明具有優(yōu)勢(shì)和發(fā)展前景。它克服了基于配置遠(yuǎn)程證明中步驟繁多、證明信息量大和平臺(tái)信息易被竊取等不足,實(shí)現(xiàn)了快速和高效的驗(yàn)證過(guò)程?;趯傩缘倪h(yuǎn)程證明架構(gòu)首先由Poritz提出,之后Chen提出了基于屬性遠(yuǎn)程證明協(xié)議,Qin提出了基于組件屬性的遠(yuǎn)程證明,這些研究成果對(duì)基于屬性遠(yuǎn)程證明的發(fā)展具有極大的幫助[3-5]。
現(xiàn)存的基于屬性的遠(yuǎn)程證明具有以下缺點(diǎn):證書(shū)權(quán)威發(fā)布機(jī)為組件頒布屬性證書(shū)后,證書(shū)完全暴露在不安全的網(wǎng)絡(luò)環(huán)境中,證書(shū)的安全性得不到保證。而對(duì)證書(shū)的加密是另外一道工序,效率低;證書(shū)權(quán)威驗(yàn)證機(jī)構(gòu)的驗(yàn)證壓力過(guò)大,其不但要驗(yàn)證屬性證書(shū)的正確性,還要驗(yàn)證度量值與對(duì)應(yīng)安全等級(jí)的相關(guān)性是否符合規(guī)定[6-8]。
本文在原有屬性遠(yuǎn)程證明協(xié)議的基礎(chǔ)上,提出了一種新的模塊級(jí)的屬性遠(yuǎn)程證明方案。該方案有以下特點(diǎn):引入簽密,在各模塊屬性證書(shū)生成和加密一起完成,提高了整個(gè)證明方案的安全性[9-10];將驗(yàn)證中心拆分為證書(shū)正確性驗(yàn)證中心和屬性驗(yàn)證中心兩部分,分別對(duì)證書(shū)的正確性和屬性值進(jìn)行驗(yàn)證,提高了整個(gè)驗(yàn)證體系的驗(yàn)證效率[11-12]。
在本文的模塊屬性證明體系中,將整個(gè)體系分為6個(gè)部分,如圖1所示。
(1)模塊生產(chǎn)商 (Module Factory):生產(chǎn)用戶(hù)平臺(tái)所需的模塊。沒(méi)有發(fā)布模塊證書(shū)的權(quán)利。
(2)證書(shū)權(quán)威發(fā)布機(jī)構(gòu) (Certificate Authorization):負(fù)責(zé)為模塊發(fā)布模塊屬性證書(shū)。
(3)用戶(hù)平臺(tái) (User Platform):配置有TPM Trusted Platform Module),接受并使用配有屬性證書(shū)的各模塊,并向服務(wù)提供商提出數(shù)據(jù)請(qǐng)求。
(4)服務(wù)提供商 (Trusted Platform Module):為用戶(hù)平臺(tái)提供各種服務(wù),自身沒(méi)有檢測(cè)用戶(hù)平臺(tái)真?zhèn)蔚哪芰Α?/p>
(5)正確性驗(yàn)證中心 (Accuracy Verification Center):驗(yàn)證屬性證書(shū)的正確性。不具有檢驗(yàn)屬性與度量值對(duì)應(yīng)關(guān)系的能力。
(6)屬性驗(yàn)證中心 (Property Verification Center):驗(yàn)證屬性證書(shū)中屬性與度量值對(duì)應(yīng)關(guān)系的正確性。
一個(gè)完整的模塊屬性驗(yàn)證過(guò)程為:
1)模塊生產(chǎn)商生成模塊。
2)證書(shū)權(quán)威發(fā)布機(jī)構(gòu)為模板頒發(fā)屬性證書(shū)。
3)用戶(hù)獲得模塊、向服務(wù)提供商提出服務(wù)請(qǐng)求。
4)服務(wù)提供商要求驗(yàn)證模塊,并獲得度量值摘要與模塊屬性證書(shū)。
5)證書(shū)正確性驗(yàn)證中心確定屬性證書(shū)是否正確,有無(wú)被篡改。
6)屬性驗(yàn)證中心確定度量值摘要中的值是否與屬性證書(shū)中的值相匹配,屬性證書(shū)是否過(guò)期。
圖1 模塊屬性證明體系
根基TNC規(guī)范,當(dāng)模塊生產(chǎn)商制造出某一模塊后,它會(huì)首先被定義一個(gè)ID,長(zhǎng)度為32位 (bit);然后經(jīng)過(guò)模塊生產(chǎn)商的TPM度量后,會(huì)生成度量值ζ,長(zhǎng)度為160位;最后是與該度量值安全等級(jí)相對(duì)應(yīng)的屬性值P,長(zhǎng)度為160位。
所以對(duì)于模塊Ki,其配置為(ID,ζi,Pi)
針對(duì)當(dāng)前遠(yuǎn)程證明存在的問(wèn)題,本文提出了一種新的模塊級(jí)的遠(yuǎn)程證明協(xié)議[13-14]。
協(xié)議分為三步驟:
(1)模塊屬性證書(shū)的生成
1)證書(shū)權(quán)威發(fā)布機(jī)構(gòu)初始化參數(shù)
在CA端,選擇一大素?cái)?shù)p,并選擇p-1的一個(gè)大素因子q,g為乘法群中的一個(gè)q階元,hash為一個(gè)單向哈希函數(shù),KHKEY為帶密鑰的單向哈希函數(shù))為一個(gè)對(duì)稱(chēng)的加解密操作。
xCA∈為CA的私鑰,yCA=gxcamod p為CA的公鑰。CA將(p,q,g)傳送給屬性驗(yàn)證中心 PVC,供解簽密時(shí)使用。
2)屬性驗(yàn)證中心初始化參數(shù)
3)證書(shū)權(quán)威發(fā)布機(jī)構(gòu)進(jìn)行簽密
對(duì)于MF端傳過(guò)來(lái)的消息m=(ID||ζ||p),CA選擇對(duì)m進(jìn)行對(duì)稱(chēng)加密,得到并計(jì)算k=gLmod p,r=k mod q,h=hash(m),s=(h+xAr)/x mod q。最后得到e1=h/s mod q ,e2=r/s mod q 。CA 將 (p,q,g,h,r,s)發(fā)送至AVC,供驗(yàn)證屬性證書(shū)正確性時(shí)使用。(c,e1,e2)為簽密后的模塊屬性證書(shū)。
(2)服務(wù)提供商與用戶(hù)間的遠(yuǎn)程證明交互
用戶(hù)平臺(tái)向服務(wù)提供商發(fā)出服務(wù)請(qǐng)求,服務(wù)提供商會(huì)發(fā)回一個(gè)隨機(jī)數(shù)N和用戶(hù)平臺(tái)需要達(dá)到的安全等級(jí)。
用戶(hù)平臺(tái)的TPM對(duì)與安全等級(jí)相對(duì)應(yīng)的模塊進(jìn)行度量。通過(guò)TPM的度量算法,度量出組件mod1到modn的度量值 ζ1到 ζn。
TPM選擇Hash函數(shù)Hashsum,對(duì)組件mod1到modn的ID值和度量值進(jìn)行連接操作,生成摘要
最后TPM利用skTPM進(jìn)行簽名:σ =SignskTPM(ο||N)。則用戶(hù)平臺(tái)的屬性簽名為
(3)服務(wù)提供商驗(yàn)證屬性證書(shū)的正確性
然后,服務(wù)提供商將σproperty發(fā)送給屬性驗(yàn)證中心PVC。
(4)PVC驗(yàn)證屬性證書(shū)
由于m'=(id||ζ||P),在通過(guò)id在數(shù)據(jù)庫(kù)中查詢(xún)組件的度量值是否對(duì)應(yīng)正確的屬性值,若對(duì)應(yīng)正確,則說(shuō)明用戶(hù)平臺(tái)的信息真實(shí)可靠,PVC將屬性證書(shū)的驗(yàn)證結(jié)果傳遞給SP。
本論文提出的基于模塊屬性的遠(yuǎn)程證明協(xié)議滿(mǎn)足以下安全要求。
(1)不可偽造性。由屬性信息(id,ζ,P)生成的消息m并不在生成的簽密證書(shū)(c,e1,e2)中出現(xiàn),簽密所需的關(guān)鍵參數(shù)(p,q,hash)都不對(duì)外公開(kāi)。有效地防范了攻擊者通過(guò)m和(c,e1,e2)推算出簽密算法。
(2)可驗(yàn)證性。簽密證書(shū) (c,e1,e2)的驗(yàn)證方式有兩種:一種為通過(guò)標(biāo)準(zhǔn)的DSA簽名驗(yàn)證過(guò)程來(lái)完成,另一種是通過(guò)解簽密操作恢復(fù)出m,通過(guò)驗(yàn)證來(lái)實(shí)現(xiàn)。本協(xié)議中,第一種驗(yàn)證方式由AVC來(lái)完成,但AVC并不能得到消息m,而是從CA得到m的hash值,避免了m從AVC泄露出去的可能性。第二種驗(yàn)證方式由PVC來(lái)完成。
(3)不可否認(rèn)性。用戶(hù)平臺(tái)U向服務(wù)提供商發(fā)送的σproperty中,包含服務(wù)提供商向他發(fā)送的隨機(jī)數(shù)N。同時(shí)σ的生成中也包含了隨機(jī)數(shù)N。當(dāng)用戶(hù)的屬性簽名沒(méi)有通過(guò)驗(yàn)證后,他無(wú)法否認(rèn)此屬性簽名是自己所發(fā)。
為在實(shí)踐中驗(yàn)證協(xié)議方案的可行性,本文在Red Flag 6.0 系統(tǒng)下 (Intel Core i5 M480 2.67GHZ,Memory 1.98GB,Trusted Platform Module_Emula-tor,Java Trusted Software Stack)實(shí)現(xiàn)了協(xié)議方案原型。采用的編程環(huán)境為Eclipse,編程語(yǔ)言為Java語(yǔ)言
實(shí)驗(yàn)中模塊屬性證明中的各模塊采用編寫(xiě)Java程序所用的第三方Java開(kāi)源包。每個(gè)Java開(kāi)源包都包含有一個(gè)PropertyCertificate.java文件,為各開(kāi)源包的屬性證書(shū)文件,其中包含有5個(gè)字段,見(jiàn)表1。
表1 屬性證書(shū)文件各字段說(shuō)明
其中,模塊的身份號(hào)和度量值已確定,身份號(hào)由MF的隨機(jī)函數(shù)隨機(jī)生成,度量值由TPM-Emulator中的sha1函數(shù)生成。屬性簽名對(duì)初始值為空,其值由CA頒發(fā)后獲得。獲得屬性證書(shū)值后,模塊的MeasureValue字端和 Property字端的值將被置為空值,只保留Id、Property_e1和Property_e2、Property_c字段。
原型模型時(shí)序圖如圖2所示。
圖2 原型模型時(shí)序圖
由圖2可知,協(xié)議的原型模型由6個(gè)組件構(gòu)成:模塊發(fā)布者 (MF)、用戶(hù)平臺(tái) (USER)、服務(wù)提供商 (SP)、證書(shū)權(quán)威發(fā)布機(jī)構(gòu) (CA),正確性驗(yàn)證中心 (AVC)和屬性驗(yàn)證中心 (PVC)。
initializePropertyParameter()對(duì)屬性證書(shū)的參數(shù)進(jìn)行初始化。對(duì)于 p和q的初始化長(zhǎng)度選擇有兩種:256bit和512bit。不同位數(shù)p和q的選取會(huì)對(duì)屬性簽名的長(zhǎng)度產(chǎn)生影響,繼而影響其安全性,位數(shù)越大,安全性越大。大素?cái)?shù)p和q由于是隨機(jī)生成,其生成時(shí)間并是完全確定的。
初始化256bit的 p、q及其生成元 g的平均時(shí)間為108ms,生成的時(shí)間分布圖如圖3所示。
圖3 256位的p、q,g生成時(shí)間
512bit的p、q,g初始化平均時(shí)間為373 ms,生成的時(shí)間分布圖如圖4所示。
參數(shù)總生成時(shí)間與 p、q,g生成時(shí)間對(duì)比圖如圖5所示。
其中,生成pca、qca、x這3個(gè)大素?cái)?shù)的時(shí)間占到整個(gè)時(shí)間的53%~55%。signEnctypt()完成對(duì)消息m的簽密過(guò)程。在對(duì)稱(chēng)加密采用256位AES的情況下,對(duì)于352位的代簽屬性信息 (32位ID值,160位度量值,160位屬性值),在初始化參數(shù)為512位的情況下,簽密生成屬性簽名的平均時(shí)間分別為374ms。生成的屬性簽名 (c,e1,e2)中,c為128位、e1為256位、e2為256位。
sendParameterToAVC()將簽密時(shí)的部分參數(shù)和消息m的哈希值發(fā)送給AVC,供其驗(yàn)證屬性證書(shū)正確性時(shí)使用。
sendParameterToPVC()將簽密時(shí)的全部參數(shù)發(fā)送給PVC,供其驗(yàn)證屬性值匹配時(shí)使用。
verifyAccuracy()為通過(guò)DSA標(biāo)準(zhǔn)數(shù)字簽名算法驗(yàn)證屬性證書(shū)的正確性。屬性簽名正確性驗(yàn)證時(shí)間圖如圖6所示。
經(jīng)計(jì)算,驗(yàn)證組件屬性證書(shū)正確性的所需的平均時(shí)間為75ms。
verifyProperty()為解簽密過(guò)程和匹配度量值與屬性值的過(guò)程。時(shí)間分布圖如圖7所示。
經(jīng)計(jì)算,解簽密及度量值、屬性值匹配所需的平均時(shí)間為98ms。
本文給出了一種抗風(fēng)險(xiǎn)性較強(qiáng)、效率較高的模塊屬性遠(yuǎn)程證明協(xié)議。協(xié)議中提出以“模塊屬性”為單位執(zhí)行遠(yuǎn)程證明;采用用簽密減小了屬性證書(shū)的生成時(shí)間;同時(shí)協(xié)議分擔(dān)了驗(yàn)證中心的數(shù)據(jù)壓力;執(zhí)行效率與現(xiàn)有遠(yuǎn)程證明方案相比有較大提升。
當(dāng)前方案中,CA在進(jìn)行屬性證書(shū)簽名時(shí),擁有模塊屬性的全部信息。下一步工作集中在使CA進(jìn)行盲簽密,使其在簽名時(shí)無(wú)法獲得模塊的屬性信息,進(jìn)一步提高協(xié)議的安全性。
[1]CHEN L Q,LANDFERMANN R,LOHR H,et al.A protocol for property-based attestation[C]//Proceedings of the first ACM-work-shop on Scalable Trusted Computing.NewYork:ACMPress,2006:7-16.
[2]Dries Schellekens,Brecht Wyseur,Bart Preneel.Remote attestation on legacy operating systems with trusted platform modules [J].Electronic Notes in Theoretical Computer Science,2008,197(1):59-72.
[3]Martin Pirker,Ronald Toegl,Daniel Hein and Peter Danner.A privacyca for anonymity and trust[G].LNCS 5471:Trusted Computing,2009:101-119.
[4]WANG Jiang,SHAO Yuzong,LI Guang.Study of trusted chain technology of computing trusted[J].Computer Engineering& Design,2008,29(9):2195-2198(in Chinese).[王江,少余綜,李光.可信計(jì)算之信任鏈技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(9):2195-2198.]
[5]LI Shangjie,HE Yeping.On privacy of property based remote attestation [J].Journal on Communication,2009,30(11):146-152(in Chinese).[李尚杰,賀也平.基于屬性的遠(yuǎn)程證明的隱私性分析 [J].通信學(xué)報(bào),2009,30(11):146-152.]
[6]LI Li,ZENG Guosun,CHEN Bo.Property-based remote attestation in open network environment[J].Journal of Computer Applications,2008,28(1):77-79(in Chinese).[李莉,曾國(guó)蓀,陳波.開(kāi)放網(wǎng)絡(luò)環(huán)境下的屬性遠(yuǎn)程證明 [J].計(jì)算機(jī)應(yīng)用,2008,28(1):77-79.]
[7]YU Aimin,F(xiàn)ENG Dengguo.Property-based remote attestation model[J].Journal on Communication,2010,31(8):1-8(in Chinese).[于愛(ài)民,馮登國(guó).基于屬性的遠(yuǎn)程證明模型 [J].通信學(xué)報(bào),2010,31(8):1-8.]
[8]QIN Yu,F(xiàn)ENGDengguo.Component property based remote attestation [J].Journal of Software,2009,20(6):1621-1641(in Chinese).[秦宇,馮登國(guó).基于組件屬性的遠(yuǎn)程證明 [J].軟件學(xué)報(bào),2009,20(6):1621-1641.]
[9]Kurosawa K,Heng S H.Identity-based Identifycation without random oracles[G].LNCS:3481.Proc of the 5th International Conference on Computational Science and Its Applications Singapore.Springer-Verlag,2005:603-613.
[10]Chen L,Malone-Lee J.Improved identity-based signcryption[C]//Proc of the 8th International Work shopon Theory and Practice in Public Key Cryptography,Les Diablerets,Switzerland,Efficient Construction of IBSC schemes from IBE and IBS Schemes,Springer-Verlag,2002:260-275.
[11]Barreto P S L M,Libert B,McCullagh N,et al.Efficient and provably-secure identity-based signatures and signcryption fro BilinearMaps[G].LNCS 3788:Proc of the 11th International Conferenceon the Theoryand Application of Cryptology and Information Security.Chennai, India, Springer-Verlag, 2005:515-532.
[12]Sakai R,Ohgishi K,Kasahara M.Cryptosystems Based on Pairing[C]//Symposium on Cryptography and Information Security-SCIS,2000.
[13]Pandey SK,Barua R.Construction of identity based signcryption schemes[G].LNCS 6513:Proc of the 7th Web Information Systems and Applications Conference.Springer-Verlag,2010:1-14.
[14]Matsuda T,Matsuura K,Schuldt J C N.Efficient constructions of signcryption schemes and signcryption composability[G].LNCS 5922:Proc of the 10th International Conference on Cryptology.New Delhi,India,Springer-Verlag,2009:321-342.