随着云计算的全新概念在互联网中引发轩然大波,互联网安全领域中通过云计算技术也开始了全新的变革。相对于传统的数据安全技术,云计算下的数据安全仿佛更加先进但同时也更具争议。那么究竟传统数据安全和云计算下的数据安全谁利谁弊?云计算下的数据安全保护是否能够全面替代传统技术呢?
传统数据安全
1.传统数据分类
一般情况下,我们依据“动”和“静”将数据分为存储的数据和传输中的数据。
所谓“静”即数据在存储,为了保护数据的安全,可以将数据依据安全需求的等级进行不同的存储保护;
所谓“动”即数据在传输的过程中,此时需要关注的不仅是需要保护的数据,还有数据流通的传输链路。
2.数据的安全
对于存储中的数据,需要依据数据的重要性和机密性级别,设计数据存储的方式,并且针对数据级别设计数据的备份及恢复策略,当然,还会对数据存储的数据库和服务器进行良好的访问控制,对服务器存储机房进行物理访问控制,这样才能真正保护存储数据的安全。
对于传输中的数据,我们会依据数据的重要性不同,进行不同级别的保护。如传输用户名密码等重要信息时,会采用加密的技术,而在采用加密技术时,也会依据不同的需求采取不同的加密措施;在路由信息等都需要进行保护时,会采用链路加密技术,在只需要保护净荷值时,可以采用端到端加密技术等;在传输大量采集信息时,可能会设计编码格式,使传输高效且安全。
云计算中的数据安全
无论使用IaaS、PaaS还是SaaS这三种模型中的任何一种,数据安全都较以往而言更为重要。
因此,我们需要对云中的数据安全进行浅析;虽然云计算是新兴的事物,但是对于其中的数据安全,我们可以试着用传统的C.I.A(即:Confidentiality机密性、Integrity完整性及Availability可用性)三性进行剖析,来看看云计算中的数据安全。
1.传输数据
对于传输数据,在使用公共云时,无论使用IaaS、PaaS还是SaaS,都需要考虑对数据的传输是不是已经部署了恰当的加密方式。
对于传输数据,首先需要确保的是机密性,即使用一定的加密程序,比如vanilla,或直接使用FTP协议和HTTP协议等情况;当然,对传输数据,尤其在互联网上传输数据,要确保的不只是机密性,还需要考虑完整性,比如是否使用SSL上的FTP协议(即FTPS);是否使用HTTPS协议;是否使用安全拷贝程序(SCP)等。
2.存储数据
依照以往的思维,我们会认为对于存储数据进行加密是很必要的,但是其实在云中,事实并非如此。
如果你使用IaaS云服务做一些简单存储的服务,那么无论使用的是公共云还是私有云都可以进行加密;但是如果使用PaaS或者SaaS,使用其基于云的应用,那么加密就不一定可行了,因为加密会导致索引和检索的不便,导致上层部署机制的不可行,影响可用性,因此,此时存储的数据并不应该加密。
一般来说,使用基于云的应用存储数据时会将数据与其他数据进行混合,比如Google BigTable(下文会稍作介绍),而且应用也会设计一些数据安全特征,比如数据标签等来防止未授权的访问,但是通过攻击应用的弱点等方法仍然可以达到未授权访问。
另外,在云中进行的数据处理过程,数据也是同样不能加密的。
3.数据举例
前文提到的Google BigTable:分布式结构化数据表
BigTable是Google开发的基于GFS和Chubby的分布式存储系统,Google的很多数据,包括Web索引、卫星图像数据等在内的海量结构化和半结构化的数据,都是存储在BigTable中的。
BigTable是一个分布式多维映射表,表中数据通过一个行关键字(Row Key)、一个列关键字(Column Key)一级一个时间戳(Time Stamp)进行索引的。BigTable的存储逻辑可以表示为:
(row:string, column:string, time:int64) -> string
很明显,对于BigTable进行索引时不能使用因为数据加密等原因而造成索引的失效。
4.数据加密新技术
由于云中存储数据为海量数据,因此加密过程会一定程度上影响处理的效率,对此各不同的云服务提供商均依据自己的情况对数据安全部署了不同的控制措施,比如,分析加密点部署的位置,是在终端原点还是在存储服务器,另外,还需要考虑使用加密算法的速度是否能赶上磁盘I/O的速度等等。
由于加密和解密数据或文件十分消耗资源,因此现在有新的技术应蕴而生。
比如数据着色(data coloring)技术和云水印(cloud watermarking),都是针对云计算而发明的数据加密技术。通过对数据进行不同的着色,对云打上水印,从而达到数据加密的效果,而又不会很耗费资源。
5.C.I.A分析
从传输数据和存储数据的方向分析了数据的机密性、可用性和完整性后,现在直接对C.I.A三性进行下分析。
ü Confidentiality机密性
在公共云中,机密性需要从两方面进行考虑。
一是通过认证和授权的访问控制来保护数据;但是对于云来说,控制的粒度较粗,而且一般云服务提供商也会使用较弱的认证机制。对于访问控制的问题将在后续的学习中详细描述,本文略。
二是存储的数据如何真正的进行保存,当然包括数据如何加密。用户可能希望知道,他们的数据在云中是怎么加密的呢?用的什么加密算法?密钥有多长?其实这些不是他们能够决定的,主要还是取决于云服务提供商。比如,EMC的MozyEnterprise使用加密技术加密用户数据,但是AWS的S3却并不对任何用户数据进行加密。
在选择加密措施试图保护数据安全时,必须考虑云服务提供商能够提供的加密算法、能够提供使用的密钥长度,还有其对于密钥的管理机制。
ü Integrity完整性
刚刚我们讨论了云中数据的机密性保护,现在看看完整性如何保护。
首先,进行数据完整性的保护不能依赖加密算法了,而是使用加密认证码(MAC),最简单的方法是对已加密的数据使用MAC值进行完整性校验。
另外,数据完整性的重要点,尤其是在大容量存储的IaaS中,是一旦用户拥有几个G甚至更多的数据在云中存储时,用户如何检查数据完整性?IaaS传输开销是与移动的数据相关的,一个用户如果想验证其存储在云中的数据的完整性,如何不需要下载数据?这是云中数据安全的一个要点,由于云中的数据是动态的且经常改变,因此也就是的传统的完整性检查技术无计可施。
目前,业界已经开始提出对大容量数据的完整性校验提出了对动态存储数据校验的新的思路。
ü Availability可用性
机密性和完整性讨论过后,我们来看看数据可用性。
首先用户要明确自己选择的云服务提供商能够提供什么样的服务,寻找真正适合自己的服务。
当然数据的可用性肯定会受到来自互联网络的攻击,需要云服务提供商进行一定的数据安全部署。
最后也是最重要的,真正的可用性其实是由云服务提供商的自身能力决定的,比如2008年7月,Amazon的S3遭受了长达8小时的资源耗尽导致的服务停止;2009年2月,Coghead公司突然倒闭,只给用户90天时间来将数据迁移出。
因此可用性的考虑,最重要的是对云服务提供商的考虑。
【编辑推荐】