一种用户认证方法及系统与流程

文档序号:11517783阅读:223来源:国知局
一种用户认证方法及系统与流程

本发明涉及区块链技术领域,特别是涉及一种基于区块链的用户认证方法及系统。



背景技术:

目前,在现有的技术理解中,用户创建是指将新用户信息存储进系统的过程,而用户身份认证是指在系统中确认用户是否存在的过程,从而确认用户是否有对数据或系统等资源的访问、操作和使用权限的过程。现有的,用户创建及身份认证采用的方案主要有两种,一种是中心服务器技术方案,另一种是区块链技术方案。中心服务器技术方案主要是采用中心服务器存储及认证,即用户注册时,数据存储在中心数据库中;用户身份认证时,系统对比用户名、密码与数据库中记录项是否匹配来进行认证;区块链技术方案是把账户数据和交易数据存放在同一条区块链上,使得同一链上存在大量异构和不相关数据。

通过两种技术方案可以发现,若采用中心服务器技术方案进行用户创建和用户身份认证,由于中心服务器易受攻击,数据易泄漏并且易被篡改,使得认证安全性受到威胁;若采用区块链技术方案,由于把账户数据以及交易数据存在同一区块链上,会使得用户认证效率低,支持用户并发访问量低。并且,上述两种技术方案都存在随着用户量增大,业务量增加,系统相应延迟时间长,性能低等缺点。



技术实现要素:

针对于上述问题,本发明提供一种用户认证方法及系统,实现了保证用户信息安全及认证效率较高的目的。

为了实现上述目的,根据本发明的第一方面,提供了一种用户认证方法,该方法包括:

创建用户区块链;

获取用户提供的信息数据;

采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;

根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。

优选的,所述完成对所述用户的身份认证之后,该方法还包括:

根据所述的智能合约,对所述用户执行相应的操作。

优选的,所述创建用户区块链,包括:

获取用户的注册信息数据,其中,所述注册信息数据包括用户基本信息和用户生物特征信息;

判断所述注册信息数据对应的用户是否为新用户,如果是,则记录所述获取到的用户注册信息数据;

根据所述用户的注册信息数据生成所述用户的公钥和私钥,并将所述公钥和私钥发送给所述用户;

创建区块,将所述用户的注册信息数据和所述用户的公钥存储至所述区块;

将所有存储有用户注册信息的区块构建成用户区块链。

优选的,所述根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证,包括:

将所述哈希值与所述用户区块链中存储的哈希值进行遍历比对,如果所述哈希值与所述用户区块链中的某一哈希值一致时,则判断所述哈希值对应的用户为所述用户区块链中已注册的用户;

根据预设的认证条件,当所述用户为已注册用户,则触发所述认证条件,采用智能合约执行所述认证条件,完成对所述用户的身份认证。

根据本发明的第二方面,提供了一种用户认证系统,该系统包括:

创建模块,用于创建用户区块链;

获取模块,用于获取用户提供的信息数据;

加密模块,用于采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;

认证模块,用于根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。

优选的,所述系统还包括:

执行模块,用于根据所述的智能合约,对所述用户执行相应的操作。

优选的,所述创建模块包括:

获取单元,用于获取用户的注册信息数据,其中,所述注册信息数据包括用户基本信息和用户生物特征信息;

判断单元,用于判断所述注册信息数据对应的用户是否为新用户,如果是,则记录所述获取到的用户注册信息数据;

生成单元,用于根据所述用户的注册信息数据生成所述用户的公钥和私钥,并将所述公钥和私钥发送给所述用户;

创建单元,用于创建区块,将所述用户的注册信息数据和所述用户的公钥存储至所述区块;

构建单元,用于将所有存储有用户注册信息的区块构建成用户区块链。

优选的,所述认证模块包括:

比对单元,用于将所述哈希值与所述用户区块链中存储的哈希值进行遍历比对,如果所述哈希值与所述用户区块链中的某一哈希值一致时,则判断所述哈希值对应的用户为所述用户区块链中已注册的用户;

认证单元,用于根据预设的认证条件,当所述用户为已注册用户,则触发所述认证条件,采用智能合约执行所述认证条件,完成对所述用户的身份认证。

相较于现有技术,本发明通过录入用户的基本信息和生物特征信息创建了用户区块链,由于所述用户区块链仅存储用户相关信息,与交易数据进行了分开存储,这样可以使得账户信息查询及响应速度更快,提升了系统性能,同时用户信息数据存入区块链,是多节点独立存储,形成了分布式账本,使得用户信息不可篡改保证了用户信息数据的安全性;然后,采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。由于采用智能合约的方式对用户进行身份认证,实现了自动对用户进行认证的目的,提高了认证效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例一提供的一种用户认证方法的流程示意图;

图2为本发明实施例二对应的图1中s11步骤的创建用户区块链的流程示意图;

图3为本发明实施例二对应的图1中s14步骤的用户认证的流程示意图;

图4为本发明实施例三提供的一种用户认证系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

实施例一

参见图1为本发明实施例一提供的一种用户认证方法的流程示意图,该方法包括以下步骤:

s11、创建用户区块链;

具体的,创建用户区块链的目的是将用户账户数据即用户的相关信息数据,与交易数据进行分开存储,这样用户账户数据与交易数据存储在不同的链上,使得账户查询和响应速度变快,提升了系统性能。

s12、获取用户提供的信息数据;

具体的,当通过用户区块链获取用户的信息数据时,可以获取全部的用户信息数据,然后通过全部信息组合后的数据的哈希值进行认证,也可以获取用户的部分关键特征信息数据,通过关键特征信息数据的哈希值进行认证。

s13、采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;

具体的,采用数字签名技术,将所述用户的信息数据的哈希值进行加密的主要目的是用户用私钥对用户信息进行数字签名,系统使用用户公钥验证签名,确认数据是持有所述私钥的用户发出的信息。

s14、根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。

具体的,利用用户认证智能合约,自动对用户进行认证,并智能执行认证成功与否后的相应操作。

通过本发明实施例一公开的技术方案,通过录入用户的基本信息和生物特征信息创建了用户区块链,由于所述用户区块链仅存储用户相关信息,与交易数据进行了分开存储,这样可以使得账户信息查询及响应速度更快,提升了系统性能,同时用户信息数据存入区块链,是多节点独立存储,形成了分布式账本,使得用户信息不可篡改保证了用户信息数据的安全性;然后,采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。由于采用智能合约的方式对用户进行身份认证,实现了自动对用户进行认证的目的,提高了认证效率。

实施例二

参照本发明实施例一和图1中所描述的s11到s14步骤的具体过程,并参见图2中对应的创建用户区块链的流程示意图,所述创建用户区块链的步骤具体包括:

s111、获取用户的注册信息数据,其中,所述注册信息数据包括用户基本信息和用户生物特征信息;

具体的,用户的注册信息数据包括用户基本信息和用户生物特征信息,其中,用户基本信息可以包括用户姓名、身份证号码、单位和所在城市等信息,用户生物特征信息可以包括指纹、虹膜、dna信息、行为特征信息、人脸信息和视网膜等信息。

s112、判断所述注册信息数据对应的用户是否为新用户,如果是,则记录所述获取到的用户注册信息数据;

s113、根据所述用户的注册信息数据生成所述用户的公钥和私钥,并将所述公钥和私钥发送给所述用户;

具体的,公钥是公开的,用来解密用户身份信息或验证用户数字签名的;而对应的,私钥是非公开的,用来解密数据或者对用户信息数字签名。

s114、创建区块,将所述用户的注册信息数据和所述用户的公钥存储至所述区块;

s115、将所有存储有用户注册信息的区块构建成用户区块链。

具体的,当有再有新的注册用户加入就会产生新的区块,可以基于共识机制将新区块加入用户区块链。共识机制是区块链事务达到分布式共识的算法。

相应的,参见图3为本发明实施例二对应的用户认证的流程示意图,所述根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证,具体包括:

s141、将所述哈希值与所述用户区块链中存储的哈希值进行遍历比对,如果所述哈希值与所述用户区块链中的某一哈希值一致时,则判断所述哈希值对应的用户为所述用户区块链中已注册的用户;

具体的,在用户认证时,如果用户提供了全部特征信息,对全部信息组合后数据的哈希值与区块链中存储的哈希值遍历比对,得出认证结果;如果用户提供部分关键特征信息,可以就几项关键信息进行比对遍历,如身份证号、公钥和指纹等某项生物特征,得出认证结果,以提高认证速度与应该对用户某项特征信息未录入的情况。

s142、根据预设的认证条件,当所述用户为已注册用户,则触发所述认证条件,采用智能合约执行所述认证条件,完成对所述用户的身份认证。

具体的,采用智能合约方式,进行用户身份认证,当预先设好的认证条件被触发时,智能合约执行相应的合约条款完成对所述用户的身份认证。

对应的,所述完成对所述用户的身份认证之后,该方法还包括:

根据所述的智能合约,对所述用户执行相应的操作。

具体的,在完成对所述用户的身份认证后,所述智能合约执行相应的合约条款,对所述用户执行相应的操作,可以为发出认证成功的提示,或者拒绝该用户访问,将该用户加入黑名单或者实现预警等操作。

根据本发明实施例二公开的技术方案,具体描述了创建用户区块链的过程,在获取用户注册信息的同时生成了用户的公私密钥,将所述注册信息和用户的公钥存储至区块中,形成的用户区块链中只保留有用户的相关信息,提升了系统性能,运用公私密钥确保用户身份确认性和不可抵赖性;采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。由于采用智能合约的方式对用户进行身份认证,实现了自动对用户进行认证的目的,提高了认证效率。

实施例三

与本发明实施例一和实施例二所公开的用户认证方法相对应,本发明的实施例三还提供了一种用户认证系统,参见图图4为本发明实施例三提供的一种用户认证系统的结构示意图,该系统包括:

创建模块1,用于创建用户区块链;

获取模块2,用于获取用户提供的信息数据;

加密模块3,用于采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;

认证模块4,用于根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。

相应的,所述系统还包括:

执行模块5,用于根据所述的智能合约,对所述用户执行相应的操作。

具体的,所述创建模块1包括:

获取单元11,用于获取用户的注册信息数据,其中,所述注册信息数据包括用户基本信息和用户生物特征信息;

判断单元12,用于判断所述注册信息数据对应的用户是否为新用户,如果是,则记录所述获取到的用户注册信息数据;

生成单元13,用于根据所述用户的注册信息数据生成所述用户的公钥和私钥,并将所述公钥和私钥发送给所述用户;

创建单元14,用于创建区块,将所述用户的注册信息数据和所述用户的公钥存储至所述区块;

构建单元15,用于将所有存储有用户注册信息的区块构建成用户区块链。

对应的,所述认证模块4包括:

比对单元41,用于将所述哈希值与所述用户区块链中存储的哈希值进行遍历比对,如果所述哈希值与所述用户区块链中的某一哈希值一致时,则判断所述哈希值对应的用户为所述用户区块链中已注册的用户;

认证单元42,用于根据预设的认证条件,当所述用户为已注册用户,则触发所述认证条件,采用智能合约执行所述认证条件,完成对所述用户的身份认证。

在本发明的实施例三中,通过创建模块录入用户的基本信息和生物特征信息创建了用户区块链,由于所述用户区块链仅存储用户相关信息,与交易数据进行了分开存储,这样可以使得账户信息查询及响应速度更快,提升了系统性能,同时用户信息数据存入区块链,是多节点独立存储,形成了分布式账本,使得用户信息不可篡改保证了用户信息数据的安全性;然后,在加密模块中采用数字签名技术,将所述用户的信息数据的哈希值进行加密,并将加密后的哈希值和所述信息数据发送至所述用户区块链节点;最后在认证模块中根据所述信息数据和哈希值,采用智能合约判断所述用户是否为在所述用户区块链中已注册的用户,如果是,则完成对所述用户的身份认证。由于采用智能合约的方式对用户进行身份认证,实现了自动对用户进行认证的目的,提高了认证效率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1