摘 要:自从2007年云计算被提出后,云计算一直是计算机网络技术领域研究的热点。云计算基础设施使公司按需外包计算资源以削减成本。这种运营模式使得应用软件和数据库转移到了大型数据中心,然而,数据中所提供的数据和服务的管理不足以完全信任。带来了许多新的安全挑战。在本文中,我们主要研究云中数据存储的安全性,这也一直是提供服务质量保证最重要的方面。为了确保在云中用户数据的私密性和完整性,同时支持动态数据操作,如修改,插入和删除,我们提出了一个安全存储的框架,其中包括加密存储机制和数据结构的设计。
关键词:云计算;存储;安全架构
背景 网络技术的发展以及计算资源的需求增加促使许多组织外包他们的存储和计算资源。这种新的经济和计算模式被普遍称为云计算。云计算包括各类服务,如:架构作为服务(Infrastructure as a Service, Iaas),该种服务表现为客户使用云服务提供商的计算架构,存储架构或者网络基础架构;平台的基础设施作为服务(Platform as a Service, Pass),客户利用云服务提供应商的资源来运行自定义应用程序和;软件作为服务(Software as a Service,saas),客户在云服务提供商的基础设施上运行软件。 问题描述 云数据存储体系架构如图1所示。主要有三方面:客户端的Alice想把她的数据存储在云服务提供商,另一个客户端Bob是Alice的合作伙伴,Alice想要与Bob共享数据,以及存储Alice的数据云存储提供商。使用这种服务,Alice开始通过下载一个客户端应用程序,包括数据处理器,数据验证器和令牌发生器。第一次执行后,Alice的应用程序生成一个加密密钥。我们将把此密钥作为主密钥,并假设它存在Alice的本地系统中,当然云存储服务提供商不知道该密钥。
图1 无论什么时候Alice希望将数据上传到云端,数据处理器将被调用。数据处理器将对一些元数据(例如,当前时间,大小,关键字等)和数据进行加密和编码。当Alice想验证她所存储的数据的完整性,数据验证器将被调用。后者使用Alice的主密钥与云存储服务供应商进行交互,并确保数据的完整性。当Alice要检索数据(例如,想要查找文件中包含关键字“urgent”),这时令牌生成器将被调用,以创建一个令牌。接下来将令牌发送到云存储服务提供商,云存储服务提供商使用它来检索相应的文件(加密),并把结果返回给Alice,Alice在收到返回的加密文件以后,使用解密密钥解密文件。Alice和Bob之间的数据共享以相同的方式进行。每当Bob希望分享Alice的数据,应用程序调用Alice的令牌生成器创建适当的令牌,然后将令牌发送给Bob,Bob需要向云存储服务提供商出示令牌。后者在确认令牌有效的情况下,使用该令牌进行检索并返回相应的加密文件。 架构设计 Alice是一个云计算的客户,她拥有数据处理器,利用数据处理器将数据进行处理然后再发送到云存储服务提供商。为了确保Alice存储在云端数据的安全,我们设计了一套数据加密架构。数据加密后,Alice将密文信息发送到云存储服务提供商,使得供应商无法获取信息的具体内容即明文信息。Alice拥有主密钥,只有她才能解密密文,得到的明文数据。 数据加密设计 基本机制 Alice想要加密拥有W1,W2,……,Wn字符序列的文档。我们可以随机的产生一组伪随机序列,然后将其与明文文档进行按位异或(XOR)运算,得到的信息不会暴漏任何明文内容。 更具体地说,这样描述: Alice使用伪随机数发生器产生的伪随机值序列值S1,S2,……,Sn,其中每个Si的长度为l-k比特。要加密一个长度为l比特的字符Wi,Alice利用所产生的伪随机数Si,执行Ti=(Si,, Fki(Si)),输出密文Ci=Wi⊕Ti。需要指出的是,只有Alice可以生成伪随机序列T1,T2,……,Tn,所以没有人可以解密。当然,加密可以在线完成。 密钥ki的选择非常灵活。其中一种可能在加密文档每个字符过程中使用相同的密钥k。另一种方法是加密文档的每个字符时选择独立的密钥ki。更普遍的是,对于每一个字符,Alice可以(a)要么选择ki与之前的kj (j < i)相同,或(b)选择ki独立于之前所有的密钥。 该基本机制所支持的密文搜索方式:如果Alice想搜索字符W,她可以告诉云存储服务提供商W和相应的ki。然后云存储服务提供商通过在密文搜索并检查Ci⊕W是否符合(s,Fki(s))的形式。 最优机制 与上一节定义相同,区别在于Alice用她的主密钥加密文件,针对每个字符,我们得到的加密密文E(Wi)。然后利用该密文与伪随机序列按位异或输出密文。 预先加密每个字符Wi,并获得相应的加密密文E(Wi)=(Li,Ri)。该密文分为两部分,其中Li 长度为 l-k字节,Ri 的长度为 k字节。要想解密密文内容,Alice使用伪随机序列发生器(Alice知道种子)可以生成Si,利用Si,可以通过Si与Ci前l-k位按位异或恢复Li。最后,利用Li,Alice可以计算ki从而完成解密过程。 在Wi不被加密的情况下,上一节所述的机制是不安全的,因为它可能在某些情况下很可能不同的字符有相同的前l-k字节。该机制使用的预加密将彻底解决这一问题,因为Li不同的概率将非常高。事实上,我们也可以看到,这种机制还保证了查询隔离,这意味着,即使当一个ki透露,也不会有多余的信息被泄露。 在该方案中,Alice保持主密钥,函数F和伪随机序列发生器的种子。云存储服务提供商存储数据对(E(Wi),Ci)。所以,云存储服务提供商根本不知道任何关于明文的信息。 数据结构 在我们的框架中,我们选择二进制堆[8]作为云存储服务提供商的数据存储结构。 二进制堆是使用二进制树创建的一个堆数据结构。可以看做简单的二叉树,但是拥有两个额外的限制条件:(a) 形状属性:例如一颗完整的树,也就是说树的各层除了最后一层(或树最深处)以外都被填满。而且,如果树的最后一层是不完整的,该层的节点左到右填满;(b) 堆属性:每个节点的值大于或等于子节点的值。 我们主要关心的是云存储服务提供商如何快速执行动态操作。通过使用二进制堆,我们可以很容易地做插入,删除和修改等操作。 执行堆插入操作,我们可以在O(lgn)时间内完成,具体步骤如下:(a) 将所要插入的元素置于堆底部;(b) 比较所插入元素与其父节点的大小关系,如果满足堆条件,停止;(c) 如果不满足堆条件,交换插入元素与其父节点,返回(b)操作。 结论和未来工作 在本文中,我们介绍了在云存储服务提供商不可信的情况下,保证客户数据存储安全的完整框架。该框架包括数据加密架构以及快速动态查询的数据存储结构。该框架支持隐藏搜索和提供查询隔离等服务。能够完全满足云存储服务质量的三个重要目标:保密性,完整性和快速动态操作。我们将会做更多的理论分析,以证明该数据加密的体系结构的安全性,这样我们的框架将能扩展到更大规模的数据存储。 作者简介:王良炯(1967-)湖南长沙人,女,汉族,高级培训师、工程师,研究方向:医院信息化建设与发展
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。