安全分布式文件系统的制作方法

文档序号:7710279阅读:114来源:国知局
专利名称:安全分布式文件系统的制作方法
技术领域
本发明涉及分布式文件系统领域,尤其涉及一种安全分布式文件系统。
背景技术
目前分布式系统才莫型由两种角色组成对象存储i殳备(Object-basedStorage Device, OSD )和元数据服务器(Metadata Server, MDS)。 MDS承担起了文件与OSD的映射,文件与目录的组织关系任务,提供了所有文件系统名字域操作,例如文件查找,文件创建,文件和目录属性处理。从客户端角度去看MDS好似是文件的逻辑窗口 ,而OSD就是文件的物理窗口。当用户对某个文件进行操作,MDS则会映射到OSD, OSD便可与客户端直接文件传送。
MDS允许用户直接访问对象,MDS为用户提供访问该文件所含对象的能力(capability) , OSD在接收到每个请求时将先验证该能力,然后才可以访问。对于分布式文件系统而言,用户的登录,请求,服务器颁发的能力等均为明文传输,很容易被窃听者监听截取,也没有设计抵御重放攻击的功能,用户文件在服务器中采用明文保存,系统无法为用户文件提供有效的安全保障。

发明内容
本发明的目的旨在至少解决现有技术中的上述问题之一。为此,本发明的实施例提出一种安全分布式文件系统,所述系统包括认证服务器、元数据服务器、对象存储设备和客户端,所述认证服务器用于验证客户端的用户身份,并向通过验证的对应用户提供用以请求访问文件的目录票据和第一临时会话密钥;所述元数据服务器根据接收的目录票据和利用所述第 一 临时会话密钥加密的访问请求,向对应用户提供用以请求访问文件的文件票据、头文件和第二临时会话密钥;所述对象存储设备根据接收的文件票据和利用所述第二临时会话密钥加密的访问请求,向对应用户发送文件;客户端利用所述第一临时会话密钥和所述第二临时会话密钥加密对应的访问请求以及通过所述头文件来解密所述密文文件供对应用户读写。
根据本发明进一步的实施例,认证服务器通过匹配登录用户的户名和所述客户端处理的密码MD5值来验证用户身份。
根据本发明进一步的实施例,目录票据和/或所述文件票据由系统密钥加密。
根据本发明进一步的实施例,元数据服务器使用所述第一临时会话密钥解密所述访问请求,以判断是否提供所述文件票据和第二临时会话密钥。所述对象存储设备使用所述第二临时会话密钥解密所述访问请求,以判断是否发送所述密文文件。
根据本发明进一步的实施例,头文件是使用用户口令加密的文件密钥,所述头文件由用户在创建所述密文文件时生成并传输到所述元数据服务器中保存。
根据本发明进一步的实施例,认证服务器还根据用户的请求更新所述MD5值。
根据本发明进一 步的实施例,元数据服务器还根据用户的请求更新所述头文件。
根据本发明进一步的实施例,认证服务器产生新的密钥并通知所述元数据服务器和所述对象存储设备更新所述系统密钥。
根据本发明进一 步的实施例,对象存储设备还利用所述第二临时会话密钥对所述文件进^f于加密。
本发明可以消除网络不可信状态和系统分离性给用户文件带来的威胁,保证用户文件的机密性、完整性、可用性。并能够抵抗中间人攻击,重放攻击,服务器被劫持,暴力破解等对分布式文件系统造成的威胁。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。


本发明的上述和/或附加的方面和优点从下面结合附图对实施例的描
述中将变得明显和容易理解,其中
图1为本发明实施例的安全分布式文件系统的结构图2为本发明实施例的用户密钥更新框架图3为本发明实施例的系统密钥更新框架图4为本发明实施例的安全分布式文件系统的结构总框架图。
具体实施例方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其
能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
参考图1,图1为本发明实施例的安全分布式文件系统的结构图。如图所示,本发明实施例的安全分布式文件系统包括客户端10、认证服务器(AS) 20、元数据服务器(MDS) 30和对象存储设备(OSD) 40。这里,元数据服务器30和对象存储设备40具有如背景技术所述的基本文件系统功能。
认证服务器20用于验证从客户端IO登录该系统的用户C的身份,并向通过验证的对应用户提供(颁发)用以访问元数据服务器30的票据(称作为目录票据TicketM,其中图1中以T表示),以及发送第一临时会话密钥。
然后用户在客户端10使用目录票据T向元数据服务器30请求访问文件,其中访问请求由客户端IO使用认证服务器20提供的第一临时会话密钥加密。元数据服务器30则根据接收的目录票据和访问请求,向对应用户提供(颁发)用以向对象存储设备40请求访问文件的票据(简称文件票据Ticketo,图1中以T,表示)、头文件和第二临时会话密钥。
用户使用文件票据T,和客户端10利用第二临时会话密钥加密的访问请求,向对象存储设备40请求访问对应的文件。对象存储设备40根据接收的文件票据和访问请求,向对应用户发送文件。
上述客户端10与认证服务器20之间的通信交互可以称作为第一阶段;客户端10与元数据服务器30之间的通信交互称作第二阶段,同样地,客户端10与对象存储设备40间的通信交互称为第三阶段。
下面将结合各个阶段涉及的通信流程对这三个阶段给出详细说明。
第一阶段本阶段在客户端输入用户名和密码登陆认证服务器20。认证服务器20验证用户身份后颁发目录票据,允许用户访问元数据服务器30。客户端与元数据服务器30之间通信流程如下
用户启动客户端程序输入用户名和用户密码。客户端程序以安全套接层(Secure Sockets Layer)协议登录认证服务器20,发起会话协商主密钥,然后4巴用户名和对应的密码发给认证服务器20。
在一个实施例中,登录密码可以由用户在注册到文件系统中时,由客户端10利用MD5加密算法进行加密处理。这种情况下,客户端10会将MD5处理的口令发给认证服务器20。在认证服务器20端使用MD5匹酉己,不会向该服务器20暴露用户口令。
认证服务器20端储存有用户注册时保存的用户名以及密码的MD5值。此时,认证服务器20匹配该用户名和密码的MD5值,如果没有匹配结果返回错误。如果存在匹配结果,则返回加密的目录票据(Ticket)和第二
步的临时会话密钥(KcM)等信息,目录票据可以由系统密钥(Kaso)加密。
在一个实施例中,第一临时会话密钥KcM暂时设定为随机数(random)和系统时间(systime)等的哈希值。
在一个实施例中,目录票据中包含第一临时会话密钥KCM、用户的标识符IDC 、用户的IP地址IP和元数据服务器30的IP地址IPM,并且还可以包括用户可以使用该票据访问元数据服务器30的时间值time。即,TicketM = {Kcm, IDC, IP, IPM, time} KAS0。
然后,用户接受目录票据Ticket,并保存在本地以备访问元数据服务器30,它们之间的会话结束。
客户端10与认证服务器20之间会话流程利用参数可以表示如下C — {username + [password] MD5} SSL — ASC — {time, KCM,IPM,TicketM} SSL — AS
TicketM = {Kcm, IDC, IPC, time} KAS0Kcm = [username, random, systime] hash
其中,username表示用户的登录用户名,password表示对应的密码,[password]MD5表示该密码经过MD5处理,会话通过SSL协议传输,以及第一临时会话密钥KcM通过哈希算法(hash)获得。
第二阶段本阶段客户端IO使用目录票据请求访问某文件。元数据服务器30鉴别该用户10是否有权访问该请求文件(访问是否合法)。如果用户有权访问,则颁发文件票据和第二临时会话密钥,允许用户访问该文件。同时发送该文件的头文件(metadata)用于解密所请求的密文文件。客户端10与元数据服务器30之间通信流程如下
用户向认证服务器20颁发的目录票据TicketM中包含的MDS地址IPM,发起访问,并发送目录票据和客户端10利用第一临时会话密钥加密的访问请求。这里,客户端IO对访问请求的加密可以使用数据加密标准(DES)算法。
元数据服务器30利用系统密钥来解密目录票据(TicketM),获得第一临时会话密钥(KCM),解密用户的请求并查找目录。在该分布式文件系统中,系统密钥在系统内的各个服务器之间共享。
元数据服务器30通过对比所请求文件的权P艮,来判断是否允许该用户访问。如果允许,则返回文件票据(Ticket0)、第二临时会话密钥和头文件。元数据服务器30可以使用第一临时会话密钥KCM和DES算法对头文
件进行加密。文件票据可以由系统密钥(Kaso)加密,从而保证传输过程中票据和头文件的安全保密性。
在一个实施例中,文件票据中包含第二临时会话密钥Kco、用户的标识符IDC 、对象存储设备40的IP地址IPC,并且还可以包括用户可以使用该票据访问对象存储设备40的时间值time。即,Ticket。 = {Kco, IDC, IPC,time} KAS0。
在一个实施例中,头文件是l吏用用户口令加密的文件密钥,头文件由客户端IO在用户创建文件时生成并传输到元数据服务器30中保存,元数据服务器30无法解密该头文件。在元数据服务器30端使用加密的头文件保存文件密钥,可以保证文件密钥的安全。
客户端用户利用系统密钥Kaso解密得到文件票据,利用第一临时会话密钥KCM解密可以得到头文件metadata。再使用最初加密头文件的用户口令可解密头文件获得对应的文件密钥,会话结束。
客户端10与元数据服务器30之间会话流程利用参数可以表示如下C — TicketM, {ObjUri, action} KCM — MDS
C — {Ticket0, time, metadata, ObjUri, KCo} Kcm — MDS
Metadata =(文件密钥〉password
Ticket0 = {KCo, IDc, IPc, time, ObjUri, action} KAS0
其中,ObjUri和action表示用户发起的访问请求动作,该请求由第一临时会话密钥Kcm加密,password表示用户对文件密钥加密得到头文件的用户口令。
第三阶段本阶段客户端10用文件票据T,请求访问文件。对象存储设备40把文件发给客户端,客户端10自动解密给用户读写。用户操作完毕后客户端加密,传回对象存储设备40。客户端10与对象存储设备40之间通信流程如下
首先用户向MDS30^是供的OSD地址发起访问,发送文件票据T,。对象存储设备40利用系统密钥对文件票据进行解密,并获取第二临时会话密钥Kco。利用第二临时会话密钥解密对应的访问请求,向用户发送被请求文件。
客户端10运行解密程序,即利用解密头文件获得的文件密钥给对象存储设备40传输的密文文件进行解密。
客户端10与对象存储设备40之间会话流程利用参数可以表示如下C — Ticket。, {ObjUri, action} Kco — OSD
C — {密文文件} — OSD
{ObjUri, action)表示用户发起的访问请求动作,该请求由第二临时会话密钥Kco加密。
对于特定用户,对象存储设备40还可以利用第二临时会话密钥Kco对传输的密文文件进行二次加密,以保证该密文文件传输过程的安全性。
下面,结合用户访问文件的具体的例子,对本发明的安全分布式文件系统的工作原理描述如下。
假设有用户dino,拥有自己的用户名dino,密码1234ustc,IP地址为202.0.0.1。
本发明的安全分布式文件系统包括一个认证服务器AS,若干个元数据服务器MDS以及若干个对象存储设备OSD,它们共享系统密钥sysop。用户dino想要访问自己的文件Email001,则发起第一阶段的会话dino — {dino + [123 4ustc]MD5}SSL — AS
dino— {100, ue3n2skq , IPM , TicketM}SSL— AS
TicketM = (ue3n2skq, dino, 202.0.0.1, 100} sysop会话各个要素解释如下
1. 整个通信过程使用了 SSL协议,实现了安全的通信。
2. 用户密码经过MD5处理后再发送保护了用户的密码,这样AS就不需要知道用户密码究竟是什么。保证了用户的个人信息的安全。
3. AS返回的100是指这个票据的时效为100s,同时告知dino和MDS,防止重豸t攻击。
4. ue3n2skq是由AS生成的临时会话密钥,供dino和MDS在使用。第二阶段
dino— TicketM, {EmailOOl, read} ue3n2skq — MDS
dino — {Ticket0, 50, metadata, EmailOOl, wan5kshf} KCM— MDS
Metadata = {y[en;sda#ksd%asdqw } 1234ustc
Ticket0 =(wan5kshf, dino, 202.0.0.1, 50, ID, read} sysop
会话各个要素说明如下
1. 整个通信过程使用了以ue3n2skq为临时会话密钥的DES密,实现了安全的通信。
2. MDS可以查到文件属性中包含的文件ID和metadata。3. metadata由用户密钥 1234ustc力口密,并且包含了文件密钥y[en;sda#ksd%asdqw。
4. MDS返回的50是指这个票据的使用时效,同时告知了 dino和OSD,防止重》文攻击。
5. wan5kshf是由MDS生成的第三步使用的临时会话密钥,供dino和OSD使用。
第三阶段
dino — Ticket。, { Email001, action } wan5kshf — OSDdino — {EmailOOl} wan5kshf — OSD
会话各个要素详解
1. 密文传送文件,保证文件的机密性。
2. 文件的加解密在客户端完成,减轻服务器负担并减少泄露的可能性。
3. 存储器只保存文件的密文,防止服务器被恶意入侵。
4. 对于特定用户,例如VIP用户,密文文件经过二次加密,用临时会话密钥加密之后再传送;对于普通用户,只传送保存的密文,不进行二次加密。
另外,用户还可以对有关用户的密钥向对应服务器进行更新,例如向认证服务器20请求更新其中存储的密码MD5值,和/或向元数据服务器30请求更新头文件。
图2显示了本发明实施例的用户密钥更新框架图,如图所示,客户端10的用户C首先登陆认证服务器20,并请求更改密码。认证服务器20更改储存的MD5值,返回确认消息。
如果用户还需要更新其头文件,则利用认证服务器20颁发的目录票据访问元数据服务器30,并请求更改密码。然后,用户利用旧口令对元数据服务器30传输的头文件metadata进行解密,再使用新口令生成新的头文件metadata,并返回给元数据月l务器30。元数据服务器30自动更新所有该用户名下的metadata为最新。
下面,结合具体的例子,详细说明本发明安全分布式文件系统用户对用户密钥(用户个人口令)更新的原理。
用户个人口令更新
1. 用户dino登陆AS并请求更改密钥为1234keda。
2. AS更改储存的MD5值,返回确认消息和一个新密码启用的时间。
3. 用户用AS颁发的目录票据访问MDS。
4. 用户用解密metadata再用新密码生成新的metadata返回MDS。
5. MDS自动更新所有该用户名下的metadata为最新。对应会话过程如下
dino — {dino +[1234ustc]MD5+[1234keda]MD5}SSL — ASdino — {100,uensdsnl,IPM,TicketM}SSL — AS
AS自动更新自己的MD5用户列表。
dino — TicketM, {metadata update} uensdsnl— MDSdino — (Ticket。, 50, metadata, null, wan5kshf) KCm— MDS用户解密metadata并用新密码加密
dino — TicketM, {new metadata} uensdsnl — MDS
MDS自动更新该用户所有文件的metadata。
图3显示了本发明实施例的系统密钥更新框架图,系统密钥是三种不同服务器之间共享的,而且极为重要。如图所示,首先认证服务器20产生新密钥K,和启用时间TIME并由系统密钥Kasq加密,即(K,, TIME}Kaso。
然后,认证服务器20将这个信息发给元数据服务器30,由元数据服务器30识别认证服务器20的IP并自动转发。元数据服务器30将这个信息同时转发给路由表所有已知的对象存储设备40。
最后所有服务器在TIME时间同时更换系统密钥。
下面是本发明分布式文件系统进行系统密钥更新的具体例子
1. AS产生一个新的密钥syspen和启用时间2009-6-20, 00: 00: 00并利用sysop力口密。
2. AS将这个信息发给MDS。
3. MDS将这个信息同时转发给路由表所有已知OSD。
4. 所有服务器在TIME时间同时更换系统密钥。对应会话过程如下
AS— {syspen, 2009-6-14, 00: 00: 00}sysop— MDS函S — {syspen, 2009-6-14, 00: 00: OO)sysop一 OSD图4显示了本发明实施例的安全分布式文件系统的结构总框架图,其中包括用户对文件的请求、用户密钥更新以及系统密钥更新。
如图示实施例所示,在用户所在的客户端10具有MD5处理模块、SSL会话模块、DES加密模块和自动转发票据模块。如上文所述,MD5处理模块主要对用户的密码进行MD5算法处理,SSL会话模块用来发起用户与认证服务器20之间的会话,DES加密模块利用DES算法进行加、解密,自动转发票
认证服务器20端包括SSL登录模块、DES加密模块、匹配用户模块、颁发票据模块和密钥更新模块,SSL登录模块用于用户根据SSL协议向认证服务器的登录,DES加密模块利用DES算法对访问请求进行第一临时会话密钥的加密,并利用系统密钥加密生成目录票据。匹配用户模块将用户登录的用户名和密码的MD5值进行匹配验证,颁发票据才莫块则对通过验证的用户颁发相应的目录票据。
在图示例子中,元数据服务器包括用于鉴别用户是否有权访问请求文件的匹配权限模块,颁发票据模块是对有权限的用户颁发文件票据和头文件,DES加密模块是对客户端发送的利用DES算法加密的访问请求和目录票据进行解密,以提供给匹配权限模块进行权限判断,并且对颁发的头文件利用DES算法进行加密,并使用第一临时会话密钥加密会话/访问请求,使用系统密钥加密生成文件票据。对象存储设备40包括的DES加密模块是用来对客户端发送的利用DES算法加密的访问请求和文件票据进行解密,以提供给用户所请求的密文文件。并且还可以用来对特定用户,例如VIP用户的发送密文文件进4亍二次加密。
其中步骤102到步骤112给出了本发明实施例的安全分布式文件系统各个设备之间的文件请求过程。
认证服务器20、元数据服务器30和对象存储设备40中还包括密钥更新模块,如步骤202.204和206所示,用于根据用户10的请求相应地更新各自保存的用户MD5值或者头文件metadata。另外,各个设备中的密钥更新模块 还可以对它们之间共享的系统密钥进行更新,并利用对应的系统密钥进行策略 控制。另外,认证服务器20、元数据服务器30和对象存储设备40之间的黑 色粗体线给出了它们对应的系统密钥更新通信流,从而实现所有服务器的系统 密钥更新。
本发明的安全分布式文件系统具有以下优点
1. 在认证服务器端使用MD5匹配,不对服务器暴露用户口令。
2. 仅使用 一次SSL传输(认证阶段),保证认证的前提下提高了使用效率。
3. 对不使用SSL的会话(第二、三阶段)进行了临时密钥加密, 一次一 密,保证了会话的机密性。
4. 在目录服务器端使用加密的metadata保存文件密钥,保证文件密钥的 安全。
5. 涉及算法简单,没有额外的网络流量和存储空间的浪费。
6. 不依赖第三方可信机构,可以抵抗基础设施破坏带来的安全威胁。
7. 拥有完善的系统密钥和用户口令更新策略。
8. 支持分布式文件系统使用多个MDS和OSD。
综上所述,本发明的安全分布式文件系统可以抵抗中间人攻击,重放攻击, 服务器被劫持,暴力破解等对分布式文件系统造成的威胁。同时支持多台目录 服务器和数据服务器并存。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员 而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例 进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等 同限定。
权利要求
1.一种安全分布式文件系统,其特征在于,所述系统包括认证服务器、元数据服务器、对象存储设备和客户端,所述认证服务器,用于验证所述客户端的用户身份,并向通过验证的对应用户提供用以请求访问文件的目录票据和第一临时会话密钥;所述元数据服务器,根据接收的目录票据和利用所述第一临时会话密钥加密的访问请求,向对应用户提供用以请求访问文件的文件票据、头文件和第二临时会话密钥;所述对象存储设备,根据接收的文件票据和利用所述第二临时会话密钥加密的访问请求,向对应用户发送密文文件;所述客户端,利用所述第一临时会话密钥和所述第二临时会话密钥加密对应的访问请求以及通过所述头文件来解密所述密文文件供对应用户读写。
2. 如权利要求l所述的系统,其特征在于,所述认证服务器通过匹配登录用户的户名和所述客户端处理的密码MD5值来验证用户身份。
3. 如权利要求1所述的系统,其特征在于,所述目录票据和/或所迷文件票据由系统密钥加密。
4. 如权利要求l所述的系统,其特征在于,所述元数据服务器使用所述第一临时会话密钥解密所述访问请求,以判断是否提供所述文件票据和第二临时会话密钥。
5. 如权利要求l所述的系统,其特征在于,所述对象存储设备使用所述第二临时会话密钥解密所述访问请求,以判断是否发送所述密文文件。
6. 如权利要求l所述的系统,其特征在于,所述头文件是使用用户口令加密的文件密钥,所述头文件由用户在创建所述密文文件时生成并传输到所述元数据服务器中保存。
7. 如权利要求2所述的系统,其特征在于,所述认证服务器还根据用户的请求更新所述MD5值。
8. 如权利要求6所述的系统,其特征在于,所述元数据服务器还根据用户的请求更新所述头文件。
9. 如权利要求3所述的系统,其特征在于,所述认证服务器产生新的密钥并通知所述元数据服务器和所述对象存储设备更新所述系统密钥。
10. 如权利要求l所述的系统,其特征在于,所述对象存储设备还利用所述第二临时会话密钥对所述文件进行加密。
全文摘要
一种安全分布式文件系统,包括认证服务器、元数据服务器、对象存储设备和客户端,认证服务器用于验证用户身份,并向通过验证的对应用户提供用以请求访问文件的目录票据和第一临时会话密钥;元数据服务器根据接收的目录票据和利用所述第一临时会话密钥加密的访问请求,向对应用户提供用以请求访问文件的文件票据、头文件和第二临时会话密钥;对象存储设备根据接收的文件票据和利用第二临时会话密钥加密的访问请求,向对应用户发送密文文件,客户端利用第一和第二临时会话密钥加密对应的访问请求以及通过头文件来解密密文文件供对应用户读写。本发明可以对用户的文件访问提供安全有效的保障。
文档编号H04L29/08GK101605137SQ20091015752
公开日2009年12月16日 申请日期2009年7月10日 优先权日2009年7月10日
发明者奚宏生, 明 朱, 杨晓晶 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1