云计算关键技术的探讨
扫描二维码
随时随地手机看文章
摘要:云计算(cloud computing)中涉及了分布式处理、并行处理和网格计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术。本文从云计算的体系架构和服务角度出发,对云计算中实现的访问控制管理、数据管理和虚拟化功能所使用加密算法和虚拟化等关键技术,用计算机和网络知识分析了这些技术存在的问题,提出了需要改进的方向。
关键词:云计算;云计算系统架构;云计算服务模式;数据技术;虚拟化技术
随着数据技术和互联网技术的急速发展,特别是Web2.0的发展,互联网上的数据量高速增长,导致了互联网数据处理能力的相对不足,同时用户对数据安全技术和互联网技术也有了更高层次的需求。但是互联网上同样存在着大量处于闲置状态的计算设备和存储资源,以及拥有强大技术力量的团队,如果将这些闲置的资源和技术团队聚合起来统一调度,提供所需的服务,则可以大大提高设备和技术的利用率,让更多的用户从中受益,由此云计算因运而生了。
1 云计算
云计算(cloud computing)是一种基于Internet的计算模式,是分布式处理、并行处理和网格计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展的融合产物。在云计算中,存储和运算将不再运行在本地计算机或服务器中,而是运行在分布于Internet上的大量计算机上。云计算把原来由个人计算机和私有数据中心执行的任务,转移给分布在Internet上由全体用户共享的大型计算中心来完成。云计算提供商提供计算机硬件、软件等计算资源的共享以及这些资源的安装、配置与维护等服务,用户使用终端与“云”连接,按自己的需求进行运算。
所谓的“云”是指分布在Intemet中的形形色色的计算中心,“云”包含了成千上万甚至几十万台计算机或服务器。用户不需要具有一定的计算机技术和购买高性能的硬件,以及购买或开发各种功能的软件,只是使用任何可以上网的设备,与“云”连接,利用“云”提供的软件或服务,直接在“云”上处理并存储数据。云计算的应用模式如图1所示。
2 云计算体系架构和云计算服务
云计算体系架构可以分为3层,从下到上依次是基础管理层、应用接口层和访问层。基础管理层的主要功能是实现了资源的共享,应用接口层的主要功能是对外提供各种服务,访问层的主要功能是采用云计算方式实现的一些具体化应用。
云计算中有3种服务模式:基础设施即服务IaaS,平台即服务PaaS和软件即服务SaaS。云计算的体系架构与云计算服务的关系如图2所示。
1)基础设施即服务IaaS。IaaS为用户提供的是底层的、接近于直接操作硬件资源的服务接口,通过网络以标准化服务的形式提供基本存储和计算能力,使用非常自由灵活,几乎不受逻辑上的限制。IaaS的商业示例如Joyent,其主要产品是按需提供高度可用的一系列虚拟化服务器等基础设施。
2)平台即服务PaaS。PaaS是为用户提供API(应用编程接口)的,客户通过API使用该平台,将自己所开发和运营的应用托管到云平台中,但是,这个应用的开发和部署必须遵守该平台特定的规则和限制,如语言、编程框架、数据存储模型。PaaS的商业示例如Google的GAE,它在Google的基础设施上提供应用程序服务。
3)软件即服务SaaS。SaaS以服务的形式提供一整套应用软件,该软件的单个实例运行于云上,通过浏览器把程序传给成千上万的用户。 SaaS在人力资源管理程序和ERP中比较常用。
3 云计算关键技术问题
3.1 访问控制管理
在云计算模式下,研究者关心的是如何通过非传统访问控制类手段,实施数据对象的访问控制。其中得到关注最多的是基于密码学方法实现访问控制,其中包括:基于层次密钥生成与分配策略实施访问控制的方法;利用基于属性的加密算法(如密钥规则的基于属性加密方案(KP—ABE),密文规则的基于属性加密方案(CP-ABE)),基于代理重加密的方法:以及在用户密钥或密文中嵌入访问控制树的方法等。基于密码类方案面临着权限撤销问题。这是一个基本方案,是为密钥设置失效时间,每隔一定时间,用户从认证中心更新私钥。上述方法在带有时间或约束的授权、权限受限委托等方面仍存在有待解决的问题。
3.2 有关数据安全技术问题
3.2.1 数据传输技术
在网络上进行数据传输,需要保证数据的保密性。如果数据的传输采用加密算法(SSL算法),就很容易保证数据传输的安全。
另外,利用Internet传输数据,还应该保证数据的完整性。如果采用非安全传输协议,很容易做到保证数据的完整性。目前存在的问题是,采用加密数据和使用非安全传输协议也可以达到保密的目的,但是,怎样更好的解决数据的完整性问题,有待于进一步的研究和探讨。
特别要注意的是,在网络上进行数据处理时,数据已经由加密状态变成解密状态,此时如何保证数据的保密性,这也是云计算数据安全技术需要解决的问题。
3.2.2 密文的检索技术
数据加密后失去了许多其他特性,导致大多数数据分析方法失效。密文检索有两种典型的方法:一种是基于安全索引的方法。这种方法是为密文关键词建立安全索引,检索查询索引的关键词是否存在;另一种是基于密文扫描的方法,这种方法是对密文中每个单词进行比对,确认关键词是否存在,以及统计其出现的次数。由于某些场景(如发送加密邮件)需要支持非属主用户的检索,Boneh等人提出支持其他用户公开检索的方案。
密文处理研究主要集中在同态加密算法设计上。早在二十世纪八十年代,有人提出多种加法同态或乘法同态算法,但是由于被证明安全性存在缺陷,后续工作基本处于停顿状态。而近期,IBM研究员Gentry利用“理想格(ideal lattice)“的数学对象构造隐私同态(privacy homomrphism)算法,或称全同态加密,使人们可以充分地操作加密状态的数据,在理论上取得了一定突破,使相关研究重新得到研究者的关注,但目前研究的结果与实用化仍存在一定的距离。
3.2.3 数据存储技术
为了满足云计算的分布式存储方式、同时保证数据可靠性和高吞吐率以及高传输率的需求。目前各云计算提供商采用GFS或HDFS的数据存储技术。
GFS是一个管理大型分布式数据密集型计算的可扩展的分布式文件系统。它使用廉价的商用硬件搭建系统并向大量用户提供高性能的容错服务。
GFS系统由一个Master和大量块服务器构成。Master存放文件系统的所有元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等。GFS把文件切分为64MB的块进行存储。
在GFS文件系统中,采用冗余存储的方式来保证数据的可靠性。每份数据在系统中保存3个以上的备份。为了保证数据的一致性,对于数据的所有修改需要在所有的备份上进行,并用版本号的方式来确保所有备份处于一致的状态。
由于客户端不通过Master读取数据,避免了Master成为系统瓶颈。客户端从Master获取目标数据块的位置信息后,直接和块服务器交互进行读操作。
GFS将写操作控制信号和数据流分开,即客户端在获取Master的写授权后,将数据传输给所有的数据副本,在所有的数据副本都收到修改的数据后,客户端才发出写请求控制信号。在所有的数据副本更新完数据后,由主副本向客户端发出写操作完成控制信号。目前,如何保证数据的高吞吐率以及高传输率还需要进一步的深入研究。
3.2.4 数据隔离技术
在云计算环境下,数据不再是存放在某个确定的物理节点上,而是由服务商动态提供存储空间,这些空间有可能是现实的,也可能是虚拟的;可能分布在不同国家及区域。因此,需要对磁盘上的数据或数据库中的数据进行加密(静止的数据),这样可以防止恶意的云服务提供商或恶意的邻居“租用户”对数据的破坏。静止数据加密比较复杂,如果只需要简单的存储服务,用户加密数据后发送密文到云数据存储商那里即可。但是对于PaaS或者SaaS应用来说,数据的加密妨碍索引和搜索,还需要研究既适合加密义适合索引和搜索的一种算法。
3.2.5 清除数据残留的技术
数据残留是指数据在被以某种形式擦除后所残留的物理表现。依据这些物理表现,能够使存储介质被擦除后的数据又被重新恢复起来。在云计算环境中,数据残留有可能会无意间泄露敏感信息。因此云计算提供商应向云用户保证其价息所在的存储空间被释放或再分配给其他云用户前得到完全清除,目前需要研究一种能够供云用户对自己使用的空间得到完全清除的鉴定方法。
3.3 虚拟技术
虚拟技术是实现云计算的关键核心技术,正是虚拟技术才使得云计算提供商为其客户有可能提供数据的安全性和数据的隔离。Santhan am等人提出了基于虚拟机技术实现的grid环境下的隔离执行机。Raj等人提出了通过缓存层次可感知的核心分配,以及给予缓存划分的页染色的两种资源管理方法实现性能与安全隔离。这些方法在隔离影响一个VM的缓存接口时是有效的,并整合到一个样例云架构的资源管理(RM)框架中。Wei等人关注了虚拟机映像文件的安全问题,每一个映像文件对应一个客户应用,它们必须具有高完整性,且需要可以安全共享的机制。Wei等人所提出的映像文件管理系统实现了映像文件的访问控制、来源追踪、过滤和扫描等,可以检测和修复安全性违背问题。
在虚拟技术中,云计算提供商需要为客户提供客户端共享和主机共享,不法之徒有可能利用其漏洞对共享设备和文件进行破坏。当主机受到破坏,主机所管理的客户端服务器有可能被攻克。另外当虚拟网络受到破坏,那么客户端也会受到损害。再者如果主机有问题,那么所有的虚拟机都会产生问题。所以,虚拟化技术也有一些需要解决的问题。
在云计算中,虚拟技术的应用有两方面:一是虚拟化软件;另一个虚拟服务器。
3.3.1 虚拟化软件
该软件层直接部署于裸机之上,提供能够创建、运行和销毁虚拟服务器的能力。实现虚拟化的方法有几种,其通过不同层次的抽象来实现相同的结果,如操作系统级虚拟化、全虚拟化或半虚拟化。在IaaS云平台中,云主机的客户不必访问此软件层,由云计算提供商提供服务的。由于虚拟化软件层是保证客户的虚拟机在多租户环境下相互隔离,实现了一台计算机上安全地同时运行多个操作系统,所以必须严格
限制任何未经授权的用户访问虚拟化软件层。云计算提供商应建立必要的安全控制措施,限制对于Hypervisor和其他形式的虚拟化层次的物理和逻辑访问控制。
虚拟化层的完整性和可用性对于保证基于虚拟技术构建的公有云的完整性和可用性是最重要,也是最关键的。一个有漏洞的虚拟化软件会暴露所有的业务域给恶意的入侵者。
3.3.2 虚拟服务器
虚拟服务器位于虚拟化软件之上。安装虚拟服务器时,为每台虚拟服务器分配一个独立的硬盘分区,将各虚拟服务器之间从逻辑上隔离开来。在虚拟服务器系统安装了基于主机的防火墙、杀毒软件、IPS(IDS)以及日志记录和恢复软件,将它们相互隔离,并与其他安全防范措施一起构成多层防范体系。虚拟服务器选择具有TPM安全模块㈣的物理服务器,在启动时检测用户密码,如果发现密码及用户名的Hash序列不对,就不允许启动此虚拟服务器。
每台虚拟服务器之间是通过VLAN和不同的IP网段的方式进行逻辑隔离。对需要相互通信的虚拟服务器之间的网络连接通过VPN的方式来进行。
利用各虚拟机当中的系统日志和防火墙日志,对虚拟服务器的运行状态进行严密的监控,是常用的而且是简单易行的方法。
4 结束语
云计算是一种新兴的计算模式。目前,云计算的应用还处于初步发展阶段,要使云计算能够更好的为广大用户服务,还需要进一步研究访问控制、数据安全以及虚拟化技术方案,其中主要涉及的加密算法和网络虚拟化技术,需要研究出既适合数据检索、数据存储,又适合数据传输、数据隔离的加密算法。随着数据安全技术和虚拟化技术等的成熟,将为云计算的发展提供了良好的基础架构保障。