云安全剖析——数据安全之数据加密

对于存储在第三方云平台上的数据在存储设备上以及传输过程中都会变得透明化,要保证数据安全,最基本的措施是使用公钥对云中数据进行加密,接收者使用私钥对加密的内容进行解密。
在多数情况下,云用户希望云服务提供商能为用户数据进行加密,以确保他们的数据无论存储在哪里都会受到保护。同时,云服务提供商也有责任保护云用户数据的安全性。
云计算中的数据所处的状态可以划分静态存储状态、传输状态和处理状态。在这三种状态中,数据都面临着泄露的风险。针对这三种状态,云服务提供商可以分别提供相应的解决方案。

1.静态数据存储

静态的数据表示存在于存储服务中没有必要进行处理的数据,通常以文字、图片和影音文件等形式存储在云平台中。该类静态数据不需要参与运算,仅仅利用云的存储功能,用户对此类数据的关注点是数据的完整性和可用性。因而静态数据能够用密码学加密技术进行保护。
静态数据的加密方案可以使用传统的数据加密方式,但不同的云服务提供商会提供不同的解决方案。比如Amazon的简单存储服务(S3)并不加密用户数据,但是用户可以在上传数据之前自行加密数据。S3会在用户存储数据的时候自动生成一个MD5散列,不需要使用外部工具为数据生成MD5校验,这样可以有效地保证数据的完整性。微软的云存储系统则会辨识用户数据的敏感度,然后再根据数据敏感度划分数据,对比较敏感的数据进行加密。
laaS层数据的机密性、完整性和可用性三个方面是用户对于存储数据关注的核心安全问题,也是云存储安全技术的研究重点。数据的可用性主要是通过元余备份的方式来保证:数据的完整性主要通过访问管理和数据校验等方式进行保证;数据的私密性主要是通过身份验证、访问管理和静态数据加密来保证.静态数据加密可以使用云服务供应商或者第三方软件工具进行。
在PaaS层加密静态数据一般会较复杂,需要提供商提供的或专门定制的设备。在SaaS层加密静态数据是云用户无法直接实施的,需要向云服务提供商提出加密请求。
对于Paas和SaaS模式中基于云的应用程序所使用的静态数据,在许多情况下是不加密的,因为加密数据将导致索引和查询方面的问题。

2.数据加密传输

数据传输安全问题是指如何确保数据在传输过程中的机密性和完整性。为保证数据在传输过程中的安全性,通常采用的方法有两种:

  • 通过传输层安全性实现,主要是使用加密网络通信信道,如使用虚拟专用网络在用户和数据中心节点之间提供安全通道,从而确保传输的数据是安全的;
  • 通过数据层安全性实现,即不对通信信道进行加密,而是对所交换的数据进行加密。在分布式系统中,第二种方法效率更高,很容易实现对公共网络上分发的数据进行加密。

在云环境中数据传输安全问题可分为用户与云平台数据传输时的安全问题和云平台内部数据传输的安全问题。
在使用公有云时,无论使用laaS、PaaS或SaaS,都需要考虑对数据的传输是否已经部署了恰当的加密方式。数据在通过网络传输到云端处理过程中,可以采用能保证数据完整性的传输协议,如安全套接层(SSL)、安全传输层协议(TLS)、点对点隧道协议(PPTP)或虚拟专用网(VPN)等.尽管采用加密数据和使用非安全传输协议的方法也可以达到保密的目的,但无法保证数据的完整性。
比如SalesForce采用SSL3.0和TLS1.0保证数据的传输安全,SSL和TLS在传输层对数据进行加密,防止数据被截取和窃听。SSL和TLS一般用于用户与云系统之间的安全数据通信:或者是不同云系统之间的数据迁移,而云系统内部的安全数据传输方式目前还没有一个比较理想的解决方案。

3.数据加密处理

在云计算环境中,确保数据机密性的方法之一就是将所有数据在传送到云端前进行加密。然而,该方法面临的一个重要问题就是加密限制了数据的使用,除了存储和检索数据,信息系统需要执行更复杂的操作。对加密后的数据而言,高效执行上述操作目前基本上是不可能的。
可喜的是,密码学家已引入一些新技术来解决与处理加密相关的问题,这使得它可以做到在操作时加密数据。这样的操作将会被云服务提供商作为一种服务提供给用户使用,而不需要用户先对加密数据进行解密,然后再进行计算。

(1)同态加密

采用此方法加密的数据可以直接进行计算。同态加密系统具有部分同态和全同态两种类型。
部分同态是指密码系统只使用加法或乘法对明文进行计算,如RSA算法,部分同态加密系统的主要优点是,它比全同态加密系统更有效。
全同态加密是指允许密码系统使用加法和乘法对明文进行计算。在不受信任的环境中,全同态加密是完美的技术,全同态加密机制可使用户的数据在其整个生命周期都处于加密状态,减少了数据泄露的概率。
全同态加密是密码学上一大进步,虽然在理论上解决了处理加密数据的难题,但是在实际使用中还有许多问题没有解决,需要进一步研究与发展。比如待解决的问题之一是海量计算需求。如果在一个简单的明文搜索中应用同态加密技术,将使得运算量增加上万亿倍。

(2)可检索的加密

尽管传统的加密技术可以确保存储在云中数据的保密性和完整性,但是具有一定的局限性,如无法搜索存储过程中的加密数据,云用户搜索自己存储在云端的数据有两种基本解决方案,方案一是下载全部数据,然后在客户端将其解密,但该解决方案具有较高的通信复杂性;方案二是在客户端保留可搜索的索引,但随着时间的推移,索引数据可能会变得过于庞大。
如果具备可检索的加密技术,云用户可以使用可搜索的加密进行编码搜索查询,并将其发送给云服务提供商。云服务提供商将执行此加密的搜索查询,并返回与搜索查询匹配的信息,而无须了解被搜索的数据是什么。
可检索的加密技术主要有对称检索加密和非对称加密检索两类。每一种方法都有其特定的应用场景。例如,当用户所检索数据的创建者就是其本人时,可以使用对称加密检索。此时,用户需要发送一个包含某关键字的令牌,服务提供者将返回包含此关键字的加密文档。此外,云服务提供商对数据一无所知,除非他知道该令牌;当用户所检索数据的创建者不是其本人时,可以使用非对称加密检索技术。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿⾥巴巴⼤数据之路 阿⾥巴巴⼤数据之路——数据技术篇 数据技术篇 ⼀、整体架构 ⼀、整体架构      从下⾄上依次分为数据采集层、数据计算层、数据服务层、数据应⽤层    数据采集层:以DataX为代表的数据同步⼯具和同步中⼼    数据计算层:以MaxComputer为代表的离线数据存储和计算平台    数据服务层:以RDS为代表的数据库服务(接⼝或者视图形式的数据服务)    数据应⽤层:包含流量分析平台等数据应⽤⼯具 ⼆、数据采集(离线数据同步) ⼆、数据采集(离线数据同步)   数据采集主要分为⽇志采集和数据库采集。⽇志采集暂略(参考书籍原⽂)。我们主要运⽤的是数据库采集(数据库同步)。   通常情况下,我们需要规定原业务系统表增加两个字段:创建时间、更新时间(或者⾄少⼀个字段:更新时间)   数据同步主要可以分为三⼤类:直连同步、数据⽂件同步、数据库⽇志解析同步   1.直连同步     通过规范好的接⼝和动态连接库的⽅式直接连接业务库,例如通过ODBC/JDBC进⾏直连     当然直接连接业务库的话会对业务库产⽣较⼤压⼒,如果有主备策略可以从备库进⾏抽取,此⽅式不适合直接从业务库到数仓的情景   2.数据⽂件同步     从源系统⽣成数据⽂本⽂件,利⽤FTP等传输⽅式传输⾄⽬标系统,完成数据的同步     为了防⽌丢包等情况,⼀般会附加⼀个校验⽂件 ,校验⽂件包含数据量、⽂件⼤⼩等信息     为了安全起见还可以加密压缩传输,到⽬标库再解压解密,提⾼安全性   3.数据库⽇志同步     主流数据库都⽀持⽇志⽂件进⾏数据恢复(⽇志信息丰富,格式稳定),例如Oracle的归档⽇志   (数据库相关⽇志介绍,参考:)    4.阿⾥数据仓库同步⽅式     1)批量数据同步     要实现各种各样数据源与数仓的数据同步,需要实现数据的统⼀,统⼀的⽅式是将所有数据类型都转化为中间状态,也就是字符串类型。以此来实现数据格式的统⼀。     产品——阿⾥DataX:多⽅向⾼⾃由度异构数据交换服务产品,产品解决的主要问题:实现跨平台的、跨数据库、不同系统之间的数据同步及交互。     产品简介:     开源地址:     更多的介绍将会通过新开随笔进⾏介绍!(当然还有其他主流的数据同步⼯具例如kettle等!)     2)实时数据同步     实时数据同步强调的是实时性,基本原理是通过数据库的⽇志(MySQL的bin-log,Oracle的归档⽇志等)实现数据的增量同步传输。     产品——阿⾥TimeTunnel(简称TT)。TT产品本质是⼀个⽣产者、消费者模型的消息中间件     3)常见问题       1.增量数据与全量数据的合并         主要的场景是数据同步中周期全量同步,对应的解决⽅案是每次只同步变更的数据,然后和上⼀周期合并,形成最新的全量数据(选择此⽅案的原因是绝⼤多 数⼤数据平台不⽀持update操作)         具体的⽅案主要有union的联合操作(可以通过⽣成增量中间表detal)与阿⾥主推的全外连接full outer join+全量覆盖insert overwrite的形式。实例参考如下: SQL的Join语法有很多, inner join(等值连接) 只返回两个表中联结字段相等的⾏, left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录, right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录, 假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所⽰: A表 id name 1 Pirate 2 Monkey 3 Ninja 4 Spaghetti B表 id name 1 Rutabaga 2 Pirate 3 Darth Vade 4 Ninja 让我们看看不同JOIN的不同。 FULL [OUTER] JOIN (1) SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name TableA.name = TableB.name 的情况,A和B的交集有两条数据,那么 FULL OUTER JOIN的结果集, 应该是2+2+2=6条,即上⾯的交集,再加剩下的四条数据,没有匹配,以null补全。 结果集 (TableA.) (TableB.) id name id name 1 Pirate 2 Pirate 2 Monkey null null 3 Ninja 4 Ninja 4 Spaghetti null null null null 1 Rutabag

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值