基于区块链的密钥分发系统和方法与流程

专利2022-06-29  97


本发明涉及计算机信息安全技术领域,具体是一种基于区块链的密钥分发系统和方法。



背景技术:

随着计算机技术的快速发展以及互联网时代的兴起,如何在开放的网络中保证信息安全已成为一个重要的研究课题。目前,在公开的网络中保证信息安全的基本手段是对通信数据进行加密处理。

常用的加密处理方法包括两种,分别是非对称加密算法和对称加密算法。

如果使用非对称加密算法来加密通信数据,发送方需要使用接收方的公钥对数据进行加密,接收方收到数据后使用自己的私钥对数据进行解密。

如果使用对称加密算法来加密通信数据,通信双方需要提前协商出一个共同的会话密钥。但是传统的会话密钥协商方法常常也依赖于公钥密码体系。密钥协商的双方需要在知道对方公钥的基础下协商出会话密钥。

以上两种加密方式都存在一个问题:公钥和用户身份的绑定,即发送方取得的接收方的公钥是否就是接收方真正的公钥。

当前,公钥和身份的绑定是通过pki/ca认证体系来实现的。公钥基础设施pki(publickeyinfrastructure,简称pki)是利用公钥理论和技术建立的提供安全服务的基础设施,是信息安全的核心。pki技术采用证书管理公钥,通过第三方的可信任机构——认证中心ca(certificateauthority),把用户的公钥和用户的其他标识信息(如名称、e—mail、身份证号等)捆绑在一起,在internet上验证用户的身份(其中认证机构ca是pki系统的核心部分)。目前,通用的办法是采用建立在pki基础之上的数字证书,通过把要传输的数字信息进行加密和签名,保证信息传输的机密性、真实性、完整性和不可否认性,从而保证信息的安全传输。

根据相关研究,传统的pki/ca的认证体系存在诸多安全问题,其中主要包括以下几个方面:

中心失效问题

作为系统核心的根ca对于黑客来说是极其明显的攻击目标,攻击成本相对较低而收益却非常大。根ca一旦被攻陷,该ca给其他用户签发的证书以及ca给自己签发的根证书都将失去作用。

性能瓶颈问题

pki系统的核心是ca,它所做的工作包括证书发放、证书更新、证书撤销、证书验证等,任务繁重且无法被代理。这很容易使ca成为整个系统的性能短板,产生瓶颈问题。

证书配置效率问题

用户在配置证书时,要首先向ca申请证书,ca签发证书后,用户需要将签发的证书安装在个人的终端上。在一些需要批量操作的场合例如终端设备的生产线上,由于私钥的私密性和唯一性,必须一个一个地配置安装证书,这样会浪费大量的时间和精力。

近几年来比特币,以太坊等数字加密货币的兴起,作为其核心技术的区块链也引起了广泛的关注。区块链是一种去中心化的分布式数据库,其具有共同维护,不可篡改,去中心化,安全可信等特点。区块链可以在节点无需互相信任的环境中可以构建一个互相信任的分布式系统。随着区块链技术近年不断的发展,目前已经在金融系统,政府事务,审计等领域得到应用。

因此,基于区块链的去中心化,不可篡改以及可追溯等特点来设计一套密钥分发方法和系统则显得十分具有现实意义,能很好的解决目前传统pki/ca体系中存在的中心失效,证书配置效率等问题。用户可以通过基于区块链的密钥分发系统来查询指定用户的公钥或者协商出会话密钥。



技术实现要素:

本发明针对传统pki/ca体系存在的问题,提供一种基于区块链的密钥分发系统及方法。

本发明第一方面,提供一种基于区块链的密钥分发系统,技术方案如下:

一种基于区块链的密钥分发系统,包括应用层、智能合约层和存储层,所述应用层提供了系统与用户交互的界面;所述存储层为底层的区块;所述智能合约层包括多个智能合约,所述智能合约层中的智能合约包括哈希身份认证合约、公钥存储合约、投票验证合约和公钥修改合约,其中所述哈希身份认证合约,用于保证进行会话密钥协商的双方能够彼此验证对方的身份,通过身份验证的双方可以协商出相同的会话密钥进行后续的点对点通信;所述公钥存储合约,利用交易发起者的账户信息的不可伪造性,实现用户公钥数据和用户唯一身份标识符id的绑定关系并将该绑定关系存储到区块链中,可以通过用户唯一身份标识符id来查询该用户存储的公钥;所述公钥修改合约,用户利用该合约发起公钥修改提案来替换之前存储的公钥,通过所述投票验证合约验证的新公钥被写进区块中,覆盖之前的旧公钥。所述投票验证合约分别与所述公钥存储合约和所述公钥修改合约相联系,在用户发起公钥存储或者公钥修改提案时,所述智能合约层通过调用投票节点来对用户提案进行投票验证,以保证合法用户的公钥信息能够被存储或者修改。

优选的,所述用户唯一身份标识符与交易发起用户账户地址相同,由智能合约检查和识别。

优选的,用户发起公钥存储提案时,提交的数据包括所述用户唯一标识符ida、用户的公钥kua以及利用私钥进行的数字签名

优选的,用户发起公钥修改提案时,提交的数据包括所述用户唯一标识符ida、用户的新公钥kua_new以及使用用户旧公钥对应的私钥kua_old进行的数字签名,即

本发明第二方面,提供一种基于区块链的密钥分发方法,包括基于智能合约的投票验证机制和基于智能合约的身份验证机制。

优选的,所述基于智能合约的投票验证机制具体是:智能合约接收用户发起的公钥存储或修改提案,调用所有的投票节点给所述提案进行投票验证,每个所述投票节点均部署了投票合约,所述投票节点判断用户提交的公钥是否合法,再根据判断结果进行投票;所述投票节点根据用户的公钥对数字签名进行验证,若通过验证则投支持票,若验证不通过则投反对票;每个所述投票节点将自己的投票结果返回给智能合约,最终若此提案得到超过51%的支持票数则验证通过,否则拒绝存储或者修改;每次的投票结果生成一个哈希值广播出去,链上所有节点都可以查询所述投票结果,具有不可篡改性和可追溯性。

优选的,所述基于智能合约的身份验证机制具体是:

s11、用户a向用户b的ip地址发送验证请求,请求中携带一个随机数na;

s12、用户b在收到用户a的验证请求后将本机的ip地址ipb和收到的随机数na发送给所述智能合约;

s13、所述智能合约根据收到的ip地址ipb、随机数na以及信息发送者的唯一标识符idb生成一个哈希值,即hash<idb|ipb|na>,智能合约将该哈希值以及当前的时间戳存储起来,该哈希值不可篡改;

s14、用户a在所述智能合约中查询所述哈希值;

s15、用户a知道用户b的地址ipb、用户b的唯一标识符idb以及随机数na,用户a在本地也用同样的hash算法生成相应的哈希值,对比这两个哈希值,如果相同则用户a成功验证了用户b的身份。

优选的,用户b同样验证用户a的身份,通过身份验证的双方可以协商出会话密钥以进行后续的点对点通信。

本发明的有益效果为:本发明所述的基于区块链的密钥分发方法,利用区块链的去中心化,不可篡改以及可追溯等特点,实现用户公钥和用户身份的唯一绑定关系,确保了合法用户的公钥能被存储或者修改,保障了公钥的分发。同时解决传统nspk密钥协商协议中存在的中间人攻击以及重放攻击等问题,保障进行密钥协商的通信双方协商出相同的会话密钥。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例基于区块链的密钥分发系统的结构示意图;

图2为本发明另一实施例基于区块链的密钥分发方法的原理示意图;

图3为图2实施例中利用智能合约进行投票验证的示意图;

图4为图2实施例中利用智能合约进行身份验证的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1和图2所示,是本发明的实施例基于区块链的密钥分发系统和方法的示意图,在一实施例中该系统包括应用层、智能合约层和存储层;

应用层提供了系统与用户交互的界面;存储层为底层的区块;智能合约层包括多个智能合约。智能合约层中的智能合约又包括哈希身份认证合约、公钥存储合约、投票验证合约和公钥修改合约。

哈希身份认证合约,用于保证进行会话密钥协商的双方能够彼此验证对方的身份,通过身份验证的双方可以协商出相同的会话密钥进行后续的点对点通信。

公钥存储合约,利用交易发起者的账户信息的不可伪造性,实现用户公钥数据和用户唯一身份标识符id的绑定关系并将该绑定关系存储到区块链中,可以通过用户唯一身份标识符id来查询该用户存储的公钥。

公钥修改合约,用户利用该合约发起公钥修改提案来替换之前存储的公钥,通过投票验证合约验证的新公钥被写进区块中,覆盖之前的旧公钥。

投票验证合约分别与公钥存储合约和公钥修改合约相联系,在用户发起公钥存储或者公钥修改提案时,智能合约层通过调用投票节点来对用户提案进行投票验证,以保证合法用户的公钥信息能够被存储或者修改。

该实施例设计思路为:

①利用以太坊来搭建存储公钥数据的私有链,每个加入私有链的新节点都可以同步所有区块的数据,保证私有链上的每个节点本地都保存完整的区块链数据;该私有链中存储用户的公钥、用户的唯一身份标识符id以及公钥的过期时间;

②利用交易发起者的账户信息的不可伪造性,实现用户公钥数据和用户唯一身份标识符id的绑定关系并将该绑定关系存储到区块链中,可以通过用户的唯一身份标识符id来查询该用户存储的公钥;

③设计了一种基于智能合约的投票验证机制,用户发起公钥存储或者公钥修改提案,智能合约通过调用投票节点来对用户提案进行投票验证,来保证合法用户的公钥信息能够被存储或者修改;

④设计了一种基于智能合约的身份验证机制,以保证进行会话密钥协商的双方能够彼此验证对方的身份,通过身份验证的双方可以协商出相同的会话密钥进行后续的点对点通信。

在一些具体实施方式中,用户发起公钥存储提案时,提交的数据包括述用户唯一标识符ida、用户的公钥kua以及利用私钥进行的数字签名

在本发明提供的基于区块链的密钥分发方法的实施例中,包括基于智能合约的投票验证机制和基于智能合约的身份验证机制。

以下通过具体实施例对上述方法中涉及的详细技术操作进行说明,应当理解的是,以下仅仅是本发明部分实施例。

1.首先利用以太坊来搭建存储公钥数据的私有链

通过以太坊来实现一条存储用户公钥等数据的私有链,该私有链中存储用户的公钥、用户的唯一身份标识符id以及公钥的过期时间。每个加入私有链的新节点都可以同步所有区块的数据,保证私有链上的每个节点本地都保存完整的区块链数据。

2.实现用户公钥和用户唯一身份标识符的绑定

利用交易发起者的账户信息的不可伪造性,实现用户公钥数据和用户唯一身份标识符id的绑定关系并将该绑定关系存储到区块链中,可以通过用户的唯一身份标识符id来查询该用户存储的公钥。用户作为交易发起者(用户账户地址address与用户唯一标识符id相同)可以发起公钥存储或者公钥修改提案,该用户唯一身份标识符是智能合约来检查和识别,有着不可伪造性,交易发起者只能存储或者修改自己账户地址对应的公钥数据,防止公钥的伪造或者篡改。一旦某个用户的公钥和唯一身份标识符的绑定关系被存储到了私有链中,私有链上的其他节点都可以通过唯一身份标识符来查询该用户的公钥数据。

3.利用智能合约进行投票验证

用户发起公钥存储提案时,提交的数据包括用户的唯一标识符ida,用户的公钥kua以及利用私钥进行的数字签名用户发起公钥修改提案时,提交的数据包括用户的唯一标识符ida,用户的新公钥kua_new,以及使用用户旧公钥对应的私钥kpa_old进行的数字签名,即

如图3所示,智能合约接收存储或修改提案以后调用所有的投票节点来给用户提案进行投票验证,每个投票节点上都部署了投票合约,这些投票节点的工作是判断用户提交的公钥是否合法,同时根据判断结果进行投票。投票节点根据用户的公钥对数字签名进行验证,若通过验证则投支持票,若验证不通过则投反对票。投票节点将自己的投票结果返回给智能合约,最终若此提案得到超过51%的支持票数,则验证通过,否则拒绝存储或者修改。每次的投票结果都会生成一个哈希值广播出去,这个投票结果是链上所有节点都可以查询的,有着不可篡改性和可追溯性。

4.利用智能合约进行身份验证

用户双方利用智能合约进行身份认证的过程如图4所示,具体包括以下步骤:

1)用户a向用户b的ip地址发送验证请求,请求中携带一个随机数na;

2)用户b在收到用户a的验证请求以后会将本机的ip地址ipb和收到的随机数na发送给智能合约;

3)智能合约根据收到的ip地址ipb,随机数na以及信息发送者的唯一标识符idb(这个唯一标识符是智能合约来检查的,不能伪造)生成一个哈希值,即hash<idb|ipb|na>,智能合约会把这个哈希值以及当前的时间戳存储起来,这个哈希值是不能被篡改的,时间戳则可以抵抗重放攻击;

4)用户a去智能合约上面查询第三步中存储的哈希值;

5)用户a知道用户b的地址ipb,用户b的唯一标识符idb以及随机数na。用户a在本地也用同样的hash算法生成相应的哈希值,对比这两个哈希值,如果相同则用户a成功地验证了用户b的身份;

6)用户b重复上述的步骤可以验证用户a的身份,通过身份验证的双方可以协商出会话密钥以进行后续的点对点通信。

本发明中,利用区块链的去中心化,不可篡改以及可追溯等特点,不需要依赖传统的pki/ca认证体系,实现了用户公钥和用户身份的唯一绑定关系。基于智能合约的交易不可篡改性以及交易发起者的用户唯一身份标识符的不可伪造性,设计了投票验证合约以及哈希身份验证合约。投票验证合约确保了合法用户的公钥能被存储或者修改,保障了公钥的分发;哈希身份验证合约则解决了传统nspk密钥协商协议中存在的中间人攻击以及重放攻击等问题,确保了进行密钥协商的通信双方能互相验证对方的身份,保障了会话密钥的分发。

本发明提出的基于区块链的密钥分发方法,利用区块链的去中心化,不可篡改以及可追溯等特点,实现用户公钥和用户身份的唯一绑定关系,确保了合法用户的公钥能被存储或者修改,保障了公钥的分发。同时解决了传统nspk密钥协商协议中存在的中间人攻击以及重放攻击等问题,保障进行密钥协商的通信双方协商出相同的会话密钥。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。


技术特征:

1.基于区块链的密钥分发系统,其特征在于,包括应用层、智能合约层和存储层,所述应用层提供了系统与用户交互的界面;所述存储层为底层的区块;所述智能合约层包括多个智能合约,

所述智能合约层中的智能合约包括哈希身份认证合约、公钥存储合约、投票验证合约和公钥修改合约,其中

所述哈希身份认证合约,用于保证进行会话密钥协商的双方能够彼此验证对方的身份,通过身份验证的双方可以协商出相同的会话密钥进行后续的点对点通信;

所述公钥存储合约,利用交易发起者的账户信息的不可伪造性,实现用户公钥数据和用户唯一身份标识符id的绑定关系并将该绑定关系存储到区块链中,可以通过用户唯一身份标识符id来查询该用户存储的公钥;

所述公钥修改合约,用户利用该合约发起公钥修改提案来替换之前存储的公钥,通过所述投票验证合约验证的新公钥被写进区块中,覆盖之前的旧公钥。

所述投票验证合约分别与所述公钥存储合约和所述公钥修改合约相联系,在用户发起公钥存储或者公钥修改提案时,所述智能合约层通过调用投票节点来对用户提案进行投票验证,以保证合法用户的公钥信息能够被存储或者修改。

2.根据权利要求1所述的基于区块链的密钥分发系统,其特征在于,所述用户唯一身份标识符与交易发起用户的账户地址相同,由智能合约检查和识别。

3.根据权利要求1所述的基于区块链的密钥分发系统,其特征在于,用户发起公钥存储提案时,提交的数据包括所述用户唯一标识符ida、用户的公钥kua以及利用私钥进行的数字签名

4.根据权利要求1所述的基于区块链的密钥分发系统,其特征在于,用户发起公钥修改提案时,提交的数据包括所述用户唯一标识符ida、用户的新公钥kua_new以及使用用户旧公钥对应的私钥kua_old进行的数字签名,即

5.根据权利要求1~4任一项所述的基于区块链的密钥分发方法,其特征在于,包括基于智能合约的投票验证机制和基于智能合约的身份验证机制。

6.根据权利要求5所述的基于区块链的密钥分发方法,其特征在于,所述基于智能合约的投票验证机制具体是:智能合约接收用户发起的公钥存储或修改提案,调用所有的投票节点给所述提案进行投票验证,每个所述投票节点均部署了投票合约,所述投票节点判断用户提交的公钥是否合法,再根据判断结果进行投票;所述投票节点根据用户的公钥对数字签名进行验证,若通过验证则投支持票,若验证不通过则投反对票;每个所述投票节点将自己的投票结果返回给智能合约,最终若此提案得到超过51%的支持票数则验证通过,否则拒绝存储或者修改;每次的投票结果生成一个哈希值广播出去,链上所有节点都可以查询所述投票结果,具有不可篡改性和可追溯性。

7.根据权利要求5所述的基于区块链的密钥分发方法,其特征在于,所述基于智能合约的身份验证机制具体是:

s11、用户a向用户b的ip地址发送验证请求,请求中携带一个随机数na;

s12、用户b在收到用户a的验证请求后将本机的ip地址ipb和收到的随机数na发送给所述智能合约;

s13、所述智能合约根据收到的ip地址ipb、随机数na以及信息发送者的唯一标识符idb生成一个哈希值,即hash<idb|ipb|na>,智能合约将该哈希值以及当前的时间戳存储起来,该哈希值不可篡改;

s14、用户a在所述智能合约中查询所述哈希值;

s15、用户a知道用户b的地址ipb、用户b的唯一标识符idb以及随机数na,用户a在本地也用同样的hash算法生成相应的哈希值,对比这两个哈希值,如果相同则用户a成功验证了用户b的身份。

8.根据权利要求7所述的基于区块链的密钥分发方法,其特征在于,用户b同样验证用户a的身份,通过身份验证的双方可以协商出会话密钥以进行后续的点对点通信。

技术总结
本发明公开一种基于区块链的密钥分发系统和方法,其中系统包括应用层、智能合约层和存储层,应用层提供了系统与用户交互的界面,存储层为区块链;智能合约层包括多个智能合约如哈希身份认证合约、公钥存储合约、投票验证合约和公钥修改合约。本发明利用区块链的去中心化,不可篡改以及可追溯等特点,不需要依赖传统的PKI/CA认证体系,实现了用户公钥和用户身份的唯一绑定关系。基于智能合约的交易不可篡改性以及交易发起者的用户唯一身份标识符的不可伪造性,设计了投票验证合约以及哈希身份验证合约。

技术研发人员:黄杰;王威
受保护的技术使用者:网络通信与安全紫金山实验室
技术研发日:2020.01.08
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-20911.html

最新回复(0)