随着越来越多的企业使用公共云和混合云部署,同时越来越多的敏感数据被存储在云服务厂商(CSP)的环境中,因此企业也在不断地积极寻求更好的方法来保护他们在云中的信息。当然,企业所采用的最普遍的控制措施之一就是他们已经习惯于使用的方法:加密。
在云中对数据进行加密意味着数据拥有两种状态:传输状态和存储状态。
Amazon公司的简单存储服务(S3)是目前***的云存储服务之一,它能够整合Amazon公司其他的云功能和产品。它还提供了多种加密功能,企业用户可以使用这个功能用于保护存储在S3环境中的敏感数据。
本文介绍了S3中所提供的加密类型,以及使用这些功能的相关方法。此外,我们将把Amazon S3所提供加密方法与其他云厂商的同类产品进行比较,并总结出几条在S3或其他云存储环境中使用加密技术的要点。
Amazon S3加密概述:如何确保Amazon云数据安全性
Amazon S3加密简析
在云中对数据进行加密意味着数据拥有两种状态:传输状态和存储状态。首先,为了在Amazon环境中对用于发送和接收的数据进行加密,S3允许用户通过HTTPS协议进行连接。这是云厂商们所提供的一个相当标准的选项,所有的云厂商都需要支持基于SSL加密技术的连接以便于保护在传输过程中的敏感数据。
保护存储状态的数据则是另一个问题了;很少有公共云厂商会提供加密功能的支持。Amazon公司实际上向S3用户提供了两种加密方法以保护存储状态的数据。其中较简单的一个方法是服务器端加密(SSE),该方法允许Amazon在它的基础设施中管理加密密钥。SSE所采用的高级加密标准(AES)使用了256位的密钥,这被认为是一个安全的密钥长度。Amazon会使用一个唯一的密钥对每个S3对象进行加密,然后使用一个主密钥来对这个唯一的密钥进行加密,而这个主密钥是定期更换的(通常至少为每月一次)。
针对一个特定S3对象建立SSE是可选的,它也可在单个对象水平轻松建立。有一个“一刀切“的政策要求所有发送至S3的数据都必须进行加密处理。具体示例如下:
{ "Version":"2013-05-17", "Id":"PutObjPolicy", "Statement":[{ "Sid":"DenyUnEncryptedObjectUploads", "Effect":"Deny", "Principal":{ "AWS":"*" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::SensitiveBucket/*", "Condition":{ "StringNotEquals":{ "s3:x-amz-server-side-encryption":"AES256" } } } ] } |
为了成功地把任何数据发送至这个S3中,要求必须包括有“x-amz-server-side-encryption”这样的文件头信息。可通过Amazon公司基于REST的API以及使用Amazon的软件开发包(SDK)(其中也包括了可实现相同功能的API)完成开发工作。客户也可通过标准Amazon网络服务管理控制台委托实现SSE功能。在2013年五月,Amaozn宣布该公司的Elastic MapReduce大数据分析服务正式使用了S3 SSE。
在S3中对存储状态数据进行加密的第二个选择是用户使用Amazon公司提供的客户端加密工具来创建和管理他们自己的密钥。采用这种方法意味着在把数据发送至S3之前就已经完成了数据加密工作。客户端加密可使用Amazon公司的Java SDK进行部署,尤其是S3加密客户端,它使用了一个被称为“信封加密”的方法。客户端创建一个一次性使用的对称加密密钥来对数据进行加密;然后使用用户自己的密钥来对这个密钥进行加密。然后这个被加密的“信封密钥”与加密数据被一起上传至S3,其中密钥作为元数据也被存储在S3中。
云厂商加密的比较
我们已经详细介绍了Amazon S3中所提供的加密功能,但是这些加密功能与其他云存储厂商所提供的加密功能相比,孰优孰劣呢?很多云存储厂商都坚持遵循了相同的加密标准,但其中大部分都没有达到Amazon S3加密那种程度的灵活性。例如,Rackspace在它的云备份产品中提供了服务器端256位的加密功能,而Dropbox和SpiderOak也都提供了256位的AES加密功能。SpiderOak则稍有不同,它总是使用客户端加密方法(也被称为零知识的安全性)而不是更为传统的服务器端加密方法。
其他大部分的主要云厂商们(其中包括了Verizon Terremark和Savvis)也向他们的云存储客户们提供了数据加密功能。Terremark为备份和冗余业务提供了自动加密功能,为托管平台与数据提供了多种托管和协管加密功能,在其CloudSwitch混合云中提供了客户自我管理的加密产品。Savvis在它的云存储加密功能中使用了SafeNet,向客户公开了密钥管理和API集成。
对于比较不同云厂商加密功能的企业来说,这里有几点需要考虑:
确定所有的云加密选项都尽可能支持基于标准的加密方法和***的密钥长度/强度(AES-256是行业标准)。
确定厂商是否提供了访问加密功能的API,因为这可能是软件即服务(SaaS)和平台即服务(PaaS)环境和应用程序集成的关键要求。
确实厂商是否同时支持服务器端和客户端的密钥管理。虽然在客户端加密方法中密钥管理的责任在客户自己的手中,但是它更适合大部分具备安全意识的企业。如果厂商只支持服务器端的加密方法,那么就必须考虑应如何管理和保护内部密钥。
了解其他可能可用的加密选项,例如Amazon公司于近期推出的CloudHSM服务,该服务使用了一个基于硬件的加密密钥存储设备。在某些应用中,这被证明是更好的选择。
当谈及保护云中数据时,加密功能理所当然地被视为最重要的安全控制措施之一。虽然S3提供了多种加密功能选项,而更多的云存储厂商也在跟风,但是我敢断言这不会持续很长时间。
作者简介:
Dave Shackleford是IANS公司的高级研发副总裁和CTO,SANS分析师、讲师和课程设计师。他已为数百个安全、遵守法规以及网络架构与工程领域的企业提供过咨询服务。 他是VMware vExpert, 在设计和配置安全虚拟化基础设施方面拥有丰富经验。Dave之前是Configuresoft公司的CSO、互联网安全中心的CTO、并曾出任多家财富500强公司的安全架构师、分析师和经理。Dave是Sybex一书的作者,虚拟化安全:保护虚拟环境,Dave最近为SANS研究所合作设计了***个虚拟化安全课程。目前,Dave在SANS技术研究院担任董事一职,并协助领导云安全联盟的亚特兰大分部。