摘 要: 针对云计算中数据和计算的保密性和完整性无法保证的问题,设计了一种基于虚拟机的可信赖云计算平台,它为客户虚拟机安全执行提供封闭环境,允许用户在执行虚拟机前先检验服务商,以确保服务安全。
关键词: 云计算;可信赖;虚拟机
云计算服务能够大大节约存储和计算数据的成本,但由于安全问题,多数企业却对此表现很冷淡。近期有研究[1]发现,企业最关心的是数据的安全性和失去数据控制权会对隐私带来什么样的危害,而不仅仅是如何降低数据存储和处理的成本。云服务商的雇员很有可能篡改或者泄露用户数据,甚至是公司的财务状况,从而对用户造成巨大危害。
本文提出一种可信赖云计算平台(TCCP),可以确保外包给基础设施服务(IaaS)的计算的保密性和完整性。TCCP为用户VM提供了一个封闭的执行环境,避免云服务商的特权用户窥视或者篡改内容,在执行VM申请前,用户可以远程判断服务后台运行的TCCP是否可信。该方法拓展了整体服务验证的概念,使用户能够预估计算执行安全性。
1 相关知识
1.1 基础设施服务(IaaS)
当前众多云服务商提供不同的软件层级服务,在较低层可以提供客户访问服务商控制的整体虚拟机,客户和系统用户需要配备虚拟机上运行的软件;在较高层级可以完全在线运行,无需客户干预;在高软件层级运行服务更难保证计算的保密性,因为服务本身需要操作客户数据的软件。本文主要研究低层级IaaS云服务商,此时更容易保证客户虚拟机安全运行。
如图1所示,以Eucalyptus为例,系统包含一个或多个运行客户虚拟机的镜像(典型的如Xen)的节点簇,而Eucalyptus拥有一系列组件来管理这些簇。简言之,需要将所有这些组件集中到一个云管理者CM(Cloud Manager)。
从客户角度,Eucalyptus提供了一个可执行、可管理和可终止VM的Web服务接口,虚拟机镜像VMI运行VM,而CM负载VMI。VM启动以后,用户可以利用普通工具登录,如ssh。除了用户接口,CM还提供管理服务,如添加或删除VMI或用户。Xen支持热迁移,允许VM在执行时更换物理主机,而过程对用户透明,这种迁移对于簇内资源整合和负载平衡有重要意义。
1.2 攻击模型
云服务商的系统管理员拥有控制后台的特权,可以实施多种攻击以访问客户虚拟机内存。IaaS提供商不会允许某人拥有全部特权,而且也部署了严格的安全设施,严格访问权限策略,保护硬件的物理安全。可以认为服务商能够阻止对机器物理访问的攻击,但系统管理员还是需要簇内机器的访问特权来管理机器上运行的软件。因此TCCP必须做到以下两点:(1)确保虚拟机在安全保护域内运行;(2)任何时候,拥有根权限的系统管理员远程登录运行虚拟机的机器,都不能访问虚拟机内存。
1.3 可信赖计算
可信赖计算群(TCG)提出了一系列的软硬件技术来构建可信赖平台,而且给出了可信赖平台模块(TPM)集成的设计标准。TPM支持私钥(EK)并将此作为身份识别的唯一标准,还支持一些不可修改的加密方法,不同厂商设备使用不同的公钥识别集成模块。
可信赖平台[2-4]改进了TPM集成特性,使其可以远程识别。在启动时,主机计算一个由启动软件序列哈希值组成的测度列表ML,启动软件即BIOS、启动项、软件执行平台等。ML安全载入主机TPM,远程一方利用当前nU挑战运行在主机的平台,平台调用TPM生成包含ML和nU的应答信息,并用TPM的私钥加密,主机将信息反馈给远程方,远程方利用对应的EK公钥解密,这样就完成了对主机的认证。通过核验ML和nU,远程方可以鉴别主机上运行的平台是否可信赖。
可信赖平台如Terra[3],执行瘦VMM,即强制使用封闭执行环境,这样拥有主机全部特权的用户也无法窥视和篡改客户VM,即使机器重启VMM也可以保证自身的完整性。因此远程方可以通过验证主机上运行的平台,证实VMM的可信性,如此即可保证其客户VM的计算是安全的。
假设传统可信赖平台能够保证单台主机上的计算安全性,保证IaaS服务的最自然的想法就是在服务后台每个节点都部署平台,然而这样是不够的,不论VM载入时(通过操作CM)还是运行时(通过迁移),系统管理员都可以将客户VM转移到没有运行平台的节点上。所以平台验证机制并不能保证远程方得到的测度列表ML就是VM运行(或即将运行)主机的真实信息。因此,TCCP需要设计远程验证方法,保证后台平台资源持久安全。
2 可信赖云计算平台
可信赖云计算平台TCCP加强了IaaS后台,使其可以在不改变结构的情况下提供封闭执行环境,如图2所示。TCCP可信赖计算的基础包含可信赖虚拟机映像(TVMM)和可信赖协调者(TC)两个方面。
后台每个节点运行掌控客户VM的TVMM,并防止被特权用户窥视和篡改。TVMM可以保护自身安全性并遵守TCCP协议,节点被嵌入经验证的TPM并通过安全启动进程加载TVMM。
TC管理一系列可以安全运行客户VM的节点,称为可信赖节点,节点必须位于安全域内并运行TVMM,这要求TC保存节点安全域的记录,并判断该节点是否运行着可信赖TVMM。TC管理诸如簇中添加或移除节点、由于维修或升级需临时关闭节点等事件。通过TC验证,用户可以判断IaaS是否安全。
为了VM的安全,每个节点上运行的每个TVMM必须与TC相配合,目的是:(1)将VM限制在可信赖节点上;(2)在VM迁移时保证其状态不受窥视和篡改。这些保护措施关键在加载和迁移VM时的操作,为了保护这些操作,TCCP制订了具体协议。
假设由外部可信赖实体(ETE)来管理TC,并为TC更新部署在IaaS域中一系列节点和可信赖配置的信息,最重要的是管理IaaS的系统管理员在ETE内部没有特权,因此不能篡改TC。本文假设ETE由没有与IaaS服务商共谋动机的第三方维护。
在实时迁移[5]中,运行中的VM的状态信息在源节点Ns和目标节点Nd间迁移。为保证操作的安全性必须使两个节点互信,而且VM状态必须可信并且在完成迁移前是不可修改的。图5所示是参与VM安全迁移的消息队列,首先Ns请求TC检验Nd是否可信,消息3中,Ns向Nd发起VM迁移申请并附加会话密钥KS。Nd验证Ns是否可信。如果两个节点都认证成功,Nd通知Ns接受KS,在消息7中Ns最终将VM状态哈希值加密发送给Nd,VM迁移成功。
企业普遍应用云计算的主要阻力源自对数据和计算的保密性和完整性的担心,本文提出一种可信云计算平台TCCP,它可以为IaaS服务提供一个封闭执行环境,保证了客户VM执行的机密性,允许用户验证IaaS提供商并在装载其虚拟机前先判断服务是否安全。
参考文献
[1] CircleID Reporter.Survey:cloud computing‘No Hype’,but fear of security and control slowing adoption[C/OL].(2009-02-26)[2010-03-01].http://www.circleid.com/posts/2009- 0226_cloud_computing_hype_security/.
[2] BERGER S,CACERES R,GOLDMAN K A.vTPM:virtualizing the trusted platform module[R].In Proc.of USENIX-SS’06,Berkeley,CA,USA,2006.
[3] GARFINKEL T,PFAFF B,CHOW J.Terra:a virtual machinebased platform for trusted computing[C].In Proc.of SOSP’03,2003.
[4] MURRAY D G,MILOS G,HAND S.Improving xen security through disaggregation[C].In Proc. of VEE’08,New York,NY,USA,2008.
[5] CLARK C,FRASER K,HAND S.Live migration of virtual machines[C].In Proc.of NSDI’05,Berkeley,CA,USA,USENIX Association.