工程科学与技术   2017, Vol. 49 Issue (2): 140-144
一种云计算适用的虚拟可信报告根构建机制
黄强, 孔志印, 张德华, 常乐     
信息保障技术重点实验室, 北京 100072
基金项目: 国防重点预研项目资助(10502)
摘要: 可信计算技术能够为云计算基础设施提供可信赖的状态及其验证手段,而可信报告这一可信平台基础功能在云环境的实现与普通主机有较大差异,如何构建虚拟可信报告根还没有通用和成熟的方案,将影响远程证明等可信技术在云环境的应用。为构建云计算适用的可信计算体系结构,解决为虚拟机提供唯一性身份标志和反映虚拟机与物理宿主机统一的完整性状态问题,明确了虚拟机应拥有各自独立的基于秘钥的身份标志以及虚拟机所属平台配置寄存器(PCR)类敏感信息必须是受保护的、可迁移的以适应虚拟机迁移需求。由进一步分析可知虚拟机完整性状态应包含以PCR值表示的虚拟机完整性状态和物理平台完整性状态。由此,在集中管理虚拟化/非虚拟化可信计算平台的模型预设条件下,基于国际可信计算组织(TCG)规范提出的身份证明秘钥(AIK)概念进行扩展,提出一种使用虚拟AIK作为虚拟机身份标志,并为每个虚拟机生成由其实际物理平台启动PCR值和虚拟机启动虚拟PCR值连接而成的PCR值的可信报告模型。设计了对应的虚拟PCR值复制机制、完整性报告机制、虚拟机敏感数据管理机制,并与TCG规范中方法进行了对比。该机制在兼容传统AIK验证机制的基础上,能够为每个虚拟机产生独立身份标识,向验证者证明自身完整性状态的同时简化了对虚拟机的验证流程。
关键词: 可信计算    虚拟化    证书    远程证明    
Construction Mechanism of Virtual Root of Trust for Report in Cloud
HUANG Qiang, KONG Zhiyin, ZHANG Dehua, CHANG Le     
Info. Assurance Technology Laboratory, Beijing 100072, China
Abstract: Trusted computing technology can provide trustworthy state and corresponding verification method for cloud infrastructure.The first step of building trusted computing architecture is to build root of trust.The problem of building root of trust for report was not well solved in virtual trusted computing platform because of the differences between virtual machine and ordinary host.No universal and proven solution was developed, which affects the application of trusted computing technology, such as attestation in cloud environment.In this paper, by analyzing related works, it was concluded that the independent identity based on asymmetric key for each VM as well as protected and migratable storage of sensitive data such as platform configuration register (PCR) value and keys used in a VM were all required for constructing trusted computing architecture in cloud infrastructure.Furthermore, the integrity state of a VM reported with PCR should consist of both the physical PCR value emerged from physical booting procedure and virtual PCR value recording VM software boot procedure.With assumption of centralized and virtualization/non-virtualization unified trusted computing platform management, a model of building root of trust for report with virtual attestation identity key (AIK) as a virtual machine's identity was proposed.It can maintain a set of individual virtual and physical combined PCR values for each VM.Then the verification procedure of virtual trusted computing platform to identify itself with VAIK and report its unique integrity state with VPCR to verifiers including attestation challenger were proposed to support this model.At last, it was compared with TCG specification's method from several different management dimensions.Our model can build unambiguous identity for each VM.Meanwhile it can reduce complexity of verification procedure of VM and keep the compatibility of ordinary AIK verification mechanism.
Key words: trusted computing    virtualization    credential    attestation    

可信计算技术近年来在国内外都获得了广泛的关注并取得了长足的进展。可信计算技术出发点是解决传统主机执行程序可被随意修改,系统完整性被破坏,从而导致恶意代码被植入和运行的问题。可信计算核心特征可以概括为:基于可信硬件设备构建的可信根,建立从底层软硬件到应用程序的信任链。

云计算在国内外发展迅速的同时,也越来越引发了人们对虚拟化桌面及服务器等虚拟化基础设施安全的关注,国际上工业界为主成立的TCG提出可信计算对云计算安全是天然适用的,可信计算技术提供了基于硬件的安全可信基。TCG提出的可信虚拟化平台体系规范[1]主要集中在虚拟可信平台模块 (VTPM) 和深度远程证明 (deep attestation),但由于其复杂性所限,该规范的实际应用尚未见报道。

TCG规范从可信根核心功能出发,提出了可信度量根、可信存储根和可信报告根的概念[2],动态可信度量根与可信服务器虚拟环境验证关联较大,目的是实现在物理主机不重启情况下进入可信、可控的状态作为动态度量的起点,主要涉及体系结构和CPU相关的一些技术,如Intel的TXT技术和AMD的SVM技术;可信存储根也具有一些成熟方案,本文集中研究可信报告根。TCG规范[3]提出,可信报告根在通用主机上是TPM硬件,由TPM内部可信的实施PCR扩展及签名操作。签名使用身份证明密钥AIK (attestation identity key),AIK由平台拥有者 (具有实施TPM管理操作特权) 产生,使用AIK而不使用绑定密钥EK (endorsement key) 这种与TPM绑定的密钥的目的是防止TPM身份被暴露。AIK证书由可信第三方 (如TCG规定的隐私性CA,Privacy CA) 在验证TPM的EK签名后颁发,在可信第三方配合下,通过使用AIK证书不暴露EK和AIK间的对应关系。

中国在可信计算领域发展上具有自己的特色,起步不晚,水平不低[4]。从一开始走的就是独立自主的道路,目前,已经形成以可信计算平台控制模块 (TPCM)/可信密码模块 (TCM) 专用硬件设备 (对应于TCG提出的TPM可信平台模块) 为基础,以可信软件基 (TSB) 为核心,以可信应用系统为推动的可信计算体系,并已出台一系列相应标准规范[5]

本文基于云计算环境提出一种扩展AIK用途用以动态标识虚拟机身份并向验证服务器报告虚拟机相关完整性状态的方法。

1 相关工作

TCG的可信虚拟化平台体系规范[1]提出AIK证书包含一个可选的证书域rtmType用以标识可信平台是物理平台还是虚拟平台,远端的挑战者可以通过读取该数值确认该证书来自虚拟平台。文献[6]提出使用双AIK签名的方法:一个AIK代表物理TPM,对前半部分代表物理平台可信状态的PCR值进行签名;一个代表虚拟TPM,对后半部分代表虚拟机可信状态的PCR值进行签名。这种签名和报告方式导致虚拟平台与物理平台向远程认证服务器进行可信报告时其报告机制不统一,远程证明服务器必须事先知道报告者的类型,采取不同的验证流程才能分别进行验证。而且各虚拟机对应的PCR值只包含上半部分与软件相关的,不包含与硬件相关的PCR值,信息不完整。相关工作[7-9]指出与每个虚拟机对应的PCR值必须包含反映物理平台硬件相关信息的状态。文献[10]提出使用VTPM作为可信根保证虚拟机启动过程完整性,并使用可信审计技术对虚拟机运行态环境进行证据收集、证据审计,及时检测在实际使用中无法事先固定的用户运行环境的可信性。该方案未在虚拟化环境构建完整延伸到应用层的信任链,其原因是认为固化并事先验证所有用户安装的内核模块、应用程序在云环境不现实。本文认为在镜像文件及用户应用有限、可控的情况下,只要虚拟机初始状态是可信的,安装的软件来源可控可信,则信任链应延伸至虚拟机应用层,对用户应用实施可信验证和可信报告具有重要意义。换言之,只具备可信审计还不够,必须在可信报告值中包含虚拟机身份及应用层可信状态信息。

总结相关工作,AIK在虚拟环境应用存在的问题是:普通物理主机上TPM外的实体无法读取AIK私钥或PCR值,只有授权用户能够产生PCR签名值用于向外部报告可信状态;虚拟机上由于VTPM运行于软件环境而不是硬件内部,攻击者可能在虚拟机 (VM) 层、虚拟机监控器 (VMM) 层获得AIK私钥从而伪造签名。因此云计算环境构建可信报告根机制的关键在于:

1) 虚拟机生命周期中应拥有各自独立的密码身份标志;

2) 虚拟机所属PCR类的敏感信息必须是受保护的、可迁移的, 以适应虚拟机迁移需求。

2 基于VAIK的虚拟可信报告根构建机制 2.1 模型预设条件

在虚拟化体系结构下,可视为虚拟机监控器VMM直接操作和持有物理可信计算设备 (如TPM),用户只能看到和使用提供给他们的虚拟机。因此,VMM和物理TPM不需要直接向远程证明服务器报告其状态,需要报告状态的主体是虚拟机中的可信应用,也正是因为可信应用的存在和其安全需求,才需要部署VTPM这类软件机制将信任链延伸至虚拟机内部,可信应用应使用与其部署在物理主机一致的软件接口 (TSS) 和远程证明等协议接口进行可信操作。这是VAIK模型的一个预设条件。其他预设条件与对可信平台的管理机制有关,具体内容如下。

一是,满足集中的可信平台管理需求。云环境下,VTPM的所有者是云使用方,配置VTPM的目的是满足高安全性、高可用性及可管理性需求,对比来说TCG规范的TPM所有者角色更倾向于是个人用户,适用于商用环境,更强调隐私性保护。因此,虚拟可信平台的管理更应该满足集中统一的要求,而不使用TCG规范提出的隐私性CA这类隐私性保护机制。

二是,满足虚拟化及非虚拟化可信平台统一管理需求。从管理角度,虚拟化和非虚拟化可信平台应具有一致的管理方式和管理界面,只有可信平台管理器能区分其差别。

2.2 VPCR值复制机制

PCR值动态代表了完整性状态,因此在可信报告机制中具有重要作用。文献[1]提出VMM启动后,平台PCR值必须包含代表VMM完整性状态值。虚拟机PCR值 (简称VPCR) 应包含VM个体的完整性状态及物理平台统一的硬件和基础软件层 (如VMM) 完整性状态,即记录物理平台启动状态和虚拟平台启动状态。因此需设计了VPCR值复制机制,用于复制物理平台启动后获得的PCR值到每个VM内对应前半部分PCR值位置。依据虚拟化平台体系结构的不同,该机制可以在UEFI BIOS或VMM层实现。

2.3 VAIK概念及应用模型

基于TCG规范中AIK概念提出一类特殊的AIK称为VAIK,为每个VM分配一个VAIK,由VAIK代表VM身份,这与TCG规范中由AIK代表应用身份相类似。VAIK应用模型由其功能和使用场景包括模型的预设条件决定。VAIK应用模型如图 1所示,VMM生成虚拟机时产生对应的VTPM、VAIK和VPCR值并在VM生命周期中一直存续,VM上的用户或应用也可以用通用方法申请其AIK使用,AIK与VAIK的使用无冲突。

图1 VAIK应用模型 Fig. 1 Application model of VAIK

VPCR的复制机制由图 1中的3个步骤说明,物理可信设备记录物理平台可信状态,由VMM层复制物理平台可信状态到每个虚拟可信设备,当向远程证明服务器报告时,VM对同时具有物理及VM软件层可信状态的PCR值使用VAIK进行签名后发送。

可信平台管理器维护所有可信平台的信息及秘钥等管理可信平台所需信息 (图 1中可信平台数据集),它通过在VAIK证书数据域中记录TPM标识的方法标记和维护物理平台及其所属虚拟机之间的关系。由可信平台管理器为物理和虚拟可信平台向CA申请证书,CA只与可信平台管理器交互而不直接和可信平台交互,可信平台管理器向可信平台及验证服务器分发可信平台的VAIK/AIK等各类证书。

2.4 基于VAIK的报告方法

可信平台管理器可以根据每个物理平台需使用和管理的最大VM数量预先产生和置入对应数量的VAIK到物理可信密码设备中,所有VAIK私钥均存储于物理可信密码设备内部不可导出到外部。在每个虚拟机生成时VMM通过物理可信密码设备为其分配一个VAIK,由该VM上层的可信应用使用该VAIK,使用方式用于验证VM身份或对VM可信状态进行远程证明,使用VAIK进行签名的用法如式 (1) 所示,其中, {content}Sig (key) 表示使用key对content进行签名,VM向远程证明服务器报告公式 (1) 运算所得签名值。

$ \left\{ {{\rm{PCR}}\left\| {{\rm{VPCR}}} \right.} \right\}{\rm{Sig}}({\rm{VAIK}}) $ (1)

为便于比对,将文献[6]中使用的签名方法表示如式 (2) 所示。可见采用VAIK签名的方法生成结果更快更简易,签名端只需执行一次签名操作,远程证明服务器只需验证一个证书。

$ \left\{ {{\rm{PCR}}} \right\}{\rm{Sig}}\left( {{\rm{AIK1}}} \right)\left\{ {{\rm{VPCR}}} \right\}{\rm{Sig(AIK2}}) $ (2)
2.5 与TCG管理机制的比较

从密钥生命周期方面比较基于VAIK的管理方法和TCG规范中提出的管理方法。表 1体现了AIK/VAIK在生命周期中各阶段管理实体、管理方式的差异,可见VAIK方法属于集中管理,更依赖于可信平台管理器,而TCG的方法更依赖于可信平台及TPM自身。

表1 AIK/VAIK生命周期各阶段管理实体及管理方式差异比较 Tab. 1 AIK/VAIK comparison of life-cycle management entities

3 结论

本文阐明了一种用于云计算环境中虚拟机标识自身身份并构建虚拟可信报告根的机制,其核心是VAIK的使用和VPCR值的构造。基于此,虚拟机可向外部提供验证自身身份和完整性状态的密码手段。该机制能够支持现有的物理可信密码设备及软硬件接口,并简化了验证流程。

下一步工作方向,需对VAIK应用模型进行进一步的安全性分析,并设计实现支持VAIK的可信平台管理器。

参考文献
[1]
Trusted Computing Group.Virtualized trusted platform architecture specification[R].Portland Oregon:TCG Board, 2011.
[2]
Trusted Computing Group.TCG specification architecture overview[EB/OL].(2007-08-08)[2016-7-1].https://www.trustedcomputinggroup.org/groups/TCG_1_2_Architecture_Overview.pdf.
[3]
Trusted Computing Group.TPM main part 1:Design principles specification.version1.2[EB/OL].(2006-11-04)[2016-07-01].https://www.trustedcomputinggmup.org/home.
[4]
Shen Changxiang, Zhang Huanguo, Wang Huaimin, et al. Research and development of trusted computing[J]. Science China Information Sciences, 2010, 40(2): 139-166. [沈昌祥, 张焕国, 王怀民, 等. 可信计算的研究与发展[J]. 中国科学 (信息科学), 2010, 40(2): 139-166.]
[5]
Wang Guan. TPCM and trusted computing platform mainboard specification[J]. China Information Security, 2015(2): 66-68. [王冠. TPCM及可信计算平台主板标准[J]. 中国信息安全, 2015(2): 66-68.]
[6]
Sun Yuqiong, Song Cheng, Xin Yang, et al. Dual AIK signing mechanism on trusted virtualization platform[J]. Computer Engineering, 2011, 37(16): 114-116. [孙宇琼, 宋成, 辛阳, 等. 可信虚拟平台中的双AIK签名机制[J]. 计算机工程, 2011, 37(16): 114-116.]
[7]
Cucurull J, Guasch Sandra.Virtual TPM for a secure cloud:Fallacy or reality?[C]//ⅩⅢ Reunión Española sobre Criptologíay Seguridad de la Información (RECSI 2014).Alicante:Revistas Y Congresos, 2014:197-202.
[8]
Berger S, C'aceres R, Goldman K A, et al.vTPM:Virtualizing the trusted platform module[C]//Proceedings of the 15th Conference on USENIX Security Symposium.USA:USENIX Association, 2006, 15:305-320.
[9]
Brohi S N, Bamiah M A, Brohi M N, et al.Identifying and analyzing security threats to virtualized cloud computing infrastructures[C]//2012 International Conference on Cloud Computing Technologies, Applications and Management.Piscataway:IEEE Press, 2012:151-155.
[10]
Liu Chuanyi, Wang Guofeng, Lin Jie, et al. Practical construction and audit for trusted cloud execution environment[J]. Chinese Journal of Computers, 2016, 39(2): 339-350. [刘川意, 王国峰, 林杰, 等. 可信的云计算运行环境构建和审计[J]. 计算机学报, 2016, 39(2): 339-350.]