1000-9825/2005/16(10)1790 ?2005 Journal of Software 软 件 学 报 Vol.16, No.10
【安全生产】面向点对点的
安全可靠存储系统
xxxx年xx月xx日
xxxxxxxx集团企业有限公司
Please enter your company's name and contentv
面向点对点的安全可靠存储系统
陈 明+, 杨广文, 刘学铮, 史树明, 王鼎兴 (清华大学 计算机科学与技术系,北京 100084)
P2P-Oriented Secure Reliable Storage System
CHEN Ming+, YANG Guang-Wen, LIU Xue-Zheng, SHI Shu-Ming, WANG Ding-Xing
(Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China) + Corresponding author: Phn: +86-10-62799645, E-mail: cm01@mails.tsinghua.edu.cn, http://
Received 2004-02-10; Accepted 2004-12-08
Chen M, Yang GW, Liu XZ, Shi SM, Wang DX. P2P-Oriented secure reliable storage system.
Journal of Software, 2005,16(10):17901797. DOI: 10.1360/jos161790
Abstract: This paper proposes a cooperative secure reliable storage system depending on pure P2P and supporting self-repair. Participant nodes of this system form an overlay by Paramecium protocol, which maintains the organization of system and provides routing service, or other compatible distributed hash table (DHT) protocols. The PKI authentication mechanism is introduced to ensure security in an open environment. Binding user data with replica identifiers supports secure auto-repair. The introduction of replica types provides secure sharing-write. Preliminary analysis and experiments demonstrate that it maintains a high reliability and read/write performance in real settings while keeping the cost of maintenance bandwidth low.
? Supported by the National High-Tech Research and Development Plan of China under Grant No.2002AA104580 (国家高技术研究发
展计划(863)); the National Natural Science Foundation of China under Grant Nos.90412006, 60273007, 60373004, 60373005 (国家自然科学基金)
作者简介: 陈明(1978-),男,广西玉林人,博士生,主要研究领域为对等网络,网格,分布式系统;杨广文(1963-),男,博士,副教
授,CCF高级会员,主要研究领域为并行/高性能计算,网格;刘学铮(1978-),男,博士生,主要研究领域为对等网络,网格,模式识别; 史树明(1976-),男,博士,主要研究领域为对等网络,网格;王鼎兴(1937-),男,博士,教授,博士生导师,主要研究领域为并行/分布处理计算机系统.
1792
Journal of Software 软件学报 2005,16(10)
Key words: P2P (peer-to-peer); high salability; secure reliable storage system
摘 要: 利用P2P的方法实现了一个共享和合作的安全存储系统,其中参与节点运行Paramecium协议或其他兼容的DHT(distributed hash table)协议形成自组织覆盖层,维护系统的组织结构和提供路由服务.由于该系统为开放式结构,引入了基于PKI的安全认证机制以确保用户数据的授权访问.用户数据和副本标示的绑定支持了安全的数据自修复;副本类型的引入提供了安全的共享写.初步的分析和实验表明,该P2P系统在现实条件下,在消耗较低的维护带宽的同时维持了较高的可靠性并提供了较好的读写性能. 关键词: 对等网络;高伸缩性;安全可靠存储系统 中图法分类号: TP393 文献标识码: A
伴随计算机科学和技术的发展,个人计算机的性能依循莫尔定律(每隔18个月翻一番)快速地发展着.存储和网络带宽的发展速度超越了莫尔定律.现代个人计算机的能力已经大大超过了20年前的超级计算机.这两个趋势的发展使得构造基于P2P的存储系统成为可能.研究表明,大多数时候,个人PC的利用率不到10%.目前,维护存储系统正常和持续性地工作成为存储的主要成本.基于P2P的存储系统有助于减少维护的开销.
P2P强调的是对等服务,不区分服务器和客户端.每个节点在索取其他节点服务的同时,也与其他节点相配合提供相同的服务.它是一种扁平而不是层次化的结构,每个参与节点的地位都相等.
基于以上现状,我们提出了一个基于P2P的共享和合作的安全存储系统:CSS(corporative secure storage),尝试利用P2P优点解决现存的存储问题.CSS由连接到Internet的节点构成.每个节点向系统贡献一部分存储空间,相互协作形成一个全局高可靠的完全平面的分布式存储系统.
本文第1节描述CSS的系统结构.第2节分析系统的可靠性和维护开销,实验讨论系统的性能.第3节讨论相关的工作.第4节总结全文.
1 系统架构
CSS由参与到这个系统的并且运行CSS协议的联网节点构成.每个参与节点都向系统贡献一部分本地磁盘空间.在CSS协议的作用下,贡献出来的磁盘空间构成一个全局统一的存储系统.在CSS协议的上层看来,CSS提供了类似本地文件系统的存储和目录服务.但在实现中,所有的持续性存储都由CSS协议保存到这个全局统一的
存储系统中.从这一点上看,CSS类似传统的分布式存储系统或文件系统.CSS区别于这些传统系统之处在于:(1) CSS中没有中央服务器,所有的参与节点都是平等的;(2) CSS不需要管理员配置系统.在CSS系统中,我们不信赖除了本地节点外的其他任何节点,我们只信赖本地节点和整个系统.考虑到P2P环境高度的动态性,本系统不企图构造一个文件系统,而是试图设计一个与实际运行环境相适应的存储系统和弱目录系统.
我们首先简单介绍CSS的基础Paramecium覆盖层.需要指出的是,我们的系统也可以建立在其他DHT(distributed hash table)之上,例如CAN[1],Chord[2],Pastry[3]和Tapastry[4]等,我们认为,建立在Paramecium[5]会具有更好的稳定性和路由性能.Paramecium简介之后是CSS的详细设计. 1.1 Paramecium:完全自组织、无中央服务器的P2P的自组织和路由覆盖层
Paramecium是一个高效、可扩展、容错和自组织的P2P的覆盖层.Paramecium的每个节点被赋予一个160位的数字ID——NodeId.每个要存储的对象(可以是任何数据:文件、数字等)也有一个160位的数字ID——Key.NodeId空间和Key空间是同一个数字空间,并且都首尾相接(0和2160
1)形成一个环.Paramecium提
出细胞的概念.每个细胞由二元组[左边界,右边界]来标识,称为细胞的疆界.例如:假定ID为6位二进制长, [111000,111100]和[110000,001000]都是细胞标识的例子,其中后者是一个首尾结合的例子.细胞相互不包含和不重叠;细胞疆界的并集覆盖整个NodeId空间.给定一个Key,Paramecium可以高效、分布式地找到这样一个节点:这个节点所在的细胞包含这个Key,并且这个节点的NodeId和这个Key最接近.
Paramecium向上层提供以下API:
Join(BootNodeIP):通过BootNode将本节点带入Paramecium系统.
LookupNode(ID):在系统中查找一个节点,这个节点所在的细胞包含这个给定的ID,并且这个节点的ID和这个给定的ID的绝对值之差在这个细胞里的所有的节点中是最小的.
Insert(Key,Object):将具有Key的Object存入系统中,保存这个对象的驻留节点是LookupNode(Key)返回的结果.
LookupObject(Key):在系统中查找并返回与Key匹配的对象.
假定系统中有N个节点,每个细胞中包含S个节点,那么在正常情况下,整个路由的复杂度平均为O(1)+
O(logN/S)=O(logN/S).
1794
Journal of Software 软件学报 2005,16(10)
Paramecium的一个关键设计就是在面临节点加入和离开的情况下维护系统的结构不变、路由性能不变. 1.2 CSS系统
回顾上一节我们知道,Paramecium向上层提供了在全局中插入对象和查找对象这两个基本操作.其中,它的对象指的是可序列化的任意结构.在存储部分,我们把对象替换为“文件”.因此,每个文件都由一个ID作为标识符.文件是基本的存储单位. 1.2.1 CSS安全协议
我们假定系统中的每个用户都有一个证书和对应的私钥.这个证书不必是受信赖的机构(CA)所颁发的.系统中的每个文件(本文中的“文件”泛指通常意义下的“文件”和“目录”)都有一个所有者.所有者使用私钥对文件进行签名,并把它附在文件后来表示对文件的所有权.所有者在取回文件时也可以用附在文件后的签名来验证其完整性.
在签署用户证书的时候,系统使用安全的随机数发生器生成r个随机数,将其作为证书的附加部分一起使用标准的PKI[6]协议进行签署.这种证书和普通的证书完全兼容.系统在计算根证书的散列时,依次把这r个随机数附加到证书之后再计算散列值,由此可得到对应的r个散列值.下面提到的证书的散列值都是指这r个散列值的集合.
每个文件由两部分构成:用户数据和元数据.用户数据可以是明文也可以是密文.用户数据的类型不影响系统的运作.元数据部分包括文件所有者的证书、这个副本的随机数和对应的签名、这份用户数据的所有副本的随机数和对应签名的二元组的集合.元数据中包括所有者证书有助于文件的驻留节点验证文件的所有者,从而决定是否要覆盖原官方文件.同时,由于证书的内容很少,也不会造成过多的空间浪费.当用户向系统中插入一个文件的时候,系统也自动产生r(系统要求的副本的个数)个随机数.系统依次将这r个随机数附加到用户数据和用户证书的后面,然后使用用户的私钥对此进行签名,从而等到对应的r个签名.随机数对应的签名构成二元组,所有二元组进而形成二元组向量.所有副本的二元组向量都相同.每个副本依次选取二元组向量中的一个元素作为该副本的随机数和签名二元组.对包括用户数据和元数据的整个副本计算其安全散列的值得到这个副本的ID,称为副本ID.一个文件所有副本ID的集合称为文件IDs.同一个文件的所有副本相互间称为兄弟副本(如图1所示).
驻留节点在响应保存一个副本的请求时要求被保存的副本必须满足以下两个条件中的任意一个:(1) 副本的