针对目前在云计算环境中用户虚拟计算环境不可信的问题,利用可信平台模块虚拟化技术,在云服务器端为用户构造一个虚拟可信平台模块,然后以虚拟可信平台模块为基石,为用户在云服务器端构造了一个虚拟的可信计算环境,从而使现有的云计算用户中虚拟计算环境的可信情况获得了有效保障。通过与现有的可信平台模块虚拟化方案作对比发现,所提方案不仅周全地考虑了在云计算中虚拟机效率损耗的相关问题,而且相较显著提高了它的安全性和执行效率,更加适合被应用于用户虚拟计算环境。


纵观整个信息安全科学的发展历程,信息技术所发生的重大革命,会对整个信息安全领域的发展进程产生直接且显著的影响。比如在计算机还未问世以前,密码学是信息安全学科最主要的研究内容。

但是,自计算机出现后,特别是互联网出现后,信息安全领域发生了翻天覆地的变化。它的主要研究对象已经从密码学发展为计算机系统安全和计算机网络安全。信息安全行业诞生了一系列产品,其中具有标志代表性的信息安全产品有安全操作系统、安全数据库管理系统以及防火墙等。

互联网出现后,云计算又再一次为信息技术领域带来重大改革和冲击,主要技术特征是动态的服务计算。用户或企业会在云服务器中把所属他们的数据存储起来,当用户和企业在云服务器中运行他们所属的应用程序时,云计算的服务商会得到这些用户数据和应用的优先访问权,但同时云服务商不能有力地向用户证明他们的数据没有被用到错误的途径。

这些错误的使用途径包括云服务商没有向同行公司倒卖用户数据、用户的隐私没有被非法记录或者被评估、用户重要数据的存储是否具有极高的安全性等。一旦产生安全问题,造成的损失极其惊人。

这种类型的事例很多。英国政府曾经在2007年发生了一起重大存储数据丢失事故,2 500万人的社会保障号码等重要资料被尽数遗失;有黑客曾入侵美国农业部(Department of Agriculture)的云服务器,并通过网络偷走了26000名在华盛顿地区工作的人员的个人信息,包括姓名、社会安全号码及照片等。

云计算虚拟化管理所带来的安全问题。在传统的云计算模式中,被提供给用户使用的资源一般都是以虚拟或租用的模式进行。根据用户的实际需求,这些虚拟资源会和用户需要用到的物理资源进行有效绑定。由于资源在云计算的多用户中处于共享模式,因此某一物理资源可能会被同时绑定多种虚拟资源。

一旦有安全漏洞存在于云平台中的虚拟化软件中,其他用户就很有可能具有访问到该用户数据的可能。而如果云服务提供商无法有效实现用户的个人数据和别的企业的用户数据之间的隔离,而用户对于自己的邻居及其潜在的目的和可能采取的行动一无所知,那么云服务商就没有证据呈现给客户,使他们相信自己数据的安全性是有保障的。

随着云计算安全研究的深化发展和不断进步,有很多全球知名的企业都纷纷发布了各类云计算安全产品与方案。比如,Sun公司曾经为Amazon的EC2,S3还有虚拟私有云平台提供安全保护,而发布开源的一款云计算安全工具-OpenSolarisVPC网关软件能够为客户提供很大帮助,可以高效和便捷地构造多条通向Amazon虚拟私有云的安全性有保障的通信信道。

同时,Sun公司发布的VMIs,是为了增强AmazonEC2的安全性,包含非可执行堆栈,支持加密交换,同时数据审核会在默认情况被启动;云安全盒(cloudsafety box)通过使用类Amazon S3接口,可以对内容自动进行压缩、加密和分解,对云中加密内容的管理进行适当简化等。

微软为其自身的云计算平台Azure设计了Sydney的安全计划,旨在帮助企业用户完成服务器和Azure云之间的数据交换。Sydney计划在虚拟化多用户环境中解决了用户数据安全的机密性问题。

EMC、Intel、Vmware等公司联合发布了一个合作项目——“可信云体系架构”,一个概念证明系统被提出。它将Intel的可信执行技术(Trusted Execution Technology)、Vmware的虚拟隔离技术、RSA的enVision安全信息与事件管理平台等技术融合,目的在于构建一个从下至上值得信赖的多用户服务器集群。

同时,开源云计算平台Hadoop也发布了一个安全版本,利用kerberos安全认证技术,可以认证共享商业敏感数据的用户,并对其进行访问控制,以有效阻止一些不合法用户对Hadoop clusters的非授权访问。

结合上述信息可知,首先云计算平台运行的各种云服务基础设施都具有多变性和安全边界的不定性,很难确保对用户数据和隐私安全性的保护;其次,云服务涉及的资源,通常有多个管理者对其进行管理,导致无法统一部署和制定安全防护措施。

因此,本文针对目前云计算中用户虚拟计算环境不可信的问题,首先扩展设计服务器端的TCB结构。云服务提供商可以通过可信平台模块虚拟化技术,为用户构造一个虚拟化的可信平台模块。

其次,以虚拟可信平台模块为基础,用户在云服务器构造了一个虚拟化的可信计算环境,完美处理了现有云计算源头可信和虚拟计算环境的可信问题。与现有的可信平台模块虚拟化方案对比,这个方案非常完备地考虑了在云计算中虚拟机的效率损耗问题,具有高效率和安全性高等优点。

动态虚拟可信平台模块在云服务器的实现

虚拟化技术是云计算模式下的关键技术。虚拟化技术可以使得单个服务器可以支持多个虚拟机,因此可以运行多个操作系统和应用。显而易见,它可以使服务器的利用率获得极大提高,通过虚拟化为应用提供扩展性强和可能性多的平台。

虚拟机技术是目前虚拟化技术应用的一个重要领域,可以显著提高服务器的使用效率和云计算模式下用户虚拟机的安全性,是用户安全的前提和基础。由于在云服务器中多个用户之间处于共享资源模式,那么相同的物理资源上就有可能绑定很多不同的虚拟资源,而如果在云平台中的虚拟化软件中存在部分安全性漏洞,那么用户的数据就有可能被别人访问到,从而无法保障用户虚拟机的安全性。

针对上述问题提出了可信平台模块虚拟机,使用虚拟可信平台模块保障虚拟机的安全性。本文的动态虚拟可信平台模块的实现基于开源的虚拟机监视器(Virtual Machine Monitor,VMM)系统XEN平台。XEN是运行在X86上的开源VMM,遵循GNU许可,是一个支持多个客户的操作系统(Operation System,OS)。它是直接在硬件上运行的操作系统,支持隔离性和多个虚拟机线程的并发运行。XEN直接在硬件上运行,且采用半虚拟化技术,不要求改变系统调用接口,也不需要修改现有应用程序,而是要求修改客户OS,具体过程如下。

(1)在云服务器,将一个物理可信平台模块(Trusted Platform Module,TPM)映射成多个动态虚拟可信平台模块(Dynamic Virtual TrustedPlatform Module,DVTPM)。DVTPM可以给每一个虚拟机供给一个专用的、基于软件的信任根。

(2)为了让DVTPM可以拥有远程证明等功能,完成DVTPM和物理TPM的绑定,DVTPM具有动态创建特点,用户进入云服务器时创建,当用户退出的时候注销。

(3)在云服务器上,使用XEN平台实现DVTPM,XEN可以给所有用户构造一个DVTPM,用户可以以DVTPM为基础构造可信虚拟环境。XEN服务器可以给用户创建DVTPM的示意图,DVTPM的实例和客户虚拟机之间一一对应,可以给用户提供绑定、密封及密钥存储等与物理TPM完全相一致的功能。

创建DVPTM的过程如图1所示。

图1 动态可信平台模块实现

假设XEN总共需要创建和启动个虚拟机,标记为,每名用户的服务单独运行在一个虚拟机中,由DVPTM为可信基,XEN给虚拟机提供隔离,同时作为通信介质、用户和用户的虚拟机、DVPTM和TPM通信的桥梁;每个VM都有一个XenVMNet(虚拟网络接口)来与用户通信;各VM通过其虚拟网络接口互联成一个计算机网络,称为XenVMNet。VM有两个虚拟网络接口:一个是连接XEN的宿主机的网络接口,用于和TPM通信;另一个是XenVMNet,与其他VM相连。

1.1 原型系统实现

本文在虚拟机监视器XEN3.30上实现了原型系统,其中特权管理域Domain0为ubuntu8.04.3LTS,客户虚拟机操作系统为ubuntu9.04,TSS软件栈为TrouSer。测试物理平台配置为:CPU为酷睿i5,内存为DDRⅡ800 4 GB,硬盘为500 GB SATA 7 200 r/m,TPM为IBMv1.2TPM,物理PCR映射到虚拟PCR(vPCR)过程通过map-pcr()函数发送VTPM_ORD_TPMCOMMAND命令至vTPM监视器来实现。本文证明vTPM与TCB绑定的正确性和证书链扩展的可用性,分别从虚拟平台的远程证明和密钥存储两方面测试系统的可用性。

函数流程如下:

图2为物理PCR映射到虚拟PCR,测试了vPCR的映射功能。虚拟机启动后,通过读取虚拟机环境里的pcrs文件获取vTPM的vPCR值。

图2 物理PCR映射到虚拟PCR的映射

由图3的测试结果可以得出,PCR被成功的读取,虚拟TPM的PCR数值全部被初始化为0。

图3 PCR的映射

两个客户虚拟域的PCR值在图3中给出,这两个客户的虚拟域分别为x-domU和y-domU。实际的可信平台模块将PCR[0]~PCR[8]映射到vTPM中,物理平台的度量值为PCR[0]~PCR[8],vTPM管理器、扩展的Hypervisor、超级管理权限域的度量值为PCR[8]。这两个用户的虚拟域运行于同一个物理平台中,两用户PCR[0]~PCR[8]相同,客户虚拟域的完整性度量结果存在PCR[9]中,唯一不相等的是PCR[9]。

用eCryptfs加密文件系统测试虚拟TPM的存储密钥的存储功能,实验效果如图4和图5所示。使用更改eCryptfs用户空间的密钥管理部分的方法,达到与vTPM交互的目的,之后通过TPM对eCryptfs的文件加密达到存储存储密钥的目的。因为当前虚拟平台的PCR文件和加密密钥绑定在一起,所以即使某一用户的虚拟域拥有另一用户虚拟域加密之后文件的数据块加密密钥,仍然无法解密此数据块,也就无法解密加密文件。

图4 密钥正确时文件读取

图5 密钥错误时文件读取

如图4所示,在虚拟域y-domU的加密文件系统中编辑文件myfile,把文件的加密密钥加密存储于y-domU中。在y-domU中能够有效解封密钥,以此达到解密文件myfile的目的。

如图5所示,为了证明y-domU的密封与解密能力,将myfile及密封的密钥数据拷贝至另一虚拟域www-x-domU中。由于虚拟平台的改变,因此无法解封加密密钥,从而无法解密myfile。尽管应用ls命令能够显示myfile的详细信息,然而使用linux里的文件编辑工具无法读取myfile的内容。

1.2 虚拟TPM测试和性能分析

TPM中包含6个基础命令。

(1)ENABLE/DISABLE TPM:使能和禁用命令是与TPM芯片内部设置的使能或禁用功能相对应。执行该功能时,需要通过物理存在的判断操作辅助执行。

(2)StartUp(ST_Clear):启动时,由可信根发出启动命令,TPM内部固件调入芯片启动程序。

(3)Selftest:在需要或启动时执行完整的自我检查。Force Clear用于重置TPM,这里SRK要求提供物理现场,即使Disable_Owner_Clear已被设置也可以。

(4)Read PCR:从TPM中读取当前的PCR值。

(5)CreakEK:由厂商执行,或者当用户第一次删除TPM中旧的EK时执行。根据厂商的实现方式不同,EK可以存储在芯片内部FLASH或者ROM中。

(6)Get TPM Info:提供该操作,可以一次性得到StartUp是否成功、ReadPUBEK是否成功、TPM Version、TPM Status、EK状态及Owner状态等信息。

如图6所示,测试结果1主要用于测试Enable、Disable、ForceClear和Selftest操作。

图6 测试结果1

由图6测试结果可以得出,Enable、Disable、ForceClear和Selftest这些操作被成功模拟,可以在用户虚拟机中调用。

如图7所示,测试结果2主要用于测试读取PCR的操作。

图7 测试结果2

在运行可信支撑软件前,需要启动TPM模拟器。图8显示虚拟TPM启动后,就可以运行可信支撑软件的核心服务模块。核心服务在启动过程中完成一些初始化工作,如建立永久存储区等,同时通过打开TDDL连接与TPM模拟器建立连接,获得TPM模拟器的一些属性信息。图8是可信支撑软件的核心服务启动之后的情况,连接完毕后可执行应用程序,通过可信支撑软件使用TPM的可信服务功能。

图8 加载TPM_emulator

表1是虚拟TPM的性能测试数据和文献[12]的虚拟化对比。

表1 虚拟TPM的性能测试数据和文献[12]的虚拟化对比

对比文献[15]的可信平台模块虚拟化方案,本文提出的方案效率有了提高,考虑了云计算中虚拟机效率损耗问题。

动态虚拟可信平台模块安全性分析

由于云动态可信平台模块的构建本质上是一簇协议的执行过程,协议的安全性就是该过程的安全性,所以本文使用通用可组合协议分析方法来分析本方案的安全性,证明在动态虚拟可信平台模块创建协议是安全的等同于证明虚拟机安全创建了动态TPM,即动态TPM在UC框架下安全实现了加密函数和签名函数。

理想函数在UC框架中非常重要,充当了一个不可被攻陷的可信第三方,可以完成协议所执行的特定功能。

理想函数符合用户认证的基本要求,如果未被攻陷的用户未被授权,即,那么用户认证不会成功,输出。只有当,云服务器才会为其建立可信执行环境。攻击者除了攻陷服务器或进行伪装攻击外,没有其他有效的攻击手段。使用来完成用户的认证,接着生成一个会话密钥。

根据攻击者的操作可以得出,当攻陷时,攻击者可以完美仿真攻击者,此时是不可区分的。当被攻陷时,此时建立动态TPM将会失败,所以仍是不可区分的。当动态TPM建立成功,过程中的会话密钥将会根据TPM中随机数生成数来生成。TPM随机数生成器是一个伪随机数生成器,过程中的密钥通过利用真随机数来生成,若环境Z能区分TPM与生成的随机数,会与定义2矛盾,所以是不可区分的。即由定理1可得出,虚拟机安全创建了动态TPM。

可信平台模块为计算平台提供了三个基本功能——数据保护(可信存储)、平台完整性保护和平台身份证明,分别依赖于加密、哈希函数和状态信息的签名。因此,定义了理想加密函数、理想哈希函数和理想签名函数。由定理2可知,若动态TPM在UC框架下安全实现了这三个函数,则认为动态TPM在UC框架下安全实现了TPM的数据保护,平台完整性保护和平台身份证明的三大基本功能。

根据的操作可以发现,当被攻击时,在两个攻击者之间,可以完美模拟,且难以分辨;当E被攻击时,因为此时通过加密后的密文相同,所以也难以分辨,当E两者都没有被攻陷时,因为过程中的会话密钥是根据TPM中RSA算法生成,假设环境能够区分TPM和的密文,表示攻击者破解了RSA大模数数学问题,而这与TPM使用的RSA设计中的算法安全性相背,因此不能区分。因此,根据定理2,虚拟机实现了安全加密函数

根据的操作可以发现:被攻击时,两个攻击者之间存在可以完美模拟的行为的联系,所以是难以分辨的;被攻陷时,因为的验证过程一致,所以也是难以分辨的。如果都没有被攻陷,过程中的签名密钥和加密密钥对是根据TPM中RSA加密算法生成的。如果环境能够分辨TPM和的签名,表明攻击者破解了RSA大模数解密算法问题,这与TPM使用的RSA算法的安全性相背,因此难以区分。因此,根据定理1,虚拟机实现了安全加密函数。由于动态TPM安全实现了加密函数,动态TPM安全实现了签名函数,根据定理2复合协议安全性定理,动态TPM安全在UC的安全框架下实现了TPM的功能。

综上所述,XEN虚拟机在UC框架中创建了动态安全可信虚拟平台模块,且可以给用户计算环境提供一个可信根,作为虚拟可信计算环境初始的“可信根”。

虚拟可信计算环境的构建

将虚拟可信平台模块vTPM作为虚拟可信计算系统的初始“可信根”,在云端服务器虚拟可信计算信任链传递过程中,对虚拟可信计算环境的程序进行信任度量(Trusted Measurement),直到整个虚拟信任链传递完成。

虚拟可信计算系统中的信任传递过程如下:在系统中每一层的信任传递过程中,通过可信根校验可信根的下一层执行代码的数据完整性是否遭到威胁,如果下一层执行代码没有被篡改,则将该层归属于可信范围,并将可信根传递到下一层的可信执行代码;对于整个系统而言,通过可信根的逐层传递,该系统的可信范围从可信根所在层传递到下一级;通过检验可信范围边界的下一层可信执行代码是否篡改,控制可信根不断传递,实现对系统可信范围的传递和信任链的建立,最终实现对虚拟可信计算系统环境的可信范围整体认证。以下是度量过程描述。

3.1 对虚拟机OS Loader的度量

在启动虚拟计算操作系统前,首先需要对虚拟机OS Loader进行完整性检验,主要是因为OSLaoder是主引导记录中的主引导程序,要确保信任范围中的起始节点的可信任度。它的信任检验的实现一般是判断主引导记录中HASH值是否一致的判断前提。另外,对于整个主引导程序计算进行HASH计算后,HASH值一般挂载在主引导的备用存储区。

3.2 虚拟机操作系统进行度量

DVTPM和OS loader通信,确保OS loader属于可信范围内,然后OS loader与虚拟服务机的OS kernel建立通信,虚拟服务机加载OS kernel后,可以度量在它之前在哪些软件被运行。可以看出,在DVTPM的控制下,DVTPM将信任范围扩大到OS loader层,然后OS loader继续将信任范围扩大到OS层,OS同样将信任范围给应用软件层,从而实现整体的信任传递。

软件数据完整性是CIA三大属性之一,也是判断应用软件是否可信的基本要素。但是,软件数据完整性还不能确保虚拟动态条件下应用软件的安全性和完整性。因此,上层软件的度量除了基于HASH的完整性校验度量外,还需进行其他一些特殊的度量方法。随着现代软件的功能全面化发展,各种功能越来越智能化,应用软件的代码规模也愈发庞大,度量所用的代码产生的数据量也超乎寻常,因此需要对程序进行有选择性、有方向性的度量。

应该对其进行多层次、多模块的分析法,尽可能多地列举多种度量层面,根据每个层面的比重值不同,确定最优的度量点,实现对其更准确的度量。可以对应用软件进行可信的级别划分,不可信和可信程度低的应用软件均不能通过度量。此外,由于软件装包后的模糊性,需对应用软件引入专家评估系统,实现对应用软件的可信等级判定。只有通过完整性校验且其安全等级被认定为可信任的软件,才能得到操作系统的运行授权。

在真实的可信计算平台中,核心可信度量根(Core Root of Trust for Measurement,CRTM)是可信计算平台的一个核心可信度量根。它一般是内嵌在操作系统中的一段指令,并放置在BIOS中。在云端服务器中,在XEN中的每一个用户虚拟机的创建始于vTPM,具体过程如图9所示。

图9 虚拟信任链的传递

虚拟可信平台模块作为信任根,通过可信根的计算判断下一级执行代码是否被篡改以及下一级引用程序代码的真实性和完整性。如果没有被篡改,则信任链的建立传递到可信根所在的下一级可信程序代码,可信范围就从可信根所在层扩展到下一级。随着控制运行代码不断向下一级传递,最终可以实现信任链的线性传递和整体建立,实现可信范围的整体延伸,为用户构建一个虚拟可信计算环境。

结语

本文针对目前在云计算环境中用户虚拟计算环境不可信的问题,利用可信平台模块虚拟化技术,在云服务器端为用户构造一个虚拟可信平台模块,并在此基础上为用户在云服务器端构造了一个虚拟的可信计算环境,从而有效保障现有的云计算用户中虚拟计算环境的可信。通过安全性分析,证明了动态TPM安全在UC的安全框架下实现了TPM的功能。通过与现有的可信平台模块虚拟化方案对比发现,提出的方案考虑了在云计算中虚拟机效率损耗问题,并且拥有更高的安全性和执行效率,在用户虚拟计算环境中具有更好的适应性。

作者简介

茹斌(1982—),男,博士,工程师,主要研究方向为信息安全应用、保密信息化应用。

选自《通信技术》2020年第一期 (为便于排版,已省去原文参考文献)

声明:本文来自信息安全与通信保密杂志社,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。