基于无证书环签名的虚拟机可信证明方案

2017-04-20 03:38星,赵
计算机应用 2017年2期
关键词:公钥密钥虚拟化

荣 星,赵 勇

(1.信息工程大学,郑州 450004; 2.北京工业大学 信息学部,北京 100124)

(*通信作者电子邮箱royafly@126.com)

基于无证书环签名的虚拟机可信证明方案

荣 星1,2,赵 勇2

(1.信息工程大学,郑州 450004; 2.北京工业大学 信息学部,北京 100124)

(*通信作者电子邮箱royafly@126.com)

由于虚拟环境的复杂性和动态性,使用传统方法证明其安全状态时会出现运算效率低下的情况;而环签名具有运算效率高、匿名性强的特点,利用无证书公钥系统可解决密钥管理问题。为此,提出一种采用无证书环签名机制的虚拟机可信证明方案。私钥生成中心(PKG)验证平台物理环境的状态可信后,由PKG和虚拟可信平台模块(vTPM)管理器利用无证书算法共同生成vTPM签名密钥,虚拟机对外证明时采用环签名机制,将证明者的信息隐藏在环成员列表中,从而实现虚拟机对外的匿名身份证明和状态证明。在完成证明准备工作后,虚拟机不需要在每次证明和迁移时重复生成虚拟身份证明密钥(vAIK)证书,因此大大提高了证明效率;另外方案具有很强的安全性和匿名性,适用于虚拟机数量巨大的云计算环境。

虚拟机;可信证明;无证书公钥系统;环签名;云计算

0 引言

虚拟化技术是云计算的核心支撑技术之一,虚拟化平台将计算、存储、网络等实体资源抽象出来,实现了资源的动态分配、跨域共享、灵活调度,从而以更高效的组合方式对外提供服务,能够显著提高硬件资源的利用效率和软件的可移植性,因而得到了快速的应用推广。云计算服务中,用户通过虚拟机使用云中的各种服务,虚拟机环境与物理环境相互隔离,不同级别的应用服务有着相互独立的运行环境,虚拟机可根据需要迁移到云中的其他节点。面对这种将数据和程序都托管到服务器上的外包式服务,用户环境的安全依赖于虚拟化平台的安全,随之而来的问题是如何对用户正在使用的虚拟机进行标识,确保用户能够掌握使用的虚拟机安全状态,并且保证虚拟机环境提供安全可靠的服务,正成为云计算安全中需要解决的重点问题之一。

可信计算(Trusted Computing)[1]技术以硬件信任根为基础,在平台环境中逐级构建完整的信任链,结合可信度量、密封存储、远程证明功能,可以增强虚拟化平台的机密性和完整性。文献[2]利用可信计算技术构造出可信虚拟化平台Terra,通过可信的虚拟机监控器实行虚拟机之间的安全隔离,并对外提供客户机所运行的主机平台的安全性状态证明。Santos等[3]提出一种可信云平台(Trusted Cloud Computing Platform, TCCP),通过外部的可信协调者对平台内的服务器状态进行认证,管理虚拟机的状态变化,确保虚拟化平台不被恶意篡改;另外可信协调者还可向用户提供平台服务安全性证明。由于可信计算技术能有效提高虚拟平台的安全性,可信虚拟平台的构建成为目前研究的热点,其中可信平台模块(Trusted Platform Module,TPM)的虚拟化及虚拟环境的远程证明更是可信虚拟平台的研究关键。本文结合无证书和环签名算法,设计了一种虚拟机环境远程证明方案,在不生成身份证明密钥(Attestation Identity Key,AIK)证书的前提下为用户虚拟机生成证明密钥对,实现了虚拟机环境的身份证明和完整性状态证明,既能确保证明的可信性,又能满足证明的匿名性要求。

1 虚拟化平台完整性证明

1.1 可信证明方法

可信证明[4]向验证者提供当前系统的状态证明,为证明者和验证者建立起信任关系,是一种构建可信的网络计算环境的有效手段。目前常用的是可信计算组织(Trusted Computing Group, TCG)发布的Privcacy CA协议和直接匿名认证(Direct Anonymous Attestation,DAA)协议。

Privcacy CA协议中TPM为每次认证生成不同的签名密钥AIK,隐私CA根据其签署密钥(Endorsement Key,EK)证书认证后发放新的AIK证书,通过一次一密的方式来达到认证的匿名性。由于所有TPM的每次认证都要经过隐私CA,隐私CA成为认证效率的瓶颈,不适于云计算等大规模网络环境下应用,一旦出现隐私CA和验证者合谋串通情况,TPM的信息就会完全暴露。

DAA协议[5]将零知识证明转换为非交互式知识签名,协议中TPM生成一个密钥并向发布者申请这个密钥的DAA证书,TPM直接可以用这个密钥对新生成的AIK公钥进行DAA签名,后面的证明过程中不再需要发布方的参与。DAA协议虽然解决了可信第三方的局限性问题,但由于其本身较为复杂,导致其可能存在潜在的安全漏洞;另外大量的双线性对运算使得执行起来效率很低。

环签名(Ring Signature)方案[6-7]是一种不需要管理者的简化类群签名,签名者可自由选择环成员列表,从而将自己的身份隐藏于成员之中。该算法实现简单,用户自身就能完成签名,无需第三方的协助和验证,既符合匿名认证的要求,又解决了零知识证明带来的效率过低问题,对平台配置要求较低,适用于虚拟环境远程证明的需求,因而在云平台可信证明中得到了应用。文献[8]提出了基于TPM的远程匿名证明(Remote Anonymous Attestation, RAA)机制,利用环签名方法和EK证书来生成新的AIK证书,将签名者的信息隐藏在环成员列表中,从而实现AIK证书的可信性和认证的匿名性。文献[9]提出了一种基于环签名的云服务资源远程证明方法,证明方法和RAA类似,适用于已有TPM证书的平台,不适用于依赖物理TPM生成vTPM证书的虚拟化平台;另外证明中使用EK密钥加密,根据规定EK只能用于解密TPM所有者的授权数据和生成AIK相关的数据,不能用作其他数据的加密和签名。文献[10]对TCCP平台进行了改进,提出了基于属性的可信云匿名证明方案,但未说明TPM的签名密钥类型,且计算过程中包含双性对运算,验证时计算任务量较大。

1.2 vTPM密钥证书的生成

虚拟化平台中客户虚拟机对外提供远程证明服务时,首先要在平台中建立起从物理TPM到虚拟TPM(virtual TPM,vTPM)完整的信任链和证书链,vTPM实例的可信计算基(Trusted Computing Platform, TCB)包括底层的物理固件、运行环境及建立vTPM实例的软件组件,其中运行环境指的是虚拟机监控器(Virtual Machine Monitor, VMM)与特权管理域,如图1所示。虚拟平台中信任链从平台TCB扩展到VM中,必须将vTPM与底层的TCB进行绑定,保证vTPM运行环境的完整性。

图1 可信虚拟化平台架构

现有的vTPM密钥体系大多通过物理TPM的EK或AIK证书为虚拟机生成证书,生成方法依赖于物理平台TPM的密钥体系。文献[11]认为EK证书是确认云平台身份的有效依据,鉴于EK证书的重要性,每个虚拟机中的vTPM应该有自己的vEK证书,提出EK-AIK-vEK-vAIK的证书链生成方法,每次vEK、vAIK的生成都需要隐私CA参与,隐私CA仍是证明效率的瓶颈。文献[12]提出了一种利用AIK密钥对虚拟机信息和平台配置寄存器(Platform Configuration Register, PCR)信息签名直接生成vAIK证书的方法,vTPM管理器本身就能生成vAIK证书,不需要隐私CA的参与,但AIK密钥的生命周期短,vAIK密钥随时有失效的可能。文献[13]指出,根据TCG的规范,AIK密钥只能对TPM内部的PCR、状态信息、其他密钥等进行签名,不能对外部的数据签名,因此利用AIK密钥对虚拟机中的vAIK签名生成vAIK证书的方法不符合TPM规范,并提出在TPM内部引入了一种新密钥——签名密钥(Signature Key, SK),通过AIK认证SK,SK认证vAIK的方法生成VAIK证书,但vAIK密钥的有效性在时间上仍不能得到保证。

由于虚拟机数量是物理平台的倍数,加之启动关闭频繁,vAIK证书的生成成为影响虚拟机环境远程证明效率的关键。虽然上述方法能够将vTPM密钥体系与物理环境中TPM密钥体系二者关联起来,但同时会增加对物理TPM的访问次数,尤其在虚拟化环境中虚拟机状态切换频繁,势必会大大加重系统的负担。由可信第三方生成vAIK证书的方法使用起来简便,而且有利于虚拟机的迁移,迁移后不需要重新生成新的密钥。

2 基于无证书环签名的可信证明方案

2.1 证书环签名模型

无证书公钥系统结合了基于证书公钥系统和基于身份公钥系统二者的优势,解决了基于证书公钥系统的证书管理问题以及基于身份公钥系统中的密钥托管问题,用户的密钥由PKG和用户自身共同生成,从而避免了PKG对用户密码的完全掌控。环签名中的任一成员都可以代表整个环签名,验证者只知道签名来自哪个环,而不能确定具体的签名者,技术本身具有无条件的匿名性。无证书环签名方案可以将二者优点结合起来,既具有无证书签名的特点,又符合环签名的安全性要求。

定义1 无证书环签名方案由六个算法构成:

1)初始化:输入安全参数k,由PKG生成系统主密钥mk和系统参数param。

2)部分密钥生成:输入用户身份ID,系统主密钥mk和系统参数param,由KGC生成用户的部分私钥DID和部分公钥PID。

3)私钥生成算法:输入用户身份ID,系统参数param,用户的部分私钥DID和秘密值VID,用户自己生成完整的私钥SKID。

4)公钥生成算法:输入用户身份ID,系统参数param,用户的部分公钥PID和秘密值SID,用户自己生成完整的公钥PKID。

5)环签名算法:输入系统参数、要签名的消息M,一个含有n个成员组成的环身份集合LID={ID1,ID2, …,IDn},与之相对应的公钥集合LPK={PKID1,PKID2, …,PKIDn},签名者利用其私钥SKIDs为消息M生成环签名σ,其中签名者是环中的第s个成员。

6)验证算法:当验证者收到环签名σ时,输入签名消息M,系统参数,环身份集合LID={ID1,ID2, …,IDn},以及对应的公钥集LPK={PKID1,PKID2, …,PKIDn},当环签名正确时输出“True”,否则输出“False”。

2.2 虚拟机可信证明方法

本文基于不含对运算的无证书环签名算法[14],结合无证书签名系统的安全性与环签名算法的无条件匿名性和不可伪造性,提出了一种新的虚拟机可信证明方案,利用可信第三方为虚拟机生成证明的签名密钥,在对外提供证明的同时保护虚拟机的隐私信息。证明模型中有四个主体,包括含物理TPM的云平台、验证者verifier、隐私CA以及PKG,如图2所示。

图2 虚拟机可信证明模型

虚拟机可信证明包含证明准备和证明执行两个阶段。在证明准备阶段,云平台利用PrivcacyCA证明协议向PKG证明物理平台环境的安全性,为要建立的虚拟机申请vTPM密钥,PKG验证通过物理平台可信后,根据VM的ID为其生成环签名密钥并返回给vTPM管理器,由vTPM管理器完成vTPM的密钥初始化工作,并进行PCR值到vPCR值的映射操作;在证明执行阶段,VM使用环签名密钥对虚拟机的度量列表进行环签名,验证方通过验证环签名的有效性来判断VM的可信性。

3 虚拟机可信证明的准备

3.1 系统初始化

3.2 虚拟机密钥生成

记平台度量日志为SML(StoredMeasurementLog),VM中签名密钥生成过程如图3所示。

图3 虚拟机证明密钥生成过程

1)N→PKG:{IDr,nonce}PKGpub。虚拟化平台N生成要创建的虚拟机ID,并确保其唯一性,用PKG公钥加密后连同随机数发送给PKG,为VM申请环签名密钥。

2)PKG→N:response。PKG给予平台N响应。

3)N→PKG:SML,sig{PCR[0-8],nonce}TPM.AIKpriv,cert(TPM.AIK)。平台N利用TPM_Quote功能对物理PCR值和随机数签名,连同SML度量日志、物理平台AIK证书发送给PKG,其中PCR[0-8]:TPM_Extend(BIOS…VMM,vTPMM)。

4)PKG:verify(PCR,SML)==TRUE。PKG接收到消息后,向隐私CA查询AIK证书及确认数字签名的真实性,比较随机数的一致性,并将PCR值与SML中记录值对比,验证平台N是否可信,若验证通过,转到5)。

6)N→vTPMM:(IDr,Wr,dr)。TPM将PKG返回的信息解密后,和要创建的虚拟机ID一同发送给vTPM管理器。

8)vTPMM→vTPM:(PKr,SKr)。vTPM管理器新建一个vTPM实例,与虚拟机号IDr绑定,并将密钥交给vTPM。

9)Map(PCR[0-8]→vPCR[0-8])。建立虚拟机,执行vPCR的初始化操作,实现物理PCR值到vPCR值的映射。

4 虚拟机可信证明的执行与验证

4.1 证明的执行

1)verifier→VMs:nonce,验证者向虚拟机VMs发送一个随机数并发起证明挑战;

2)虚拟机VMs以身份集LID={ID1,ID2, …,IDn}(对应n个用户成员U={U1,U2, …,Un})为环组员集,对虚拟机vPCR,nonce值进行环签名,与之对应的公钥集合PK={PK1,PK2, …,PKn}。证明者为其中的环成员Us(s∈{1,2,…,n}),M=vPCR‖nonce。签名过程如下:

检验等式gds=WsuH1(IDs,Ws)modp是否成立,成立的话签名继续,否则过程终止;

证明者Us选择a∈Zq,计算

当Rs=Ri或Rs=1时,重复此步骤;

3)VMs→verifier:(vSML,U,M,R1,R2,…,Rn,h1,h2,…,hn,σ),虚拟机将vSML、签名消息一并发送给验证者。

4.2 证明的验证

当验证者收到证明消息时,对vSML进行TPM_Expand操作,验证vPCR,nonce值与M是否相等,若验证通过,对i∈{1,2,…,n}计算出hi=H2(U,M,Ri);

5 方案分析

5.1 安全性分析

5.1.1 正确性分析

定理1 无证书可信环签名方案是正确的。

证明

5.1.2 无条件匿名性分析

定理2 签名方案的构造具有无条件匿名性、不可伪造性。

5.1.3 抗共谋性和不可伪造性

方案在证明准备阶段时由PKG和VM共同生成vTPM密钥对,无证书环签名的方法使得VM对验证者和PKG都是匿名的,因此验证者无法与PKG串谋得到VM的身份,另外由于签名的不可伪造性,因为只有PKG授予的签名密钥才能生成有效的环签名,VM也无法与PKG合谋欺骗验证者,故方案具有抗共谋性。

5.2 性能分析

在CPU为2.0GHz、内存为16GB、操作系统为64位的ubuntu15.10server的浪潮服务器上进行实验,在KVM虚拟化平台上建立两个GuestOS为ubuntu15.10desktop的虚拟机和一个GuestOS为windowsXP的虚拟机,分别作为证书密钥中心(同时充当隐私CA和PKG)、证明方和验证者,通过指令在证明方虚拟机中生成/dev/vtpm0对外提供证明服务,环成员数量为30,用python2.7作为环签名编程实现语言,签名验证结果如图4所示。

图4 环签名验证结果

本文方案中物理TPM完成证明虚拟平台底层环境的安全状态后,才允许PKG为要建立的vTPM生成无证书密钥对,实现了虚拟机环境与物理平台之间状态的绑定。无证书环签名方法使得vTPM密钥在迁移时不需要重新生成,过程中不需要物理平台EK证书的参与,且在证明时能够很好地实现匿名性,因而迁移时只要目的主机向源主机提供可信性证明,虚拟机中vTPM完成vPCR值的重映射,虚拟机即可在迁移后的目的平台上再次使用,在此过程中不需要重新生成无证书密钥对。运算效率方面,假设n是环成员的个数,E表示Zp上一次模指数运算,R表示一次RSA加密或解密运算,H表示一次散列函数运算,P表示一次双线性对运算,RSA加密或解密运算本身就是模指数运算,同等规模的散列函数运算相对模指数运算耗时要少很多,一次双线性对运算相当于上百次的指数运算。本文方案与其他环签名算法对比情况如表1所示,本文方案不需要进行双线性对运算,签名和验证阶段计算量与文献[9]相当,验证效率明显优于其他两种方案。另外环签名密钥建立在物理平台的可信状态之上,并非通过某个证书生成,一旦生成后可长期有效。

表1 方案对比

6 结语

为提高虚拟机对外证明的效率,本文基于无证书签名和环签名的思想,提出了无证书环签名的虚拟机可信证明方案。方案中虚拟机的证明私钥由用户和PKG共同生成,解决了证书机制中的管理和安全问题,通过环签名算法实现证明过程的无条件匿名,虚拟机在每次证明时不需要重复生成证明密钥,迁移后原有的密钥仍可以继续使用。性能分析说明了方案具有很强的安全性、抗共谋性和不可伪造性,很好地满足了虚拟化环境对外进行可信证明的需求。

)

[1]MITCHELLCJ.TrustedComputing? [M/OL].IETDigitalLibrary, 2005: 11-27 [2015- 05- 22].http://digital-library.theiet.org/content/books/10.1049/pbpc006e_ch1.

[2]GARFINKELT,PFAFFB,CHOWJ,etal.Terra:avirtualmachine-basedplatformfortrustedcomputing[J].ACMSIGOPSOperatingSystemsReview, 2003, 37(5): 193-206.

[3]SANTOSN,GUMMADIKP,RODRIGUESR.Towardstrustedcloudcomputing[C]//HotCloud’09:Proceedingsofthe2009ConferenceonHotTopicsinCloudComputing.Berkeley,CA:USENIXAssociation, 2009:ArticleNo.3.

[4] 施光源,张建标.可信计算领域中可信证明的研究与进展[J].计算机应用研究,2011,28(12):4414-4419.(SHIGY,ZHANGJB.Researchanddevelopmentoftrustworthinessattestationintrustedcomputing[J].ApplicationResearchofComputers, 2011, 28(12):4414-4419.)

[5]BRICKELLlE,CHENL,LIJ.Anewdirectanonymousattestationschemefrombilinearmaps[C]//ProceedingsoftheFirstInternationalConferenceonTrustedComputingandTrustinInformationTechnologies,LNCS4968.Berlin:Springer-Verlag, 2008: 166-178.

[6]BENDERA,KATZJ,MOSSELLIR.Ringsignatures:strongerdefinitions,andconstructionswithoutrandomoracles[J].JournalofCryptology, 2008, 22(1):114-138.

[7]BONEHD,GENTRYC,LYNNB,etal.Aggregateandverifiablyencryptedsignaturesfrombilinearmaps[C]//EUROCRYPT’03:Proceedingsofthe22ndInternationalConferenceonTheoryandApplicationsofCryptographicTechniques,LNCS2656.Berlin:Springer-Verlag, 2003: 416-432.

[8]LIUJ,ZHAOJ,HANZ.Aremoteanonymousattestationprotocolintrustedcomputing[C]//IPDPS2008:Proceedingsofthe2008IEEEInternationalSymposiumonParallelandDistributedProcessing.Piscataway,NJ:IEEE, 2008: 1-6.

[9] 杨绍禹,王世卿,郭晓峰.一种基于环签名的跨域云服务资源远程证明方法[J].小型微型计算机系统,2014,35(2):324-328.(YANGSY,WANGSQ,GUOXF.Ring-signaturebasedremoteattestationforcross-realmresourcesincloudcomputing[J].JournalofChineseComputerSystems, 2014, 35(2): 324-328.)

[10]NINGZ-H,JIANGW,ZHANJ,etal.Property-basedanonymousattestationintrustedcloudcomputing[J].JournalofElectricalandComputerEngineering, 2014, 2014:ArticleID687158.

[11]BERGERS,CCERESR,GOLDMANKA,etal.vTPM:virtualizingthetrustedplatformmodule[C]//USENIX-SS’06:Proceedingsofthe15thConferenceonUSENIXSecuritySymposium.Berkeley,CA:USENIXAssociation, 2006, 15:ArticleNo.21.

[12]STUMPFF,BENZM,HERMANOWSKIM,etal.Anapproachtoatrustworthysystemarchitectureusingvirtualization[C]//ATC’07:Proceedingsofthe4thInternationalConferenceonAutonomicandTrustedComputing,LNCS4610.Berlin:Springer-Verlag, 2007: 191-202.

[13] 王丽娜,高汉军,余荣威,等.基于信任扩展的可信虚拟执行环境构建方法研究[J].通信学报, 2011,32(9):1-8.(WANGLN,GAOHJ,YURW,etal.Researchofconstructingtrustedvirtualexecutionenvironmentbasedontrustextension[J].JournalonCommunications, 2011, 32(9): 1-8.)

[14] 刘金成.无证书数字签名方案的研究[D].西安:西安理工大学,2009:42-48.(LIUJC.Reasearchoncertificatelesssignatureschemes[D].Xi’an:Xi’anUniversityofTechnology, 2009: 42-48.)

ThisworkispartiallysupportedbytheNationalHighTechnologyResearchandDevelopmentProgram(863Program)ofChina(2015AA016002).

RONG Xing, born in 1986, Ph.D.candidate.His research interests include information security, cloud computing.

ZHAO Yong, born in 1980, Ph.D., lecturer.His research interests include trusted computing, network security.

Trustworthiness attestation scheme for virtual machine based on certificateless ring signature

RONG Xing1,2, ZHAO Yong2

(1.InformationEngineeringUniversity,ZhengzhouHenan450004,China;2.CollegeofComputerScience,BeijingUniversityofTechnology,Beijing100124,China)

Due to the complexity and dynamic behavior in virtual environment, the efficiency is low when adopting traditional methods to prove the secure state of virtual machines.Ring signature has high computational efficiency and strong anonymity, so the the key management can be solved by using the certificateless public key system.A trustworthiness attestation scheme which adopted certificateless ring signature scheme in Virtual Machine (VM) was put forward.After the trusted physical environment of virtual platform was validated by the Private Key Generator (PKG), the virtual Trusted Platform Module (vTPM) signature key was generated by PKG and vTPM manager using certificateless signature algorithm, and the ring signature was employed by VM to perform remote attestation and hide attestor’s identity in ring members, which realized the attestation of VM’s anonymous identity and state.After completion of the proof preparation, the VM does not need to generate virtual Attestation Identity Key (vAIK) certificates repeatedly in the process of attestation and migration, thus greatly improving the efficiency of attestation.Consequently, the proposed scheme has strong security and anonymity, and it is suitable for the cloud computing environment with huge numbers of VMs.

Virtual Machine (VM); trustworthiness attestation; certificateless public key system; ring signature; cloud computing

2016- 09- 06;

2016- 09- 30。 基金项目:国家863计划项目(2015AA016002)。

荣星(1986—),男,安徽合肥人,博士研究生,主要研究方向:信息安全、云计算; 赵勇(1980—),男,山西左权人,讲师,博士,主要研究方向:可信计算、网络安全。

1001- 9081(2017)02- 0378- 05

10.11772/j.issn.1001- 9081.2017.02.0378

TP309.7

A

猜你喜欢
公钥密钥虚拟化
幻中邂逅之金色密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
基于OpenStack虚拟化网络管理平台的设计与实现
TPM 2.0密钥迁移协议研究
神奇的公钥密码
对基于Docker的虚拟化技术的几点探讨
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
H3C CAS 云计算管理平台上虚拟化安全防护的实现