任路成,王世卿
(郑州大学 信息工程学院,河南 郑州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.