掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的CA跨域认证方法及系统

文献发布时间:2023-06-19 11:11:32


基于区块链的CA跨域认证方法及系统

技术领域

本发明涉及区块链技术领域,更具体地,涉及一种基于区块链的CA跨域认证方法及系统。

背景技术

基于PKI体系(公钥基础设施)的CA系统中,CA是这个体系的核心,其应用范围涉及需要身份认证及数据安全的各个行业,如在线商业贸易、安全电子邮件、网上办公等支付型和非支付型电子事务活动,都需要CA颁发的数字证书进行身份认证,没有跨域认证的CA就像一座孤岛,孤岛之间不互联互通则会阻碍商贸活动的发展。

传统的CA跨域认证模型有:对等交叉信任模型、严格分层等级模型、网状信任模型、桥CA信任模型、WEB信任模型、以用户为中心的信任模型、混合模型。然而这些模型实现的CA跨域认证系统的可信度存在质疑,且技术复杂、成本高、效率低,尤其是在面对大规模的CA跨域认证问题时无能为力。传统的CA跨域认证模型无法满足可信、高效、大规模的CA跨域认证需求。

发明内容

本发明的目的是提出一种基于区块链的CA跨域认证方法及系统,实现满足可信、高效、大规模的CA跨域认证需求。

为实现上述目的,本发明提出了一种基于区块链的CA跨域认证方法,包括:

以fabric联盟链框架为基础构建CA联盟链,并将不同域内的CA系统作为区块链节点,所述CA包括位于最高层的根CA、位于中间层的多个策略CA和位于底层的多个用户CA,其中,将所述根CA作为主节点,将所述用户CA作为从节点;

以raft算法作为所述CA联盟链的共识算法完成CA节点之间的共识流程,所述共识流程包含Leader选取流程和数据共识流程,其中,根CA节点参与共识流程,用户CA节点作为分布式数据库存储生成的区块数据;

通过智能合约生成三个不同的非对称的秘钥对,并将三个所述密钥对分别颁发给不同域内的根CA节点、策略CA节点和用户CA节点,使不同域内的根CA节点、策略CA节点和用户CA节点分别拥有相同的秘钥对,以实现不同域内的CA颁发的数字证书相互认证;

基于所述CA联盟链进行跨域认证。

可选地,所述Leader选取流程包括:

所述根CA节点的状态包括follower、candidate或leader,所述CA联盟链起始时,所有根CA节点的状态均为follower;

若状态为follower的根CA节点在选举超时时间内没有收到leader状态根CA节点的心跳信号,则将状态从follower切换为candidate,成为状态为candidate的根CA节点,并向其他状态处于follower的根CA节点发出选举请求;

如果收到超过一半以上状态为follower的根CA节点投票同意,则状态为candidate的根CA节点将状态切换为leader,并在一段时间内不停的给其他状态为follower的根CA节点发送心跳消息以保持其主节点状态。

可选地,所述数据共识流程包括:

状态为leader的根CA节点强制向所有状态为follower的根CA节点同步数据,当超过一半的状态为follower的根CA节点确认接收数据成功并验证交易数据后,状态为leader的根CA节点将数据提交到区块链中,达成全网的共识后,从节点将区块数据添加到自己的账本中。

可选地,所述跨域认证包括数字证书申请流程、证书签发流程、数字证书验证流程以及数字证书撤销流程

可选地,所述数字证书申请流程包括:

用户通过客户端向所述CA联盟链内任意域内的任意所述用户CA发送申请数字证书的指令,所述用户CA在审核用户信息属实后同意颁发数字证书。

可选地,所述证书签发流程包括:

所述用户CA使用其私钥给包含用户和颁发者信息的摘要进行非对称加密生成数字签名;

将生成的带有所述数字签名的数字证书颁发给用户,用户使用所述数字证书作为电子身份证明。

可选地,所述数字证书验证流程包括:

待身份认证的用户将其数字证书发送给同域或跨域的要验证的用户;

所述要验证的用户通过公钥完成验证过程,数字证书的验证追溯至根证书结束验证流程,通过CA的公钥解密所述数字证书,若能解密则证明所述数字证书由CA联盟链中的可信CA节点颁发。

可选地,所述数字证书撤销流程包括:

用户向CA联盟链中任意一个域内的用户CA申请撤销数字证书,所述用户CA将要撤销的数字证书的序列号添加到数字证书撤销列表中。

可选地,生成的所述数字证书中使用MD5算法生成包含用户和颁发者信息的摘要,并使用其私钥通过RSA非对称加密算法对信息摘要进行非对称加密生成数字签名。

本发明还提出一种基于区块链的CA跨域认证系统,包括:

共识模块,所述共识模块基于raft算法完成CA联盟链中CA节点之间的共识流程,所述共识流程包含Leader选取流程和数据共识流程,其中,所述CA联盟链以fabric联盟链框架为基础构建而成,不同域内的CA系统作为区块链节点,所述CA包括位于最高层的根CA、位于中间层的多个策略CA和位于底层的多个用户CA,其中,所述根CA作为主节点,所述用户CA作为从节点;

数据存储模块,包括以CA联盟链中的用户CA节点构成的分布式数据库,用于存储经过根CA节点共识后生成的区块数据;

智能合约模块,用于通过智能合约生成三个不同的非对称的秘钥对,并将三个所述密钥对分别颁发给不同域内的根CA节点、策略CA节点和用户CA节点,使不同域内的根CA节点、策略CA节点和用户CA节点分别拥有相同的秘钥对,以实现不同域内的CA颁发的数字证书相互认证;

用户终端模块,用于作为用户与所述CA联盟链之间的接口,用户通过用户终端发送指令给用户CA节点实现数字证书的申请、签发和验证,以及数字证书上链功能。

本发明的有益效果在于:

1、本发明以CA作为节点构建CA联盟链,建立CA之间的彼此信任,解决不同域的CA互不信任问题,以raft算法作为共识算法可以解决CA跨域认证低效、规模有限的问题,提升CA跨域认证速度和规模,相较于现有技术,可以解决传统CA跨域认证方法低效、小规模、网状结构复杂的问题,此外,还可以解决CA单点故障问题;

2、本发明对原有CA系统不需要做改动就可以构建CA联盟链,并实现CA跨域认证,具备良好的兼容性,系统模型简单,易于实现,降低了建设成本和用户使用成本;

3、本发明通过智能合约实现CA之间的互联互通,解决了传统模型中用户只能通过本域内的CA申请或者验证数字证书的问题,提升了系统性能,包括兼容性和响应速度,同时也为用户提供了方便,用户可以向CA联盟链中任意域内的用户CA申请或者验证、撤销数字证书,具有一定的实际应用价值。

本发明的方法具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。

附图说明

通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,在本发明示例性实施例中,相同的参考标号通常代表相同部件。

图1示出了根据本发明一个实施例的一种基于区块链的CA跨域认证方法的步骤图。

图2示出了根据本发明一个实施例的的一种基于区块链的CA跨域认证方法中CA联盟链的框架图。

图3示出了根据本发明一个实施例的的一种基于区块链的CA跨域认证方法中raft共识算法状态转换流程图。

图4示出了根据本发明一个实施例的的一种基于区块链的CA跨域认证方法中基于智能合约的非对称秘钥对颁发示意图。

图5示出了根据本发明一个实施例的的一种基于区块链的CA跨域认证方法中数字证书链验证流程图。

图6示出了根据本发明一个实施例的的一种基于区块链的CA跨域认证系统的功能模块示意图。

具体实施方式

下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

图1示出了根据本发明一个实施例的一种基于区块链的CA跨域认证方法的步骤图。

如图1所示,一种基于区块链的CA跨域认证方法,包括:

步骤S101:以fabric联盟链框架为基础构建CA联盟链,并将不同域内的CA系统作为区块链节点,CA包括位于最高层的根CA(RCA)、位于中间层的多个策略CA(PCA)和位于底层的多个用户CA(UCA),其中,将根CA作为主节点,将用户CA作为从节点;

具体地,使用基于Hyperledger Fabric联盟链的区块链解决方案支撑平台,以fabric联盟链框架为基础构建CA联盟链,将CA作为联盟链节点。以此构建的CA联盟链中CA节点参与共识流程与记账过程,每笔交易数据都需要经过根CA节点共识后才能生成区块并加入账本中。

步骤S102:以raft算法作为CA联盟链的共识算法完成CA节点之间的共识流程,共识流程包含Leader选取流程和数据共识流程,其中,根CA节点参与共识流程,用户CA节点作为分布式数据库存储生成的区块数据;

具体地,采用raft算法作为共识算法,不同域内的根CA作为主节点,用户CA作为从节点。共识算法共识过程包含如下步骤:

1)Leader选取过程

在fabric中搭建的CA联盟链,起始时所有根CA节点都是follower状态,根CA节点的状态包括follower、candidate或leader,CA联盟链起始时,所有根CA节点的状态均为follower;

若状态为follower的根CA节点在选举超时时间内没有收到leader状态根CA节点的心跳信号,则将状态从follower切换为candidate,成为状态为candidate的根CA节点,并向其他状态处于follower的根CA节点发出选举请求;如果收到超过一半以上状态为follower的根CA节点投票同意,则状态为candidate的根CA节点将状态切换为leader,并在一段时间内不停的给其他状态为follower的根CA节点发送心跳消息以保持其主节点状态。

2)交易数据共识过程

当CA联盟链选举出leader节点后,状态为leader的根CA节点强制向所有状态为follower的根CA节点同步数据,当超过一半的状态为follower的根CA节点确认接收数据成功并验证交易数据后,状态为leader的根CA节点将数据提交到区块链中,达成全网的共识后,从节点将区块数据添加到自己的账本中。

步骤S103:通过智能合约生成三个不同的非对称的秘钥对,并将三个密钥对分别颁发给不同域内的根CA节点、策略CA节点和用户CA节点,使不同域内的根CA节点、策略CA节点和用户CA节点分别拥有相同的秘钥对,以实现不同域内的CA颁发的数字证书相互认证;

具体地,基于go语言编写智能合约,由智能合约生成三个非对称秘钥对,并将生成的三个非对称秘钥对分别颁发给不同域内的根CA、策略CA和用户CA,使得不同域内的根CA、策略CA和用户CA分别拥有相同的秘钥对,私钥用于数字签名,公钥用于解密和身份验证,基于非对称密码学实现CA之间的互联互通,即用户与CA之间由一对一转变为多对多的映射关系,用户可以向CA联盟链中的任意域的用户CA申请、验证、撤销数字证书。

步骤S104:基于CA联盟链进行跨域认证。

具体地,基于区块链的CA跨域认证包含如下步骤:

1)、数字证书申请流程

用户通过客户端向CA联盟链内任意域内的任意用户CA发送申请数字证书的指令,用户CA在审核用户信息属实后同意颁发数字证书。

2)、证书签发流程

用户CA服务器生成数字证书,其具体流程为用户CA使用其私钥给包含用户和颁发者信息的摘要进行非对称加密生成数字签名,然后将生成的带有用户CA签名的数字证书颁发给申请用户,用户使用申请的数字证书作为电子身份证明。生成的数字证书中使用MD5算法生成包含用户和颁发者信息的摘要,并使用其私钥通过RSA非对称加密算法对信息摘要进行非对称加密生成数字签名。

3)、数字证书验证流程

CA联盟链中不同域内的任意用户都可以验证数字证书,由于不同域的根CA、策略CA、用户CA分别拥有相同的非对称秘钥对,跨域的认证流程同本域内的认证流程一样,通过非对称密码学完成认证流程,具体过程为有待身份认证的用户将其数字证书发送给要验证的用户,该用户可以是本域内的,也可以是域外的,要验证的用户通过公钥完成验证过程,数字证书的验证追溯至根证书结束验证流程,通过CA的公钥解密数字证书,若能解密则说明该数字证书由CA联盟链中的可信CA节点颁发。

4)、数字证书撤销流程

用户可以向CA联盟链中任意一个域内的用户CA申请撤销数字证书,用户CA将要撤销的数字证书序列号添加到数字证书撤销列表中。

以下通过具体应用示例对本发明进行更为具体地说明:

应用示例:

一种基于区块链的CA跨域认证方法,包括:

S201:以fabric通用平台为基础创建CA联盟链。构建的CA联盟链如图2所示,CA联盟链中的节点分为主节点和从节点,根CA作为主节点,用户认证CA作为从节点,即四个域内的RCA1、RCA1、RCA3、RCA4作为CA联盟链中的主节点、四个域内的所有UCA作为从节点,主节点参与共识流程,从节点作为分布式数据库存储生成的区块数据,每笔交易数据都需要经过RCA节点共识后才能生成区块并加入UCA账本中,该CA联盟链可以建立起不同域CA之间的互相信任。

S202:选择raft作为共识算法完成共识流程。所述共识流程包含Leader选取流程和数据共识流程。进一步的,所述共识算法共识过程包含如下步骤:

A、Leader选取过程:raft算法状态转换如图3所示,在fabric中搭建的CA联盟链,起始时所有根CA节点都是follower状态,若follower节点在选举超时时间内没有收到leader的心跳信号,则follower状态切换为candidate,成为candidate状态的节点向其他follower发出选举请求,如果收到超过一半以上follower的投票同意,则candidate节点状态切换为leader,并在一段时间内不停的给follower发送心跳消息以保持其主节点状态。一个时刻只能有一个CA主节点选取为Leader状态,其余CA主节点作为follower状态。

B、数据共识过程:当CA联盟链选举出leader后,leader会强制向所有follower节点同步数据,当多数follower确认接收数据成功并验证交易数据后,leader将数据提交到区块链中,达成全网的共识后从节点会将区块数据添加到自己的账本中,即分布式数据库内。

S203:基于go语言编写智能合约,智能合约生成三个非对称秘钥对,如图4所示,三个非对称秘钥对分别为RCA秘钥对、PCA秘钥对、UCA秘钥对,并将生成的非对称秘钥对分别颁发给不同域内的RCA、PCA和UCA,使得四个域内的RCA1、RCA1、RCA3、RCA4拥有相同的非对称秘钥对,四个域内的8个PCA拥有相同的非对称秘钥对,四个域内的16个UCA拥有相同的非对称秘钥对,基于非对称密码学实现不同域内的CA互联互通,即用户与CA之间由一对一转变为多对多的映射关系,跨域认证时用户可以向CA联盟链内任意域内的UCA申请、签发和验证数字证书,使用的是相同的非对称秘钥对。

S204:CA跨域认证。进一步的,通过互联互通的CA联盟链实现CA跨域认证,包含数字证书的申请、签发、验证流程,基于非对称密码学完成,其包含如下步骤:

A、数字证书申请流程。用户通过客户端向CA联盟链内任意域内的任意用户认证CA服务器发送申请数字证书的指令,如区域1内的用户1向区域2内的任一UCA发送申请数字证书的指令,UCA服务器在审核用户信息属实后同意颁发数字证书;

B、数字证书签发流程。UCA服务器生成数字证书,其具体流程为区域2内的UCA使用MD5算法生成包含用户和颁发者信息的摘要,然后使用其私钥对信息摘要进行非对称加密生成数字签名,最后将生成的带有UCA签名的数字证书颁发给申请用户1,用户使用申请的数字证书作为电子身份证明;

C、数字证书验证流程。CA联盟链中CA组下的任意用户都可以验证数字证书,由于CA组拥有相同的私钥,跨域的认证流程同本域内的认证流程一样,通过非对称密码学完成认证流程。如区域3内的用户3要验证区域1内用户1的身份,其具体流程为:用户1将其数字证书发送给用户3,用户3通过任意区域内的CA公钥验证数字证书,数字证书的验证追溯至根证书即为结束,证书链的验证流程如图5所示,用户3通过UCA的公钥解密用户认证CA证书,UCA通过PCA的公钥解密中间证书,PCA通过RCA的公钥解密根CA证书,至此数字证书的验证流程才结束,若证书链验证流程中出现解密失败,则整个验证流程失败,用户1的身份认证失败,相反则用户1的身份验证成功,其数字证书由CA联盟链中的UCA所颁发,证书有效。

D、数字证书撤销流程。用户1要作废其申请的数字证书时可以向CA联盟链中任意一个域内的UCA申请撤销数字证书,UCA将要撤销的数字证书序列号添加到数字证书撤销列表中。

图6示出了根据本发明一个实施例的的一种基于区块链的CA跨域认证系统的功能模块示意图。

如图6所示,一种基于区块链的CA跨域认证系统,包括:

共识模块,共识模块基于raft算法完成CA联盟链CA节点之间的共识流程,共识流程包含Leader选取流程和数据共识流程,其中,CA联盟链以fabric联盟链框架为基础构建而成,不同域内的CA系统作为区块链节点,CA包括位于最高层的根CA、位于中间层的多个策略CA和位于底层的多个用户CA,其中,根CA作为主节点,用户CA作为从节点;

数据存储模块,包括以CA联盟链中的用户CA节点构成的分布式数据库,用于存储经过根CA节点共识后生成的区块数据;

智能合约模块,用于通过智能合约生成三个不同的非对称的秘钥对,并将三个密钥对分别颁发给不同域内的根CA节点、策略CA节点和用户CA节点,使不同域内的根CA节点、策略CA节点和用户CA节点分别拥有相同的秘钥对,以实现不同域内的CA颁发的数字证书相互认证;

用户终端模块,用于作为用户与CA联盟链之间的接口,用户通过用户终端发送指令给用户CA节点实现数字证书的申请、签发和验证,以及数字证书上链功能。

具体地,数据存储模块即为分布式数据库,以CA联盟链中的UCA作为数据库存储经过RCA共识后生成的区块数据;共识模块选用的共识算法为raft,共识流程包含Leader选取流程和数据共识流程;智能合约模块生成非对称秘钥对并颁发给不同域内的RCA、PCA和UCA,基于密码学方法实现不同域内的CA颁发的数字证书相互认证,互联互通;用户终端模块为用户与CA联盟链的接口,用户通过用户终端发送指令给CA实现数字证书的申请、签发和验证,以及数字证书上链功能。

综上,本发明使用基于Hyperledger Fabric联盟链作为区块链解决方案支撑平台,以CA作为联盟链中的节点构建CA联盟链,使用raft共识算法解决CA跨域认证低效、规模有限的问题,联盟链中CA节点数可达数千个,每秒处理的交易数量可达数万。通过区块链智能合约实现CA之间的互联互通,通过智能合约生成非对称秘钥对,并颁发给不同域的CA,基于非对称密码学实现CA之间的跨域相互认证,即用户与CA之间由一对一转变为多对多的认证模型,用户可以向CA联盟链中的任意域内的任意一个用户CA申请、签发、验证、撤销数字证书。

进一步地,本发明的基于区块链的CA跨域认证方法适用于实现可信、高效、大规模的CA跨域认证,能够解决传统CA跨域认证方法低效、小规模、网状结构复杂的问题,同时,对原有CA系统不需要做改动就可以构建CA联盟链,具备良好的兼容性,降低了建设成本。在此基础上,通过智能合约生成非对称秘钥对,并颁发给不同域的CA,基于非对称密码学实现CA之间的跨域相互认证,即用户可以向CA联盟链中的任意域内的任何一个用户CA申请或者验证数字证书,而不是只能通过本域内的用户CA申请或者验证数字证书,其进一步提升了系统兼容性和响应速度。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

相关技术
  • 基于区块链的CA跨域认证方法及系统
  • 基于区块链的多域无线Mesh网络跨域认证方法及系统
技术分类

06120112835767