CN106411826B - 一种数据访问的方法及设备 - Google Patents
一种数据访问的方法及设备 Download PDFInfo
- Publication number
- CN106411826B CN106411826B CN201510469417.7A CN201510469417A CN106411826B CN 106411826 B CN106411826 B CN 106411826B CN 201510469417 A CN201510469417 A CN 201510469417A CN 106411826 B CN106411826 B CN 106411826B
- Authority
- CN
- China
- Prior art keywords
- metadata
- key
- data
- visited
- data server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据访问的方法及设备,本申请通过所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后,生成所述由密钥加工后的元数据信息,可以实现对元数据服务器的访问控制,这样可以确保元数据服务器的安全性,另外,在所述数据服务器对所述由密钥加工后的元数据信息验证通过后,才允许客户端从所述数据服务器获取所述待访问数据,可以实现对数据服务器的访问控制,这样可以确保数据服务器的安全性,最终实现客户端的抗伪造性。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据访问的方法及设备。
背景技术
随着大数据时代的到来,为了解决分布式环境下海量数据的存储问题,怎么能够利用价格低廉的普通机器来实现海量数据的存储问题,提出了分布式文件系统HDFS。后来这个HDFS系统的架构基本成为了分布式文件系统的通用框架。分布式文件系统或多或少都存在网络安全相关的威胁。尤其是在公有云中不可信用户的访问,数据必须要做到相互隔离,用户访问数据需要具备一定的访问控制权限。分布式文件系统中,元数据服务器(NameNode),用于存储用户文件的元数据信息。数据服务器(DataNode),用于存储用户文件的数据信息,元数据服务器(NameNode)和数据服务器(DataNode)都会由客户端(client)即访问分布式文件系统的用户来访问,客户端的信息容易被篡改,因此需要做一定的访问控制策略,做到用户与数据的隔离,保证安全。
在现有的分布式文件系统中,业界没有较好的实现访问控制策略。通常使用ACL方式设置用户的权限,ACL即访问控制列表,是一种基于对象的授权,这种方式是以访问的对象为出发点,但是黑客还是可以篡改数据服务器上的数据,对于元数据服务器和数据服务器之间的权限安全控制问题,目前业界并没有好的解决方案。
发明内容
本申请的一个目的是提供一种用于数据访问的方法及设备,能够解决进行数据访问时,元数据服务器和数据服务器之间的权限安全控制问题。
根据本申请的一个方面,提供了一种客户端用于数据访问的方法,该方法包括:
向元数据服务器发送用私钥签发的待访问数据的权限;
从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限由所述元数据服务器用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器对解开的待访问数据的权限验证通过后生成;
将所述由密钥加工后的元数据信息发送至数据服务器,待所述数据服务器对所述由密钥加工后的元数据信息验证通过后,从所述数据服务器获取所述待访问数据,其中,所述由密钥加工后的元数据信息由所述数据服务器通过所述密钥进行验证。
进一步的,上述方法中,向元数据服务器发送用私钥签发的待访问数据的权限的同时,还包括:
向元数据服务器发送所述待访问数据的权限的过期时间;
所述元数据服务器对解开的待访问数据的权限验证通过,包括:
所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
进一步的,上述方法中,所述元数据服务器对解开的待访问数据的权限验证通过,包括:
所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
进一步的,上述方法中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据;
所述数据服务器对所述由密钥加工后的元数据信息验证通过,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;
从所述数据服务器获取所述待访问数据,包括:
根据所述元数据从所述数据服务器获取所述待访问数据。
进一步的,上述方法中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间;
所述数据服务器对所述由密钥加工后的元数据信息验证通过,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;
从所述数据服务器获取所述待访问数据,包括:
根据所述元数据从所述数据服务器获取所述待访问数据。
根据本申请的另一面还提供一种元数据服务器端用于辅助数据访问的方法,该方法包括:
从客户端接收用私钥签发的待访问数据的权限;
用公钥解开所述用私钥签发的待访问数据的权限,对解开的待访问数据的权限验证通过后生成由密钥加工后的元数据信息;
将所述由密钥加工后的元数据信息发送至所述客户端。
进一步的,上述方法中,从客户端接收用私钥签发的待访问数据的权限的同时,还包括:
从所述客户端接收所述待访问数据的权限的过期时间;
对解开的待访问数据的权限验证通过,包括:
根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
进一步的,上述方法中,对解开的待访问数据的权限验证通过,包括:
根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
进一步的,上述方法中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据。
进一步的,上述方法中,所述由密钥加工后的元数据信息还包括:
元数据的过期时间。
根据本申请的另一面,还提供一种数据服务器端用于辅助数据访问的方法,该方法包括:
从客户端获取由密钥加工后的元数据信息;
通过所述密钥对所述由密钥加工后的元数据信息进行验证;
对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据。
进一步的,上述方法中,当所述元数据信息包括元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据时,对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据,包括:
用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;
根据所述元数据向所述客户端传输所述待访问数据。
进一步的,上述方法中,当所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间时,对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;
根据所述元数据向所述客户端传输所述待访问数据。
根据本申请的另一面还提供一种用于数据访问的客户端,该客户端包括:
发送权限装置,用于向元数据服务器发送用私钥签发的待访问数据的权限;
获取元数据装置,用于从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限由所述元数据服务器用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器对解开的待访问数据的权限验证通过后生成;
获取数据装置,用于将所述由密钥加工后的元数据信息发送至数据服务器,待所述数据服务器对所述由密钥加工后的元数据信息验证通过后,从所述数据服务器获取所述待访问数据,其中,所述由密钥加工后的元数据信息由所述数据服务器通过所述密钥进行验证。
进一步的,上述客户端中,所述客户端还包括发送过期时间装置,用于在向元数据服务器发送用私钥签发的待访问数据的权限的同时,向元数据服务器发送所述待访问数据的权限的过期时间,其中,所述元数据服务器,用于根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
进一步的,上述客户端中,所述元数据服务器,用于根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
进一步的,上述客户端中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据;
所述数据服务器,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;
获取数据装置,用于根据所述元数据从所述数据服务器获取所述待访问数据。
进一步的,上述客户端中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间;
所述数据服务器,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;
所述获取数据装置,用于根据所述元数据从所述数据服务器获取所述待访问数据。
根据本申请的另一面还提供一种辅助数据访问的元数据服务器,该元数据服务器包括:
接收权限装置,用于从客户端接收用私钥签发的待访问数据的权限;
生成元数据装置,用于用公钥解开所述用私钥签发的待访问数据的权限,对解开的待访问数据的权限验证通过后生成由密钥加工后的元数据信息;
发送元数据装置,用于将所述由密钥加工后的元数据信息发送至所述客户端。
进一步的,上述元数据服务器中,所述元数据服务器还包括接收过期时间装置,用于从所述客户端接收所述待访问数据的权限的过期时间;
所述生成元数据装置,用于根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
进一步的,上述元数据服务器中,所述生成元数据装置,用于根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
进一步的,上述元数据服务器中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据。
进一步的,上述元数据服务器中,所述由密钥加工后的元数据信息还包括:元数据的过期时间。
根据本申请的另一面还提供一种辅助数据访问的数据服务器,其中,该数据服务器包括:
元数据装置,用于从客户端获取由密钥加工后的元数据信息;
验证装置,用于通过所述密钥对所述由密钥加工后的元数据信息进行验证;
数据传输装置,用于对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据。
进一步的,上述数据服务器中,当所述元数据信息包括元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据时,所述数据传输装置,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;根据所述元数据向所述客户端传输所述待访问数据。
进一步的,上述数据服务器中,当所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间时,所述数据传输装置,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;根据所述元数据向所述客户端传输所述待访问数据。
与现有技术相比,本申请通过所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后,生成所述由密钥加工后的元数据信息,可以实现对元数据服务器的访问控制,这样可以确保元数据服务器的安全性,另外,在所述数据服务器对所述由密钥加工后的元数据信息验证通过后,才允许客户端从所述数据服务器获取所述待访问数据,可以实现对数据服务器的访问控制,这样可以确保数据服务器的安全性,最终实现客户端的抗伪造性。
进一步的,本申请在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,即所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,当同时满足此附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
进一步的,本申请在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,即所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则判断为满足附加的条件,当解开的待访问数据的权限过大,超过所述预设的权限阈值,则判断为不满足附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
进一步的,本申请中所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,在如果比较一致,才验证通过,因为客户端没有密钥(key),说明客户端是可信的,这样,客户端就可以与数据服务器建立可信连接,就可以安全地传输待访问数据。
进一步的,本申请中所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,满足比较一致的条件同时,还需要另一条件,即数据服务器判断元数据未过期,两个条件都满足后,才判断为验证通过,可以进行后续对数据服务器的访问,从而实现对所述由密钥加工后的元数据信息验证更严格的验证,保证客户端的可信度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种客户端用于数据访问的方法的流程图;
图2示出本申请一个实施例的分布式文件系统架构图;
图3示出根据本申请一个实施例的客户端会向元数据服务器发送的消息内容示意图;
图4示出根据本申请另一个方面的元数据服务器端用于辅助数据访问的方法的流程图;
图5示出根据本申请另一个方面的数据服务器端用于辅助数据访问的方法的流程图;
图6示出根据本申请另一个方面的用于数据访问的客户端的模块图;
图7示出根据本申请一个优选实施例的用于数据访问的客户端的模块图;
图8示出根据本申请另一个方面的辅助数据访问的元数据服务器的模块图;
图9示出根据本申请一个优选实施例的辅助数据访问的元数据服务器的模块图;
图10示出根据本申请另一个方面的辅助数据访问的数据服务器的模块图;
图11示出根据本申请一个具体应用实施例的流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如图1所示,本申请提供一种客户端用于数据访问的方法,其中,该方法包括:
步骤S11,向元数据服务器发送用私钥签发的待访问数据的权限;具体的,如图2所示,分布式文件系统架构由三方来参与:Client端(客户端1)、NameNode端(元数据服务器2)、DataNode端(数据服务器3),其中,图中HA(High Available)为高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点,这三方的通信可以是基于RPC协议来通信,建立在TCP/IP协议之上,元数据服务器存储着待访问数据的元数据信息(meta),元数据信息用于记录待访问数据在数据服务器上存储位置的信息,客户端通过从元数据服务器获取元数据信息,然后通过元数据信息直接访问数据服务器获取所需要的待访问数据,对于元数据服务器的访问控制可以使用能力鉴权(Capability)的方式,Capability是用于访问控制的一种数据结构,其定义了对一个或多个指定的资源(如目录、文件等)所具有的访问权限,能力鉴权需要包括私钥(Signature)和待访问数据的权限(Permissions),以便客户端向元数据服务器发送用私钥签发的待访问数据的权限,在此待访问数据的权限(Permissions)可以是一个权限集合列表,每一个permission可以有两个字段:权限集合编号resourceID和对应于权限集合编号的权限集合(permission bundle),可以根据需要设置权限集合的数据位数,如可设置32bits,每个bit表示用户定义的一个权限,待访问数据的权限可以包括:READ(读权限)、WRITE(写权限)、ROOT(读写权限,等价于READ|WRITE);
步骤S12,从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限由所述元数据服务器用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器对解开的待访问数据的权限验证通过后生成;在此,所述公钥是对应于所述私钥的公钥,以方便所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,当客户端去访问元数据服务器的时候,向元数据服务器发送用私钥签发的待访问数据的权限,然后元数据服务器拿到该用私钥签发的待访问数据的权限之后需要作验证,如果验证通过,客户端就可以从元数据服务器获取由密钥加工后的元数据信息,进而继续后续对数据服务器的访问,例如,当客户端client1请求读取待访问数据file1的内容,RPC协议下请求格式为:(/client1/file1,READ),客户端会向元数据服务器发送该请求的用私钥签发的待访问数据的权限,这个时候客户端会向元数据服务器发送的消息内容具体可参见图3,消息内容包括:消息头(A)、包含具体请求内容的消息体(B)及用私钥签发的待访问数据的权限(C),客户端可用protocolbuffer(google的一种数据交换的格式)格式来传输消息内容,然后元数据服务器拿到用私钥签发的待访问数据的权限之后,利用公钥解开用私钥签发的待访问数据的权限,然后对解开的待访问数据的权限验证通过后生成所述由密钥加工后的元数据信息,客户端从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限可由客户端自己生成,也可由另外的第三方生成后,由客户端从所述第三方获取,另外,当客户端能够利用公钥解开用私钥签发的待访问数据的权限,即可判断为对解开的待访问数据的权限验证通过,也可以在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过;
步骤S13,将所述由密钥加工后的元数据信息发送至数据服务器,待所述数据服务器对所述由密钥加工后的元数据信息验证通过后,从所述数据服务器获取所述待访问数据,其中,所述由密钥加工后的元数据信息由所述数据服务器通过所述密钥进行验证。本实施例通过所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后,生成所述由密钥加工后的元数据信息,可以实现对元数据服务器的访问控制,这样可以确保元数据服务器的安全性,另外,在所述数据服务器对所述由密钥加工后的元数据信息验证通过后,才允许客户端从所述数据服务器获取所述待访问数据,可以实现对数据服务器的访问控制,这样可以确保数据服务器的安全性,最终实现客户端的抗伪造性。
本申请的客户端用于数据访问的方法一优选的实施例中,步骤S11,向元数据服务器发送用私钥签发的待访问数据的权限的同时,还包括:
向元数据服务器发送所述待访问数据的权限的过期时间(Expire);
所述元数据服务器对解开的待访问数据的权限验证通过,包括:
所述元数据服务器根据所述权限的过期时间(Expire)对解开的待访问数据的权限判断为未过期时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,当同时满足此附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。详细的,在分布式文件系统中,能力鉴权(Capability)可定义为如下格式:
Length | Signature | ID | Expire | Permissions |
其中:Length表示Signarure的长度;
Signature表示私钥,用于验证Permissions是否被篡改;
ID表示Capability的ID号,是唯一的;
Expire表示该Capability的过期时间;
Permissions表示待访问数据的权限。
本申请的客户端用于数据访问的方法一优选的实施例中,所述元数据服务器对解开的待访问数据的权限验证通过,包括:
所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则判断为满足附加的条件,当解开的待访问数据的权限过大,超过所述预设的权限阈值,则判断为不满足附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
本申请的客户端用于数据访问的方法一优选的实施例中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据;在此,可以在元数据服务器和数据服务器部署相同的密钥(key),例如,可以在元数据服务器和数据服务器部署一个同样的文件(key.txt),该文件里保存着密钥(key),该密钥(key)必须要保存在一个安全的目录,需要特定权限才可以打开,以防止密钥被窃取,密钥(key)的长度可以随机选取,长度不能太短也不能太长,可设定key的长度为16字节(128位),密钥(key)可以使用linux操作系统的uuid生成,可以通过/proc/sys/kernel/random/uuid来随机生成一个uuid码,也可以使用openssl命令来生成一个密钥key,另外,客户端请求访问元数据服务器并通过对解开的待访问数据的权限的验证的时候,元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg,msg为元数据,其中,msg’为从所述元数据(msg)中提取的部分元数据,HMAC(key,msg’)为用所述密钥(key)并采用HMAC算法加密后的部分元数据(msg’),元数据可对由密钥加工后的元数据信息进行protocolbuffer序列化之后将其发送给客户端,后续客户再将序列化之后的由密钥加工后的元数据信息发送至数据服务器,在此,生成所述用所述密钥加密后的部分元数据的加密算法不限于上述HMAC算法,其中,HMAC为消息认证码,其通过捆绑一个共享密钥可以使用任何迭代的可用于加密的散列函数;
所述数据服务器对所述由密钥加工后的元数据信息验证通过,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;在此,数据服务器收到客户端发来的序列化之后的由密钥加工后的元数据信息,针对接收到的序列化后的信息进行反序列化之后,从本地部署的文件(key.txt)中获取密钥(key),利用该key值对接收的msg’字段进行HMAC(Hash-based Message AuthenticationCode)算法得到HMAC(key,msg’),看得到的HMAC(key,msg’)和接收到的HMAC(key,msg’)是否一样,如果一样就可以确定接收到的由密钥加工后的元数据信息是从元数据服务器获取到的,因为客户端没有密钥(key),说明客户端是可信的,这样,客户端就可以与数据服务器建立可信连接,就可以安全地传输待访问数据了;
步骤S13中的从所述数据服务器获取所述待访问数据,包括:
根据所述元数据从所述数据服务器获取所述待访问数据。
本申请的客户端用于数据访问的方法一优选的实施例中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间;在此,以上述元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg为例,可以在用所述密钥加密后的部分元数据(msg’)中设置元数据的过期时间(expire_time),如msg’={FileID,READ/WRITE,expire_time};
所述数据服务器对所述由密钥加工后的元数据信息验证通过,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;在此,在将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,满足比较一致的条件同时,还需要另一条件,即数据服务器判断元数据未过期,两个条件都满足后,才判断为验证通过,可以进行后续对数据服务器的访问,从而实现对所述由密钥加工后的元数据信息验证更严格的验证,保证客户端的可信度,详细的,元数据服务器通过设置客户端访问数据服务器的过期时间(expire_time),一旦这个expire_time到期之后,数据服务器可以触发一个到期(token expire)事件,该到期事件会发个请求给客户端,客户端需要重新向元数据服务器请求由密钥加工后的元数据信息;
步骤S13中的从所述数据服务器获取所述待访问数据,包括:
根据所述元数据从所述数据服务器获取所述待访问数据。
如图4所示,根据本申请的另一面还提供一种元数据服务器端用于辅助数据访问的方法,该方法包括:
步骤S21,从客户端接收用私钥签发的待访问数据的权限;具体的,如图2所示,分布式文件系统架构由三方来参与的:Client端(客户端1)、NameNode端(元数据服务器2)、DataNode端(数据服务器3),这三方的通信可以是基于RPC协议来通信,建立在TCP/IP协议之上,元数据服务器存储着待访问数据的元数据信息(meta),元数据信息用于记录待访问数据在数据服务器上存储位置的信息,客户端通过从元数据服务器获取元数据信息,然后通过元数据信息直接访问数据服务器获取所需要的待访问数据,对于元数据服务器的访问控制可以使用能力鉴权(Capability)的方式,Capability是用于访问控制的一种数据结构,其定义了对一个或多个指定的资源(如目录、文件等)所具有的访问权限,能力鉴权需要包括私钥(Signature)和待访问数据的权限(Permissions),以便客户端向元数据服务器发送用私钥签发的待访问数据的权限,在此待访问数据的权限(Permissions)可以是一个权限集合列表,每一个permission可以有两个字段:权限集合编号resourceID和对应于权限集合编号的权限集合(permission bundle),可以根据需要设置权限集合的数据位数,如可设置32bits,每个bit表示用户定义的一个权限,待访问数据的权限可以包括:READ(读权限)、WRITE(写权限)、ROOT(读写权限,等价于READ|WRITE);
步骤S22,用公钥解开所述用私钥签发的待访问数据的权限,对解开的待访问数据的权限验证通过后生成由密钥加工后的元数据信息;在此,所述公钥是对应于所述私钥的公钥,以方便所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,当客户端去访问元数据服务器的时候,向元数据服务器发送用私钥签发的待访问数据的权限,然后元数据服务器拿到该用私钥签发的待访问数据的权限之后需要作验证,如果验证通过,客户端就可以从元数据服务器获取由密钥加工后的元数据信息,进而继续后续对数据服务器的访问,例如,当客户端client1请求读取待访问数据file1的内容,RPC协议下请求格式为:(/client1/file1,READ),客户端会向元数据服务器发送该请求的用私钥签发的待访问数据的权限,这个时候客户端会向元数据服务器发送的消息内容具体可参见图3,消息内容包括:消息头(A)、包含具体请求内容的消息体(B)及用私钥签发的待访问数据的权限(C),客户端可用protocolbuffer(google的一种数据交换的格式)格式来传输消息内容,然后元数据服务器拿到用私钥签发的待访问数据的权限之后,利用公钥解开用私钥签发的待访问数据的权限,然后对解开的待访问数据的权限验证通过后生成所述由密钥加工后的元数据信息,客户端从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限可由客户端自己生成,也可由另外的第三方生成后,由客户端从所述第三方获取,另外,当客户端能够利用公钥解开用私钥签发的待访问数据的权限,即可判断为对解开的待访问数据的权限验证通过,也可以在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过;
步骤S23,将所述由密钥加工后的元数据信息发送至所述客户端。本实施例通过所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后,生成所述由密钥加工后的元数据信息,可以实现对元数据服务器的访问控制,这样可以确保元数据服务器的安全性。
本申请的元数据服务器端用于辅助数据访问的方法一优选的实施例中,从客户端接收用私钥签发的待访问数据的权限的同时,还包括:
从所述客户端接收所述待访问数据的权限的过期时间(Expire);
步骤S22中的对解开的待访问数据的权限验证通过,包括:
根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,当同时满足此附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。详细的,在分布式文件系统中,能力鉴权(Capability)可定义为如下格式:
Length | Signature | ID | Expire | Permissions |
其中:Length表示Signarure的长度;
Signature表示私钥,用于验证Permissions是否被篡改;
ID表示Capability的ID号,是唯一的;
Expire表示该Capability的过期时间;
Permissions表示待访问数据的权限。
本申请的元数据服务器端用于辅助数据访问的方法一优选的实施例中,步骤S22中的对解开的待访问数据的权限验证通过,包括:
根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则判断为满足附加的条件,当解开的待访问数据的权限过大,超过所述预设的权限阈值,则判断为不满足附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
本申请的元数据服务器端用于辅助数据访问的方法一优选的实施例中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据。在此,可以在元数据服务器和数据服务器部署相同的密钥(key),例如,可以在元数据服务器和数据服务器部署一个同样的文件(key.txt),该文件里保存着密钥(key),该密钥(key)必须要保存在一个安全的目录,需要特定权限才可以打开,以防止密钥被窃取,密钥(key)的长度可以随机选取,长度不能太短也不能太长,可设定key的长度为16字节(128位),密钥(key)可以使用linux操作系统的uuid生成,可以通过/proc/sys/kernel/random/uuid来随机生成一个uuid码,也可以使用openssl命令来生成一个密钥key,另外,客户端请求访问元数据服务器并通过对解开的待访问数据的权限的验证的时候,元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg,msg为元数据,其中,msg’为从所述元数据(msg)中提取的部分元数据,HMAC(key,msg’)为用所述密钥(key)并采用HMAC算法加密后的部分元数据(msg’),元数据可对由密钥加工后的元数据信息进行protocolbuffer序列化之后将其发送给客户端,后续客户再将序列化之后的由密钥加工后的元数据信息发送至数据服务器,在此,生成所述用所述密钥加密后的部分元数据的加密算法不限于上述HMAC算法,其中,HMAC为消息认证码,其通过捆绑一个共享密钥可以使用任何迭代的可用于加密的散列函数。
本申请的元数据服务器端用于辅助数据访问的方法一优选的实施例中,所述由密钥加工后的元数据信息还包括:
元数据的过期时间。在此,以上述元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg为例,可以在用所述密钥加密后的部分元数据(msg’)中设置元数据的过期时间(expire_time),如msg’={FileID,READ/WRITE,expire_time}。
如图5所示,根据本申请的另一面还提供一种数据服务器端用于辅助数据访问的方法,该方法包括:
步骤S31,从客户端获取由密钥加工后的元数据信息;
步骤S32,通过所述密钥对所述由密钥加工后的元数据信息进行验证;
步骤S33,对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据。本实施例在所述数据服务器对所述由密钥加工后的元数据信息验证通过后,才允许客户端从所述数据服务器获取所述待访问数据,可以实现对数据服务器的访问控制,这样可以确保数据服务器的安全性,最终实现客户端的抗伪造性。
本申请的数据服务器端用于辅助数据访问的方法的一优选的实施例中,当所述元数据信息包括元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据时,步骤S33,对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据,包括:
用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;在此,可以在元数据服务器和数据服务器部署相同的密钥(key),例如,可以在元数据服务器和数据服务器部署一个同样的文件(key.txt),该文件里保存着密钥(key),该密钥(key)必须要保存在一个安全的目录,需要特定权限才可以打开,以防止密钥被窃取,密钥(key)的长度可以随机选取,长度不能太短也不能太长,可设定key的长度为16字节(128位),密钥(key)可以使用linux操作系统的uuid生成,可以通过/proc/sys/kernel/random/uuid来随机生成一个uuid码,也可以使用openssl命令来生成一个密钥key,另外,客户端请求访问元数据服务器并通过对解开的待访问数据的权限的验证的时候,元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg,msg为元数据,其中,msg’为从所述元数据(msg)中提取的部分元数据,HMAC(key,msg’)为用所述密钥(key)并采用HMAC算法加密后的部分元数据(msg’),元数据可对由密钥加工后的元数据信息进行protocolbuffer序列化之后将其发送给客户端,后续客户再将序列化之后的由密钥加工后的元数据信息发送至数据服务器,在此,生成所述用所述密钥加密后的部分元数据的加密算法不限于上述HMAC算法,其中,HMAC为消息认证码,其通过捆绑一个共享密钥可以使用任何迭代的可用于加密的散列函数,数据服务器收到客户端发来的序列化之后的由密钥加工后的元数据信息,针对接收到的序列化后的信息进行反序列化之后,从本地部署的文件(key.txt)中获取密钥(key),利用该key值对接收的msg’字段进行HMAC(Hash-based Message Authentication Code)算法得到HMAC(key,msg’),看得到的HMAC(key,msg’)和接收到的HMAC(key,msg’)是否一样,如果一样就可以确定接收到的由密钥加工后的元数据信息是从元数据服务器获取到的,因为客户端没有密钥(key),说明客户端是可信的,这样,客户端就可以与数据服务器建立可信连接,就可以安全地传输待访问数据了;
根据所述元数据向所述客户端传输所述待访问数据。
本申请的数据服务器端用于辅助数据访问的方法的一优选的实施例中,当所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间时,步骤S33,对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;在此,以上述元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg为例,可以在用所述密钥加密后的部分元数据(msg’)中设置元数据的过期时间(expire_time),如msg’={FileID,READ/WRITE,expire_time},在将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,满足比较一致的条件同时,还需要另一条件,即数据服务器判断元数据未过期,两个条件都满足后,才判断为验证通过,可以进行后续对数据服务器的访问,从而实现对所述由密钥加工后的元数据信息验证更严格的验证,保证客户端的可信度,详细的,元数据服务器通过设置客户端访问数据服务器的过期时间(expire_time),一旦这个expire_time到期之后,数据服务器可以触发一个到期(token expire)事件,该到期事件会发个请求给客户端,客户端需要重新向元数据服务器请求由密钥加工后的元数据信息;
根据所述元数据向所述客户端传输所述待访问数据。
如图6所示,一种用于数据访问的客户端,该客户端1包括:
发送权限装置11,用于向元数据服务器2发送用私钥签发的待访问数据的权限;具体的,如图2所示,分布式文件系统架构由三方来参与:Client端(客户端1)、NameNode端(元数据服务器2)、DataNode端(数据服务器3),这三方的通信可以是基于RPC协议来通信,建立在TCP/IP协议之上,元数据服务器存储着待访问数据的元数据信息(meta),元数据信息用于记录待访问数据在数据服务器上存储位置的信息,客户端通过从元数据服务器获取元数据信息,然后通过元数据信息直接访问数据服务器获取所需要的待访问数据,对于元数据服务器的访问控制可以使用能力鉴权(Capability)的方式,Capability是用于访问控制的一种数据结构,其定义了对一个或多个指定的资源(如目录、文件等)所具有的访问权限,能力鉴权需要包括私钥(Signature)和待访问数据的权限(Permissions),以便客户端向元数据服务器发送用私钥签发的待访问数据的权限,在此待访问数据的权限(Permissions)可以是一个权限集合列表,每一个permission可以有两个字段:权限集合编号resourceID和对应于权限集合编号的权限集合(permission bundle),可以根据需要设置权限集合的数据位数,如可设置32bits,每个bit表示用户定义的一个权限,待访问数据的权限可以包括:READ(读权限)、WRITE(写权限)、ROOT(读写权限,等价于READ|WRITE);
获取元数据装置12,用于从元数据服务器2获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限由所述元数据服务器2用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器2对解开的待访问数据的权限验证通过后生成;在此,所述公钥是对应于所述私钥的公钥,以方便所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,当客户端去访问元数据服务器的时候,向元数据服务器发送用私钥签发的待访问数据的权限,然后元数据服务器拿到该用私钥签发的待访问数据的权限之后需要作验证,如果验证通过,客户端就可以从元数据服务器获取由密钥加工后的元数据信息,进而继续后续对数据服务器的访问,例如,当客户端client1请求读取待访问数据file1的内容,RPC协议下请求格式为:(/client1/file1,READ),客户端会向元数据服务器发送该请求的用私钥签发的待访问数据的权限,这个时候客户端会向元数据服务器发送的消息内容具体可参见图3,消息内容包括:消息头(A)、包含具体请求内容的消息体(B)及用私钥签发的待访问数据的权限(C),客户端可用protocolbuffer(google的一种数据交换的格式)格式来传输消息内容,然后元数据服务器拿到用私钥签发的待访问数据的权限之后,利用公钥解开用私钥签发的待访问数据的权限,然后对解开的待访问数据的权限验证通过后生成所述由密钥加工后的元数据信息,客户端从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限可由客户端自己生成,也可由另外的第三方生成后,由客户端从所述第三方获取,另外,当客户端能够利用公钥解开用私钥签发的待访问数据的权限,即可判断为对解开的待访问数据的权限验证通过,也可以在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过;
获取数据装置13,用于将所述由密钥加工后的元数据信息发送至数据服务器3,待所述数据服务器3对所述由密钥加工后的元数据信息验证通过后,从所述数据服务器3获取所述待访问数据,其中,所述由密钥加工后的元数据信息由所述数据服务器通过所述密钥进行验证。本实施例通过所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后,生成所述由密钥加工后的元数据信息,可以实现对元数据服务器的访问控制,这样可以确保元数据服务器的安全性,另外,在所述数据服务器对所述由密钥加工后的元数据信息验证通过后,才允许客户端从所述数据服务器获取所述待访问数据,可以实现对数据服务器的访问控制,这样可以确保数据服务器的安全性,最终实现客户端的抗伪造性。
如图7所示,本申请用于数据访问的客户端一优选的实施例中,所述客户端1还包括发送过期时间装置14,用于在向元数据服务器2发送用私钥签发的待访问数据的权限的同时,向元数据服务器2发送所述待访问数据的权限的过期时间(Expire),其中,所述元数据服务器2,用于根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,当同时满足此附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。详细的,在分布式文件系统中,能力鉴权(Capability)可定义为如下格式:
Length | Signature | ID | Expire | Permissions |
其中:Length表示Signarure的长度;
Signature表示私钥,用于验证Permissions是否被篡改;
ID表示Capability的ID号,是唯一的;
Expire表示该Capability的过期时间;
Permissions表示待访问数据的权限。
本申请用于数据访问的客户端一优选的实施例中,所述元数据服务器,用于根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则判断为满足附加的条件,当解开的待访问数据的权限过大,超过所述预设的权限阈值,则判断为不满足附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
本申请用于数据访问的客户端一优选的实施例中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据;在此,可以在元数据服务器和数据服务器部署相同的密钥(key),例如,可以在元数据服务器和数据服务器部署一个同样的文件(key.txt),该文件里保存着密钥(key),该密钥(key)必须要保存在一个安全的目录,需要特定权限才可以打开,以防止密钥被窃取,密钥(key)的长度可以随机选取,长度不能太短也不能太长,可设定key的长度为16字节(128位),密钥(key)可以使用linux操作系统的uuid生成,可以通过/proc/sys/kernel/random/uuid来随机生成一个uuid码,也可以使用openssl命令来生成一个密钥key,另外,客户端请求访问元数据服务器并通过对解开的待访问数据的权限的验证的时候,元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg,msg为元数据,其中,msg’为从所述元数据(msg)中提取的部分元数据,HMAC(key,msg’)为用所述密钥(key)并采用HMAC算法加密后的部分元数据(msg’),元数据可对由密钥加工后的元数据信息进行protocolbuffer序列化之后将其发送给客户端,后续客户再将序列化之后的由密钥加工后的元数据信息发送至数据服务器,在此,生成所述用所述密钥加密后的部分元数据的加密算法不限于上述HMAC算法,其中,HMAC为消息认证码,其通过捆绑一个共享密钥可以使用任何迭代的可用于加密的散列函数;
所述数据服务器3,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;在此,数据服务器收到客户端发来的序列化之后的由密钥加工后的元数据信息,针对接收到的序列化后的信息进行反序列化之后,从本地部署的文件(key.txt)中获取密钥(key),利用该key值对接收的msg’字段进行HMAC(Hash-based MessageAuthentication Code)算法得到HMAC(key,msg’),看得到的HMAC(key,msg’)和接收到的HMAC(key,msg’)是否一样,如果一样就可以确定接收到的由密钥加工后的元数据信息是从元数据服务器获取到的,因为客户端没有密钥(key),说明客户端是可信的,这样,客户端就可以与数据服务器建立可信连接,就可以安全地传输待访问数据了;
获取数据装置13,用于根据所述元数据从所述数据服务器获取所述待访问数据。
本申请用于数据访问的客户端一优选的实施例中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间;在此,以上述元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg为例,可以在用所述密钥加密后的部分元数据(msg’)中设置元数据的过期时间(expire_time),如msg’={FileID,READ/WRITE,expire_time};
所述数据服务器3,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;在此,在将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,满足比较一致的条件同时,还需要另一条件,即数据服务器判断元数据未过期,两个条件都满足后,才判断为验证通过,可以进行后续对数据服务器的访问,从而实现对所述由密钥加工后的元数据信息验证更严格的验证,保证客户端的可信度,详细的,元数据服务器通过设置客户端访问数据服务器的过期时间(expire_time),一旦这个expire_time到期之后,数据服务器可以触发一个到期(token expire)事件,该到期事件会发个请求给客户端,客户端需要重新向元数据服务器请求由密钥加工后的元数据信息;
所述获取数据装置13,用于根据所述元数据从所述数据服务器获取所述待访问数据。
如图8所示,根据本申请的另一面,还提供一种辅助数据访问的元数据服务器,该元数据服务器2包括:
接收权限装置21,用于从客户端接收用私钥签发的待访问数据的权限;具体的,如图2所示,分布式文件系统架构由三方来参与的:Client端(客户端1)、NameNode端(元数据服务器2)、DataNode端(数据服务器3),这三方的通信可以是基于RPC协议来通信,建立在TCP/IP协议之上,元数据服务器存储着待访问数据的元数据信息(meta),元数据信息用于记录待访问数据在数据服务器上存储位置的信息,客户端通过从元数据服务器获取元数据信息,然后通过元数据信息直接访问数据服务器获取所需要的待访问数据,对于元数据服务器的访问控制可以使用能力鉴权(Capability)的方式,Capability是用于访问控制的一种数据结构,其定义了对一个或多个指定的资源(如目录、文件等)所具有的访问权限,能力鉴权需要包括私钥(Signature)和待访问数据的权限(Permissions),以便客户端向元数据服务器发送用私钥签发的待访问数据的权限,在此待访问数据的权限(Permissions)可以是一个权限集合列表,每一个permission可以有两个字段:权限集合编号resourceID和对应于权限集合编号的权限集合(permission bundle),可以根据需要设置权限集合的数据位数,如可设置32bits,每个bit表示用户定义的一个权限,待访问数据的权限可以包括:READ(读权限)、WRITE(写权限)、ROOT(读写权限,等价于READ|WRITE);
生成元数据装置22,用于用公钥解开所述用私钥签发的待访问数据的权限,对解开的待访问数据的权限验证通过后生成由密钥加工后的元数据信息;在此,所述公钥是对应于所述私钥的公钥,以方便所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,当客户端去访问元数据服务器的时候,向元数据服务器发送用私钥签发的待访问数据的权限,然后元数据服务器拿到该用私钥签发的待访问数据的权限之后需要作验证,如果验证通过,客户端就可以从元数据服务器获取由密钥加工后的元数据信息,进而继续后续对数据服务器的访问,例如,当客户端client1请求读取待访问数据file1的内容,RPC协议下请求格式为:(/client1/file1,READ),客户端会向元数据服务器发送该请求的用私钥签发的待访问数据的权限,这个时候客户端会向元数据服务器发送的消息内容具体可参见图3,消息内容包括:消息头(A)、包含具体请求内容的消息体(B)及用私钥签发的待访问数据的权限(C),客户端可用protocolbuffer(google的一种数据交换的格式)格式来传输消息内容,然后元数据服务器拿到用私钥签发的待访问数据的权限之后,利用公钥解开用私钥签发的待访问数据的权限,然后对解开的待访问数据的权限验证通过后生成所述由密钥加工后的元数据信息,客户端从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限可由客户端自己生成,也可由另外的第三方生成后,由客户端从所述第三方获取,另外,当客户端能够利用公钥解开用私钥签发的待访问数据的权限,即可判断为对解开的待访问数据的权限验证通过,也可以在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过;
发送元数据装置23,用于将所述由密钥加工后的元数据信息发送至所述客户端。本实施例通过所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后,生成所述由密钥加工后的元数据信息,可以实现对元数据服务器的访问控制,这样可以确保元数据服务器的安全性。
如图9所示,本申请的辅助数据访问的元数据服务器一优选的实施例中,所述元数据服务器2还包括接收过期时间装置24,用于从所述客户端接收所述待访问数据的权限的过期时间(Expire);
所述生成元数据装置22,用于根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,当同时满足此附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。详细的,在分布式文件系统中,能力鉴权(Capability)可定义为如下格式:
Length | Signature | ID | Expire | Permissions |
其中:Length表示Signarure的长度;
Signature表示私钥,用于验证Permissions是否被篡改;
ID表示Capability的ID号,是唯一的;
Expire表示该Capability的过期时间;
Permissions表示待访问数据的权限。
本申请的辅助数据访问的元数据服务器一优选的实施例中,所述生成元数据装置22,用于根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,在此进一步增加附加的条件,即所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则判断为满足附加的条件,当解开的待访问数据的权限过大,超过所述预设的权限阈值,则判断为不满足附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
本申请的辅助数据访问的元数据服务器一优选的实施例中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据。在此,可以在元数据服务器和数据服务器部署相同的密钥(key),例如,可以在元数据服务器和数据服务器部署一个同样的文件(key.txt),该文件里保存着密钥(key),该密钥(key)必须要保存在一个安全的目录,需要特定权限才可以打开,以防止密钥被窃取,密钥(key)的长度可以随机选取,长度不能太短也不能太长,可设定key的长度为16字节(128位),密钥(key)可以使用linux操作系统的uuid生成,可以通过/proc/sys/kernel/random/uuid来随机生成一个uuid码,也可以使用openssl命令来生成一个密钥key,另外,客户端请求访问元数据服务器并通过对解开的待访问数据的权限的验证的时候,元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg,msg为元数据,其中,msg’为从所述元数据(msg)中提取的部分元数据,HMAC(key,msg’)为用所述密钥(key)并采用HMAC算法加密后的部分元数据(msg’),元数据可对由密钥加工后的元数据信息进行protocolbuffer序列化之后将其发送给客户端,后续客户再将序列化之后的由密钥加工后的元数据信息发送至数据服务器,在此,生成所述用所述密钥加密后的部分元数据的加密算法不限于上述HMAC算法,其中,HMAC为消息认证码,其通过捆绑一个共享密钥可以使用任何迭代的可用于加密的散列函数。
本申请的辅助数据访问的元数据服务器一优选的实施例中,所述由密钥加工后的元数据信息还包括:元数据的过期时间。在此,以上述元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg为例,可以在用所述密钥加密后的部分元数据(msg’)中设置元数据的过期时间(expire_time),如msg’={FileID,READ/WRITE,expire_time}。
如图10所示,根据本申请的另一面,还提供一种辅助数据访问的数据服务器,该数据服务器3包括:
元数据装置31,用于从客户端获取由密钥加工后的元数据信息;
验证装置32,用于通过所述密钥对所述由密钥加工后的元数据信息进行验证;
数据传输装置33,用于对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据。本实施例在所述数据服务器对所述由密钥加工后的元数据信息验证通过后,才允许客户端从所述数据服务器获取所述待访问数据,可以实现对数据服务器的访问控制,这样可以确保数据服务器的安全性,最终实现客户端的抗伪造性。
本申请的辅助数据访问的数据服务器的一优选的实施例中,当所述元数据信息包括元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据时,所述数据传输装置33,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;根据所述元数据向所述客户端传输所述待访问数据。在此,可以在元数据服务器和数据服务器部署相同的密钥(key),例如,可以在元数据服务器和数据服务器部署一个同样的文件(key.txt),该文件里保存着密钥(key),该密钥(key)必须要保存在一个安全的目录,需要特定权限才可以打开,以防止密钥被窃取,密钥(key)的长度可以随机选取,长度不能太短也不能太长,可设定key的长度为16字节(128位),密钥(key)可以使用linux操作系统的uuid生成,可以通过/proc/sys/kernel/random/uuid来随机生成一个uuid码,也可以使用openssl命令来生成一个密钥key,另外,客户端请求访问元数据服务器并通过对解开的待访问数据的权限的验证的时候,元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg,msg为元数据,其中,msg’为从所述元数据(msg)中提取的部分元数据,HMAC(key,msg’)为用所述密钥(key)并采用HMAC算法加密后的部分元数据(msg’),元数据可对由密钥加工后的元数据信息进行protocolbuffer序列化之后将其发送给客户端,后续客户再将序列化之后的由密钥加工后的元数据信息发送至数据服务器,在此,生成所述用所述密钥加密后的部分元数据的加密算法不限于上述HMAC算法,其中,HMAC为消息认证码,其通过捆绑一个共享密钥可以使用任何迭代的可用于加密的散列函数,数据服务器收到客户端发来的序列化之后的由密钥加工后的元数据信息,针对接收到的序列化后的信息进行反序列化之后,从本地部署的文件(key.txt)中获取密钥(key),利用该key值对接收的msg’字段进行HMAC(Hash-based Message Authentication Code)算法得到HMAC(key,msg’),看得到的HMAC(key,msg’)和接收到的HMAC(key,msg’)是否一样,如果一样就可以确定接收到的由密钥加工后的元数据信息是从元数据服务器获取到的,因为客户端没有密钥(key),说明客户端是可信的,这样,客户端就可以与数据服务器建立可信连接,就可以安全地传输待访问数据了。
本申请的辅助数据访问的数据服务器的一优选的实施例中,当所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间时,所述数据传输装置33,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;根据所述元数据向所述客户端传输所述待访问数据。在此,以上述元数据服务器返回给客户端的元数据信息包括HMAC(key,msg’)|msg’|msg为例,可以在用所述密钥加密后的部分元数据(msg’)中设置元数据的过期时间(expire_time),如msg’={FileID,READ/WRITE,expire_time},在将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,满足比较一致的条件同时,还需要另一条件,即数据服务器判断元数据未过期,两个条件都满足后,才判断为验证通过,可以进行后续对数据服务器的访问,从而实现对所述由密钥加工后的元数据信息验证更严格的验证,保证客户端的可信度,详细的,元数据服务器通过设置客户端访问数据服务器的过期时间(expire_time),一旦这个expire_time到期之后,数据服务器可以触发一个到期(token expire)事件,该到期事件会发个请求给客户端,客户端需要重新向元数据服务器请求由密钥加工后的元数据信息。
详细的,如图11所示,本申请一具体的应用实施例包括如下步骤:
步骤S111,客户端向元数据服务器发送用私钥签发的待访问数据的权限;
步骤S112,所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后生成由密钥加工后的元数据信息;
步骤S113,所述客户端从所述元数据服务器获取所述由密钥加工后的元数据信息,并将所述由密钥加工后的元数据信息发送至数据服务器;
步骤S114,所述数据服务器通过所述密钥对所述由密钥加工后的元数据信息进行验证;
步骤S115,待所述数据服务器对所述由密钥加工后的元数据信息验证通过后,所述客户端从所述数据服务器获取所述待访问数据。
综上所述,本申请通过所述元数据服务器用公钥解开所述用私钥签发的待访问数据的权限,并对解开的待访问数据的权限验证通过后,生成所述由密钥加工后的元数据信息,可以实现对元数据服务器的访问控制,这样可以确保元数据服务器的安全性,另外,在所述数据服务器对所述由密钥加工后的元数据信息验证通过后,才允许客户端从所述数据服务器获取所述待访问数据,可以实现对数据服务器的访问控制,这样可以确保数据服务器的安全性,最终实现客户端的抗伪造性。
进一步的,本申请在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,即所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,当同时满足此附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
进一步的,本申请在元数据服务器能够利用公钥解开用私钥签发的待访问数据的权限后,进一步增加附加的条件,即所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则判断为满足附加的条件,当解开的待访问数据的权限过大,超过所述预设的权限阈值,则判断为不满足附加的条件,当同时满足附加的条件的时候,才判断为对解开的待访问数据的权限验证通过,进而更严格地对待访问数据的权限进行验证,对不满足附加条件的情况,则不充许客户端后续对数据服务器的访问,保证后续需要访问的数据服务器上的数据安全性。
进一步的,本申请中所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,在如果比较一致,才验证通过,因为客户端没有密钥(key),说明客户端是可信的,这样,客户端就可以与数据服务器建立可信连接,就可以安全地传输待访问数据。
进一步的,本申请中所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,满足比较一致的条件同时,还需要另一条件,即数据服务器判断元数据未过期,两个条件都满足后,才判断为验证通过,可以进行后续对数据服务器的访问,从而实现对所述由密钥加工后的元数据信息验证更严格的验证,保证客户端的可信度。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (26)
1.一种客户端用于数据访问的方法,其中,该方法包括:
向元数据服务器发送用私钥签发的待访问数据的权限;
从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限由所述元数据服务器用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器对解开的待访问数据的权限验证通过后生成;
将所述由密钥加工后的元数据信息发送至数据服务器,待所述数据服务器对所述由密钥加工后的元数据信息验证通过后,从所述数据服务器获取所述待访问数据,其中,所述由密钥加工后的元数据信息由所述数据服务器通过所述密钥进行验证。
2.如权利要求1所述的方法,其中,向元数据服务器发送用私钥签发的待访问数据的权限的同时,还包括:
向元数据服务器发送所述待访问数据的权限的过期时间;
所述元数据服务器对解开的待访问数据的权限验证通过,包括:
所述元数据服务器根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
3.如权利要求1所述的方法,其中,所述元数据服务器对解开的待访问数据的权限验证通过,包括:
所述元数据服务器根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
4.如权利要求1至3任一项所述的方法,其中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据;
所述数据服务器对所述由密钥加工后的元数据信息验证通过,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;
从所述数据服务器获取所述待访问数据,包括:
根据所述元数据从所述数据服务器获取所述待访问数据。
5.如权利要求1至3任一项所述的方法,其中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间;
所述数据服务器对所述由密钥加工后的元数据信息验证通过,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;
从所述数据服务器获取所述待访问数据,包括:
根据所述元数据从所述数据服务器获取所述待访问数据。
6.一种元数据服务器端用于辅助数据访问的方法,其中,该方法包括:
从客户端接收用私钥签发的待访问数据的权限;
用公钥解开所述用私钥签发的待访问数据的权限,对解开的待访问数据的权限验证通过后生成由密钥加工后的元数据信息;
将所述由密钥加工后的元数据信息发送至所述客户端。
7.如权利要求6所述的方法,其中,从客户端接收用私钥签发的待访问数据的权限的同时,还包括:
从所述客户端接收所述待访问数据的权限的过期时间;
对解开的待访问数据的权限验证通过,包括:
根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
8.如权利要求6所述的方法,其中,对解开的待访问数据的权限验证通过,包括:
根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
9.如权利要求6至8任一项所述的方法,其中,所述由密钥加工后的元数据信息包括:
元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据。
10.如权利要求9所述的方法,其中,所述由密钥加工后的元数据信息还包括:
元数据的过期时间。
11.一种数据服务器端用于辅助数据访问的方法,其中,该方法包括:
从客户端获取由密钥加工后的元数据信息;
通过所述密钥对所述由密钥加工后的元数据信息进行验证;
对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输待访问数据;
其中,所述待访问数据的权限由元数据服务器用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器对解开的待访问数据的权限验证通过后生成。
12.如权利要求11所述的方法,其中,当所述元数据信息包括元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据时,对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据,包括:
用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;
根据所述元数据向所述客户端传输所述待访问数据。
13.如权利要求12所述的方法,其中,当所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间时,对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输所述待访问数据,包括:
所述数据服务器用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;
根据所述元数据向所述客户端传输所述待访问数据。
14.一种用于数据访问的客户端,其中,该客户端包括:
发送权限装置,用于向元数据服务器发送用私钥签发的待访问数据的权限;
获取元数据装置,用于从元数据服务器获取由密钥加工后的元数据信息,其中,所述用私钥签发的待访问数据的权限由所述元数据服务器用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器对解开的待访问数据的权限验证通过后生成;
获取数据装置,用于将所述由密钥加工后的元数据信息发送至数据服务器,待所述数据服务器对所述由密钥加工后的元数据信息验证通过后,从所述数据服务器获取所述待访问数据,其中,所述由密钥加工后的元数据信息由所述数据服务器通过所述密钥进行验证。
15.如权利要求14所述的客户端,其中,所述客户端还包括发送过期时间装置,用于在向元数据服务器发送用私钥签发的待访问数据的权限的同时,向元数据服务器发送所述待访问数据的权限的过期时间,其中,所述元数据服务器,用于根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
16.如权利要求14所述的客户端,其中,所述元数据服务器,用于根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
17.如权利要求14至16任一项所述的客户端,其中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据;
所述数据服务器,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;
获取数据装置,用于根据所述元数据从所述数据服务器获取所述待访问数据。
18.如权利要求14至16任一项所述的客户端,其中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间;
所述数据服务器,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;
所述获取数据装置,用于根据所述元数据从所述数据服务器获取所述待访问数据。
19.一种辅助数据访问的元数据服务器,其中,该元数据服务器包括:
接收权限装置,用于从客户端接收用私钥签发的待访问数据的权限;
生成元数据装置,用于用公钥解开所述用私钥签发的待访问数据的权限,对解开的待访问数据的权限验证通过后生成由密钥加工后的元数据信息;
发送元数据装置,用于将所述由密钥加工后的元数据信息发送至所述客户端。
20.如权利要求19所述的元数据服务器,其中,所述元数据服务器还包括接收过期时间装置,用于从所述客户端接收所述待访问数据的权限的过期时间;
所述生成元数据装置,用于根据所述权限的过期时间对解开的待访问数据的权限判断为未过期时,则验证通过。
21.如权利要求19所述的元数据服务器,其中,所述生成元数据装置,用于根据预设的权限阈值对解开的待访问数据的权限判断为未超过所述权限阈值时,则验证通过。
22.如权利要求19至21任一项所述的元数据服务器,其中,所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据。
23.如权利要求22所述的元数据服务器,其中,所述由密钥加工后的元数据信息还包括:元数据的过期时间。
24.一种辅助数据访问的数据服务器,其中,该数据服务器包括:
元数据装置,用于从客户端获取由密钥加工后的元数据信息;
验证装置,用于通过所述密钥对所述由密钥加工后的元数据信息进行验证;
数据传输装置,用于对所述由密钥加工后的元数据信息验证通过后,向所述客户端传输待访问数据;
其中,所述待访问数据的权限由元数据服务器用公钥解开,所述由密钥加工后的元数据信息由所述元数据服务器对解开的待访问数据的权限验证通过后生成。
25.如权利要求24所述的数据服务器,其中,当所述元数据信息包括元数据、从所述元数据中提取的部分元数据及用所述密钥加密后的部分元数据时,所述数据传输装置,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,如果比较一致,则验证通过;根据所述元数据向所述客户端传输所述待访问数据。
26.如权利要求25所述的数据服务器,其中,当所述由密钥加工后的元数据信息包括:元数据、从所述元数据中提取的部分元数据、用所述密钥加密后的部分元数据及元数据的过期时间时,所述数据传输装置,用于用所述密钥对接收到的所述部分无数进行本地加密,并将本地加密后得到的结果与接收到的用所述密钥加密后的部分元数据进行比较,并根据所述元数据的过期时间判断元数据是否过期,如果比较一致且元数据未过期,则验证通过;根据所述元数据向所述客户端传输所述待访问数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510469417.7A CN106411826B (zh) | 2015-08-03 | 2015-08-03 | 一种数据访问的方法及设备 |
PCT/CN2016/090821 WO2017020720A1 (zh) | 2015-08-03 | 2016-07-21 | 一种数据访问的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510469417.7A CN106411826B (zh) | 2015-08-03 | 2015-08-03 | 一种数据访问的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106411826A CN106411826A (zh) | 2017-02-15 |
CN106411826B true CN106411826B (zh) | 2019-06-18 |
Family
ID=57942377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510469417.7A Active CN106411826B (zh) | 2015-08-03 | 2015-08-03 | 一种数据访问的方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106411826B (zh) |
WO (1) | WO2017020720A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107659574A (zh) * | 2017-10-10 | 2018-02-02 | 郑州云海信息技术有限公司 | 一种数据访问控制系统 |
US11469890B2 (en) * | 2020-02-06 | 2022-10-11 | Google Llc | Derived keys for connectionless network protocols |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457561A (zh) * | 2010-10-28 | 2012-05-16 | 无锡江南计算技术研究所 | 数据访问方法及使用该数据访问方法的设备 |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI461929B (zh) * | 2011-12-09 | 2014-11-21 | Promise Tecnnology Inc | 雲端數據儲存系統 |
CN102546664A (zh) * | 2012-02-27 | 2012-07-04 | 中国科学院计算技术研究所 | 用于分布式文件系统的用户与权限管理方法及系统 |
CN103488755B (zh) * | 2013-09-24 | 2017-06-09 | 华为技术有限公司 | 一种文件系统访问方法及设备 |
CN104580487A (zh) * | 2015-01-20 | 2015-04-29 | 成都信升斯科技有限公司 | 一种海量数据存储系统及处理方法 |
-
2015
- 2015-08-03 CN CN201510469417.7A patent/CN106411826B/zh active Active
-
2016
- 2016-07-21 WO PCT/CN2016/090821 patent/WO2017020720A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102457561A (zh) * | 2010-10-28 | 2012-05-16 | 无锡江南计算技术研究所 | 数据访问方法及使用该数据访问方法的设备 |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106411826A (zh) | 2017-02-15 |
WO2017020720A1 (zh) | 2017-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106209749B (zh) | 单点登录方法及装置、相关设备和应用的处理方法及装置 | |
KR102116399B1 (ko) | 서비스 레이어에서의 콘텐츠 보안 | |
CN107959567B (zh) | 数据存储方法、数据获取方法、装置及系统 | |
Michalas | The lord of the shares: Combining attribute-based encryption and searchable encryption for flexible data sharing | |
Keelveedhi et al. | {DupLESS}:{Server-Aided} encryption for deduplicated storage | |
CN107517179B (zh) | 一种鉴权方法、装置和系统 | |
US8196186B2 (en) | Security architecture for peer-to-peer storage system | |
US8838961B2 (en) | Security credential deployment in cloud environment | |
US9219722B2 (en) | Unclonable ID based chip-to-chip communication | |
CN105516110B (zh) | 移动设备安全数据传送方法 | |
Kaur et al. | A Secure Two‐Factor Authentication Framework in Cloud Computing | |
US8977857B1 (en) | System and method for granting access to protected information on a remote server | |
KR20150141362A (ko) | 네트워크 노드 및 네트워크 노드의 동작 방법 | |
JP2016510962A (ja) | 暗号化ネットワークストレージスペース | |
CN114239046A (zh) | 数据共享方法 | |
CN114244508B (zh) | 数据加密方法、装置、设备及存储介质 | |
CN104243452B (zh) | 一种云计算访问控制方法及系统 | |
CN114826652A (zh) | 一种基于双区块链的可溯源访问控制方法 | |
Dey et al. | Message digest as authentication entity for mobile cloud computing | |
CN114629713B (zh) | 身份验证方法、装置及系统 | |
CN114826702B (zh) | 数据库访问密码加密方法、装置和计算机设备 | |
KR101319586B1 (ko) | 클라우드 컴퓨팅 시스템 및 클라이언트 인증방법 | |
Le et al. | Access control with delegation for smart home applications | |
JP2024501752A (ja) | 鍵付きハッシュメッセージ認証コードの鍵マテリアルとしての属性ベースの暗号化鍵ユーザ認証および認可 | |
CN106411826B (zh) | 一种数据访问的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |