专利名称:一种分布式存储的安全系统及方法
技术领域:
本发明涉及云存储领域,尤其涉及一种分布式存储的安全系统及方法。
背景技术:
随着存储技术的发展,分布式存储技术越来越受到广泛关注,特别是分布式存储系统,包括分布式文件系统、分布式数据库、分布式缓存,以及对象存储系统等。分布式存储技术是目前云存储中最关键的支撑技术,而分布式文件系统又是分布式存储技术的典型代表。以下对分布式存储技术举例阐述。典型的分布式文件系统的代表是谷歌公司提出的谷歌文件系统(GFS,Google File System),GFS系统的架构如图1所示,该系统由三部分组成GFS master、GFS chuckserver和GFS客户端(GFS client),在GFS描述中一个文件会按固定大小被分割为多个数据块,数据块存储在GFS chuckserver上,GFS master则保存了文件和其对应数据块的映射关系,GFS master还保存了每个数据块存放的位置等元数据信息。GFS client 是作为一个用户访问接口,用户通过GFS Client访问GFS系统。其中,图1中的应用层可表示为Application ;文件名可表示为file name ;chuck索弓I可表示为chuck index ; chuck句柄可表示为chuck handle ;chuck i也址可表示为chuck location ;chuck数据可表示为chuck data ;字节范围可表示为byte range ;文件名空间可表示为file namespace ; 导入 chuckserver 可表不为 instructions to chuckserver ;chuckserver 状态可表不为 chuckserver state。图1中的粗实线表示数据消息传输,细实线表示控制消息传输。其中, 所述master指元数据服务器;所述chimkserver指数据服务器。在分布式文件系统中,文件也可以不进行分块存储。GFS系统一个演进的架构可能是GFS master由单个节点或双机主备方式变为一种集群的方式,以支持海量存储系统的大量元数据管理,一种常见的方法是使用分布式哈希表(DHT)等技术将多个GFS master统一管理成为一个GFS master集群。总的来说,分布式存储系统通常都是采取数据和元数据分离的架构。如常见的 GFS、Hadoop 分布式文件系统(HDFS,Hadoop Distributed File System)、最新的网络文件系统版本4. 1 (pNFS, Network File System version 4. 1)标准架构,以及用于高性能计算的Lustre、PanFS等基于对象存储的文件系统。其中,所述Lustre是HP、Intel, Cluster File System公司联合美国能源部开发的Linux集群并行文件系统的简称。所述PanFS与 Lustre 一样,也是一种并行文件系统的简称。近来云存储得到广泛应用,当云存储作为一种共有云或私有云提供给用户使用时,安全问题成为一个必须面对的问题。如何在元数据与数据分离的分布式存储系统中实现安全的身份认证和访问控制,是目前分布式存储系统中一个非常关键的安全问题。现有的安全方案一般是通过对消息加密的方式实现的,这种方式虽然能满足安全需要,但是却会影响到效率。由于将元数据与数据分离的分布式存储系统是专为提高效率而设计的,因此,如何提供一种既能满足安全需要,又能同时兼顾效率的安全方案是目前迫切需要解决的问题,而针对这个问题,目前并未存在有效的解决方案。
发明内容
有鉴于此,本发明的主要目的在于提供一种分布式存储的安全系统,既能满足分布式存储系统的安全需要,又能同时兼顾效率。为达到上述目的,本发明的技术方案是这样实现的一种分布式存储的安全系统,该系统包括客户端、认证中心、元数据服务器、数据服务器;其中,所述客户端,用于客户端向认证中心发送认证请求,客户端向元数据服务器发送元数据请求,客户端向数据服务器发送数据请求;所述认证中心,用于收到所述认证请求后,对登录客户端的用户进行身份认证,认证通过后生成用于客户端访问元数据服务器的凭证Tl ;所述元数据服务器,用于收到来自客户端携带凭证Tl的元数据请求后对所述客户端进行身份认证,认证通过后为判断出的具有访问权限的用户生成用于客户端访问数据服务器的凭证T2 ;所述数据服务器,用于收到来自客户端携带凭证T2的数据请求后对所述客户端进行身份认证,认证通过后将用户想访问的数据返回客户端。其中,该系统还包括安全策略单元;所述元数据服务器,进一步用于根据所述用户的用户标识调用所述安全策略单元进行访问控制,获得与用户标识对应的访问权限,来判断所述用户是否具有访问用户想访问的数据的访问权限;所述安全策略单元,用于存储和维护所述用户标识与所述用户标识所具有的访问权限的对应关系。其中,所述元数据服务器,进一步用于采用与认证中心共享的、相同的系统密钥和相同的凭证计算算法计算出凭证T,通过将获得的所述凭证Tl与计算获得的凭证T进行匹配实现所述身份认证,当所述凭证Tl与所述凭证T 一致时,匹配成功,通过认证。其中,所述数据服务器,进一步用于采用与元数据服务器共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证T’,通过将获得的所述凭证T2与计算获得的凭证 T’进行匹配实现所述身份认证,当所述凭证T2与所述凭证T’一致时,匹配成功,通过认证。其中,所述认证中心、所述元数据服务器、所述数据服务器三者共享相同的系统密钥和相同的凭证计算算法的情况下,所述元数据服务器,进一步采用三者共享的、相同的系统密钥和相同的凭证计算算法计算出凭证T,通过将获得的所述凭证Tl与计算获得的凭证T进行匹配实现所述身份认证,当所述凭证Tl与所述凭证T 一致时,匹配成功,通过认证;所述数据服务器,进一步用于采用三者共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证τ’,通过将获得的所述凭证T2与计算获得的凭证T’进行匹配实现所述身份认证,当所述凭证T2与所述凭证T’ 一致时,匹配成功,通过认证;其中,所述凭证Tl与所述T2相等;所述凭证T与所述凭证T’相等。其中,该系统还包括管理维护接口,用于存储和维护所述系统密钥,系统密钥更改后需由认证中心认证,认证中心认证允许系统密钥更改后,将更改后的系统密钥在元数据服务器和数据服务器之间分发。其中,所述元数据服务器,进一步用于在系统中每个数据块包含多个副本的情况下,生成所述凭证T2时,采用的方式包括元数据服务器针对每个副本所在的数据服务器分别生成一个凭证;或者,元数据服务器针对每个副本所在的数据服务器生成统一的能访问所有副本数据块的凭证。一种分布式存储的安全方法,该方法包括客户端向认证中心发送认证请求,认证中心收到所述认证请求后,对登录客户端的用户进行身份认证,认证通过后生成凭证Tl ;客户端向元数据服务器发送元数据请求,元数据服务器收到来自客户端携带凭证 Tl的元数据请求后对所述客户端进行身份认证,认证通过后为判断出的具有访问权限的用户生成凭证T2;客户端向数据服务器发送数据请求,数据服务器收到来自客户端携带凭证T2的数据请求后对所述客户端进行身份认证,认证通过后将用户想访问的数据返回客户端。其中,所述判断具体包括元数据服务器根据与所述用户的用户标识对应的访问权限,来判断所述用户是否具有访问用户想访问的数据的访问权限。其中,元数据服务器收到来自客户端携带凭证Tl的元数据请求后对所述客户端进行身份认证具体包括元数据服务器采用与认证中心共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证T,通过将获得的所述凭证Tl与计算获得的凭证T进行匹配实现所述身份认证,当所述凭证Tl与所述凭证T 一致时,匹配成功,通过认证。其中,数据服务器收到来自客户端携带凭证T2的数据请求后对所述客户端进行身份认证具体包括数据服务器采用与元数据服务器共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证τ’,通过将获得的所述凭证T2与计算获得的凭证T’进行匹配实现所述身份认证,当所述凭证T2与所述凭证T’ 一致时,匹配成功,通过认证。其中,所述认证中心、所述元数据服务器、所述数据服务器三者共享相同的系统密钥和相同的凭证计算算法的情况下,所述凭证Tl与所述T2相等;所述凭证T与所述凭证T’ 相等。其中,在系统中每个数据块包含多个副本的情况下,生成所述凭证T2采用的方式具体包括元数据服务器针对每个副本所在的数据服务器分别生成一个凭证;或者,元数据服务器针对每个副本所在的数据服务器生成统一的能访问所有副本数据块的凭证。本发明的客户端向认证中心发送认证请求,认证中心收到认证请求后,对登录客户端的用户进行身份认证,认证通过后生成用于客户端访问元数据服务器的凭证Tl ;客户端向元数据服务器发送元数据请求,元数据服务器收到来自客户端携带凭证Tl的元数据请求后进行身份认证,认证通过后为判断出的具有访问权限的用户生成用于客户端访问数据服务器的凭证T2;客户端向数据服务器发送数据请求,数据服务器收到来自客户端携带凭证T2的数据请求后进行身份认证,认证通过后将用户想访问的数据返回客户端。采用本发明,利用计算出的凭证进行比较,相比于现有对消息加密的方式,是一种简洁而又快速高效的实现身份认证和访问控制的安全方案。
图1为现有技术的GFS系统架构的示意图;图2为本发明系统实施例的架构示意图;图3为本发明方法实施例的实现流程示意图。
具体实施例方式本发明的基本思想是客户端向认证中心发送认证请求,认证中心收到认证请求后,对登录客户端的用户进行身份认证,认证通过后生成用于客户端访问元数据服务器的凭证Tl ;客户端向元数据服务器发送元数据请求,元数据服务器收到来自客户端携带凭证 Tl的元数据请求后进行身份认证,认证通过后为判断出的具有访问权限的用户生成用于客户端访问数据服务器的凭证T2;客户端向数据服务器发送数据请求,数据服务器收到来自客户端携带凭证T2的数据请求后进行身份认证,认证通过后将用户想访问的数据返回客户端。下面结合附图对技术方案的实施作进一步的详细描述。一种分布式存储的安全系统,用于实现元数据与数据分离的分布式存储系统中安全的身份认证和访问控制,同时兼顾效率。该安全系统主要包括以下内容该安全系统包括客户端(Client)、认证中心(CA)、元数据服务器(MDS)、安全策略单元(Policy)、数据服务器(此)和管理维护接口(Interface)。其中,元数据服务器、安全策略单元、数据服务器和管理维护接口位于分布式存储系统中。这里需要指出的是,认证中心可以整合于分布式存储系统内,也可以独立于分布式存储系统之外。本发明优选的方式是将认证中心独立于分布式存储系统之外,这样的好处是可以将身份认证和访问控制进行分离,分布式存储系统只作为一个业务系统用来提供包括访问控制的存储服务,而身份认证是由分布式存储系统外部单独的存有用户资料的中心或单独独立的认证中心进行认证。以下对该安全系统中包括的各个实体分别阐述。客户端用于作为用户访问分布式存储系统的接口,用于客户端向认证中心发送认证请求,请求认证中心对登录客户端的用户进行身份认证;客户端向元数据服务器发送元数据请求,请求元数据服务器对登录客户端的用户进行身份认证、访问控制及元数据操作; 客户端向数据服务器发送数据请求,请求数据服务器对登录客户端的用户进行身份认证及数据操作。这里需要指出的是,本文中的客户端指用户所登录的客户端,认证时是对登录该客户端的用户进行身份认证,访问控制时也是对登录该客户端的用户进行访问控制。不作赘述。如果安全系统还包括除分布式存储系统之外的其他业务系统,认证中心除了用于支持分布式存储系统的身份认证,还用于支持分布式存储系统和其他业务系统统一的身份认证。认证中心负责对客户端的请求进行身份认证,识别用户可以访问的服务类别,为客户端生成可以访问元数据服务器的凭证Tl。元数据服务器用于负责分布式存储系统中元数据信息的存储和查询,负责分布式存储系统中每个数据的访问控制列表的存储和管理,负责根据用户标识调用安全策略单元接口,以获得该用户所属角色和该角色对应的权限,通过对比角色权限和访问控制列表校验用户是否可以允许访问指定数据,以及校验客户端所提供的凭证Tl是否有效,生成可以访问数据服务器的凭证T2。安全策略单元用于负责存储和管理用户标识和角色的对应关系,以及角色和该角色所具有的分布式存储系统访问权限的对应关系。这里,角色所具有的分布式存储系统访问权限简单来说,就是角色所具有的访问权限。安全策略单元支持用户归类分组为角色,支持细粒度数据操作权限归类为权限组合;面对分布式存储系统中大规模并发访问的登录客户端的用户数量巨大、和数据数量巨大的情况下,能确保分布式存储系统对用户的身份认证和访问控制高效的完成,不会造成分布式存储系统的瓶颈。数据服务器用于负责存储数据内容并接受客户端的访问,负责校验客户端提供的凭证Τ2是否有效。一种分布式存储的安全方法,该方法主要包括以下内容一、客户端向认证中心发送认证请求,认证中心收到所述认证请求后,对登录客户端的用户进行身份认证,认证通过后生成用于客户端访问元数据服务器的凭证Tl。二、客户端向元数据服务器发送元数据请求,元数据服务器收到所述元数据请求后,通过将所述凭证Tl与计算获得的凭证T进行匹配,对所述用户进行身份认证,认证通过后根据与用户标识对应的用户所属角色和所述角色对应的访问权限,判断所述用户是否具有访问用户想访问的数据的权限,为具有权限的用户生成用于客户端访问数据服务器的凭证Τ2。三、客户端向数据服务器发送数据请求,数据服务器收到所述数据请求后,通过将所述凭证Τ2与计算获得的凭证Τ’进行匹配,对所述用户进行身份认证,认证通过后将用户想访问的数据返回客户端。上述内容二中,通过将所述凭证Tl与计算获得的凭证T进行匹配,对所述用户进行身份认证具体包括元数据服务器采用与认证中心和数据服务器共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证Τ,当所述凭证Tl与所述凭证T 一致时,匹配成功,通过认证。上述内容二中,在系统中每个数据块包含多个副本的情况下,生成所述凭证Τ2采用的方式具体包括元数据服务器针对每个副本所在的数据服务器分别生成一个凭证;或者,元数据服务器针对每个副本所在的数据服务器生成统一的能访问所有副本数据块的凭证。上述内容三中,通过将所述凭证Τ2与计算获得的凭证Τ’进行匹配,对所述用户进行身份认证具体包括数据服务器采用与认证中心和元数据服务器共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证Τ’,当所述凭证Τ2与所述凭证Τ’一致时,匹配成功,通过认证。综上所述,本发明通过认证中心、元数据服务器、数据服务器共享相同的系统密钥和计算凭证的凭证计算算法(如哈希算法),对登录客户端的用户进行身份认证,由于认证中心、元数据服务器、数据服务器通过共享,采取信任相互传递的策略,无需加解密,只通过计算出的凭证,来进行比较,相对于现有的通过加密算法对消息加密的方式而言,更为简单、高效。而且,分布式存储系统的数据访问控制列表与元数据一起存储在元数据服务器中,能加快访问控制的访问速度,实现起来也更加简单。以下对本发明进行举例阐述。
系统实施例如图2所示,为本发明的分布式存储的安全系统架构的示意图。本实施例中,该安全系统中,认证中心独立于分布式存储系统之外而存在。实际部署情况中,认证中心可能是作为分布式存储系统的一个认证功能单元,和分布式存储系统整合部署在一起,更有可能作为多种系统或业务共用的一个独立的认证中心而存在。该安全系统包括客户端、认证中心、元数据服务器、安全策略单元、数据服务器和管理维护接口。其中,元数据服务器、数据服务器和客户端构成了如背景技术所描述的分布式存储系统。管理维护接口用于用户对分布式存储系统进行存储、管理和维护,包括系统密钥的管理和维护。其中,认证中心、元数据服务器和数据服务器拥有相同的系统密钥,为方便描述, 可将该系统密钥记为Ks,该系统密钥Ks在三者之间共享。安全策略单元负责管理整个分布式存储系统的安全策略的设置和存储。元数据服务器负责存储分布式存储系统的元数据信息,还包括数据的访问控制列表,由数据存储节点即数据服务器负责存储具体的数据内容。如背景技术所述,分布式存储系统中一个文件可能被分割为多个数据块分别存储在多个数据服务器中,元数据服务器中的元数据记录了文件和数据块的映射关系以及每个数据块的位置信息。分布式存储系统中一个文件也可能不会被分割为数据块,直接存储在数据服务器中。同时,元数据服务器可能是单个节点,或两个互为备份的节点,也可能是一个高可靠大容量的集群组成。方法实施例如图3所示,为本发明的分布式存储的安全方法的实现流程示意图,本实施例中, 采用图2所示的系统架构,实现身份认证和访问控制的流程包括以下步骤步骤101、客户端与认证中心交互,向认证中心发送身份认证请求。步骤102、认证中心对用户进行身份认证,业务识别、生成后续访问元数据服务器的凭证Tl。这里,认证中心用于对登录客户端的用户进行身份认证,一般来说,认证中心保存了可以访问分布式存储系统的所有用户信息,包括用户名或用户标识,用户密码,其中用户密码可能是原始用户设置的密码,也可能是原始密码经过运算后的不可直接识别的密码, 比如将原始密码用哈希函数运算后的结果。一种具体实现方式为客户端向认证中心发送认证请求,认证请求中携带用户标识和使用MD5等哈希算法计算后的用户密码,认证中心接受到认证请求之后,在本地查找该用户信息,并将认证请求中的用户密码和本地存储的用户密码进行匹配,如果匹配成功则认证成功,即登录该客户端的用户是一个合法用户。另一种具体实现方式为客户端向认证中心发送认证请求时只携带用户标识,而不携带用户密钥,认证中心根据用户标识在本地查找到用户信息后,由于认证中心有该用户的用户密钥,因此,认证中心用该用户密钥加密用户标识后返回给客户端,客户端必须用本地保存的用户密钥解密才能继续后续流程,比如著名的Kerberos流程。也就是说,如果客户端用本地保存的用户密钥无法对加密后的用户标识进行解密,则无法继续后续流程, 如果能对加密后的用户标识进行解密,则说明登录该客户端的用户是一个合法用户,可以继续后续流程。
认证中心认证客户端成功之后,构造一个可以访问元数据服务器的凭证Tl发送给客户端。构造凭证Tl的一个具体实现是通过客户端的用户标识,客户端地址,服务类另|J,元数据服务器的网络地址,时间戳来构造凭证Tl,凭证Tl为上述信息通过使用Ks作为密钥,并结合类似HMAC的凭证计算算法计算后获得的。凭证Tl中包含服务类别,是因为认证中心可能作为一个独立的认证系统,为包括分布式存储系统在内的多种服务系统提供认证,比如可以为存储服务系统提供认证,也可以为计算资源系统提供认证,这样就需要用服务类别,来区分开不同的服务系统。步骤103、认证中心在身份认证响应中携带元数据服务器信息和凭证Tl。这里,通过步骤101 步骤103,完成客户端与认证中心的交互,以下是一个具体实例,展示了客户端和认证中心之间交互的消息格式al、客户端_>认证中心客户端的用户标识、客户端地址、用户密钥。a2、认证中心_>客户端客户端的用户标识、客户端地址、服务类别、元数据服务器地址、时间戳、凭证Tl。其中,凭证Tl是将上述信息(客户端地址、服务类别、元数据服务器地址、时间戳),使用系统密钥Ks,并结合使用类似HMAC的凭证计算算法计算后获得的, 即凭证Tl的计算公式为Tl = HMAC(Ks, {客户端的用户标识、客户端地址、服务类别、元数据服务器地址})。这里,选作计算凭证Tl的上述信息是由认证中心和元数据服务器事先约定好的, 也就是说,如本具体实例所述,客户端的用户标识、客户端地址、服务类别、元数据服务器地址由认证中心和元数据服务器事先约定好。步骤104、客户端向元数据服务器发送元数据请求,使用认证中心返回的元数据服务器信息和凭证Tl访问元数据服务器。这里,在一个具体实例中,客户端根据步骤103中获取到的元数据服务器信息,即元数据服务器地址,向元数据服务器发起访问存储数据请求,比如读(READ)文件 FILENAME1,还可以指定文件的偏移位置或指定文件的块句柄进行读写操作。客户端向元数据服务器发送的元数据请求中将包含以下信息客户端_>元数据服务器凭证Tl,客户端的用户标识,客户端地址,操作存储命令,操作存储的内容。其中,操作存储命令是READ,操作存储的内容是所述FILENAME 1、文件偏移位置或块句柄。步骤105、元数据服务器进行身份认证,访问控制,元数据操作,生成后续访问数据服务器的凭证T2。这里,元数据服务器接收到元数据请求之后,使用自己的系统密钥Ks,及使用与认证中心事先约定好的相同的凭证计算算法,计算出凭证T,并对比Tl和T是否一致,如果二者一致则表明来自客户端的元数据请求是可靠的,是被认证中心认证过的,因此元数据服务器也将认为该客户端是可靠的。计算凭证T2的一个具体实现为由客户端的用户标识,客户端地址,数据服务器节点地址,数据块句柄这些信息,使用系统密钥Ks,并结合使用类似HMAC的凭证计算算法计算后获得凭证T2。即凭证T2的计算公式为T2 = HMAC(Ks, {客户端的用户标识,客户端地址,数据服务器节点地址,数据块句柄})。步骤106、元数据服务器向安全策略单元发送策略访问,通过用户标识访问安全策略单元。步骤107、安全策略单元进行策略查找。步骤108、安全策略单元返回策略响应给元数据服务器。这里,安全策略单元记录了用户标识和角色的对应关系,也记录了角色和该角色所具有的分布式存储系统访问权限的对应关系。—个用户标识和角色的对应关系,以及角色和该角色所具有的分布式存储系统访问权限的对应关系的具体实现如下所示johniRmai1. com normal_role public_priTohnigmai 1. com 是用户标识,normal_role 一个系统定义的角色,public_pri 定了该角色所具有的分布式存储系统访问权限,比如对文件属性为TohniRmail. com的文件具有读写权限,对f件属件不是Tohnfemail. com的t件R具有读权限。总的来说,角色是对用户的归类和分组,权限分组是对分布式存储系统的粒度权限的归类和分组。这样处理的好处是可以大大减少由于访问分布式存储系统的用户数规模巨大,和数据操作权限粒度过细,给分布式存储系统元数据和访问控制列表的维护所带来的难度。元数据服务器通过访问安全策略单元获取登录客户端的用户是否具有访问用户想访问的数据的权限,如果不具有权限直接拒绝用户的访问请求。对于指定数据具有访问权限的客户端则继续后续流程。步骤109、元数据服务器向客户端返回元数据响应。这里,元数据服务器在处理元数据请求中操作存储的命令READ和操作存储的内容FILENAME1,通过查找元数据得知客户端请求的内容具体存储在哪个数据服务器上,并将该数据存储节点信息,即数据服务器节点地址返回给客户端。元数据服务器_>客户端数据服务器节点地址,数据块句柄,副本信息,凭证T2。 T2 = HMAC(Ks, {客户端的用户标识,客户端地址,数据服务器节点地址,数据块句柄})。元数据服务器生成的凭证T2,用于在后续流程客户端访问数据服务器时,数据服务器验证客户端的身份有效性。如果分布式存储系统每个数据块包含多个副本(至少两个副本的情况),元数据服务器可能针对每个副本所在的数据服务器分别生成一个凭证,并返回给客户端,也可能针对每个副本所在的数据服务器生成统一的可以访问所有副本数据块的凭证。步骤110、客户端向数据服务器发送数据请求,使用元数据服务器返回的数据服务器信息和凭证T2访问数据服务器。这里,客户端根据步骤109中从元数据服务器获取的数据服务器节点信息,选择一个临近或性能较好的数据服务器发起请求,请求携带要访问的数据块句柄,操作方式 (读或写),字节范围,以及步骤109中元数据服务器返回给客户端的凭证T2,还包括客户端的用户标识,客户端地址。步骤111、数据服务器进行身份认证,数据操作。这里,数据服务器接收到数据请求之后,首先用自己的系统密钥Ks,及使用与元数据服务器事先约定好的相同的凭证计算算法计算出凭证T’,并比较T’和T2是否一致,如果二者一致则认为该客户端是经过元数据服务器认证的,进而数据服务器认为客户端是可信的。步骤112、数据服务器认为客户端是可信的,在返回数据响应给客户端时,将客户端需要访问的数据返回给客户端。这里需要指出的是,对系统密钥Ks的管理维护而言,分布式存储系统可以通过外部接口提供专门的管理维护接口,也就是说,可以通过该管理维护接口,采用操作维护界面或人机命令行方式对系统密钥Ks进行更改,以实现日常的操作维护,该操作维护需要与认证中心交互,认证中心确认可以更改之后,更改之后的系统密钥Ks会自动在元数据服务器、数据服务器之间分发。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种分布式存储的安全系统,其特征在于,该系统包括客户端、认证中心、元数据服务器、数据服务器;其中,所述客户端,用于客户端向认证中心发送认证请求,客户端向元数据服务器发送元数据请求,客户端向数据服务器发送数据请求;所述认证中心,用于收到所述认证请求后,对登录客户端的用户进行身份认证,认证通过后生成用于客户端访问元数据服务器的凭证Tl ;所述元数据服务器,用于收到来自客户端携带凭证Tl的元数据请求后对所述客户端进行身份认证,认证通过后为判断出的具有访问权限的用户生成用于客户端访问数据服务器的凭证T2 ;所述数据服务器,用于收到来自客户端携带凭证T2的数据请求后对所述客户端进行身份认证,认证通过后将用户想访问的数据返回客户端。
2.根据权利要求1所述的系统,其特征在于,该系统还包括安全策略单元;所述元数据服务器,进一步用于根据所述用户的用户标识调用所述安全策略单元进行访问控制,获得与用户标识对应的访问权限,来判断所述用户是否具有访问用户想访问的数据的访问权限;所述安全策略单元,用于存储和维护所述用户标识与所述用户标识所具有的访问权限的对应关系。
3.根据权利要求2所述的系统,其特征在于,所述元数据服务器,进一步用于采用与认证中心共享的、相同的系统密钥和相同的凭证计算算法计算出凭证T,通过将获得的所述凭证Tl与计算获得的凭证T进行匹配实现所述身份认证,当所述凭证Tl与所述凭证T 一致时,匹配成功,通过认证。
4.根据权利要求3所述的系统,其特征在于,所述数据服务器,进一步用于采用与元数据服务器共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证T’,通过将获得的所述凭证T2与计算获得的凭证T’进行匹配实现所述身份认证,当所述凭证T2与所述凭证T’ 一致时,匹配成功,通过认证。
5.根据权利要求1所述的系统,其特征在于,所述认证中心、所述元数据服务器、所述数据服务器三者共享相同的系统密钥和相同的凭证计算算法的情况下,所述元数据服务器,进一步采用三者共享的、相同的系统密钥和相同的凭证计算算法计算出凭证T,通过将获得的所述凭证Tl与计算获得的凭证T进行匹配实现所述身份认证, 当所述凭证Tl与所述凭证T 一致时,匹配成功,通过认证;所述数据服务器,进一步用于采用三者共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证T’,通过将获得的所述凭证T2与计算获得的凭证T’进行匹配实现所述身份认证,当所述凭证T2与所述凭证T’ 一致时,匹配成功,通过认证;其中,所述凭证Tl与所述T2相等;所述凭证T与所述凭证T’相等。
6.根据权利要求4或5所述的系统,其特征在于,该系统还包括管理维护接口,用于存储和维护所述系统密钥,系统密钥更改后需由认证中心认证,认证中心认证允许系统密钥更改后,将更改后的系统密钥在元数据服务器和数据服务器之间分发。
7.根据权利要求1至5中任一项所述的系统,其特征在于,所述元数据服务器,进一步用于在系统中每个数据块包含多个副本的情况下,生成所述凭证T2时,采用的方式包括元数据服务器针对每个副本所在的数据服务器分别生成一个凭证;或者,元数据服务器针对每个副本所在的数据服务器生成统一的能访问所有副本数据块的凭证。
8.一种分布式存储的安全方法,其特征在于,该方法包括客户端向认证中心发送认证请求,认证中心收到所述认证请求后,对登录客户端的用户进行身份认证,认证通过后生成凭证Tl ;客户端向元数据服务器发送元数据请求,元数据服务器收到来自客户端携带凭证Tl 的元数据请求后对所述客户端进行身份认证,认证通过后为判断出的具有访问权限的用户生成凭证T2 ;客户端向数据服务器发送数据请求,数据服务器收到来自客户端携带凭证T2的数据请求后对所述客户端进行身份认证,认证通过后将用户想访问的数据返回客户端。
9.根据权利要求8所述的方法,其特征在于,所述判断具体包括元数据服务器根据与所述用户的用户标识对应的访问权限,来判断所述用户是否具有访问用户想访问的数据的访问权限。
10.根据权利要求9所述的方法,其特征在于,元数据服务器收到来自客户端携带凭证 Tl的元数据请求后对所述客户端进行身份认证具体包括元数据服务器采用与认证中心共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证T,通过将获得的所述凭证 Tl与计算获得的凭证T进行匹配实现所述身份认证,当所述凭证Tl与所述凭证T 一致时, 匹配成功,通过认证。
11.根据权利要求10所述的方法,其特征在于,数据服务器收到来自客户端携带凭证 T2的数据请求后对所述客户端进行身份认证具体包括数据服务器采用与元数据服务器共享的、相同的系统密钥和相同的凭证计算算法计算出所述凭证T’,通过将获得的所述凭证T2与计算获得的凭证T’进行匹配实现所述身份认证,当所述凭证T2与所述凭证T’ 一致时,匹配成功,通过认证。
12.根据权利要求11所述的方法,其特征在于,所述认证中心、所述元数据服务器、所述数据服务器三者共享相同的系统密钥和相同的凭证计算算法的情况下,所述凭证Tl与所述T2相等;所述凭证T与所述凭证T’相等。
13.根据权利要求8至12中任一项所述的方法,其特征在于,在系统中每个数据块包含多个副本的情况下,生成所述凭证T2采用的方式具体包括元数据服务器针对每个副本所在的数据服务器分别生成一个凭证;或者,元数据服务器针对每个副本所在的数据服务器生成统一的能访问所有副本数据块的凭证。
全文摘要
本发明公开了一种分布式存储的安全系统,系统中的数据服务器用于收到来自客户端携带凭证T2的数据请求后对所述客户端进行身份认证,认证通过后将用户想访问的数据返回客户端。本发明还公开了一种分布式存储的安全方法,该方法包括元数据服务器收到来自客户端携带凭证T1的元数据请求后对所述客户端进行身份认证,认证通过后为判断出的具有访问权限的用户生成凭证T2;数据服务器收到来自客户端携带凭证T2的数据请求后对所述客户端进行身份认证,认证通过后将用户想访问的数据返回客户端。采用本发明的系统及方法,既能满足分布式存储系统的安全需要,又能同时兼顾效率。
文档编号H04L29/08GK102457555SQ20101052400
公开日2012年5月16日 申请日期2010年10月28日 优先权日2010年10月28日
发明者周扬, 张艺夕, 李桂萍, 陈小华 申请人:中兴通讯股份有限公司