基于无证书公钥机制的网络文件系统及方法
技术领域
本发明涉及计算机数据存储领域,尤其涉及一种基于无证书公钥机制的网络文件系统及方法。
背景技术
网络文件系统(Network File System,NFS),是指在网络上计算机之间共享磁盘文件的方法,通过这种方法存储于服务器上的远程文件可以对客户端提供透明的文件访问和文件传输,客户端无需花费任何成本进行文件的存储和维护,在访问服务器端的文件时就如同访问位于客户端本地硬盘驱动器上一样方便。网络文件系统使得客户端访问远程文件更加灵活和方便。
传统的网络文件系统为了数据和用户安全,通常采用公钥密码机制(PKI),提供采用加密和数字签名等密码服务所必需的密钥和证书管理,可通过一个基于认证的框架处理所有的数据加密和数字签字工作。
公钥密码机制涉及到一对密钥,即私钥和公钥,私钥只由持有者秘密掌握,无须在网上传送,而公钥是公开的,需要在网上传送,故公钥密码机制的密钥管理主要是公钥的管理问题,目前较好的解决方案是引进证书(certificate)机制。证书是公钥密码机制的一种密钥管理媒介。它是一种权威性的电子文档,形同网络计算环境中的一种身份证,用于证明某一主体(如人、服务器等)的身份以及其公开密钥的合法性。在使用公钥体制的网络环境中,必须向公钥的使用者证明公钥的真实合法性。
因此,采用有证书的公钥密码机制搭建网络文件系统,复杂度较高,实现和配置难度较大,维护的开销较大,并且存在密钥托管等安全性问题和较大的证书管理问题。
发明内容
本发明的目的在于提供一种基于无证书公钥机制的网络文件系统及方法,以解决现有的网络文件系统复杂度较高、实现和配置难度较大、存在密钥托管等安全性和证书管理的问题。
为解决上述问题,本发明提供一种基于无证书公钥机制的网络文件系统,包括一密钥生成中心服务器和两个以上客户端节点,其中,
所述密钥生成中心服务器,用于接收所有客户端节点的注册,生成系统参数并广播系统参数中的公开参数,所述公开参数包括系统公钥和各个客户端节点的部分私钥;
所述客户端节点,用于向所述密钥生成中心服务器注册,并根据所述系统公钥生成节点公钥,根据其部分私钥生成节点私钥,一客户端节点通过其节点公钥和节点私钥向一待通信的客户端节点进行身份认证,并在完成所述身份认证后向所述待通信的客户端节点点对点传输一目标文件的内容。
进一步的,所述密钥生成中心服务器包括:
初始化模块,用于初始化所述密钥生成中心服务器以生成系统参数,并广播系统参数中的公开参数,所述公开参数包括系统公钥和各个客户端节点的部分私钥;
部分私钥生成模块,用于在一客户端节点注册时,根据所述客户端节点的注册信息和所述系统参数生成所述客户端节点的部分私钥;
节点公钥管理模块,用于在所述初始化模块完成初始化过程后,启动一个监听线程,以向每个客户端节点提供节点公钥查询及身份注销的功能。
进一步的,所述公开参数还包括双线性对映射、系统主密钥、哈希函数和盲化因子。
进一步的,所述密钥生成中心服务器生成系统参数的步骤包括:
选取循环加法群G1和循环乘法群G2,且循环加法群G1和循环乘法群G2的阶满足:|G1|=|G2|=p,p是素数;
根据所述循环加法群G1和循环乘法群G2选取所述双线性对映射和哈希函数;
根据所述循环加法群G1和循环乘法群G2选取生成所述系统主密钥和系统公钥。
进一步的,所述客户端节点包括:
密钥生成模块,用于根据所述系统公钥生成所述客户端节点的节点公钥,根据所述客户端节点的部分私钥生成所述客户端节点的节点私钥;
节点认证模块,用于通过所述客户端节点的节点公钥和节点私钥向一待通信的客户端节点进行身份认证;
文件传输模块,用于所述客户端节点在完成所述身份认证后向所述待通信的客户端节点点对点传输所述目标文件的内容。
进一步的,所述密钥生成模块根据所述系统公钥和一秘密值生成所述客户端节点的节点公钥,根据所述客户端节点的部分私钥和所述秘密值生成所述客户端节点的节点私钥。
进一步的,所述客户端节点通过其节点公钥和节点私钥向一待通信的客户端节点进行身份认证,包括:
所述客户端节点的节点认证模块使用所述哈希函数计算出一目标文件的摘要;
所述客户端节点的节点认证模块使用所述客户端节点的节点私钥和所述盲化因子对所述摘要进行盲化和加密处理,形成一数字签名;
所述客户端节点的节点认证模块将所述客户端节点的节点公钥以及所述数字签名作为一验证信息发送给所述待通信的客户端节点;
所述待通信的客户端节点的节点认证模块接收所述验证信息,并根据所述盲化因子对所述验证信息进行解盲处理;
所述待通信的客户端节点的节点认证模块根据所述系统主密钥、系统公钥以及双线性对映射来验证所述客户端节点的节点公钥是否存在,若不存在,则所述客户端节点向所述待通信的客户端的身份认证失败;若存在,则所述待通信的客户端节点的节点认证模块使用所述客户端节点的节点公钥对所述数字签名进行解密,并验证所述数字签名是否正确,若不正确,则所述客户端节点向所述待通信的客户端的身份认证失败,若正确,则所述客户端节点向所述待通信的客户端的身份认证成功。
进一步的,所述客户端节点向所述待通信的客户端节点点对点传输所述目标文件的内容之前或之后,所述待通信的客户端节点通过其节点公钥和节点私钥向所述客户端节点进行身份认证。
进一步的,所述客户端节点向所述待通信的客户端节点点对点传输所述目标文件的内容的之后,还包括:所述待通信的客户端节点将接收到的所述目标文件的内容向所述客户端节点进行内容认证。
相应的,本发明还提供一种应用上述的基于无证书公钥机制的网络文件系统的方法,包括:
一客户端节点和一与所述客户端节点待通信的客户端节点向所述密钥生成中心服务器注册;
所述密钥生成中心服务器接收所述客户端节点和待通信的客户端节点的注册,生成系统参数并广播系统参数中的公开参数,所述公开参数包括系统公钥、所述客户端节点和待通信的客户端节点的部分私钥;
所述客户端节点根据所述系统公钥生成节点公钥,根据其部分私钥生成节点私钥;并通过其节点公钥和节点私钥向一待通信的客户端节点进行身份认证;
在完成所述身份认证后,所述客户端节点向所述待通信的客户端节点点对点传输一目标文件的内容。
与现有技术相比,本发明提供的基于无证书公钥机制的网络文件系统及方法,通过所有客户端节点向所述密钥生成中心服务器注册,所述密钥生成中心服务器生成的系统参数后广播,利用系统参数中的系统公钥和部分私钥生成各个客户端节点的节点公钥和节点私钥,再依据节点公钥和节点私钥以及系统参数完成两通信的客户端节点的身份认证,带来以下有益效果:
1、不存在密钥的托管问题,客户端节点的节点私钥由客户端节点单独产生;
2、不需要证书对客户端节点的节点公钥和身份进行绑定,消除了使用证书带来的证书冗余问题,为用户提供了更高的隐私权;
3、使用了盲签名,所述密钥生成中心服务器仅生成每个客户端节点的部分私钥,因此,无需在密钥生成中心服务器和各个客户端节点之间建立安全通道;
4、两通信的客户端节点的身份认证时不需要再通过所述密钥生成中心服务器,大大减少客户端节点相互认证的通信次数,降低了身份认证过程在网络文件系统中消耗的带宽资源,减少了计算量,具有较高的效率,适合网络文件系统的使用。
附图说明
图1是本发明实施例一的基于无证书公钥机制的网络文件系统的架构示意图;
图2是本发明实施例一的密钥生成中心服务器的结构示意图;
图3是本发明实施例一的客户端节点的结构示意图;
图4是本发明实施例二的应用基于无证书公钥机制的网络文件系统的方法流程图;
图5是本发明实施例二的客户端节点间双向认证的方法流程图。
具体实施方式
以下结合附图和具体实施例对本发明提出的基于无证书公钥机制的网络文件系统及方法作进一步详细说明。
实施例一
如图1所示,本实施例提供一种基于无证书公钥机制的网络文件系统,包括一密钥生成中心服务器10和两个以上客户端节点20,其中,
所述密钥生成中心服务器10,用于接收所有客户端节点20的注册,生成系统参数并广播系统参数中的公开参数,所述公开参数包括系统公钥和各个客户端节点20的部分私钥;
所述客户端节点20,用于向所述密钥生成中心服务器10注册,并根据所述系统公钥生成节点公钥,根据其部分私钥生成节点私钥,一客户端节点通过其节点公钥和节点私钥向一待通信的客户端节点进行身份认证,并在完成所述身份认证后向所述待通信的客户端节点点对点传输一目标文件的内容。
如图2所示,本实施例中,所述密钥生成中心服务器10包括:
初始化模块101,用于初始化所述密钥生成中心服务器以生成系统参数,并广播系统参数中的公开参数,所述公开参数包括系统公钥和各个客户端节点的部分私钥,还包括双线性对映射、系统主密钥、哈希函数和盲化因子;
部分私钥生成模块102,用于在一客户端节点注册时,根据所述客户端节点的注册信息和所述系统参数生成所述客户端节点的部分私钥;
节点公钥管理模块103,用于在所述初始化模块101完成初始化过程后,启动一个监听线程,以向每个客户端节点提供节点公钥查询及身份注销的功能。
本实施例中,所述初始化模块101生成系统参数的步骤包括:
首先,选取循环加法群G1和循环乘法群G2,且循环加法群G1和循环乘法群G2的阶满足:|G1|=|G2|=p,p是素数;
接着,根据所述循环加法群G1和循环乘法群G2选取所述双线性对映射和哈希函数;
然后,根据所述循环加法群G1和循环乘法群G2选取生成所述系统主密钥和系统公钥。
如图3所示,本实施例中,所述客户端节点20包括:
密钥生成模块201,用于根据所述系统公钥生成所述客户端节点的节点公钥,根据所述客户端节点的部分私钥生成所述客户端节点的节点私钥;
节点认证模块202,用于通过所述客户端节点的节点公钥和节点私钥向一待通信的客户端节点进行身份认证;
文件传输模块203,用于所述客户端节点在完成所述身份认证后向所述待通信的客户端节点点对点传输所述目标文件的内容;
文件搜索模块204,用于实现所述基于无证书公钥机制的的文件搜索功能,当本发明的基于无证书公钥机制的网络文件系统采用集中式存储时,文件搜索模块204会向集中式存储的中心服务器请求文件搜索结果;当本发明的基于无证书公钥机制的网络文件系统采用点到点式存储时,即资源存储在各个客户端节点上时,文件搜索模块204要寻找某个文件数据块时,会把数据块的查询信息传递给与它相邻客户端节点,如果相邻节点含有这个资源,就返回一个搜索命中的信息给资源请求者,如果它相邻的节点都没有命中这个被查询文件,就把这条消息转发给下一层的相邻客户端节点。
本实施例中,所述密钥生成模块201根据所述系统公钥和一秘密值生成所述客户端节点的节点公钥,根据所述客户端节点的部分私钥和所述秘密值生成所述客户端节点的节点私钥。
本实施例提供的基于无证书公钥机制的网络文件系统,通过所有客户端节点向所述密钥生成中心服务器注册所述密钥生成中心服务器生成的系统参数后广播,利用系统参数中的系统公钥和部分私钥生成各个客户端节点的节点公钥和节点私钥,不存在密钥的托管问题,不需要证书对客户端节点的节点公钥和身份进行绑定,消除了使用证书带来的证书冗余问题,为用户提供了更高的隐私权,无需在密钥生成中心服务器和各个客户端节点之间建立安全通道;再依据节点公钥和节点私钥以及系统参数直接完成两通信的客户端节点的身份认证,不需要再通过所述密钥生成中心服务器,大大减少客户端节点相互认证的通信次数,降低了身份认证过程在网络文件系统中消耗的带宽资源,减少了计算量,具有较高的效率,适合网络文件系统的使用。
实施例二
如图4所示,本实施提供一种应用上述的基于无证书公钥机制的网络文件系统的方法,包括以下步骤:
S41,一客户端节点和一与所述客户端节点待通信的客户端节点向所述密钥生成中心服务器注册;
S42,所述密钥生成中心服务器接收所述客户端节点和待通信的客户端节点的注册,生成系统参数并广播系统参数中的公开参数,所述公开参数包括系统公钥、所述客户端节点和所述待通信的客户端节点的部分私钥;
S43,所述客户端节点根据所述系统公钥生成节点公钥,根据其部分私钥生成节点私钥,并通过其节点公钥和节点私钥向所述待通信的客户端节点进行身份认证;
S44,在完成所述身份认证后,所述客户端节点向所述待通信的客户端节点点对点传输一目标文件的内容;
S45,所述待通信的客户端节点通过其节点公钥和节点私钥向所述客户端节点进行身份认证;
S46,所述待通信的客户端节点将接收到的所述目标文件的内容向所述客户端节点进行内容认证。
需要说明的是,步骤S43和步骤S45完成了所述客户端节点与所述待通信的客户端节点的双向身份认证,如图5所示,该双向认证过程包括:
S431,所述客户端节点的节点认证模块使用所述哈希函数计算出一目标文件的第一摘要;
S432,所述客户端节点的节点认证模块使用所述客户端节点的节点私钥和所述盲化因子对所述第一摘要进行盲化和加密处理,形成第一数字签名;
S433,所述客户端节点的节点认证模块将所述客户端节点的节点公钥以及所述数字签名作为所述第一验证信息发送给所述待通信的客户端节点;
S434,所述待通信的客户端节点的节点认证模块接收所述第一验证信息,并根据所述盲化因子对所述第一验证信息进行解盲处理;
S435,所述待通信的客户端节点的节点认证模块根据所述系统主密钥、系统公钥以及双线性对映射来验证所述客户端节点的节点公钥是否存在,若不存在,则所述客户端节点向所述待通信的客户端的身份认证失败;若存在,则所述待通信的客户端节点的节点认证模块使用所述客户端节点的节点公钥对所述第一数字签名进行解密,并验证所述第一数字签名是否正确,若不正确,则所述客户端节点向所述待通信的客户端的身份认证失败,若正确,则所述客户端节点向所述待通信的客户端的身份认证成功;
S451,所述待通信的客户端节点的节点认证模块使用所述哈希函数计算出所述目标文件的第二摘要;
S452,所述待通信的客户端节点的节点认证模块使用其节点私钥和所述盲化因子对所述第二摘要进行盲化和加密处理,形成第二数字签名;
S453,所述待通信的客户端节点的节点认证模块将其节点公钥以及所述第二数字签名作为所述第二验证信息发送给所述客户端节点;
S454,所述客户端节点的节点认证模块接收所述第二验证信息,并根据所述盲化因子对所述第二验证信息进行解盲处理;
S455,所述客户端节点的节点认证模块根据所述系统主密钥、系统公钥以及双线性对映射来验证所述待通信客户端节点的节点公钥是否存在,若不存在,则所述待通信的客户端向所述客户端节点的身份认证失败;若存在,则所述客户端节点的节点认证模块使用所述待通信的客户端节点的节点公钥对所述第二数字签名进行解密,并验证所述第二数字签名是否正确,若不正确,则所述待通信的客户端向所述客户端节点的身份认证失败,若正确,则所述待通信的客户端向所述客户端节点的身份认证成功。
需要说明的是,本发明的其他实施例中,还可以在所述客户端节点向所述待通信的客户端节点点对点传输所述目标文件的内容之前,所述待通信的客户端节点通过其节点公钥和节点私钥向所述客户端节点进行身份认证,所述待通信的客户端节点选取其目标文件,利用系统参数和其节点私钥对该目标文件进行盲化处理,生成数字签名,向所述客户端节点发送包含其节点公钥、数字签名和目标文件的验证信息即可;所述客户端节点向所述待通信的客户端节点点对点传输所述目标文件的内容的之后,所述待通信的客户端节点将接收到的所述目标文件的内容向所述客户端节点进行内容认证。
综上所述,本实发明的基于无证书公钥机制的网络文件系统及方法,通过所有客户端节点向所述密钥生成中心服务器注册,所述密钥生成中心服务器生成的系统参数后广播,利用系统参数中的系统公钥和部分私钥生成各个客户端节点的节点公钥和节点私钥,不存在密钥的托管问题,不需要证书对客户端节点的节点公钥和身份进行绑定,消除了使用证书带来的证书冗余问题,为用户提供了更高的隐私权,无需在密钥生成中心服务器和各个客户端节点之间建立安全通道;再依据节点公钥和节点私钥以及系统参数直接完成两通信的客户端节点的身份认证,不需要再通过所述密钥生成中心服务器,大大减少客户端节点相互认证的通信次数,降低了身份认证过程在网络文件系统中消耗的带宽资源,减少了计算量,具有较高的效率,适合网络文件系统的使用。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。