当前位置:文档之家› Towards_Trusted_Cloud_Computing(中文)

Towards_Trusted_Cloud_Computing(中文)

Towards_Trusted_Cloud_Computing(中文)
Towards_Trusted_Cloud_Computing(中文)

Towards Trusted Cloud Computing

Nuno Santos,Krishna P. Gummadi,Rodrigo Rodrigues

MPI-SWS

摘要

云计算可以让公司根据需要外包计算来降低成本。但是,就目前看来,云计算对其客户提供的服务并不核实保密性和数据计算的完整性。

为了解决这个问题,我们提出了一个值得信赖的云计算平台(TCCP)设计,TCCP使得基础设施即服务(IaaS)能够提供像Amazon EC2那样的封闭环境,保证客户虚拟机的保密性。此外,它还允许客户在启动他们的虚拟机前,向IaaS提供商证明服务是安全的。

1.简介

通过数据复用和利用云计算服务进行运算,企业可以大大降低IT成本。尽管如此,许多公司并不愿意这么做,这主要是因为对安全问题的纠结。最近一项研究[2]调查了17个国家的500高级主管和IT经理,发现尽管可能获利,主管们信任现有内部系统甚于云系统,原因是担心数据安全受到威胁和失去对数据和系统的控制。最高度的关注问题之一就是对保密性的侵犯可能。或偶然或恶意,云服务提供商的雇员可能篡改或者泄露企业数据。这种行为会严重损害公司的名誉和财务。

为了防止泄密,云服务的用户可能会采取加密的方式。虽然在存储到提供商那之前加密可以有效的保护数据,但若数据需要用于计算,那么解密后的数据在运算过程中都要驻留在内存里,所以对服务来说,加密是不可取的。在IaaS云服务中,例如亚马逊的EC2,服务提供商根据客户需求提供虚拟机,客户可以在虚拟机上进行任何运算操作。在这些系统中,任何有访问特权的人都可以读取或者操作用户的数据,因此,用户无法靠自己保护自己的虚拟机。

云服务提供商正在作出很大努力,以保证他们系统安全,减少内部攻击的威胁,加强客户的信任。例如,他们保护和限制使用硬件设施,采取严格的问责制度和审计制度,减少对系统关键组件[8]具有访问权限的人员数量。不过,在提供商后台管理软件系统的内部人士,依然有技术手段可以访问客户的虚拟机。因此,对保证保密性和完整性计算的技术解决方案有了很清晰的需求,客户们也在某种程度上证明了这一需求。

传统的可信计算平台,例如Terra[4],采取了一个令人信服的方式来处理这个问题。例如,Terra能够防止物理主机的所有者的探测和干扰。Terra还提供了远程认证功能,实现了远程检查确定主机是否在安全地进行运算(工作)。这个机制可以可靠地检测出主机是否在执行远程方信任的程序。这个平台可以有效地保证在单个主机上运行的虚拟机的安全。但是,许多供应商的数据中心运行的机器有数百台,而客户的虚拟机可能动态地调度运行在这些机器中的任何一个。这种后端的复杂性和不透明性造成了传统信任平台无法处理的漏洞。

本文提出了一个可信云计算平台(TCCP),以保证外包给IaaS服务的计算的保密性和完整性。TCCP为客户虚拟机提供一个抽象的封闭的执行环境,保证云供应商的特权管理员也不能检查或者篡改其内容。此外,在要求服务器启动虚拟机前,TCCP允许客户远程地可靠确认服务后台是否在运行可信的TCCP任务。这个能力将认证的概念扩大到整个服务,从而使客户核实他的计算是否安全地运行。

本文说明了如何利用卡新计算技术的进步来设计TCCP。第二节介绍了那些技术,并描述了一个IaaS服务体系。第三节介绍TCCP设计。虽然我们还没有一个TCCP工作模型,但设计已经很详细了,我们深信在此基础上的得到一个解决方案是很有可能的。

2. 背景

2.1 基础设施即服务(IaaS)

今天,无数的云服务提供商提供了在不同层的软件服务。在较底层,基础设施即服务(IaaS),例如亚马逊,Flexiscale和GoGrid让客户获得供应商搭建的整个虚拟机。客户和系统用户负责提供虚拟机内运行的所有软件。较高层是软件即服务(SaaS)系统,如Google 在线应用服务提供比能被用户直接运行的更完整的在线应用。

对于基于上层的软件栈来说,保证运算的保密性的难度增加了,因为提供的服务和运行的软件都直接操作用户的数据(如Google文件)。本文则关注下层IaaS云服务提供商,那里的客户虚拟机更容易管理

因为IaaS服务的关键内部组成的细节很少为人所知,我们描述了(基于我们的建议)Eucalyptus[6],一个提供了类似EC2界面的开源的IaaS平台。图1介绍了非常简化的Eucalyptus构架。此系统管理一个或多个运行针对客户虚拟主机的虚拟机监视器(比如Xen)的集群节点。Eucalyptus包含一套管理集群节点的组件。为简单起见,我们的描述将这些组件聚合到一个单一的云管理器(CM)上,CM控制一个单独集群。想要了解详情,我们推

荐阅读参考文

献[6]。

从用户的角度来看,Eucalyptus提供了一个启动、管理和终止虚拟机的Web服务接口。虚拟机从一个下载自CM的虚拟机镜像中启动。一旦启动了虚拟机,用户可以通过使用如SSH的常用工具登录。除了每个用户的界面,CM还提供可以用来执行管理任务的服务,比如增加和删除虚拟机镜像或用户。Xen支持实时迁移,允许虚拟机正在运行时转换物理主机,在某种程度上这对用户是透明的。这种迁移对资源整合和集群内负载均衡时很有用的。

2.2 攻击模式

拥有后台控制权限的云提供商的系统管理员为了访问用户虚拟机的内存,可以犯下很多攻击罪行。拥有每台机器的root权限,系统管理员可以安装或者运行各种软件来执行攻击。例如,如果后端使用的是Xen,Xen访问控制[7]允许系统管理员在Dom0运行用户级进程,而Dom0在运行时可直接访问虚拟机内存的内容。此外,因为可以直接从物理上访问机器,系统管理员可以完成诸如冷启动甚至篡改硬件等更加精妙的攻击。

目前的IaaS供应商,我们可以合理的认为没有单个人积累了所有这些权限。此外,供应商们已经采用了严格的安全设备,限制访问控制策略,保障硬件物理安全的监督机制。因此,我们假设,通过强制执行安全范围限制,供应商本身可以防止需要物理访问机器才能进行的攻击。

不过,系统管理员需要集群机组的特权权限,以管理其运行的软件。由于我们无法确切的知道目前IaaS提供者的实践,我们假设在我们的攻击模式中,系统管理员可以在任何地点用root权限远程登录任何一台机器。系统管理员获得运行着用户虚拟机的结点的物理访问权限的唯一途径,就是通过将这台虚拟机转移到他控制下的位于IaaS安全范围之外的

机器上。因此,TCCP必须能够1)限制VM运行于安全范围之内;2)保证在任何时候,拥有root权限的系统管理员远程登录到运行着VM的主机时不能访问系统内存。

2.3 可信计算

可信计算组(TCG)[10]提出了受信任平台建设的硬件和软件技术。特别地,TCG提出了一个设计可信平台模块(TPM)的芯片的标准,现在已经捆绑在硬件产品上了。TPM包含一个被认可的刻意唯一标识TPM(指物理主机)的私人密钥(EK),以及一些不能修改的加密了的功能。相应的制造商签署相应的公共密钥,以保证芯片的正确性和密钥的有效性。

可信平台[1,4,5,9]优化了TPM芯片的功能,使其支持远程认证。机制工作如下:在启动时,主机计算一个包含一系列开机所涉及的软件的hash值的度量列表ML,即BIOS,引导程序,软件执行平台。ML安全地存储在主机的TPM中。为了向平台证明自己,远程端向

运行在主机上的平台发送一个随机数。平台要求本地TPM创建一个包含ML和的

消息,并用TPM的私钥EK加密。主机将信息发送到远程端,远程端可以用与私钥EK对应的公钥解密,从而验证主机。通过检查随机数匹配和ML符合其信任的结构,远程端能够在不受信任的主机上可靠地识别可信平台。

像Terra这样的可信平台实现了强制封闭运行环境轻量级VMM,即对主机有完全权限的用户也不能检查或者修改用户VM。VMM在机器重启之前都保证自身的完整性。因此,远程方可以向主机上运行的平台证明自己,以检验可信的WMM程序在运行,从而保证在用户VM上进行的运算是安全的。

鉴于传统的可信平台可以保证在单个主机上运算的安全,一个保护IaaS服务的自然的方法就是在服务后端的每一个结点都部署这样的平台(见图1)。但是,这种方法是不够的:系统管理员可以在VM启动时(通过操纵CM)或者VM运行时(通过迁移)将用户的VM 移动到未运行这种平台的结点上。因此,平台认证机制无法保证远程方获得的ML与VM运行于(或者将要运行于)的主机的实际情况相符。因此,TCCP需要提供远程认证,来保证后端平台的安全属性不变。

3.可信的云计算平台

我们目前的可信云计算平台(TCCP)通过将信任平台的概念延伸至整个IaaS后端,来提供封闭的运行环境。TCCP保证了用户VM的保密性和完整性,并允许用户预先确定IaaS 是否强制执行这些属性。下一节对TCCP进行概述,3.2节提出了详细设计。

3.1 概述

TCCP增强了目前IaaS的后端,使得封闭环境(封装箱)语义的结构基本不改变(图2)。基于TCCP的可信计算包括两个部分:可信虚拟机监视器(TVMM)和可信协调员(TC)。

每一个后端节点都运行一个监控用户虚拟机的TVMM,防止特权用户的检查和修改。TVMM随时都保证自己的完整性,并参照TCCP协议。节点中嵌入经认证的TPM芯片,并必须通过安全的启动过程来安装到TVMM中。由于篇幅限制,我们不打算讨论TVMM的设计细节,我们推荐文献[5]中的结构,该结构能很好地构建一个能强制实现排斥恶意系统管理员的本地封闭箱的TVMM。

TC管理可以安全运行用户虚拟机的结点设置。我们称这些节点为可信节点。要成为可信的,节点必须位于安全范围内,并且运行有TVMM。为了满足这些条件,TC包含了位于安全范围内的节点记录,并向节点平台证明节点正在运行可信的TVMM程序。TC能与发生的事件(如在集群中增加或移除节点,为了维护或升级而临时关闭节点)相结合。用户可以通过向TC求证来验证IaaS服务是否安全地进行他的运算。

为了保护虚拟机,每一个节点上运行的TVMM与TC协作,以1)限制虚拟机在可信节点上运行,2)防止虚拟机在网络中迁移时被检查或者修改。需要这些保护的关键时刻包括启动和迁移VM。为了保护这些操作,TCCP指定了几个协议(见3.2节)。由于篇幅限制,我们不讨论其他的关键操作,例如Xen许可的挂起和恢复。

我们假设一个外部信任实体(ETE)承载TC,并且安全地更新提供给TC的关于IaaS 范围内的节点设置的信息,以及可信的设施配置。更重要的是,管理IaaS的系统管理员没有ETE的权限,英雌就无法篡改TC。我们设想,ETE应该由与IaaS提供商有很少或者没有利益关系的第三方来维持,例如,由独立的公司像V eriSign这样的证书颁发机构。

3.2 详细设计

在这一节中,我们详细介绍TCCP的主要相关机制。我们在3.2.1节介绍管理可信平台的节点设置的协议,3.3.3节介绍保护虚拟机管理的操作,即启动和迁移虚拟机的协议。在

这些协议中,我们使用下面的符号来代表加密操作。表示非对称加密的私钥-公钥对,符号表示数据y是用密钥加密的。我们用特殊符来表示下面的项:表示

证书认证密钥,表示受信密钥,表示会话密钥。随机数是用x唯一标识,用来检测消息重放。

3.2.1 节点管理

TC通过维持直接牵制,动态地管理承载VM的可信节点的布置,对于在安全范围内的每个节点,证书公钥标识了节点的TPM,和预期的度量列表。ETE让TC的一

些属性安全地对外公开,即、和(标识TC)。和明确了分别向运行在节点N或者TC上的平台求证时,远程方应该检查的规范配置。

为了获得信任,节点必须依据图3所示的协议向登记。在步骤1和2,N向TC求证以

避免TC是由攻击者假扮的。N向TC发送challenge,TC回应经过加密(以证

实TC的证书)的他的启动引导列表。如果与预期结构相符,这表示TC是

可信的。相对地,TC也同样通过在消息2中回送一个challeng求证N,并且校验节

点是否可信,是否正在运行预期的配置(步骤3)。节点产生一个密钥对,

并且发送它的公钥给TC。如果双方的求证都成功了,那么TC将加入数据库,并且发送消息4来确认信任该节点。密钥保证节点N是被信任的。

在信任节点重启的时候,TCCP必须保证节点的配置依然是值得信赖的,否则该节点将危及TCCP的安全。为了确保这一点,节点仅仅将保存在内存中,导致机器重启时密

钥就丢失了。这样节点就被TCCP拒绝,因为它将无法对用以前的密钥加密的消息进行解密,那么就必须重新履行登记协议。

3.2.2 虚拟机管理

我们给出保护VM启动和迁移操作的协议。当启动虚拟机时,TCCP必须保证1)VM 在可信节点上启动的,2)隔断了用户和承载VM的节点之间的路径,使得系统管理员无法检测或篡改VM的初始状态。VM的初始状态α包含VM镜像(VMI)(可以是私人的,包含秘密数据)和用户的公钥(用户SSH登录)。【注:在当前的IaaS服务中,用户的公钥是在启动虚拟机时注入的。注入多个密钥或者其他恶意软件是可能的攻击方式】在实践中,用户可以决定使用IaaS提供的虚拟机镜像。

为了达到这些要求,涉及到启动虚拟机的人员必须遵守如图4所示的协议。协议设计基于这样一个事实:在启动VM前,用户不知道VM将被指派到哪个物理节点,并且,在服务的组件中,只相信TC。首先,用户产生一个会话密钥,并发送消息1给CM。消息1中包含用会话密钥加密了的α和α的哈希值(为保护初始状态的机密性和完整性),以

及用加密了的。用TC的公钥加密会话密钥保证了只有TC可以批准对α的访

问,而TC仅会批准受信节点。

当接收到启动一个虚拟机的请求,CM从集群中指派一个结点N来承接VM,然后将请求转发给N。因为节点需要访问α才能启动VM,它发送消息2给(为了N的利益而加密

了的)TC。这个消息用加密,所以TC可以验证N是否是可信的。如果相应的公钥没有在TC的可信节点数据库中找到,请求将被拒绝。这有可能是CM转发了由恶意系统管理员控制的节点的请求。否则,该节点被认为是可信的;TC加密会话密钥,并在小心3中发送给结点,这样只有N可以获取密钥。N现在已经可以解密α,并且启动VM。最后,节点发送包含运行VM的标识的消息4给用户。

在实时迁移[3]中,正在运行的VM的状态在两个节点中传输:源节点Ns和目的节点Nd。为了保护这个操作,两个节点都必须是被信任的,而且VM状态在网络传输过程中必须是保密的和未被修改的。图4显示了与安全迁移VM有关的消息的顺序。在步骤1和2,

Ns要求TC校验Nd是否是可信的。在消息3中,Ns与Nd协商一个会话密钥,将用户保护VM状态的传输。在接受密钥前,Nd首先验证Ns是可信的(步骤4和5)。如果双方结点互相认证成功,Nd确认接收会话密钥,并且,在消息7中,Ns最终传输经加密的VM状态及其哈希值给Nd,以确保VM的保密性和完整性。

4.结论和展望

在本文中,我们认为,数据和计算的保密性和完整性是企业对云计算的主要担心。我们提出了可信云计算平台(TCCP)设计,使诸如亚马逊EC2的IaaS服务提供封闭运行环境。TCCP保证用户虚拟机的保密运行,允许用户向IaaS提供商求证和确认服务是安全的,才启动他们的虚拟机前。我们计划在不久的将来,在我们设计的基础上实现一个功能完全的原型,并评价他的表现。

参考文献略

相关主题
文本预览
相关文档 最新文档