云计算网络中的安全机制.docx
《云计算网络中的安全机制.docx》由会员分享,可在线阅读,更多相关《云计算网络中的安全机制.docx(7页珍藏版)》请在冰豆网上搜索。
云计算网络中的安全机制
丘文标曾志群严炎吴英华1
(1.广东省电信规划设计院,广东广州510630)
摘要:
本文简单介绍了云计算的相关概念及其发展历程,简要分析了云计算的三层构架。
并在分析其构架的基础上,针对底层IaaS的安全提出了一个解决方案。
关键词:
云计算;IaaS
中图分类号:
TN914文献标识码:
A
1.引言
云计算是虚拟化、分布式应用程序设计、网格计算和企业IT管理技术演化的产物,是一个技术上的集大成者。
它使得应用程序的部署具有更高的灵活性,同时,也使应用程序不受规模的限制,能自我扩展,具有高度的敏捷性。
云计算的这些特性,来源于它综合性的创新。
它结合虚拟化、分布式并行处理和网格计算等技术优点,形成能将各种资源虚拟化、服务化的接口技术。
通过这种技术,云计算将各种资源集中,以非常高效的方式统一管理分配,然后再以服务接口的形式提供给客户。
这种方式,给互联网的商业模式带来了革命性的创新。
首先,它将计算能力作为一种可量化的服务,向各种客户动态提供。
这是一种在全社会集中分配计算资源的方式,能最大限度地使用资源。
其次,云计算的虚拟技术,使得应用程序的部署不必依赖于具体的硬件平台。
利用这种提供计算能力服务和虚拟平台的基础架构,各服务提供商将巨大的系统池连接在一起提供各种IT服务,用户可以在任何地方通过连接的设备访问应用程序。
2.云计算的体系架构及其安全问题
2.1云计算的发展历程
从技术的角度来看,云计算称不上是革命性的发展。
它是数据处理技术需求不断提升的结果,是在分布式处理、并行处理和网格计算等技术基础上演化而来的。
网格是云计算发展最初的模型。
上世纪80年代末,大量的科学计算催生了网格计算的概念。
网格计算的重点是集中分散的小型设备的计算资源,然后再将巨大的运算工作负载转移到这些资源上,以获得能匹配,甚至是超越大型机的运算能力。
云计算在这方面继承了网格的特性。
所以,早期的云计算,主要是提供公共计算服务。
上世纪90年代,虚拟技术的日趋成熟,使得虚拟化的概念扩展到了云计算中。
结合虚拟特性,云计算在提供公共计算服务的基础上,提供了更高层的抽象服务。
首先是虚拟平台,而后又是虚拟应用程序。
公用计算将集群作为虚拟平台,采用可计量的业务模型进行计算。
进入本世纪后,在虚拟平台和虚拟应用程序的基础上,云计算逐步形成了现今的,以IaaS(InfrastructureasaService,IaaS)、PaaS(PlatformasaService,PaaS)和SaaS(SoftwareasaService,SaaS)为基础的三层构架。
如下图所示。
图一云计算三层构架
2.2云计算的安全问题
正如上图所示,位于最底层的基础设备即服务(IaaS)是三层构架中的最底层,是上层服务依赖的重要接口层。
IaaS服务的提供商允许客户访问在他们提供的设备上运行的虚拟机(以下简称VM)。
比如Amazon,Flexiscale和GoGrid。
在IaaS的高层,运行着SaaS服务。
比如说GoogleApps。
因此,IaaS层的安全,直接关系到云的安全!
其重要性不言而喻。
然而,在早期的云计算中,IaaS的安全性长期得不到保障。
其中,最为严重的一个问题就是数据的安全性。
云服务提供方的员工,通常拥有在运行VM的基础设备上读取VM内存的权限,这使得他们能随意读取和改写客户的数据。
这给客户信息的安全造成了巨大的威胁。
为了保护客户数据的安全,云服务提供商或许会寄希望于给数据简单加密的方式来解决。
加密对于存储的静态数据是非常高效的,然而,这种方式却并不能应用到IaaS的安全机制中。
因为设备处理器处理的是直接的数据,所以内存中必须存放解密后的数据。
这些裸露的数据在最后的运行时刻依然得不到保护。
传统的安全解决方案是采取强制的方式。
比如,阻止物理设备的拥有者察看和打断云中的计算(云计算中的虚拟机是分布在不定的设备上的),同时,还提供远程验证主机是否安全的能力。
这种验证机制能有效确保虚VM在一台设备上安全运行。
然而,这种机制却不具有可扩展性。
因为大多数的服务提供商通常会在成千上万台机器上运行VM,VM会被动态地分布到不确定的设备上运行。
在这种情况下,是没法确定运行VM的具体的机器的。
因而,这种方法依旧保证不了云计算中数据的安全。
本文提出的可信任的云计算平台,正为了致力于解决运行在IaaS服务上数据的安全问题。
2.3可能的攻击模型
云计算服务提供商的系统管理员通常都具有后台访问客户VM内存的权限,这使得数据的安全受到极大的威胁。
拥有系统权限的管理员,可以安装或执行任何软件作为攻击手段,来窃取或是恶意修改客户数据。
另外,有些提供商的管理员能在物理上接触设备,这致使他们能通过物理手段来实施一些攻击,比如说服务器的冷启动攻击,或是直接破坏硬件设备等。
当然,现今的IaaS提供商已经加强了访问权限和设备的管理。
现在,物理上的攻击威胁已基本上可以消除。
这也正是本文接下来讨论的解决方案的一大假设前提——如果抛开这个前提,那任何基于算法的安全讨论都是枉然的。
然而,系统的管理员因管理的需要,还拥有访问的特权,允许在VM上的用户数据,依旧面临着不安全因素。
3.构架安全的云计算网络
在上一节分析已经指出,我们假设所有的系统管理员,只能通过远程的方式访问。
因此,他们唯一可能访问用户VM的方式是重定向VM的运行设备,将VM转移到IaaS提供的安全范围外,然后再做攻击。
因此,构架安全的云计算网络,必须限定VM的执行范围和限制管理员远程访问运行有VM机器的内存。
3.1设备平台的信任验证
信任计算组(TrustedComputingGroup,TCG)提出了一个设计信任平台模块(TrustedPlatformModule,TPM)芯片的标准,并将这个模块跟厂家的设备绑定在一起。
这个模块包含着能唯一标志本模块的私钥和一些不可修改的加密函数。
信任平台就是利用TPM秘钥的一些特性来实现远程认证的。
其实现过程如下:
在启动阶段,主机计算一个在启动时设计到的软件或设备等信息的Hash值,称为。
这个被安全放在TPM里。
为了验证平台,一个远程节点会发送一个带有现时信息值的数据包。
平台收到这个包后,从TPM中取出,并跟一起用TPM的私钥进行加密。
然后将这个数据包发送回远程节点。
远程节点用对应的公钥进行解密,得到和,然后通过跟配置里的值进行比较,进而检验所验节点是否可信。
3.2可信任的云计算平台
可信任的云计算平台(TrustedCloudComputingPlatform,TCCP)是在扩展信任平台的基础上实现的。
它保证了用户VM的机密性和完整性。
TCCP由两个部分组成,分别是受信的虚拟机监测器(TrustedVirtualMachineMonitor,TVMM)和受信的协调者(TrustedCoordinator,TC)。
每个运行VM的节点终端上,都运行着TVMM,以阻止非法用户查看和修改VM数据。
TVMM通过TCCP协议,保护着数据的完整性。
为了保护VM,每一个运行在节点上的TVMM都要跟TC合作,将VM限制在被允许的信任的节点上,来保护VM的状态在网络中传输的时候不被查看到。
有两种需要这种保护的操作,一种是VM的启动,另一种是VM的转移。
这两个操作都会带来节点的变化,为了防止非法节点的闯入,TCCP规定了具体的交换协议。
3.3TCCP协议
TCCP协议主要是管理可信任平台的信用节点集合,严格控制每一个新节点的加入和VM在节点上的转移变化,以保证VM的安全运行。
协议对节点的管理有节点注册管理,VM启动管理,以及VM转移管理。
在这个协议里,为了方便说明节点之间的通讯,本文采用了下列的标记符号。
表示非对称加密方式的私钥和公钥。
表示y用加密。
表示凭证密钥,表示受信密钥,表示会话密钥。
是一个由x产生的唯一标志数字,在收到回复的时候用于监测这个回复是否属于自己的。
一、节点注册
为了获得信任,一个节点首先必须按照下图的协议流程,向TC进行注册,加入信任集合。
注册流程如下:
图二节点注册流程
Step1:
节点N发送一个自己的给TC;
Step2:
TC以用公钥加密的回应,并附上自己的;
Step3:
节点N接收到后,将跟配置文件的期待值对比。
如果匹配,则说明这个TC是可信任的,并生成一个密钥对,然后把自己的公钥发给TC。
Step4:
如果验证成功,TC则将加入数据库,并发送一个给节点N,表示此节点已经加入受信任组。
二、VM启动
当一个启动VM时,TCCP协议必须保证启动这个VM的节点是受信的,同时,还必须保证此VM的初始状态中其传输过程中是不能被系统管理员是所查看到或是修改的。
初始状态用表示,其包含了VM镜像和用户的公钥等信息。
在启动VM之前,用户是不知道VM将要分配给哪个节点的。
用户只信任TC。
VM的启动流程如下图所示:
图三VM的启动过程
Step1:
用户首先生成一个会话钥,然后再发送消息到云控制器CM上。
消息的内容有。
其中和的hash值用会话钥加密,并将会话钥用TC的公钥加密发送给TC。
用TC的公钥给会话钥加密可以保证其他人获得不了。
Step2:
收到用户启动VM的请求后,CM从簇里分配一个节点来运行VM,并把这个请求转送给N节点。
N节点需要访问来启动VM,但它此刻对用加密的无法解密。
所以它发送一个消息2给TC,让TC用它的公钥解密。
为了保证这个请求在传输过程中的安全,节点N用密钥给这个请求加了密。
内容为。
Step3:
TC收到N节点转发的请求后,首先判断N节点是否可信。
如果N不可信则拒绝。
否则用自己的公钥将会话钥解密,并将此秘钥发送给节点N。
Step4:
节点N用TC返回的会话钥对用户发送的请求进行解密,进而获得,从而启动VM。
最后节点N再将包含有节点ID信息的消息发送给用户,完成用户启动VM的请求。
三、VM转移
在VM转移的生命周期中,运行中的VM状态在源节点和目的节点之间转移。
为了保护这个操作,必须保证这两个节点都是被信用的,VM的状态中传输的过程中也必须保持机密和不可修改。
VM在两节点和间的转移过程如下图所示:
图四VM转移过程
Step1~Step2:
向TC请求检查是否可信。
TC检查成功后,将节点的公钥发送给。
Step3:
获得节点的公钥后,产生一个会话钥,并用节点的公钥加密此会话钥,发送给节点。
Step4~Step5:
在获得节点的请求后,转而向TC请求检查是否可信。
TC检查成功后,将节点的公钥发送给。
Step6:
获得TC返回的的公钥后,对解密以获得的会话钥。
并用此会话钥加密,发送给。
Step7:
相互验证成功后,将包含VM镜像和用户公钥等信息的及其hash值,在经过会话钥加密后发送给。
获得的镜像信息后,便可启动VM。
4.结论
本文以上探讨了企业在实施应用云计算过程中对数据或是计算的机密性和完整性的担忧,并设计出了一个套解决方案TCCP。
这个方案使得IaaS的提供商,比如AmazonEC2,能够给他们的用户提供一个封闭的执行环境。
TCCP给用户提供了检测IaaS提供的服务是否安全的能力,使用户在云计算网络中能更加有力地保护其数据的安全。
参考文献:
[1].C.Clark,K.Fraser,S.Hand,J.G.Hansen,E.Jul,C.Limpach,I.Pratt,andA.Warfield.Livemigrationofvirtualmachines.InProc.ofNSDI’05,CA,USA,2005.USENIXAssociation..
[2].DavidChappell.AShortInToCloudPlatforms,August2008.
[3].NunoSantos,KrishnaP