彭新光,王晓阳
(太原理工大学计算机科学与技术学院,山西太原030024)
可信计算通过建立信任链使实体行为按照预期的方式与目标运行[1-2],远程证明指网络中的两个实体在信息交互前需要判定实体的可信状态。因此,远程证明是可信计算的重要内容之一。可信远程证明已取得很多成果,其中,基于属性的远程证明具有优势和发展前景。它克服了基于配置远程证明中步骤繁多、证明信息量大和平台信息易被窃取等不足,实现了快速和高效的验证过程。基于属性的远程证明架构首先由Poritz提出,之后Chen提出了基于属性远程证明协议,Qin提出了基于组件属性的远程证明,这些研究成果对基于属性远程证明的发展具有极大的帮助[3-5]。
现存的基于属性的远程证明具有以下缺点:证书权威发布机为组件颁布属性证书后,证书完全暴露在不安全的网络环境中,证书的安全性得不到保证。而对证书的加密是另外一道工序,效率低;证书权威验证机构的验证压力过大,其不但要验证属性证书的正确性,还要验证度量值与对应安全等级的相关性是否符合规定[6-8]。
本文在原有属性远程证明协议的基础上,提出了一种新的模块级的属性远程证明方案。该方案有以下特点:引入签密,在各模块属性证书生成和加密一起完成,提高了整个证明方案的安全性[9-10];将验证中心拆分为证书正确性验证中心和属性验证中心两部分,分别对证书的正确性和属性值进行验证,提高了整个验证体系的验证效率[11-12]。
在本文的模块属性证明体系中,将整个体系分为6个部分,如图1所示。
(1)模块生产商 (Module Factory):生产用户平台所需的模块。没有发布模块证书的权利。
(2)证书权威发布机构 (Certificate Authorization):负责为模块发布模块属性证书。
(3)用户平台 (User Platform):配置有TPM Trusted Platform Module),接受并使用配有属性证书的各模块,并向服务提供商提出数据请求。
(4)服务提供商 (Trusted Platform Module):为用户平台提供各种服务,自身没有检测用户平台真伪的能力。
(5)正确性验证中心 (Accuracy Verification Center):验证属性证书的正确性。不具有检验属性与度量值对应关系的能力。
(6)属性验证中心 (Property Verification Center):验证属性证书中属性与度量值对应关系的正确性。
一个完整的模块属性验证过程为:
1)模块生产商生成模块。
2)证书权威发布机构为模板颁发属性证书。
3)用户获得模块、向服务提供商提出服务请求。
4)服务提供商要求验证模块,并获得度量值摘要与模块属性证书。
5)证书正确性验证中心确定属性证书是否正确,有无被篡改。
6)属性验证中心确定度量值摘要中的值是否与属性证书中的值相匹配,属性证书是否过期。
图1 模块属性证明体系
根基TNC规范,当模块生产商制造出某一模块后,它会首先被定义一个ID,长度为32位 (bit);然后经过模块生产商的TPM度量后,会生成度量值ζ,长度为160位;最后是与该度量值安全等级相对应的属性值P,长度为160位。
所以对于模块Ki,其配置为(ID,ζi,Pi)
针对当前远程证明存在的问题,本文提出了一种新的模块级的远程证明协议[13-14]。
协议分为三步骤:
(1)模块属性证书的生成
1)证书权威发布机构初始化参数
在CA端,选择一大素数p,并选择p-1的一个大素因子q,g为乘法群中的一个q阶元,hash为一个单向哈希函数,KHKEY为带密钥的单向哈希函数)为一个对称的加解密操作。
xCA∈为CA的私钥,yCA=gxcamod p为CA的公钥。CA将(p,q,g)传送给属性验证中心 PVC,供解签密时使用。
2)属性验证中心初始化参数
3)证书权威发布机构进行签密
对于MF端传过来的消息m=(ID||ζ||p),CA选择对m进行对称加密,得到并计算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)发送至AVC,供验证属性证书正确性时使用。(c,e1,e2)为签密后的模块属性证书。
(2)服务提供商与用户间的远程证明交互
用户平台向服务提供商发出服务请求,服务提供商会发回一个随机数N和用户平台需要达到的安全等级。
用户平台的TPM对与安全等级相对应的模块进行度量。通过TPM的度量算法,度量出组件mod1到modn的度量值 ζ1到 ζn。
TPM选择Hash函数Hashsum,对组件mod1到modn的ID值和度量值进行连接操作,生成摘要
最后TPM利用skTPM进行签名:σ =SignskTPM(ο||N)。则用户平台的属性签名为
(3)服务提供商验证属性证书的正确性
然后,服务提供商将σproperty发送给属性验证中心PVC。
(4)PVC验证属性证书
由于m'=(id||ζ||P),在通过id在数据库中查询组件的度量值是否对应正确的属性值,若对应正确,则说明用户平台的信息真实可靠,PVC将属性证书的验证结果传递给SP。
本论文提出的基于模块属性的远程证明协议满足以下安全要求。
(1)不可伪造性。由属性信息(id,ζ,P)生成的消息m并不在生成的签密证书(c,e1,e2)中出现,签密所需的关键参数(p,q,hash)都不对外公开。有效地防范了攻击者通过m和(c,e1,e2)推算出签密算法。
(2)可验证性。签密证书 (c,e1,e2)的验证方式有两种:一种为通过标准的DSA签名验证过程来完成,另一种是通过解签密操作恢复出m,通过验证来实现。本协议中,第一种验证方式由AVC来完成,但AVC并不能得到消息m,而是从CA得到m的hash值,避免了m从AVC泄露出去的可能性。第二种验证方式由PVC来完成。
(3)不可否认性。用户平台U向服务提供商发送的σproperty中,包含服务提供商向他发送的随机数N。同时σ的生成中也包含了随机数N。当用户的属性签名没有通过验证后,他无法否认此属性签名是自己所发。
为在实践中验证协议方案的可行性,本文在Red Flag 6.0 系统下 (Intel Core i5 M480 2.67GHZ,Memory 1.98GB,Trusted Platform Module_Emula-tor,Java Trusted Software Stack)实现了协议方案原型。采用的编程环境为Eclipse,编程语言为Java语言
实验中模块属性证明中的各模块采用编写Java程序所用的第三方Java开源包。每个Java开源包都包含有一个PropertyCertificate.java文件,为各开源包的属性证书文件,其中包含有5个字段,见表1。
表1 属性证书文件各字段说明
其中,模块的身份号和度量值已确定,身份号由MF的随机函数随机生成,度量值由TPM-Emulator中的sha1函数生成。属性签名对初始值为空,其值由CA颁发后获得。获得属性证书值后,模块的MeasureValue字端和 Property字端的值将被置为空值,只保留Id、Property_e1和Property_e2、Property_c字段。
原型模型时序图如图2所示。
图2 原型模型时序图
由图2可知,协议的原型模型由6个组件构成:模块发布者 (MF)、用户平台 (USER)、服务提供商 (SP)、证书权威发布机构 (CA),正确性验证中心 (AVC)和属性验证中心 (PVC)。
initializePropertyParameter()对属性证书的参数进行初始化。对于 p和q的初始化长度选择有两种:256bit和512bit。不同位数p和q的选取会对属性签名的长度产生影响,继而影响其安全性,位数越大,安全性越大。大素数p和q由于是随机生成,其生成时间并是完全确定的。
初始化256bit的 p、q及其生成元 g的平均时间为108ms,生成的时间分布图如图3所示。
图3 256位的p、q,g生成时间
512bit的p、q,g初始化平均时间为373 ms,生成的时间分布图如图4所示。
参数总生成时间与 p、q,g生成时间对比图如图5所示。
其中,生成pca、qca、x这3个大素数的时间占到整个时间的53%~55%。signEnctypt()完成对消息m的签密过程。在对称加密采用256位AES的情况下,对于352位的代签属性信息 (32位ID值,160位度量值,160位属性值),在初始化参数为512位的情况下,签密生成属性签名的平均时间分别为374ms。生成的属性签名 (c,e1,e2)中,c为128位、e1为256位、e2为256位。
sendParameterToAVC()将签密时的部分参数和消息m的哈希值发送给AVC,供其验证属性证书正确性时使用。
sendParameterToPVC()将签密时的全部参数发送给PVC,供其验证属性值匹配时使用。
verifyAccuracy()为通过DSA标准数字签名算法验证属性证书的正确性。属性签名正确性验证时间图如图6所示。
经计算,验证组件属性证书正确性的所需的平均时间为75ms。
verifyProperty()为解签密过程和匹配度量值与属性值的过程。时间分布图如图7所示。
经计算,解签密及度量值、属性值匹配所需的平均时间为98ms。
本文给出了一种抗风险性较强、效率较高的模块属性远程证明协议。协议中提出以“模块属性”为单位执行远程证明;采用用签密减小了属性证书的生成时间;同时协议分担了验证中心的数据压力;执行效率与现有远程证明方案相比有较大提升。
当前方案中,CA在进行属性证书签名时,拥有模块属性的全部信息。下一步工作集中在使CA进行盲签密,使其在签名时无法获得模块的属性信息,进一步提高协议的安全性。
[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].计算机工程与设计,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).[李尚杰,贺也平.基于属性的远程证明的隐私性分析 [J].通信学报,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).[李莉,曾国荪,陈波.开放网络环境下的属性远程证明 [J].计算机应用,2008,28(1):77-79.]
[7]YU Aimin,FENG Dengguo.Property-based remote attestation model[J].Journal on Communication,2010,31(8):1-8(in Chinese).[于爱民,冯登国.基于属性的远程证明模型 [J].通信学报,2010,31(8):1-8.]
[8]QIN Yu,FENGDengguo.Component property based remote attestation [J].Journal of Software,2009,20(6):1621-1641(in Chinese).[秦宇,冯登国.基于组件属性的远程证明 [J].软件学报,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.