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

基于联盟链的专用即时通信系统跨域身份认证方法及系统

文献发布时间:2024-01-17 01:19:37


基于联盟链的专用即时通信系统跨域身份认证方法及系统

技术领域

本发明属于计算机安全技术领域,涉及一种跨域认证方法,特别涉及一种基于联盟链的专用即时通信系统跨域身份认证方法及系统。

背景技术

目前很多企事业单位出于通信效率及安全考虑,会自行部署一套专用的即时通信系统,仅供单位内部使用,这种专用的即时通信系统可保障企事业单位用户在工作上的沟通效率与安全。为了确保安全,系统往往会对接入访问进行控制,这使得这类系统具有一定的封闭性。当企事业与各个合作单位的专用即时通信系统之间进行相互访问,就会遇到信任问题,需要跨域认证技术,但传统跨域认证技术中还存在信任路径构造复杂,验证路径过长,验证效率低下、中心化等问题。

中国专利申请号2021103119489提供了一种基于联盟链的远程医疗跨域认证方法,采用区块链技术避免传统证书的撤销状态在线查询过程,优化身份证书的验证方式,有效保证链上证书信息的时效性的同时减少证书数据的存储空间大小。

发明内容

本发明的目的,在于提供一种基于联盟链的专用即时通信系统跨域身份认证方法及系统,可信任性高,跨域认证过程速度快。

为了达成上述目的,本发明的解决方案是:

一种基于联盟链的专用即时通信系统跨域身份认证方法,包括如下步骤:

步骤一,构建联盟链,所述联盟链下设若干共识节点,该共识节点为隶属于某个域下的通信服务器,且该通信服务器已经通过联盟链验证许可;所述联盟链设有账本,该账本用于记录每个共识节点对应的通信服务器中有跨域认证需求的用户信息,用户信息包括用户属性、用户所在系统中的CA签名的数字证书和时间戳;

步骤二,连接至第一通信服务器的第一用户向连接至第二通信服务器的第二用户发起跨域认证权限申请,由第二通信服务器对应的第二管理员决定是否接受,若接受,则第二管理员确认第一用户在第二用户的好友列表中,第一管理员确认第二用户在第一用户的好友列表中;再转步骤三;若第二管理员不接受,则反馈信息至第二通信服务器;

步骤三,连接至第一通信服务器的第一用户与连接至第二通信服务器的第二用户进行跨域双向认证,跨域认证通过则第一用户与第二用户建立跨域通信,跨域认证不通过则第一用户与第二用户不建立跨域通信。

上述步骤二的具体过程是,

步骤A1,第一通信服务器对应的第一管理员向第一通信服务器提交跨域认证权限请求信息,所述跨域认证权限请求信息包括第二通信服务器和第二用户信息;

步骤A2,第一通信服务器确认第一管理员身份后,向联盟链查询第二通信服务器的地址信息,并向第二通信服务器发送第一用户的跨域认证权限请求信息;

步骤A3,第二通信服务器接收到第一通信服务器的请求信息后,首先确认第一通信服务器的身份,之后生成相应的跨域认证权限请求信息反馈给第二通信服务器对应的第二管理员;

步骤A4,第二管理员接收到第一用户对第二用户的跨域认证权限请求后,决定是否允许第一用户与第二用户建立跨域通信,并向第二通信服务器反馈允许或不允许建立跨域通信的信息;若允许,则转步骤A5,若不允许,则转步骤A6;

步骤A5,判断第二用户是否在第二通信服务器的跨域认证白名单中,若在,则将第一用户添加到第二用户的好友列表中;若不在,则第二通信服务器先将第二用户的用户信息打包成区块,经多方共识后上链,即将第二用户的属性、其所在系统中的CA签名的数字证书和当前区块链系统时间戳写入联盟链账本中,再将第一用户添加到第二用户的好友列表中;然后转步骤A6;

步骤A6,第二通信服务器将第二管理员决定允许或不允许建立跨域通信的信息反馈给第一通信服务器;

步骤A7,第一通信服务器接收并解析第二通信服务器反馈的信息;若第二管理员允许建立跨域通信,则转步骤A8;若第二管理员不允许建立跨域通信,则转步骤A9;

步骤A8,判断第一用户是否在第一通信服务器的跨域认证白名单中,若在,则将第二用户添加到第一用户的好友列表中;若不在,则第一通信服务器先将第一用户的用户信息上链,即将第一用户的属性、其所在系统中的CA签名的数字证书和当前区块链系统时间戳写入联盟链账本中,再将第二用户添加到第一用户的好友列表中;然后转步骤A9;

步骤A9,第一通信服务器将第二管理员决定允许或不允许建立跨域通信的信息及第一通信服务器的操作结果反馈给第一管理员和第一用户。

上述步骤三的具体过程是,

步骤B1,第一用户向第一通信服务器发起与第二用户的跨域通信请求;

步骤B2,第一通信服务器验证第一用户的身份,验证通过后,第一通信服务器获取标记为最新时间戳的第二用户的证书Cert

步骤B3,第一用户收到第二用户的证书Cert

步骤B4,第一通信服务器接收到M

步骤B5,第二通信服务器接收到M

步骤B6,第二用户接收到M

步骤B7,第一通信服务器接收到M

步骤B8,第一用户接收到M

上述步骤B2还包括,第一通信服务器验证第一用户的身份,验证通过后,第一通信服务器查看跨域认证白名单中是否有第二用户,若有,则第一通信服务器从联盟链中获取标记为最新时间戳的第二用户的证书Cert

上述步骤B3的具体内容是,

步骤B31,第一用户收到第二用户的证书Cert

步骤B32,生成随机数r

步骤B33,生成认证消息m

步骤B34,使用第二用户的公钥K

步骤B35,生成跨域认证消息M

上述步骤B6的具体内容是,

步骤B61,第二用户接收到M

步骤B62,使用自身私钥K

步骤B63,利用第一用户的公钥K

步骤B64,计算r

上述步骤B5中,第二通信服务器接收到M

一种基于联盟链的专用即时通信系统跨域身份认证系统,包括位于联盟链中作为其共识节点的若干通信服务器,所述若干通信服务器隶属于某个域,且各通信服务器均已通过联盟链验证许可;

任一所述通信服务器均对应有一管理员,该管理员用于决定是否接受另一通信服务器所连接的用户发起的跨域认证权限申请;

连接至两个不同通信服务器的两个用户之间进行跨域双向认证,跨域认证通过则所述两个用户建立跨域通信,跨域认证不通过则所述两个用户不建立跨域通信。

上述任一所述通信服务器均对应有一管理员,该管理员还用于向该通信服务器提交连接至该通信服务器的用户的用户信息更新申请,该通信服务器对该用户信息进行更新操作。

上述任一所述通信服务器均对应有一管理员,该管理员还用于向该通信服务器提交连接至该通信服务器的用户的用户信息撤销请求,以准许该用户断开与该通信服务器的连接。

上述任一所述通信服务器均对应有一管理员,该管理员还用于向该通信服务器提交连接至该通信服务器的用户与指定用户之间的跨域认证权限撤销请求,以实现撤销所述连接至该通信服务器的用户对所述指定用户之间的跨域通信。

采用上述方案后,本发明在不改变原有系统中的认证方式,将各个系统的通信服务器作为联盟链节点连接起来,各个系统设有负责管控与分配跨域认证权限的管理员,管理员将有跨域认证权限的用户的相关信息进行链上存证,通过区块链技术的不易篡改、账本集体维护、分布式多中心的特性,加强了可信任性,减少了认证传递过程,并设计一种高效的跨域双向身份认证方案,使跨域认证过程变得更为简便。

本发明的有益效果是:

(1)本发明中的跨域认证权限由管理员进行管控与分配,系统责任主体对用户的跨域认证权限具有管理、支配能力,能够根据授权规则对用户的跨域认证权限进行有效掌握和控制,管理者可有效地控制系统用户的跨域认证行为,符合网络信息安全对系统的可控性要求;

(2)本发明只需对跨域认证用户的相关信息进行链上存证,上链信息少,系统运行效率高;联盟链节点只拥有跨域认证用户信息,仅有跨域认证权限的用户才互相可见,用户信息泄露风险低;

(3)本发明的认证速度快,只需1-RTT就可完成双向身份认证。

附图说明

图1是本发明的跨域认证框架图;

图2是本发明的跨域认证权限请求流程图;

图3是本发明的跨域身份认证流程图。

具体实施方式

以下将结合附图,对本发明的技术方案及有益效果进行详细说明。

本发明提供一种基于联盟链的专用即时通信系统跨域身份认证方法及系统,包括构建联盟链、跨域权限管理、跨域认证3个阶段,具体实现步骤如下:

一、构建联盟链

如图1所示,联盟链是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,相对于私有链,其更符合企业间跨域通信的业务需求,另一方面,相对于公有链,联盟链具有更高的区块生成效率,系统的可扩展性也比较强。因此,本发明采用联盟链形式构造区块链。

将多个域下的通信服务器,经联盟链验证许可后,作为共识节点加入联盟链,由联盟链的节点准入准出机制把控节点的加入与退出,节点之间通过共识算法达成一致,形成信任域。联盟链的账本用于记录每个节点对应的通信服务器中有跨域认证需求的用户信息,用户信息包括用户属性、用户所在系统中的CA签名的数字证书和时间戳,利用区块链去中心化和共识机制保证用户信息的安全性存储和管理,其中用户属性指用户昵称、ID等标识符。

二、跨域权限管理(图2)

为了更加细粒度对用户跨域认证权限进行管理,实现类似于传统CA证书的生命周期流程,对上链的用户数字证书附加时间戳标记,当用户信息发生更新或者撤销时,将向区块链网络上传新的用户信息或内容为空的用户信息并附加最新的时间戳。当区块链节点要查询对应用户的信息,均以链上存储的最新的时间戳标记数字证书为有效,其余为无效,以实现对用户跨域认证权限的申请、更新和撤销的管理操作。

1、申请跨域认证权限

由管理员在系统管理平台上为有跨域认证需求的用户申请跨域认证权限,跨域认证权限为该用户可与联盟链中哪些通信系统中的哪些用户进行跨域认证,获取跨域认证权限的用户可在其好友列表中查看相应的可跨域认证的用户信息;

将跨域认证权限请求发起方的服务器、管理员、用户分别记为第一通信服务器、第一管理员、第一用户,将跨域认证权限请求响应方的服务器、管理员、用户分别记为第二通信服务器、第二管理员、第二用户。联盟链中第一通信系统的第一用户向第二通信系统发起与第二用户跨域认证权限申请的具体步骤如下:

(1)第一管理员为第一用户在第一管理平台上向第一通信服务器提交跨域认证权限请求信息,所述请求信息包括第二通信服务器和第二用户信息;

(2)第一通信服务器确认第一管理员身份后,向联盟链查询第二通信服务器的地址信息,并向第二通信服务器发送第一用户的跨域认证权限请求;

(3)第二通信服务器接收到第一通信服务器的请求信息后,首先确认第一通信服务器的身份,之后生成相应的跨域认证权限请求信息反馈给第二通信服务器的第二管理员;

(4)第二管理员接收到第一用户对第二用户的跨域认证权限请求后,根据实际业务需要决定是否允许第一用户与第二用户建立跨域通信,并在第二管理平台提交允许或不允许建立跨域通信的反馈信息给第二通信服务器;

(5)若第二管理员允许双方建立跨域通信,且第二用户已在第二通信服务器的跨域认证白名单中,则将第一用户添加到第二用户的好友列表中;

(6)若第二管理员允许双方建立跨域通信,且第二用户不在第二通信服务器的跨域认证白名单中,则第二通信服务器需先将第二用户的用户信息打包成区块,经多方共识后上链,即将第二用户的属性、其所在系统中的CA签名的数字证书和当前区块链系统时间戳写入联盟链账本中,再将第一用户添加到第二用户的好友列表中;

(7)若第二管理员不允许双方建立跨域通信,第二通信服务器不必执行步骤(6)的操作;

(8)第二通信服务器将第二管理员对第一用户跨域通信请求的授权情况反馈给第一通信服务器;

(9)第一通信服务器接收到第二通信服务器反馈的授权情况信息后解析反馈信息;

(10)若第二管理员允许第一用户与第二用户建立跨域通信,且第一用户已在第一通信服务器的跨域认证白名单中,则第一通信服务器只需将第二用户添加到第一用户的好友列表中;

(11)若第二管理员允许第一用户与第二用户建立跨域通信,且第一用户不在第一通信服务器的跨域认证白名单中,则第一通信服务器需先将第一用户的用户信息上链,即将第一用户的属性、其所在系统中的CA签名的数字证书和当前区块链系统时间戳写入联盟链账本中,再将第二用户添加到第一用户的好友列表中;

(12)若第二管理员不允许双方建立跨域通信,第一通信服务器不必执行操作;

(13)第一通信服务器将第二管理员对第一用户的跨域通信请求的授权情况及第一通信服务器的操作结果反馈给第一管理员和第一用户。

2、更新跨域认证权限

当第一用户需要更新用户信息时,由第一管理员在管理平台向第一通信服务器提交用户信息更新申请,请求第一通信服务器对第一用户信息进行更新操作;

第一通信服务器对第一管理员进行身份认证,认证通过后,第一通信服务器会向区块链系统提交写入新的第一用户信息交易,即新的用户属性、其所在系统中的CA签名的数字证书和当前区块链系统时间戳,以达到更新区块链账本上第一用户信息。

3、撤销用户的跨域认证权限

当第一用户要离开所在的即时通信系统之前,第一管理员需在管理平台向第一通信服务器提交用户信息撤销请求;

第一通信服务器对第一管理员进行身份认证,认证通过后,第一通信服务器向区块链系统提交第一通信服务器会向区块链系统提交写入新的用户信息交易,即原用户的属性、空的数字证书和当前区块链系统时间戳。

同时,若作为区块链节点的各个通信服务器的跨域认证白名单中存在第一用户,则需将第一用户从白名单中删除,若无,则无需进行操作。

4、撤销用户与指定其他即时通信系统的用户间的跨域认证权限

当第一管理员要撤销第一用户对其他即时通信系统下的指定用户之间跨域通信时,第一管理员需在管理平台向第一通信服务器提交第一用户与指定用户之间跨域认证权限撤销请求,由第一通信服务器向区块链系统提交该项请求交易,经多方共识后将该交易上链,并由指定用户所在的即时通信系统的通信服务器执行该交易,该通信服务器将从跨域认证白名单中将第一用户信息删除。

三、跨域认证(图3)

联盟链中第一通信系统的第一用户与第二通信系统的第二用户进行跨域双向认证,具体流程如下:

(1)第一用户向第一通信服务器发起与第二用户的跨域通信请求;

(2)第一通信服务器验证第一用户的身份,验证通过后,第一通信服务器查看跨域认证白名单中是否有第二用户,若有第一通信服务器从联盟链中获取标记为最新时间戳的第二用户的证书Cert

(3)第一用户收到第二用户的证书Cert

①从证书Cert

②生成随机数r

③生成认证消息m

④使用第二用户的公钥K

⑤生成跨域认证消息M

(4)第一通信服务器接收到M

(5)第二通信服务器接收到跨域认证消息M

(6)验证M

(7)第二用户接收到M

①从M

②使用自身私钥K

③利用第一用户的公钥K

④计算r

⑤第一通信服务器接收到跨域认证消息M

(8)第一用户接收到M

①从M

②计算此前本地生成的随机数r

③通过判断h

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

相关技术
  • 一种基于多级联盟链的跨域身份认证方法
  • 基于信任联盟区块链的跨域服务器身份认证方法
技术分类

06120116133456