本发明涉及量子通信,具体涉及一种分布式量子密钥链路控制方法及密钥管理系统。
背景技术:
1、目前,如图1所示,在量子密钥分发(quantum key distribution,qkd)网络上层的用户层,一般采用的是密码管理服务平台统一管理多个密钥管理系统(key managementservice,kms)来对外提供密钥管理、密码运算服务,比如公布号为cn111934871a的专利申请文献就是通过量子密钥管理服务中心为量子密钥管理服务节点及其对接的密钥应用设备提供信息管理。这种集中式服务方式存在的问题在于:(1)中心化的密码管理服务平台一旦产生故障将影响整个系统的使用;(2)集群选主过程中缺乏安全保障;(3)单一的密钥管理集群难以满足不同业务的密钥物理隔离的安全诉求。
技术实现思路
1、本发明所要解决的技术问题在于如何提供一种分布式量子密钥链路控制方式,避免单一服务可能存在的单点故障问题,提高系统的总体可用性。
2、本发明通过以下技术手段解决上述技术问题的:
3、第一方面,本发明提出了一种分布式量子密钥链路控制方法,所述方法包括:
4、kms集群内部采用raft分布式共识算法,选举leader节点;
5、kms集群之间同步各kms集群当前leader节点的信息,使各个kms集群的leader节点中存储客户端全量数据;
6、kms集群利用相应客户端的充注密钥进行初始化鉴权后,通过qkd密钥中继进行密钥同步。
7、进一步地,所述kms集群内部采用raft分布式共识算法,选举leader节点,包括:
8、在kms集群内部候选节点向集群内其他的节点发送请求投票信息,以使其他的节点使用所述候选节点的充注密钥验证所述候选节点的hmac值;
9、在验证通过后,接收其他的节点发送的投票信息,所述投票信息为其他的节点利用自身的充注密钥加密自身节点id、自身的充注密钥编号和投票结果得到;
10、利用投票信息发送节点所对应的节点id及充注密钥编号获取相应的充注密钥,并利用充注密钥解密所述投票信息,得到投票结果;
11、在其他的节点投票占比超过设定数量,确定所述候选节点为leader节点。
12、进一步地,在所述在其他的节点投票占比超过设定数量,确定所述候选节点为leader节点之后,所述方法还包括:
13、leader节点向集群内其他的节点发送附加日志消息,所述附加日志消息包括leader节点信息以及采用leader节点自身的充注密钥加密leader节点信息得到的hmac签名,所述leader节点信息包括leader节点的节点id、leader节点的任期号、上一个日志条目的索引和任期号、待复制的日志条目、提交索引及leader节点的充注密钥编号;
14、接收其他的节点发送的附加日志消息的响应结果,所述响应结果在hmac签名验证通过后根据raft协议规则处理所述附加日志消息生成,并采用响应结果发送节点的充注密钥加密;
15、使用所述响应结果的发送节点所对应的充注密钥解密所述响应结果,并根据raft协议规则更新leader节点自身和集群内其他节点的状态。
16、进一步地,在有新的kms节点加入集群时,所述方法还包括:
17、leader节点接收新的kms节点发送的认证鉴权请求,所述认证鉴权请求为对新的kms节点的id及leader节点充注的认证密钥进行hmac运算得到;
18、leader节点将所述认证密钥同步至集群内所有followers节点。
19、进一步地,在所述在其他的节点投票占比超过设定数量,确定所述候选节点为leader节点之后,所述方法还包括:
20、所述leader节点轮询kms集群内所有节点,向kms集群内所有其他的节点发送请求拉取全量数据。
21、进一步地,所述kms集群之间同步各kms集群当前leader节点的信息,使各个kms集群的leader节点中存储客户端全量数据,包括:
22、各kms集群的leader节点之间定期发送心跳信息,所述心跳信息为各leader节点对应kms集群上的所有数据的元信息;
23、若某kms集群检测到其本地数据与其他kms集群上的数据不一致时,则发送全量拉取请求,获取全量数据。
24、进一步地,每个kms集群对应一个qkd节点,通过qkd节点的密钥管理器km与对应的qkd节点连接;所述心跳信息采用当前kms集群对应的qkd所产生的跨域密钥加密。
25、进一步地,所述方法还包括:
26、接收客户端发送的写操作请求,在当前节点接收到属于该节点负责的实例的写请求时,直接将实例写入;
27、在当前节点接收到不属于该节点负责的实例的写请求时,在集群内部路由,将实例转发给对应的节点写入;
28、定期执行同步任务,将本节点负责的所有实例信息同步到集群内所有的节点上。
29、进一步地,所述方法还包括:
30、kms集群内每个节点接收到读操作请求时,在本机查询与所述读操作请求相应的内容并返回。
31、进一步地,所述kms集群利用相应客户端的充注密钥进行初始化鉴权后,通过qkd密钥中继进行密钥同步,包括:
32、接收客户端发送的鉴权请求,所述鉴权请求携带信息包括客户端id、密码序列i以及密钥kai的sm3摘要,所述密钥kai为充注机预先充注至所述客户端;
33、在校验kai的sm3摘要一致时,完成客户端的初始化鉴权;
34、通过qkd密钥中继进行密钥同步。
35、进一步地,所述通过qkd密钥中继进行密钥同步,包括:
36、业务发起方所对应的kms集群的leader节点查询业务接收方所对应的kms集群的leader节点地址以及对应的qkd节点信息;
37、以业务发起方生成的sessionid作为唯一标识,向对应的密钥管理器km发起密钥中继请求,以使该密钥管理器km向qkdn控制器请求计算密钥中继链路,进行qkd密钥中继,完成密钥同步。
38、第二方面,本发明提出了一种密钥管理系统,所述密钥管理系统包括:
39、kms集群一致性模块,用于在kms集群内采用raft分布式共识算法,选举leader节点;
40、kms集群间一致性模块,用于在kms集群之间同步各kms集群当前leader节点的信息,使各个kms集群的leader节点中存储客户端全量数据;
41、跨域密钥中继模块,用于利用相应客户端的充注密钥进行初始化鉴权后,通过qkd密钥中继进行密钥同步。
42、第三方面,本发明提出了一种分布式量子密钥链路控制系统,所述系统包括:量子干线及量子网络、布置于各量子城域网的量子密钥管理系统,量子密钥管理系统经量子密钥分发节点与量子干线及量子网络连接,量子密钥管理系统与客户端连接,所述量子密钥管理系统用于执行上所述的分布式量子密钥链路控制方法进行密钥同步。
43、本发明的优点在于:
44、(1)本发明将密码管理服务平台cmsp的功能分散到各个量子城域网内的密钥管理系统kms中,各个密钥管理系统kms是对等的,避免了cmsp的单点问题,且kms节点内部采用raft分布式共识算法实现状态一致性,避免了集中式服务可能存在的单点故障问题,提高系统的总体可用性;同时由于各个kms中存储了客户端全量数据,因此在发起跨kms业务调用时,无需向cmsp查询目标kms地址的调用请求,即可完成密钥中继,满足不同业务的密钥物理隔离的安全诉求。
45、(2)raft协议领导者选举过程采用充注密钥进行加密,可以提高分布式系统的安全性,防止恶意节点或攻击者篡改或伪造消息,影响集群的正常运行。
46、(3)kms集群之间由于网络延迟等因素影响,采用一种ap分布式协议,实现最终一致性,跨集群的一致性校验通过qkd的密钥分发保障其安全性。
47、(4)利用qkd密钥中继,分布式控制量子密钥的分发和使用,满足kms集群模式下跨域密钥分发使用。
48、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。