任路成,王世卿
(鄭州大學 信息工程學院,河南 鄭州450052)
數據封裝存儲技術是可信計算[1](trusted computing,TC)要實現的4個重要功能之一,這一技術可為解決當前廣為存在的數據安全和數字版權保護問題提供一種新的途徑[2-3],對它的研究有著重要的實用價值,因此近年來其研究成果頗受人們的關注[4]。
目前,可信計算平臺的封裝存儲相關技術主要分兩大類:一是在資源共享模型的基礎上引入可信平臺模塊TPM[5],利用TPM的安全數據存儲功能對共享資源進行封裝存儲,同時在訪問數據時輔以訪問控制機制。這類方案實質上是利用了TPM的密鑰樹[6]對數據加密后存儲,機制單一,安全性不高;且每次加解密都必須從樹根SRK起搜索加解密密鑰,會降低運行效率。二是將需封裝的數據和相應的平臺配置寄存器PCRs綁定后存儲在一起[7]。該方案雖提高了運行效率,但會引起可信平臺軟硬件配置正常更新時封裝存儲的失效問題。為此,文獻[8-9]提出了一種基于屬性的封裝存儲解決方案,由于和數據綁定在一起的不再是PCRs寄存器的值而是平臺配置所具有的屬性,所以能較有效地解決封裝存儲的失效問題,但仍存在屬性的界定不明確[8]或過于簡單[9],可操作性較差且不支持遠程解封數據等問題。
另一方面,對于每個可信計算平臺來說,都有一個唯一的身份根標志,它所發起的每一個動作都會攜帶一個可追溯的身份標記,從而存在暴露用戶隱私的巨大隱患[10]。隱私泄漏問題是可信計算平臺的一個固有缺陷,但以上解決方案均未真正有效涉及。
為了保證封裝存儲過程中數據的安全性,避免可信平臺隱私信息的泄漏,同時能夠為數據的遠程解封提供良好支持。本文在描述了一種可信平臺的屬性表示方法的基礎上,采用零知識證明的思想對可信平臺的屬性信息進行驗證,完成數據的封裝和解封。
零知識證明過程[11-12]實質上是一種有兩個實體參與的commitment-challenge-response形式的交互式協議:證明方(Prover)和驗證方(Verifier)。L是一種語言的集合,ω是一個輸入實例,在交互過程結束后,證明方可以一個很高的概率向驗證方證明ω∈L,而驗證方除了得到這一斷言外不會獲得其它任何信息。零知識協議首先是一個證明系統,要滿足證明系統所必需的兩個屬性,可靠性和完備性,同時還要具備零知識性[13]。
所謂可靠性,是指對于不屬于語言集合L的輸入實例ω,即使惡意的證明方也不能以不可忽略的概率使得驗證方相信ω∈L。
完備性是指對于屬于語言輸入集合的實例ω,任何的誠實的證明方都能以百分之百的概率使得驗證方相信ω∈L。
零知識性是指,惡意的驗證者只知道輸入實例ω是否確實屬于語言集合L,卻獲取不到其他任何有用的信息。
零知識證明協議一般包括如下5個步驟:(1)證明方向驗證方傳送滿足一定條件的承諾隨機數;(2)驗證方向證明方傳送滿足一定條件的詢問隨機數;(3)證明方對相關信息按一定的算法計算后,將計算結果傳送給驗證方,驗證方從收到的計算結果中獲取不到關于證明方的任何有用信息;
(4)驗證方接收到證明方的計算結果后按一定的算法對收到的計算結果進行驗證;
(5)協議的執行可以重復多次。
在本文方法中,為將零知識證明應用于可信平臺的屬性驗證過程,引入可信的第三方TTP(trusted third party)承擔屬性的界定問題,并將界定后的屬性以證書的形式版發給封裝者和解封者。其屬性的表示表述如下:
由于可信計算平臺的屬性承載著幾乎所有的軟硬件配置信息,因此其屬性表示應滿足以下幾個要求:①能準確方便地刻劃千差萬別的軟硬件組合;②便于在不同的組合中合理地分類;③有利于零知識證明從而防止可信平臺隱私信息的泄漏。本文提出以一個40位的比特串表示屬性,該比特串共分8個域,分別對應TCG定義的8個PCR;各個域的定義及位長如圖1所示:例如0-5比特位用于表示核心BIOS的屬性,共可表示64種;6-9比特位用于表示主板設置屬性,共可表示16種;而每個域的十進制值可作為其屬性值的索引。

圖1 屬性位串的定義與表示方法
每種屬性可用一對屬性向量(Pseal,Punseal)表示,其中Pseal為封裝屬性、Punseal為解封屬性(或封裝向量、解封向量);而每個向量又有8維,分別對應屬性位串的8個域:

可信的第三方TTP負責平臺屬性的界定問題,當需要封裝或解封時,封裝者或解封裝者將自己的平臺配置寄存器的值發送給TTP,由可信的第三方對其屬性進行界定,之后以證書的形式將封裝屬性和解封屬性分別發還給封裝者和解封者。封裝證書和解封證書如圖2所示。

圖2 封裝證書和解封證書
首先,封裝者或解封者將自己的平臺配置信息交給TTP,由TTP對其進行平臺屬性界定;在拿到各自的屬性證書后,才可進入封裝或解封過程。假如要封裝的數據為Data,封裝與解封裝的實現流程如圖3所示。

圖3 封裝與解封裝過程
封裝過程:用AIK私鑰skseal簽名后,封裝者Sealer將平臺配置寄存器pcr[0…7]交給可信的第三方TTP;由TTP確定其屬性后,再將封裝屬性Pseal以證書的形式發給Sealer;Sealer可用自己的存儲公鑰PK將需封裝的數據Data和Pseal加密后,得到EncPK[Data,Pseal]并將其存儲。
解封裝過程:用AIK私鑰skunseal簽名后,解封者Unsealer將自己的平臺配置寄存器pcr[0…7]交給TTP;由TTP確定其屬性后,將解封裝屬性Punseal以證書的形式發給Unsealer。同時,Sealer用其私鑰SK將封裝數據EncPK[Data,Pseal]解密,得到 Data和Pseal后進入零知識證明過程。
基于零知識的證明算法簡述如下:
(1)Unsealer(對應于Prover)生成一個隨機數r,計算x=r2(mod n);然后把x作為commitment傳給Sealer。
(2)Sealer(對應于Verifier)生成一個向量b={b0,b1,…b7},bi∈ {0,1},并把bi作為challenge傳給 Unsealer。
(5)重復1-4步k次,而每次向量b取不同的值。如果k次驗證均成功,則將Data發送給Unsealer。
本文實驗中,分別對不同大小的數據進行封裝、解封,測試各自的封裝時間、解封時間以及封裝之后數據的大小。測試用數據大小分別為100KB、1MB、10MB、20MB。
實驗硬件環境為PC機,CPU主頻2.6GHz,1GB主存。軟件環境是 Ubuntu11.04操作系統,內核版本2.6.38。仿真平臺為TPM-Emulator。
封裝和解封的時間開銷分別如圖4中的(a)和(b)所示。可以看出,隨著文件的增大,封裝和解封的時間開銷也在增加。因為本文方法的封裝、解封過程都需要可信的第三方參與,通訊及屬性的界定都要耗費一定的時間,故時間開銷均較大于前兩種方案。其中解封過程中還需要一個零知識證明的交互過程,開銷增加更明顯些。但是,從圖4(c)中可以看出,經本文方法對數據進行封裝后,數據增加量明顯低于前兩種方案,平均增量僅為1.1%。這是因為本方法中和數據封裝在一起的可信平臺屬性部分僅40比特,數據量均少于前兩種方案。

圖4 與其他封裝存儲方案的執行效率對比
零知識證明過程的引入為解決可信平臺的隱私泄漏問題提供了一種更加有效的技術手段。理論上,如果Unsealer的屬性符合Sealer的要求,證明過程自然能成功。否則,將會驗證失敗。假設Unsealer的屬性向量中,除p1、p2和p6外都不符合Sealer的要求,那么只有在Sealer發出的向量b=01100010時才能完成一趟證明。如果b=01010000,則Unsealer必須計算出v-12v3v-16的模n平方根才能完成一趟證明;而計算出v-12v3v-16的模n平方根和對n進行因數分解困難度是相當的。因為b向量共有28個,然而最多只有一個能通過一趟證明,因此在一趟證明過程中誤解封的概率小于1/28,k趟證明后數據誤解封的概率不到1/28k。表1將本方法與其他解決方案進行了比較,比較表明本方法在解決可信平臺的隱私泄漏問題上更具優越性。

表1 與其他封裝存儲方案的分析對比
封裝存儲是可信計算的四大特征之一,也是實現數據安全采用的重要技術手段。本文在描述一種可信平臺屬性表示方法的基礎上,為較好地避免隱私信息的泄漏,提出了一種基于屬性的零知識證明數據封裝解決方法。避免了可信平臺隱私信息的泄漏,通過身份信息驗證完成數據封裝存儲。并且該方法可為數據的遠程解封提供安全支持。屬性界定問題與表示方法,以及如何進一步提升驗證過程的正確性和效率是下一步要研究的內容。
[1]SHEN Changxiang,ZHANG Huanguo,WANG Huaimin,et al.Research and development of trusted computing[J].Science China:Information Sciences,2010,40(2):139-166(in Chinese).[沈昌祥,張煥國,王懷民,等.可信計算的研究與發展[J].中國科學:信息科學,2010,40(2):139-166.]
[2]Trusted Computing Group.TPM main specification[S].Version 1.2,Revision 94,http://www.trustedcomputinggroup.org,2006.
[3]England P,Lampson B,Manferdelli J,et al.A trusted open platform[J].IEEE Computer,2003,36(7):55-62.
[4]ZHANG Huanguo,LUO Jie,JIN Gang,et al.Development of trusted computing research[J].Wuhan University Journal:Natural Sciences,2006,52(5):513-518(in Chinese).[張煥國,羅捷,金剛,等.可信計算研究進展[J].武漢大學學報:理學版,2006,52(5):513-518.]
[5]GAO Limin,LI Jun,YU Huiping,et al.Research of resource sharing model and access mechanism based on TPM[J].Journal of Hebei University(Natural Science Edition),2010,30(4):445-448(in Chinese).[高立敏,李俊,于會萍,等.基于TPM的資源共享模型及訪問機制[J].河北大學學報(自然科學版),2010,30(4):445-448.]
[6]TCG specification architecture overview specification(Revision 1.4)[EB/OL].https://www.trustedcomputing group.org/downloads/TCG_1_4_Architecture_Overview.pdf,2007.
[7]LIU Changping,FAN Mingyu,WANG Guangwei.Data wrapping method on trusted computing[J].Application Research of Computers,2009,26(10):3891-3893(in Chinese).[劉昌平,范明鈺,王光衛.可信計算環境數據封裝方法[J].計算機應用研究,2009,26(10):3891-3893.]
[8]Ahmad-Reza Sadeghi,Christian Stüble,Marcel Winandy.Property-based TPM virtualization[C]//Taipei,Taiwan:Proceedings of the 11th International Conference on Information Security,2008.
[9]LU Jianxin,YANG Shutang,LU Songnian,et al.A property-based sealed storage solution in trusted computing[J].Information Technology,2008,1(1):1-4(in Chinese).[陸建新,楊樹堂,陸松年,等.可信計算中一種基于屬性的封裝存儲方案[J].信息技術,2008,1(1):1-4.]
[10]SHEN Zhidong,TONG Qiang.The security of cloud computing system enabled by trusted computing technology[C]//Dalian,China:Proceedings of 2nd International Conference on Signal Processing Systems,2010:11-15.
[11]Chen L,Landfermann R,Lhr H,et al.A protocol for property-based attestation[C]//New York,NY,USA:Proceedings of the 1st ACM Workshop on Scalable Trusted Computing,2006:7-16.
[12]Guillou L C,Quisquater J J.A practical zero-knowledge protocol fitted to security microprocessor minimizing both transmission and memory[C]//Advance in Cryptology – EURO-CRYPT’88 Proceedings.Bertin:Springer-Verlag,1988:123-128.
[13]Goldreich O,Micali S,Wigderson A.Proofs that yield nothing but theirvalidity or All Languanges in NP have zero-knowledge proof systems[J].Journal of ACM,2008,38(1):691-729.