(12)发明专利申请
(10)申请公布号 CN 111753014 A(43)申请公布日 2020.10.09
(21)申请号 202010596168.9(22)申请日 2020.06.28
(71)申请人 中国银行股份有限公司
地址 100818 北京市西城区复兴门内大街1
号(72)发明人 戴喆 邓伟财
(74)专利代理机构 北京三友知识产权代理有限
公司 11127
代理人 王天尧 吴学锋(51)Int.Cl.
G06F 16/27(2019.01)G06Q 20/38(2012.01)H04L 9/08(2006.01)H04L 29/06(2006.01)
权利要求书4页 说明书9页 附图5页
CN 111753014 A()发明名称
基于区块链的身份认证方法及装置(57)摘要
本发明公开了一种基于区块链的身份认证方法及装置,其中该方法包括:获取目标用户注册目标系统的注册信息:用户名、登录密码;生成第一地址和第二地址,第一地址为将用户名作为私钥计算出的公钥,第二地址为将用户名和登录密码的拼接结果作为私钥计算出的公钥;将用户名、第一地址、第二地址上传到目标系统,执行第一交易和第二交易,并将交易信息记录到区块链网络;根据区块链网络上记录的交易信息,对目标用户进行身份认证,其中,第一交易为第三地址向第一地址支付1个用户币,第二交易为第一地址向第二地址支付1个用户币的交易,第三地址为目标系统的地址,第三地址具有预设用户数量的用户币。本发明能够实现用户身份认证的去中心化。
CN 111753014 A
权 利 要 求 书
1/4页
1.一种基于区块链的身份认证方法,其特征在于,包括:获取目标用户注册目标系统的注册信息,其中,所述目标用户为注册所述目标系统的任意一个用户,所述注册信息中包含:用户名、登录密码;
根据所述注册信息,生成第一地址和第二地址,其中,所述第一地址为将所述用户名作为第一私钥计算出的第一公钥,所述第二地址为将所述用户名和所述登录密码的拼接结果作为第二私钥计算出的第二公钥;
将所述用户名、所述第一地址、所述第二地址上传到所述目标系统,其中,所述目标系统根据所述第一地址和所述第二地址执行第一交易和第二交易,并将所述用户名、第一交易的交易信息和第二交易的交易信息记录到区块链网络,所述第一交易为第三地址向第一地址支付1个用户币的交易,所述第二交易为第一地址向第二地址支付1个用户币的交易,所述第三地址为所述目标系统在所述区块链网络中的地址,所述第三地址具有预设用户数量的用户币;
根据所述区块链网络上记录的交易信息,对所述目标用户进行身份认证。2.如权利要求1所述的方法,其特征在于,所述方法还包括:获取所述目标用户登录所述目标系统的登录信息,其中,所述登录信息中包含:用户名、登录密码;
根据所述用户名和所述登录密码,生成所述第二地址;将所述第二地址上传到所述目标系统,其中,所述目标系统基于区块链网络查询所述第二地址是否具有1个用户币,当所述第二地址具有1个用户币的情况下,向客户端返回第一随机数;
接收所述目标系统返回的第一随机数;采用所述第二私钥加密所述第一随机数,得到加密数据;将所述加密数据上传到所述目标系统,其中,所述目标系统采用所述第二公钥解密所述加密数据得到第二随机数,并验证所述第二随机数与所述第一随机数是否一致,根据验证结果,向客户端返回登录结果。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标用户修改目标系统中登录密码的密码修改信息,其中,所述密码修改信息包括:用户名、旧登录密码、新登录密码;
根据所述密码修改信息,生成第四地址和第五地址,其中,所述第四地址为将所述用户名和所述旧登录密码的拼接结果作为第四私钥计算出的第四公钥,所述第五地址为将所述用户名和所述新登录密码的拼接结果作为第五私钥计算出的第五公钥;
将所述第四地址上传到所述目标系统,其中,所述目标系统基于区块链网络查询所述第四地址的上一笔交易数据,并返回客户端;
根据所述第四地址的上一笔交易数据,执行第三交易,其中,所述第三交易为所述第四地址向所述第五地址支付1个用户币的交易;
将所述第三交易的交易信息上传到所述目标系统,其中,所述目标系统将所述第三交易的交易信息记录到区块链网络。
4.如权利要求3所述的方法,其特征在于,将所述第三交易的交易信息上传到所述目标系统,包括:
2
CN 111753014 A
权 利 要 求 书
2/4页
采用所述第四私钥对所述第四地址的上一笔交易数据进行签名,得到签名数据;将所述签名数据和所述第三交易的交易信息上传到所述目标系统,其中,所述目标系统将所述签名数据和所述第三交易的交易信息广播到区块链网络,所述区块链网络中的各个节点基于所述签名数据验证所述第三交易的合法性,当所述第三交易的合法性验证通过的情况下,记录所述第三交易的交易信息。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:查询所述区块链网络上是否存在所述用户名;当所述区块链网络上存在所述用户名的情况下,返回第一注册结果,其中,所述第一注册结果用于表征所述用户名已注册。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:查询所述区块链网络上是否存在所述第一地址;当所述区块链网络上存在所述第一地址的情况下,查询所述区块链网络上是否存在所述第二地址;
当所述区块链网络上存在所述第二地址的情况下,返回第二注册结果,其中,所述第二注册结果用于表征所述用户名已注册且登录密码验证通过。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:当所述区块链网络上不存在所述第二地址的情况下,返回第三注册结果,其中,所述第三注册结果用于表征所述用户名已注册且登陆密码验证未通过。
8.一种基于区块链的身份认证装置,其特征在于,包括:注册信息获取模块,用于获取目标用户注册目标系统的注册信息,其中,所述目标用户为注册所述目标系统的任意一个用户,所述注册信息中包含:用户名、登录密码;
注册信息处理模块,用于根据所述注册信息,生成第一地址和第二地址,其中,所述第一地址为将所述用户名作为第一私钥计算出的第一公钥,所述第二地址为将所述用户名和所述登录密码的拼接结果作为第二私钥计算出的第二公钥;
注册信息上传模块,用于将所述用户名、所述第一地址、所述第二地址上传到所述目标系统,其中,所述目标系统根据所述第一地址和所述第二地址执行第一交易和第二交易,并将所述用户名、第一交易的交易信息和第二交易的交易信息记录到区块链网络,所述第一交易为第三地址向第一地址支付1个用户币的交易,所述第二交易为第一地址向第二地址支付1个用户币的交易,所述第三地址为所述目标系统在所述区块链网络中的地址,所述第三地址具有预设用户数量的用户币;
用户身份认证模块,用于根据所述区块链网络上记录的交易信息,对所述目标用户进行身份认证。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:登录信息获取模块,用于获取所述目标用户登录所述目标系统的登录信息,其中,所述登录信息中包含:用户名、登录密码;
登录信息处理模块,用于根据所述用户名和所述登录密码,生成所述第二地址;登录信息上传模块,用于将所述第二地址上传到所述目标系统,其中,所述目标系统基于区块链网络查询所述第二地址是否具有1个用户币,当所述第二地址具有1个用户币的情况下,向客户端返回第一随机数;
3
CN 111753014 A
权 利 要 求 书
3/4页
随机数获取模块,用于接收所述目标系统返回的第一随机数;随机数加密模块,用于采用所述第二私钥加密所述第一随机数,得到加密数据;登录验证模块,用于将所述加密数据上传到所述目标系统,其中,所述目标系统采用所述第二公钥解密所述加密数据得到第二随机数,并验证所述第二随机数与所述第一随机数是否一致,根据验证结果,向客户端返回登录结果。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:密码修改信息获取模块,用于获取所述目标用户修改目标系统中登录密码的密码修改信息,其中,所述密码修改信息包括:用户名、旧登录密码、新登录密码;
密码修改信息处理模块,用于根据所述密码修改信息,生成第四地址和第五地址,其中,所述第四地址为将所述用户名和所述旧登录密码的拼接结果作为第四私钥计算出的第四公钥,所述第五地址为将所述用户名和所述新登录密码的拼接结果作为第五私钥计算出的第五公钥;
旧密码信息查询模块,用于将所述第四地址上传到所述目标系统,其中,所述目标系统基于区块链网络查询所述第四地址的上一笔交易数据,并返回客户端;
密码修改模块,用于根据所述第四地址的上一笔交易数据,执行第三交易,其中,所述第三交易为所述第四地址向所述第五地址支付1个用户币的交易;
新密码信息上传模块,用于将所述第三交易的交易信息上传到所述目标系统,其中,所述目标系统将所述第三交易的交易信息记录到区块链网络。
11.如权利要求10所述的装置,其特征在于,所述新密码信息上传模块还用于采用所述第四私钥对所述第四地址的上一笔交易数据进行签名,得到签名数据,并将所述签名数据和所述第三交易的交易信息上传到所述目标系统,其中,所述目标系统将所述签名数据和所述第三交易的交易信息广播到区块链网络,所述区块链网络中的各个节点基于所述签名数据验证所述第三交易的合法性,当所述第三交易的合法性验证通过的情况下,记录所述第三交易的交易信息。
12.如权利要求8所述的装置,其特征在于,所述装置还包括:注册信息验证模块,用于查询所述区块链网络上是否存在所述用户名,以及当所述区块链网络上存在所述用户名的情况下,返回第一注册结果,其中,所述第一注册结果用于表征所述用户名已注册。
13.如权利要求12所述的装置,其特征在于,所述注册信息验证模块还用于查询所述区块链网络上是否存在所述第一地址,以及当所述区块链网络上存在所述第一地址的情况下,查询所述区块链网络上是否存在所述第二地址;当所述区块链网络上存在所述第二地址的情况下,返回第二注册结果,其中,所述第二注册结果用于表征所述用户名已注册且登录密码验证通过。
14.如权利要求13所述的装置,其特征在于,所述注册信息验证模块还用于当所述区块链网络上不存在所述第二地址的情况下,返回第三注册结果,其中,所述第三注册结果用于表征所述用户名已注册且登陆密码验证未通过。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述基于区块链的身份认证方法。
4
CN 111753014 A
权 利 要 求 书
4/4页
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一所述基于区块链的身份认证方法的计算机程序。
5
CN 111753014 A
说 明 书
基于区块链的身份认证方法及装置
1/9页
技术领域
[0001]本发明涉及区块链技术领域,尤其涉及一种基于区块链的身份认证方法及装置。背景技术
[0002]本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。[0003]身份认证,是指在计算机及计算机网络系统中确认操作者身份的过程,根据用户输入的用户名、登录密码等身份认证信息,确定该用户是否具有对某种资源的访问和使用权限,进而使计算机和网络系统的访问策略能够可靠、有效地进行,防止攻击者假冒合法用户获得资源的访问权限,保证系统和数据的安全。[0004]现有身份认证方式的认证过程为:①用户在客户端或网页输入用户名及密码,发送登录请求到应用系统;②应用系统将包含用户名及密码的用户认证请求发送至认证中心;③认证中心验证用户名及密码,并将验证结果返回给应用系统;④应用系统返回认证结果到客户端,若认证成功,则记录登录状态。[0005]分析可知,现有身份认证方式是中心化的认证方式,由于仅存在一个认证中心,所有接入该认证中心的应用系统对用户的身份认证,均由该认证中心完成。一旦认证中心离线或故障,所有接入应用系统的用户身份认证都会受到影响。[0006]针对上述问题,目前尚未提出有效的解决方案。发明内容
[0007]本发明实施例中提供了一种基于区块链的身份认证方法,用以解决现有技术采用中心化的身份认证方式,由于认证中心离线或故障,会影响到所有接入应用的用户身份认证的技术问题,该方法包括:获取目标用户注册目标系统的注册信息,其中,目标用户为注册目标系统的任意一个用户,注册信息中包含:用户名、登录密码;根据注册信息,生成第一地址和第二地址,其中,第一地址为将用户名作为第一私钥计算出的第一公钥,第二地址为将用户名和登录密码的拼接结果作为第二私钥计算出的第二公钥;将用户名、第一地址、第二地址上传到目标系统,其中,目标系统根据第一地址和第二地址执行第一交易和第二交易,并将用户名、第一交易的交易信息和第二交易的交易信息记录到区块链网络,第一交易为第三地址向第一地址支付1个用户币的交易,第二交易为第一地址向第二地址支付1个用户币的交易,第三地址为目标系统在区块链网络中的地址,第三地址具有预设用户数量的用户币;根据区块链网络上记录的交易信息,对目标用户进行身份认证。[0008]本发明实施例中还提供了一种基于区块链的身份认证装置,用以解决现有技术采用中心化的身份认证方式,由于认证中心离线或故障,会影响到所有接入应用的用户身份认证的技术问题,该装置包括:注册信息获取模块,用于获取目标用户注册目标系统的注册信息,其中,目标用户为注册目标系统的任意一个用户,注册信息中包含:用户名、登录密码;注册信息处理模块,用于根据注册信息,生成第一地址和第二地址,其中,第一地址为将
6
CN 111753014 A
说 明 书
2/9页
用户名作为第一私钥计算出的第一公钥,第二地址为将用户名和登录密码的拼接结果作为第二私钥计算出的第二公钥;注册信息上传模块,用于将用户名、第一地址、第二地址上传到目标系统,其中,目标系统根据第一地址和第二地址执行第一交易和第二交易,并将用户名、第一交易的交易信息和第二交易的交易信息记录到区块链网络,第一交易为第三地址向第一地址支付1个用户币的交易,第二交易为第一地址向第二地址支付1个用户币的交易,第三地址为目标系统在区块链网络中的地址,第三地址具有预设用户数量的用户币;用户身份认证模块,用于根据区块链网络上记录的交易信息,对目标用户进行身份认证。[0009]本发明实施例中还提供了一种计算机设备,用以解决现有技术采用中心化的身份认证方式,由于认证中心离线或故障,会影响到所有接入应用的用户身份认证的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于区块链的身份认证方法。[0010]本发明实施例中还提供了一种计算机可读存储介质,用以解决现有技术采用中心化的身份认证方式,由于认证中心离线或故障,会影响到所有接入应用的用户身份认证的技术问题,该计算机可读存储介质存储有执行上述基于区块链的身份认证方法的计算机程序。
[0011]本发明实施例中,在获取到目标用户注册目标系统的用户名、登录密码等注册信息后,将用户名作为第一私钥计算出的第一公钥作为第一地址,将用户名和登录密码的拼接结果作为第二私钥计算出的第二公钥作为第二地址,然后将用户名、第一地址、第二地址上传到目标系统,使得目标系统执行第一交易,将目标系统在区块链网络中第三地址的1个用户币支付给第一地址,目标系统执行第二交易,将第一地址的1个用户币支付给第二地址,最后将第一交易和第二交易的交易信息记录到区块链网络,以便后续根据区块链网络上记录的交易信息,对目标用户进行身份认证。
[0012]与现有技术中采用中心化的身份认证方式的技术方案相比,本发明实施例基于区块链网络实现去中心化的用户身份认证,能够避免因认证中心离线或故障,影响到所有接入应用的用户认证。
附图说明
[0013]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0014]图1为本发明实施例中提供的一种基于区块链的身份认证系统示意图;[0015]图2为本发明实施例中提供的一种基于区块链的身份认证方法流程图;
[0016]图3为本发明实施例中提供的一种可选的基于区块链的身份认证方法流程图;[0017]图4为本发明实施例中提供的一种可选的基于区块链的身份认证方法流程图;[0018]图5为本发明实施例中提供的一种可选的基于区块链的身份认证方法流程图;[0019]图6为本发明实施例中提供的一种基于区块链的身份认证装置示意图;
[0020]图7为本发明实施例中提供的一种可选的基于区块链的身份认证装置示意图。
7
CN 111753014 A
说 明 书
3/9页
具体实施方式
[0021]为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
[0022]本发明实施例中提供了一种基于区块链的身份认证系统,图1为本发明实施例中提供的一种基于区块链的身份认证系统示意图,如图1所示,该身份认证系统包括:客户端10、系统服务端20、区块链网络30。[0023]其中,客户端10可以是任意一种能够访问网络的终端,可以用于但不限于向系统服务端20发送注册请求、登录请求或密码修改请求。系统服务端20可以是任意一种应用系统的服务端。区块链网络30包含多个节点,由多个节点记录用户的身份认证信息。可选地,系统服务端20可以是区块链网络30中的一个节点,也可以于区块链网络30,通过区块链客户端与区块链网络30通信。[0024]在具体实施时,用户可以在客户端输入用户名及密码,客户端采用用户名或登录密码的组合作为私钥,利用私钥生成对应公钥,然后将公钥作为地址;系统服务端接收到客户端上传的地址后,将用户的身份认证信息记录到到区块链网络中,使得系统服务端根据区块链网络中记录的信息来验证用户的登录请求等。各个系统服务端可以是区块链网络中的一个节点,构建区块,并在区块内记录加密后的身份认证信息,加入区块链网络的各个系统服务端的身份认证信息可实现共享。
[0025]本发明实施例中还提供了一种基于区块链的身份认证方法,该方法可以应用但不限于图1所示的客户端10,该客户端可以是计算机、笔记本电脑、手机等任意一种能够访问网络的终端。
[0026]图2为本发明实施例中提供的一种基于区块链的身份认证方法流程图,如图2所示,该方法包括如下步骤:[0027]S201,获取目标用户注册目标系统的注册信息,其中,目标用户为注册目标系统的任意一个用户,注册信息中包含:用户名、登录密码;[0028]S202,根据注册信息,生成第一地址和第二地址,其中,第一地址为将用户名作为第一私钥计算出的第一公钥,第二地址为将用户名和登录密码的拼接结果作为第二私钥计算出的第二公钥;[0029]S203,将用户名、第一地址、第二地址上传到目标系统,其中,目标系统根据第一地址和第二地址执行第一交易和第二交易,并将用户名、第一交易的交易信息和第二交易的交易信息记录到区块链网络,第一交易为第三地址向第一地址支付1个用户币的交易,第二交易为第一地址向第二地址支付1个用户币的交易,第三地址为目标系统在区块链网络中的地址,第三地址具有预设用户数量的用户币;[0030]S204,根据区块链网络上记录的交易信息,对目标用户进行身份认证。[0031]需要说明的是,本发明实施例中使用用户币作为交易单位,持有用户币,等于1说明地址有效,持有用户币为0则地址无效。[0032]在具体实施时,用户名要求具有相同的长度,例如,手机号码或员工号等。本发明实施例中将用户名和密码的组合作为私钥,由于用户名具有相同长度且不重复,可以确保私钥的不重复。进一步地,利用私钥生成公钥,采用生成的公钥作为交易地址。本发明实施
8
CN 111753014 A
说 明 书
4/9页
例中,区块链网络各个节点记录的区块链中记录的交易数据包括:转出地址、转入地址、交易用户币数量和签名数据(由转出地址对应的私钥加密上一笔交易数据生成签名数据)。[0033]由于区块链本质是一个分布式数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。本发明实施例中,引入区块链,建立一个去中心化的统一身份认证体系,通过在区块链中存储用户身份认证信息,并在各系统保存及同步区块链的完整副本。各系统用户的身份验证不再需要一个认证中心,身份认证由各系统利用各系统内实时同步的区块链副本中保存的认证信息来完成,能够实现在共享身份认证信息的同时,避免因其它系统故障而影响本系统的用户身份认证。[0034]例如,当某个用户在应用系统的客户端选择注册时,会在客户端输入用户名、登录密码等注册信息,客户端可以根据注册信息计算出2个地址,将用户名作为私钥1,利用私钥1计算出对应的公钥1,将公钥1作为地址1;将用户名和登录密码的拼接结果作为私钥2,利用私钥2计算出对应的公钥2,将公钥2作为地址2。然后,将用户名、地址1、地址2及其他注册信息上传到该应用系统的服务端;系统服务端可在本系统查找该用户名是否已存在,若存在,则返回报错信息或提示请勿重复注册的提示信息;若不存在,则继续在区块链网络中查询地址1是否已存在,若不存在,则系统服务端在区块链网络中增加2笔交易记录,第一笔交易记录的转出为系统服务端的地址(即上述第三地址),转入为地址1(即上述第一地址),交易量为1个用户币;第二笔交易记录的转出为地址1,转入为地址2(即上述第二地址),交易量为1个用户币。交易完成后,地址2获得1个用户币,系统服务端记录相关注册信息。[0035]需要注意的是,系统服务端对应的第三地址具有的用户币个数,可以预先根据应用系统能够接入的用户数量进行配置。一个用户对应一个用户币。[0036]由上可知,本发明实施例中提供的基于区块链的身份认证方法,在获取到目标用户注册目标系统的用户名、登录密码等注册信息后,将用户名作为第一私钥计算出的第一公钥作为第一地址,将用户名和登录密码的拼接结果作为第二私钥计算出的第二公钥作为第二地址,然后将用户名、第一地址、第二地址上传到目标系统,使得目标系统执行第一交易,将目标系统在区块链网络中第三地址的1个用户币支付给第一地址,目标系统执行第二交易,将第一地址的1个用户币支付给第二地址,最后将第一交易和第二交易的交易信息记录到区块链网络,以便后续根据区块链网络上记录的交易信息,对目标用户进行身份认证。本发明实施例中提供的基于区块链的身份认证方法,基于区块链网络实现去中心化的用户身份认证,能够避免因认证中心离线或故障,影响到所有接入应用的用户认证。[0037]如图3所示,在一个实施例中,本发明实施例中提供的基于区块链的身份认证方法还可以包括如下步骤来实现登录验证:[0038]S301,获取目标用户登录目标系统的登录信息,其中,登录信息中包含:用户名、登录密码;
[0039]S302,根据用户名和登录密码,生成第二地址;[0040]S303,将第二地址上传到目标系统,其中,目标系统基于区块链网络查询第二地址是否具有1个用户币,当第二地址具有1个用户币的情况下,向客户端返回第一随机数;[0041]S304,接收目标系统返回的第一随机数;[0042]S305,采用第二私钥加密第一随机数,得到加密数据;[0043]S306,将加密数据上传到目标系统,其中,目标系统采用第二公钥解密加密数据得
9
CN 111753014 A
说 明 书
5/9页
到第二随机数,并验证第二随机数与第一随机数是否一致,根据验证结果,向客户端返回登录结果。[0044]例如,当某个用户在应用系统的客户端选择登陆时,会输入其用户名和密码,客户端根据用户名和密码计算出对应的私钥、公钥,并将公钥作为地址。上传地址到系统服务端,系统服务端检查该地址具有的用户币个数,该地址具有1个用户币,则表明该地址为有效地址。系统服务端向客户端返回一个随机数,客户端采用私钥对随机数加密,并上送到系统服务端,系统服务端采用公钥解密,如果解密后的随机数与返回给的随机数相同,则表明该用户在客户端的登录验证通过。[0045]由于密码泄露等原因,用户可能需要修改其登录密码,从而需要在区块链网络中增加交易记录,以便将旧密码对应地址的用户币转入新密码对应的地址,从而使旧地址失效,新地址生效。因而,在一个实施例中,如图4所示,本发明实施例中提供的基于区块链的身份认证方法还可以包括如下步骤来实现对登录密码的修改:[0046]S401,获取目标用户修改目标系统中登录密码的密码修改信息,其中,密码修改信息包括:用户名、旧登录密码、新登录密码;[0047]S402,根据密码修改信息,生成第四地址和第五地址,其中,第四地址为将用户名和旧登录密码的拼接结果作为第四私钥计算出的第四公钥,第五地址为将用户名和新登录密码的拼接结果作为第五私钥计算出的第五公钥;[0048]S403,将第四地址上传到目标系统,其中,目标系统基于区块链网络查询第四地址的上一笔交易数据,并返回客户端;[0049]S404,根据第四地址的上一笔交易数据,执行第三交易,其中,第三交易为第四地址向第五地址支付1个用户币的交易;[0050]S405,将第三交易的交易信息上传到目标系统,其中,目标系统将第三交易的交易信息记录到区块链网络。[0051]在具体实施时,上述S405可以通过如下步骤来实现:采用第四私钥对第四地址的上一笔交易数据进行签名,得到签名数据;将签名数据和第三交易的交易信息上传到目标系统,其中,目标系统将签名数据和第三交易的交易信息广播到区块链网络,区块链网络中的各个节点基于签名数据验证第三交易的合法性,当第三交易的合法性验证通过的情况下,记录第三交易的交易信息。[0052]例如,当某个用户想要修改其在应用系统中的登录密码时,该用户可通过该应用系统的客户端输入用户名、旧密码、新密码等密码修改信息。将用户名和旧密码拼接,根据拼接结果可以计算出对应的私钥1、公钥1,其中,公钥1作为地址1;将用户名和新密码拼接,根据拼接结果可以计算出对应的私钥2、公钥2,其中,公钥2作为地址2。客户端将地址1和地址2上传到系统服务端;系统服务端可根据地址1,基于区块链网络查询该地址1的上一笔交易数据,返回到客户端,客户端根据地址1的上一笔交易数据,构建新交易记录,新交易记录的内容为地址1支付1个用户币到地址2,并采用私钥1对地址1的上一笔交易数据进行签名。客户端将新交易记录和签名数据上传到系统服务端。系统服务端广播到区块链网络的所有节点,区块链网络的其它节点对签名数据进行解密后,验证新交易记录的合法性,并其合法性验证通过的情况下,将新交易记录记录到各自区块链的区块中。[0053]为了避免重复注册的问题,在一个实施例中,如图5所示,本发明实施例中提供的
10
CN 111753014 A
说 明 书
6/9页
基于区块链的身份认证方法还可以通过如下步骤来验证所述目标用户注册的用户名是否已注册:
[00]S501,查询区块链网络上是否存在用户名;[0055]S502,当区块链网络上存在用户名的情况下,返回第一注册结果,其中,第一注册结果用于表征用户名已注册。[0056]进一步地,如图5所示,当区块链网络上不存在用户名的情况下,一个实施例中,本发明实施例中提供的基于区块链的身份认证方法还可以包括如下步骤:[0057]S503,查询区块链网络上是否存在第一地址;[0058]S504,当区块链网络上存在第一地址的情况下,查询区块链网络上是否存在第二地址;
[0059]S505,当区块链网络上存在第二地址的情况下,返回第二注册结果,其中,第二注册结果用于表征用户名已注册且登录密码验证通过;[0060]S506,当区块链网络上不存在第二地址的情况下,返回第三注册结果,其中,第三注册结果用于表征用户名已注册且登陆密码验证未通过。
[0061]当系统服务端接收到某个用户的注册信息(用户名和登录密码)后,会首先在本系统中查询该用户名是否已存在,若存在,则返回报错信息或提示请勿重复注册的提示信息;然后在区块链网络中查询地址1是否已存在,如果是已注册用户,则地址1存在,再在区块链网络中查询是否已存在地址2,若地址2存在且用户币个数为1,则注册验证通过,在系统服务端保存用户的注册信息;若地址2不存在,则返回报错信息或提示用户已注册但密码验证未通过的提示信息。
[0062]基于同一发明构思,本发明实施例中还提供了一种基于区块链的身份认证装置,如下面的实施例。由于该装置解决问题的原理与基于区块链的身份认证方法相似,因此该装置的实施可以参见基于区块链的身份认证方法的实施,重复之处不再赘述。
[0063]图6为本发明实施例中提供的一种基于区块链的身份认证装置示意图,如图6所示,该装置:注册信息获取模块601、注册信息处理模块602、注册信息上传模块603和用户身份认证模块604。[00]其中,注册信息获取模块601,用于获取目标用户注册目标系统的注册信息,其中,目标用户为注册目标系统的任意一个用户,注册信息中包含:用户名、登录密码;注册信息处理模块602,用于根据注册信息,生成第一地址和第二地址,其中,第一地址为将用户名作为第一私钥计算出的第一公钥,第二地址为将用户名和登录密码的拼接结果作为第二私钥计算出的第二公钥;注册信息上传模块603,用于将用户名、第一地址、第二地址上传到目标系统,其中,目标系统根据第一地址和第二地址执行第一交易和第二交易,并将用户名、第一交易的交易信息和第二交易的交易信息记录到区块链网络,第一交易为第三地址向第一地址支付1个用户币的交易,第二交易为第一地址向第二地址支付1个用户币的交易,第三地址为目标系统在区块链网络中的地址,第三地址具有预设用户数量的用户币;用户身份认证模块604,用于根据区块链网络上记录的交易信息,对目标用户进行身份认证。[0065]由上可知,本发明实施例中提供的基于区块链的身份认证装置,通过注册信息获取模块601获取目标用户注册目标系统的用户名、登录密码等注册信息;通过注册信息处理模块602将用户名作为第一私钥计算出的第一公钥作为第一地址,将用户名和登录密码的
11
CN 111753014 A
说 明 书
7/9页
拼接结果作为第二私钥计算出的第二公钥作为第二地址;通过注册信息上传模块603将用户名、第一地址、第二地址上传到目标系统,使得目标系统执行第一交易,将目标系统在区块链网络中第三地址的1个用户币支付给第一地址,目标系统执行第二交易,将第一地址的1个用户币支付给第二地址,将第一交易和第二交易的交易信息记录到区块链网络;通过用户身份认证模块604根据区块链网络上记录的交易信息,对目标用户进行身份认证。本发明实施例中提供的基于区块链的身份认证装置,基于区块链网络实现去中心化的用户身份认证,能够避免因认证中心离线或故障,影响到所有接入应用的用户认证。[0066]在一个实施例中,如图7所示,本发明实施例中提供的基于区块链的身份认证装置还可以包括:登录信息获取模块605,用于获取目标用户登录目标系统的登录信息,其中,登录信息中包含:用户名、登录密码;登录信息处理模块606,用于根据用户名和登录密码,生成第二地址;登录信息上传模块607,用于将第二地址上传到目标系统,其中,目标系统基于区块链网络查询第二地址是否具有1个用户币,当第二地址具有1个用户币的情况下,向客户端返回第一随机数;随机数获取模块608,用于接收目标系统返回的第一随机数;随机数加密模块609,用于采用第二私钥加密第一随机数,得到加密数据;登录验证模块610,用于将加密数据上传到目标系统,其中,目标系统采用第二公钥解密加密数据得到第二随机数,并验证第二随机数与第一随机数是否一致,根据验证结果,向客户端返回登录结果。[0067]在一个实施例中,如图7所示,本发明实施例中提供的基于区块链的身份认证装置还可以包括:密码修改信息获取模块611,用于获取目标用户修改目标系统中登录密码的密码修改信息,其中,密码修改信息包括:用户名、旧登录密码、新登录密码;密码修改信息处理模块612,用于根据密码修改信息,生成第四地址和第五地址,其中,第四地址为将用户名和旧登录密码的拼接结果作为第四私钥计算出的第四公钥,第五地址为将用户名和新登录密码的拼接结果作为第五私钥计算出的第五公钥;旧密码信息查询模块613,用于将第四地址上传到目标系统,其中,目标系统基于区块链网络查询第四地址的上一笔交易数据,并返回客户端;密码修改模块614,用于根据第四地址的上一笔交易数据,执行第三交易,其中,第三交易为第四地址向第五地址支付1个用户币的交易;新密码信息上传模块615,用于将第三交易的交易信息上传到目标系统,其中,目标系统将第三交易的交易信息记录到区块链网络。
[0068]可选地,上述新密码信息上传模块615还用于采用第四私钥对第四地址的上一笔交易数据进行签名,得到签名数据,并将签名数据和第三交易的交易信息上传到目标系统,其中,目标系统将签名数据和第三交易的交易信息广播到区块链网络,区块链网络中的各个节点基于签名数据验证第三交易的合法性,当第三交易的合法性验证通过的情况下,记录第三交易的交易信息。[0069]在一个实施例中,如图7所示,本发明实施例中提供的基于区块链的身份认证装置还可以包括:注册信息验证模块616,用于查询区块链网络上是否存在第一地址,当区块链网络上存在第一地址的情况下,查询区块链网络上是否存在第二地址,当区块链网络上存在第二地址的情况下,返回第一注册结果,其中,第一注册结果用于表征用户名已注册且登录密码验证通过。[0070]可选地,上述注册信息验证模块616还用于当区块链网络上不存在第二地址的情况下,返回第二注册结果,其中,第二注册结果用于表征用户名已注册且登陆密码验证未通
12
CN 111753014 A
说 明 书
8/9页
过。
可选地,上述注册信息验证模块616还用于查询区块链网络上是否存在用户名,当
区块链网络上存在用户名的情况下,返回第三注册结果,其中,第三注册结果用于表征用户名已注册。
[0072]基于同一发明构思,本发明实施例中还提供了一种计算机设备,用以解决现有技术采用中心化的身份认证方式,由于认证中心离线或故障,会影响到所有接入应用的用户身份认证的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于区块链的身份认证方法。[0073]基于同一发明构思,本发明实施例中还提供了一种计算机可读存储介质,用以解决现有技术采用中心化的身份认证方式,由于认证中心离线或故障,会影响到所有接入应用的用户身份认证的技术问题,该计算机可读存储介质存储有执行上述基于区块链的身份认证方法的计算机程序。[0074]综上所述,本发明实施例中提供了一种述基于区块链的身份认证方法、装置、计算机设备及计算机可读存储介质,在获取到目标用户注册目标系统的用户名、登录密码等注册信息后,将用户名作为第一私钥计算出的第一公钥作为第一地址,将用户名和登录密码的拼接结果作为第二私钥计算出的第二公钥作为第二地址,然后将用户名、第一地址、第二地址上传到目标系统,使得目标系统执行第一交易,将目标系统在区块链网络中第三地址的1个用户币支付给第一地址,目标系统执行第二交易,将第一地址的1个用户币支付给第二地址,最后将第一交易和第二交易的交易信息记录到区块链网络,以便后续根据区块链网络上记录的交易信息,对目标用户进行身份认证。
[0075]与现有技术中采用中心化的身份认证方式的技术方案相比,本发明实施例基于区块链网络实现去中心化的用户身份认证,能够避免因认证中心离线或故障,影响到所有接入应用的用户认证。
[0076]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0077]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0078]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0079]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
13
[0071]
CN 111753014 A
说 明 书
9/9页
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0080]以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
14
CN 111753014 A
说 明 书 附 图
1/5页
图1
图2
15
CN 111753014 A
说 明 书 附 图
2/5页
图3
16
CN 111753014 A
说 明 书 附 图
3/5页
图4
17
CN 111753014 A
说 明 书 附 图
4/5页
图5
图6
18
CN 111753014 A
说 明 书 附 图
5/5页
图7
19
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务