一种基于区块链的同步调用用户身份认证方法技术

技术编号:30020284 阅读:21 留言:0更新日期:2021-09-11 06:39
本发明专利技术公开一种基于区块链的同步调用用户身份认证方法,涉及安全认证领域;通过用户端基于区块链注册用户注册智能合约,根据区块链生成的可验证随机数,通过用户端进行数字签名,根据区块链生成的用户认证智能合约,通过身份认证服务端调用用户认证智能合约验证数字签名的有效性以及用户是否存在于用户注册智能合约中,通过身份认证服务端获取验证结果。果。果。

【技术实现步骤摘要】
一种基于区块链的同步调用用户身份认证方法


[0001]本专利技术公开一种方法,涉及安全认证领域,具体地说是一种基于区块链的同步调用用户身份认证方法。

技术介绍

[0002]现有技术中区块链的用户登录认证方法中利用区块链智能合约及智能合约事件机制,实现基于区块链的非交互式增强认证。但这种方式依赖区块链的事件消息订阅机制,即区块链交易确认后才能发出事件通知,使得认证系统的响应时间比传统“用户+口令”方式要长,认证延迟时间长,并且系统架构也比较复杂。

技术实现思路

[0003]本专利技术针对现有技术的问题,提供一种基于区块链的同步调用用户身份认证方法,具有通用性强、实施简便等特点,具有广阔的应用前景。
[0004]本专利技术提出的具体方案是:
[0005]一种基于区块链的同步调用用户身份认证方法,通过用户端基于区块链注册用户注册智能合约,
[0006]根据可验证随机数,通过用户端进行数字签名,
[0007]根据区块链的用户认证智能合约,通过身份认证服务端调用用户认证智能合约验证数字签名的有效性以及用户是否存在于用户注册智能合约中,
[0008]通过身份认证服务端获取验证结果。
[0009]进一步,所述的一种基于区块链的同步调用用户身份认证方法中通过区块链将注册到用户注册智能合约的用户加入白名单,通过用户认证智能合约利用白名单中的公钥验证用户的数字签名。
[0010]进一步,所述的一种基于区块链的同步调用用户身份认证方法中通过用户端生成可验证随机数,其中可验证随机数V=HASH(时间戳T,用户公钥)。
[0011]进一步,所述的一种基于区块链的同步调用用户身份认证方法中通过用户端进行数字签名,其中数字签名S=SIG(V,用户私钥),SIG()表示数字签名算法。
[0012]进一步,所述的一种基于区块链的同步调用用户身份认证方法中通过身份认证服务端利用可验证随机数V、时间戳T及数字签名S作为参数调用用户认证智能合约,进行数字签名的有效性以及用户是否存在于用户注册智能合约中的验证。
[0013]进一步,所述的一种基于区块链的同步调用用户身份认证方法中调用用户认证智能合约:判断用户公钥是否存在于白名单中,判断可验证随机数的数字签名是否有效,判断可验证随机数中时间戳是否超时,若用户公钥存在于白名单中,数字签名有效,且时间戳未超时,则验证通过,否则验证失败。
[0014]一种基于区块链的同步调用用户身份认证系统,用户端交互模块及身份认证服务端交互模块,
[0015]用户端交互模块根据用户端指示基于区块链注册用户注册智能合约,根据可验证随机数,生成用户端的数字签名,
[0016]根据区块链的用户认证智能合约,身份认证服务端交互模块根据身份认证服务端指示调用用户认证智能合约,验证数字签名的有效性以及用户是否存在于用户注册智能合约中,并将验证结果返回至身份认证服务端。
[0017]一种基于区块链的同步调用用户身份认证装置,包括:至少一个存储器和至少一个处理器;
[0018]所述至少一个存储器,用于存储机器可读程序;
[0019]所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于区块链的同步调用用户身份认证方法。
[0020]本专利技术的有益之处是:
[0021]本专利技术提供一种基于区块链的同步调用用户身份认证方法,通过用户端可验证随机数进行数字签名,并基于区块链注册用户注册智能合约,通过身份认证服务端调用用户认证智能合约验证数字签名的有效性以及用户是否存在于用户注册智能合约中,通过身份认证服务端获取验证结果,即能够通过身份认证服务端调用智能合约检查数字签名的有效性以及用户是否存在于用户注册智能合约中时,没有等待区块链交易的确认,而是直接采信智能合约对规则的校验结果,使得异步调用变化为同步调用,减少了延迟和降低了实现复杂度。
附图说明
[0022]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1是本专利技术方法应用流程示意图。
具体实施方式
[0024]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0025]本专利技术提供一种基于区块链的同步调用用户身份认证方法,通过用户端基于区块链注册用户注册智能合约,
[0026]根据可验证随机数,通过用户端进行数字签名,
[0027]根据区块链的用户认证智能合约,通过身份认证服务端调用用户认证智能合约验证数字签名的有效性以及用户是否存在于用户注册智能合约中,
[0028]通过身份认证服务端获取验证结果。
[0029]本专利技术方法通过用户端可验证随机数进行数字签名,并基于区块链注册用户注册智能合约,通过身份认证服务端调用用户认证智能合约验证数字签名的有效性以及用户是否存在于用户注册智能合约中,通过身份认证服务端获取验证结果,即通过身份认证服务端调用智能合约检查数字签名的有效性以及用户是否存在于用户注册智能合约中时,没有
等待区块链交易的确认,而是直接采信智能合约对规则的校验结果,使得异步调用变化为同步调用,减少了延迟和降低了实现复杂度。
[0030]具体应用中,在本专利技术方法的一些实施例中,利用本专利技术方法以用户端APP同步调用身份认证服务器端证明自身身份和取得访问令牌为例,通过身份认证服务器直接调用智能合约来验证用户端的数字签名是否有效和用户身份是否有效,利用区块链实现用户身份的全局共享和统一身份认证的同时,实现了低延迟的认证响应和轻量化的用户认证架构。具体过程为:
[0031]步骤1:通过用户端注册到区块链的用户注册智能合约,并加入链上白名单。其中用户将自身公钥注册到用户注册智能合约,后续可以利用用户认证智能合约在用户身份验证时,利用白名单中的公钥验证用户的数字签名。
[0032]步骤2:通过用户端生成可验证随机数,代替交互式验证方式中验证方,如身份认证服务器生成的随机数,利用可验证随机数进行数字签名并发送至验证方,即利用可验证随机数申请访问令牌。其中可验证随机数V=HASH(时间戳T,用户公钥);通过用户端对V进行数字签名,数字签名S=SIG(V,用户私钥),函数SIG()表示数字签名算法,如SM2。
[0033]步骤3:通过身份认证服务器端调用用户认证智能合约验证用户身份。其中以“V+时间戳T+数字签名S”作为参数调用用户认证智能合约,该智能合约验证数字签名有效性和用户是否存在于用户注册智能合约中,无论验证是否通过都会将验证结果写入区块链。利用用户认证智能合约验证过程如下:
[0034]判断用户公钥是否存在于白名单,即用户是否在用户注册智能合约中;
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的同步调用用户身份认证方法,其特征是通过用户端基于区块链注册用户注册智能合约,根据可验证随机数,通过用户端进行数字签名,根据区块链的用户认证智能合约,通过身份认证服务端调用用户认证智能合约验证数字签名的有效性以及用户是否存在于用户注册智能合约中,通过身份认证服务端获取验证结果。2.根据权利要求1所述的一种基于区块链的同步调用用户身份认证方法,其特征是通过区块链将注册到用户注册智能合约的用户加入白名单,通过用户认证智能合约利用白名单中的公钥验证用户的数字签名。3.根据权利要求1或2所述的一种基于区块链的同步调用用户身份认证方法,其特征是通过用户端生成可验证随机数,其中可验证随机数V=HASH(时间戳T,用户公钥)。4.根据权利要求2或3所述的一种基于区块链的同步调用用户身份认证方法,其特征是通过用户端进行数字签名,其中数字签名S=SIG(V,用户私钥),SIG()表示数字签名算法。5.根据权利要求4所述的一种基于区块链的同步调用用户身份认证方法,其特征是通过身份认证服务端利用可验证随机数V、时间戳T及数字签名S作为参数调用用户认证智能合约,进行数字签名...

【专利技术属性】
技术研发人员:王伟兵张晖宋明明杨海勇李翔孟奇
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1