集群存储系统数据安全研究论文

2021-04-14 论文

  借鉴P2P的思想实现了一个基于集群的安全存储系统,并介绍了构建在该存储体系结构之上的一种数据安全存取方案。引入基于共享鉴别密钥的鉴别机制,以确保用户数据的授权访问,防止未授权用户的阅读和修改。系统采用广泛用于加/解密技术中的SHA-1算法作为密码校验函数,与采用数字签名鉴别机制相比,该算法具有较高的性能。初步分析和实验表明,该系统在现实条件下,在消耗较低的维护带宽的同时维持了较高的可靠性,并提供了较好的读写性能。

  近几年来,基于P2P技术的分布式存储系统[1,2]已经成为一个研究热点。广域网中的分布式文件存储系统能够更好地为用户提供文件存储服务,使用户可以随时随地访问存放在网上的数据,并且能够为文件共享、多用户之间的协作提供支持。基于P2P构建的分布式文件存储系统,一般都是面向广域网提供大规模网络存储服务,利用其分布在广域网上的大量服务器为用户提供安全的、可靠的和高效的存储访问服务。P2P强调的是对等服务,不区分服务器和客户端,每个节点在索取其他节点服务的同时,也与其他节点相配合提供相同的服务,每个参与节点的位置均相等。借鉴P2P技术的思想,采用高速网络将普通PC机相连成一个可扩展集群存储系统方案[3~B6]相对于价格昂贵的大型磁盘阵列,具有极高的性能价格比。

  基于以上现状,本文提出了一个基于集群的安全存储系统设计[3]。在以前的研究工作中[7]解决了集群存储系统的数据容错问题。本文致力于解决集群存储系统的信息安全性问题,保证存储系统中的数据只被合法用户读写。

  1系统架构

  集群存储系统将局域网内单个PC上的存储资源整合成具有统一逻辑视图的高性能存储系统。如图1所示,系统中的存储节点是一台PC机,每个节点运行Linux操作系统,通过局域网将各个节点连接起来,构成一个存储实体,对外提供存储服务。图中LAN1的主要功能是实现节点之间的数据备份和恢复,以及节点的全局管理等;LAN2则起到用户之间进行数据交换的作用。LAN通过高速以太网连接,采用通用的TCP/IP协议通信形成一个集群存储系统。

  在图1的体系结构中,本地主机上装有存储虚拟化的客户端存储代理软件SA(storage agent)。用户的请求由驻留在客户端的这些SA截获,并将请求发送给适当的存储节点。应用程序访问数据对象的步骤如下:a)将用户可理解的数据对象的名字通过一个目录服务器解析为数据对象的惟一标志DOID(data object identification);b)将DOID作为伪随机函数的种子提交给本地客户端存储代理SA,返回数据对象的位置;c)用户直接与选中的存储节点连接,完成数据的读写请求。

  2安全存取机制

  系统数据安全性的增强主要取决于存储在各个节点的数据对象的安全性,只有授权的合法用户有权存取数据。假设用户从密钥对象中得到了对称加密密钥(RC5密钥),安全数据对象包含了足够的信息来保护其所包含数据的保密性和完整性。这就意味着即使恶意用户能够得到存储节点中的所有数据,或是嗅探到所有在网络上传输的数据,仍能够维持数据的保密性和完整性。

  2.1主要数据结构

  系统中主要有三个基本的数据结构,即安全数据对象包括加密的用户数据和元数据;密钥对象与一个或一组文件相关,保存各个用户用于解密文件数据的密钥;认证对象存储在每个存储节点上,用于决定一个特定的用户能否从一个数据对象中写或删除数据。

  1)安全数据对象每个数据对象由两部分组成,即用户数据和元数据,如图2所示。用户数据是加密存储的。元数据包括文件id、用户id、文件相对应密钥文件id。HMAC(hashed message authentication code)字段用于证明数据的完整性和鉴别用户的合法性;IV(初始向量)用于防止相同数据在相同密钥加密时密文相同;timestamp字段用于防止hacker用一个已经存储过的文件来覆盖新的文件。

  2)密钥对象每个密钥对象如图3所示,包括两种类型的信息。密钥对象的头部:key file id是系统中惟一的文件标志;用户标志域(uid)是指出最后一个修改密钥对象的用户。当用户修改了密钥对象后,对整个密钥对象用自己的私钥签名,将结果存放在signature中,这种机制能够防止非授权用户非法修改密钥文件。密钥对象主体信息是一组三元组,包括uid、encrypted key和权限位。Uid不仅可以是一个用户,还可以是几个用户或是一个用户组;encrypted key是一个对称密钥用于加解密文件,由用户的公钥加密;权限位类似于UNIX系统的权限位。一个密钥对象可以不仅仅对应一个文件,也可以是一组文件,这样这组文件都用同样的密钥加/解密。

  3)认证对象每个存储节点包含一个认证对象,如图4所示。存储节点利用认证对象来鉴别用户,作出是否授权该用户的写操作的判断。KeyMAC是一个共享密钥,以密文形式存储,用于HMAC生成及用户与存储节点之间的验证。当存储节点启动时,将认证对象调入内存,keyMAC被解密缓存在内存中。KeyPUB是用户的公钥,存储用户的公钥主要是为方便查找用户的公钥,而不用去求助于一个集中的密钥服务器。时戳字段在一个文件块被写入时更新,用于防止重演攻击。

  uidkeyPUBkeyMACtimestamp

  uidkeyPUBkeyMACtimestamp

  …

  gidkeyPUBkeyMACtimestamp

  2.2鉴别机制

  系统的主要目标是提供鉴别和加密的存储服务。加密和解密由客户端来完成,尽管不容易减少加/解密的时间开销,但是采用对称加密算法时间相对要快一些。目前的主要鉴别方法在安全性和速度上均有差别,最常用的是采用数字签名机制。但是数字签名是一个相对比较慢的操作,对用户和存储节点的CPU有较高的要求。本文提出一种基于密钥的哈希散列方法来保证整个系统的数据完整性。与数字签名方案相比,该方法具有相对较快的鉴别速度。

  如图5所示,在读或写操作时,存储节点需要完成用户身份的鉴别。在本系统中,每个存储节点存有一个认证对象,其中存有各个用户的用户标志、公钥以及由存储节点加密的共享鉴别密钥所得的密文keyMAC和时戳信息。每个用户均与存储节点有一个共享鉴别密钥,这个鉴别密钥仅由用户和存储节点两方知道,用来完成用户身份的鉴别。每当一个新用户加入系统时,可以通过RSA加密机制将用户的鉴别密钥发送到每个存储节点,存储节点在收到加密的密文keyMAC之后,在认证对象中,为该用户添加一行信息。

  在这种方案中并没有采用数字签名机制,而只是在写数据时计算HMAC散列来鉴别写者。HMAC不同于数字签名之处,在于用户端可以验证一个基于密钥的散列也可以创建这个散列。写操作需要客户端加密安全数据对象,并且计算HMAC,然后将这些信息发送给存储节点。存储节点使用存储在认证对象中的共享鉴别密钥重新计算HMAC来鉴别发送者的身份。如果通过鉴别,客户有权修改或创建安全数据对象,存储节点完成写操作,并更新相应的数据结构。注意存储节点并不存储HMAC。如果读数据的用户不是创建这个数据对象的用户,那么需要重新计算一个新的HMAC。

  2.3数据读写过程

  数据的读写过程大致相同,首先用户将与存储节点共享的鉴别密钥私钥提供给客户端,这可以通过要求用户输入密码形式或是鉴别服务器来完成。对于每一个文件,通过文件的放置与定位算法找到相应的.存储节点,完成存储节点鉴别用户的合法性。如果鉴别用户有权对此文件读或写操作,打开文件,获得相应的密钥文件标志,然后去读密钥文件,得到该文件的加/解密密钥。如果是写操作,这个密钥用于加密数据;如果是读操作,用于解密数据。

  2.4数据对象的复制机制

  随着系统规模的扩大,节点失效和磁盘损坏现象不可避免,因此考虑到数据对象的冗余是很有必要的。数据对象标志符DOID由事先定义好的函数,根据文件在其名字空间的全路径和名字空间的标志生成。将数据对象的全局统一标志DOID作为SHA-1算法的输入,产生一个160 bit的消息摘要x;将160 bit的消息摘要x分成五个32 bit伪随机数k1~k5。如果需要更多的随机数,可以将x作为SHA-1算法的输入,产生另外五个32 bit伪随机数k6~k10。假定系统要求的副本数量是k,需要产生三倍于k的伪随机数,再根据这些伪随机数将数据对象散列到不同的磁盘上。产生三倍于k的伪随机数降低了3k个伪随机数全部散列到同一个磁盘的概率。

  2.5数据对象的修复机制

  系统在运行一段时间后,存储在系统中的数据副本可能会因为某些不可预知的原因而丢失或者被损坏,从而降低了存储在系统中数据对象的可靠性。单独使用冗余机制无法有效地提高分布式存储系统中数据存储的可靠性。对于高可靠性的存储系统,设计并实现一个简单而且高效的修复算法相当重要。在分布式文件存储系统中存在三种基本的修复机制,即本地数据维护、被动检测和主动扫描。文献[8]中详细叙述了在OceanStore中如何应用这三种修复机制以及相应的性能分析。

  考虑到系统实现的复杂性及性能,本文设计了简单的数据对象副本修复机制。系统中每个存储节点定期扫描存储在本地的文件元数据信息,并检查在其他副本存储节点上的元数据信息,在多于quorum个(包括quorum)元数据信息中找出具有最大时间戳的元数据信息,并覆盖其他副本。

  3性能分析

  3.1修复算法的可行性

  首先分析修复算法的可行性,包括带宽消耗和文件的可靠性。假定副本的死亡分布服从负指数分布,即Pdeath(t)=1-eλt。其中1/λ是副本的寿命期望。下面是推导过程中用到的其他符号的定义:bandwidth为系统节点的带宽;N为系统的节点数目;F/N是每个节点保存在系统中文件的平均数目;filesize为系统中文件的平均大小;uptime为每个节点每天的平均在线时间;T为系统的修复周期;R为一个文件的副本数。

  假如没有修复,一个文件经过T时间后它存活的可能性为Pliving(1)=1-PRdeath(T)。文件的修复是需要时间的,修复文件所需时间的上界是一个节点修复所有丢失的副本所需的时间,即T2R=(filesize×R)/bandwidth。一个节点进行修复时可能由于下线等原因导致修复失败,可以假定修复在上线期间是均匀进行的,则修复失败的上限为T2r/uptime。如果修复时文件还存活,从这一时刻往前看:如果修复成功,死亡分布的无记忆性,文件将以概率1存活下去;否则,文件以Pliving(T)的概率继续存活。由此可以得到文件存活的递推公式:

  3.2系统的可扩展性分析

  系统所采用的鉴别机制中,在客户端和存储节点执行的操作分工如表1所示。值得一提的是这种方案不需要产生签名或验证签名,而在读和写操作时,存储节点均要计算一次HMAC。因为加密比散列需要更长的时间,存储节点的工作量还不到客户端完成工作量的1/2,这将保证系统能够扩展到更大规模。存储节点的瓶颈主要是在网卡,因为完成散列的操作要比在100 Mbps链路上传送包所花费的时间少得多。

  4结束语

  集群存储是一种网络存储体系结构,本文重点介绍了构建在该存储体系结构上的一种数据安全存取方案。它采用基于共享鉴别密钥的鉴别机制,防止未授权用户的阅读和修改,并且对上层应用透明。系统采用广泛用于加/解密技术中的SHA-1算法作为密码校验函数,与采用数字签名鉴别机制相比,该算法具有较高的性能。系统修复机制能够自动地修复系统中存在错误的数据对象,保证了系统的高可靠性。通过分析推导,证明系统的自动修复机制是可行的。通过比较客户端和存储节点所执行的任务,存储节点的工作量不到客户端的一半,从而保证系统能够扩展到更大规模。

【集群存储系统数据安全研究论文】相关文章:

大数据环境下的数据安全研究论文10-30

云计算环境数据安全研究论文11-03

区域产业集群的识别与选择研究论文10-26

基于产业集群的知识管理研究论文参考05-30

数据库安全技术研究与用法的论文11-07

风险投资业的产业集群机理研究论文04-20

产业集群协同创新效率影响研究论文09-17

数据采集系统设计研究论文10-26

大数据营销创新研究论文11-06