一种身份验证方法、装置及电子设备和存储介质与流程

文档序号:21360972发布日期:2020-07-04 04:34阅读:121来源:国知局
一种身份验证方法、装置及电子设备和存储介质与流程

本申请涉及网络安全技术领域,更具体地说,涉及一种身份验证方法、装置及一种电子设备和一种计算机可读存储介质。



背景技术:

随着互联网的发展,用户在网络上的身份也越来越多,而传统的输入用户名和密码的登录方式也将面临着“密码疲劳”、“钓鱼”和“撞库”等在内的严重网络安全问题,因此安全且有效地管理用户的网络身份成为当前网络发达的社会形态下一个非常具有价值的研究方向。

在oauth2.0机制中,授权服务器利用http/https方式向第三方应用颁发令牌,拥有令牌的第三方应用通过调用接口向资源的服务方申请信息。在此过程中,可能会导致csrf漏洞、重放攻击、中间人攻击等。

因此,如何提高身份验证的安全性是本领域技术人员需要解决的技术问题。



技术实现要素:

本申请的目的在于提供一种身份验证方法、装置及一种电子设备和一种计算机可读存储介质,提高了身份验证的安全性。

为实现上述目的,本申请提供了一种身份验证方法,包括:

从网站的服务器中获取随机字符串,向分布式存储系统请求所述网站对应的账户信息,并利用所述网站的公钥对所述账户信息加密后重新上传至所述分布式存储系统中;

接收所述分布式存储系统发送的加密后的账户信息对应的第一散列值,利用所述随机字符串对所述第一散列值进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器基于所述第一散列值从所述分布式存储系统中获取所述加密后的账户信息并进行验证;

接收所述服务器发送的验证结果。

其中,所述从网站对应的服务器中获取随机字符串,向分布式存储系统请求所述网站对应的账户信息,并利用所述网站的公钥对所述账户信息加密后重新上传至所述分布式存储系统中,包括:

从网站对应的服务器中获取所述网站的域名和随机字符串;其中,所述网站为在权威节点中注册完成的网站,所述权威节点将注册完成的网站的域名与公钥的对应关系写入智能合约;

向分布式存储系统请求所述网站对应的账户信息,并利用所述域名从所述智能合约中获取所述网站的公钥;

利用所述公钥对所述账户信息加密后重新上传至所述分布式存储系统中。

其中,还包括:

当接收到修改密码命令后,将所述修改密码命令对应的目标网站的目标域名、原始账户信息和修改后的目标账户信息封装为修改密码信息;

从所述智能合约中所述目标域名对应的目标公钥,利用所述目标公钥对所述修改密码信息进行加密并基于去中心化消息协议广播至所述目标网站的服务器,以便所述目标网站的服务器对所述目标域名和所述原始账户信息进行验证后将所述原始账户信息修改为所述目标账户信息;

接收所述目标网站的服务器发送的修改确认信息。

其中,还包括:

通过输入接口获取用户信息,利用所述客户端的公钥对所述用户信息加密后上传至所述分布式存储系统中;

接收所述分布式存储系统发送的加密后的用户信息对应的第二散列值,利用所述客户端的私钥对所述第二散列值进行签名并基于去中心化消息协议广播至所述权威节点,以便所述权威节点利用所述客户端的公钥进行签名校验,并将所述第二散列值写入智能合约;

接收所述权威节点对所述用户信息的校验结果。

其中,还包括:

通过输入接口获取所述网站的域名和用于登录所述网站的账户信息,生成所述客户端的公钥和私钥;

利用所述网站的公钥对绑定信息进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器对所述账户信息验证通过后利用所述权威节点将所述账户信息与所述域名的对应关系写入所述智能合约;其中,所述绑定信息包括所述账户信息、所述客户端的公钥和所述域名;

接收所述权威节点发送的绑定结果。

其中,所述去中心化消息协议包括whisper协议。

为实现上述目的,本申请提供了一种身份验证装置,包括:

获取模块,用于从网站的服务器中获取随机字符串,向分布式存储系统请求所述网站对应的账户信息,并利用所述网站的公钥对所述账户信息加密后重新上传至所述分布式存储系统中;

第一广播模块,用于接收所述分布式存储系统发送的加密后的账户信息对应的第一散列值,利用所述随机字符串对所述第一散列值进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器基于所述第一散列值从所述分布式存储系统中获取所述加密后的账户信息并进行验证;

第一接收模块,用于接收所述服务器发送的验证结果。

其中,还包括:

生成模块,用于通过输入接口获取所述网站的域名和用于登录所述网站的账户信息,生成所述客户端的公钥和私钥;

第二广播模块,用于利用所述网站的公钥对绑定信息进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器对所述账户信息验证通过后利用所述权威节点将所述账户信息与所述域名的对应关系写入所述智能合约;其中,所述绑定信息包括所述账户信息、所述客户端的公钥和所述域名;

第二接收模块,用于接收所述权威节点发送的绑定结果。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述身份验证方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述身份验证方法的步骤。

通过以上方案可知,本申请提供的一种身份验证方法,包括:从网站的服务器中获取随机字符串,向分布式存储系统请求所述网站对应的账户信息,并利用所述网站的公钥对所述账户信息加密后重新上传至所述分布式存储系统中;接收所述分布式存储系统发送的加密后的账户信息对应的第一散列值,利用所述随机字符串对所述第一散列值进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器基于所述第一散列值从所述分布式存储系统中获取所述加密后的账户信息并进行验证;接收所述服务器发送的验证结果。

本申请提供的身份验证方法,保存账户信息的分布式存储系统为去中心化的系统,不存在单点故障的问题。基于去中心化消息协议代替http/https,能够更好的保护接入区块链网络的网站。客户端可以利用网站的公钥对账户信息进行加密,与oauth2.0相比,不再需要实现回调接口,彻底杜绝了csrf漏洞、重放攻击、中间人攻击,提高了身份验证的安全性。本申请还公开了一种身份验证装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1为根据一示例性实施例示出的一种身份验证方法的流程图;

图2为根据一示例性实施例示出的另一种身份验证方法的流程图;

图3为根据一示例性实施例示出的一种修改密码方法的流程图;

图4为根据一示例性实施例示出的一种上传用户信息方法的流程图;

图5为根据一示例性实施例示出的一种用户绑定方法的流程图;

图6为根据一示例性实施例示出的一种身份验证装置的结构图;

图7为根据一示例性实施例示出的一种电子设备的结构图。

具体实施方式

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

本申请实施例公开了一种身份验证方法,提高了身份验证的安全性。

参见图1,根据一示例性实施例示出的一种身份验证方法的流程图,如图1所示,包括:

s101:从网站的服务器中获取随机字符串,向分布式存储系统请求所述网站对应的账户信息,并利用所述网站的公钥对所述账户信息加密后重新上传至所述分布式存储系统中;

本实施例的执行主体为客户端,其中安装有需要使用网站的服务器资源的第三方应用,目的为对该第三方应用进行身份验证。在本步骤中,网站产生一个随机字符串为topic,如图2所示,可以以二维码的形式展示在浏览器中,用户通过客户端扫描该二维码获取网站的域名和topic。客户端向去中心化的分布式存储系统请求该网站对应的账户信息,本实施例不对分布式存储系统的具体形式进行限定,可以采用ipfs(中文全称:星际文件系统,英文全称:interplanetaryfilesystem)或swarm(基于以太坊的去中心化和分布式存储机制)等。客户端获取账户信息后,利用该网站的公钥进行加密,并将密文重新上传至分布式存储系统中。

需要说明的是,客户端可以利用网站的域名从智能合约中查找网站的公钥。即本步骤可以包括:从网站对应的服务器中获取所述网站的域名和随机字符串;其中,所述网站为在权威节点中注册完成的网站,所述权威节点将注册完成的网站的域名与公钥的对应关系写入智能合约;向分布式存储系统请求所述网站对应的账户信息,并利用所述域名从所述智能合约中获取所述网站的公钥;利用所述公钥对所述账户信息加密后重新上传至所述分布式存储系统中。

在具体实施中,接入区块链网络的网站需要进行注册,即在区块链网络中为该网站分配对应的区块链节点,智能合约中保存已注册网站的域名与公钥的对应关系,由区块链网络中的权威节点进行上传,在区块链网络中需要至少初始化三个权威节点。

在网站的注册过程中,网站的服务器生成一对公私钥,广播注册信息,信息内容包含公钥和域名,例如域名为www.a.com。权威节点接收到注册信息后,产生一个随机字符串和一个域名的随机文件名,转发给网站。随机文件名是要确定该域名是真实属于该网站的,网站服务器将随机字符串写入到随机文件中,在服务器目录上产生一个文件可供权威节点访问,假设随机文件名为abc.txt,那么可以通过https://www.a.com/abc.txt获取到随机字符串。权威节点接受注册信息之后,30秒之后访问https://www.a.com/abc.txt,校验是否与第二步注册信息中的随机数一致。一致则将网站的域名和公钥写入到智能合约中,一个域名对应一个公钥地址。

s102:接收所述分布式存储系统发送的加密后的账户信息对应的第一散列值,利用所述随机字符串对所述第一散列值进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器基于所述第一散列值从所述分布式存储系统中获取所述加密后的账户信息并进行验证;

在本步骤中,分布式存储系统接收到加密后的账户信息后返回密文对应的散列值,即本步骤中的第一散列值,此处不对散列值的具体形式进行限定,例如可以为哈希值。客户端利用随机字符串对第一散列值进行加密并基于去中心化消息协议进行广播,只有拥有相同的随机字符串的服务器可以解密得到第一散列值。为了进一步提高安全性,在广播之前,客户端还可以利用自身的私钥对散列值进行签名,即使密码和用户名被黑客窃取的情况下,由于缺少用户的私钥签名,黑客任无法完成登录。网站的服务器获取第一散列值后从分布式存储系统中获取加密后的账户信息,利用网站的私钥解密并进行验证。

此处的去中心化消息协议可以包括以太坊的whisper、bitmessage等,相对于使用http/https,能够更好的保护接入区块链网络的网站。客户端可以利用网站的公钥对账户信息进行加密,与oauth2.0相比,不再需要实现回调接口,彻底杜绝了csrf漏洞、重放攻击、中间人攻击,提高了身份验证的安全性。

s103:接收所述服务器发送的验证结果。

在本步骤中,服务器对账户信息进行验证后可以向浏览器或客户端返回验证结果。

本申请实施例提供的身份验证方法,保存账户信息的分布式存储系统为去中心化的系统,不存在单点故障的问题。基于去中心化消息协议代替http/https,能够更好的保护接入区块链网络的网站。客户端可以利用网站的公钥对账户信息进行加密,与oauth2.0相比,不再需要实现回调接口,彻底杜绝了csrf漏洞、重放攻击、中间人攻击,提高了身份验证的安全性。

本实施例将对修改密码的过程进行详细介绍,具体的,如图3所示,包括:

s201:当接收到修改密码命令后,将所述修改密码命令对应的目标网站的目标域名、原始账户信息和修改后的目标账户信息封装为修改密码信息;

在本实施例中,用户可以对一个已注册网站进行密码修改。具体的,用户在客户端处选择需要进行密码修改的目标网站,输入修改后的新密码,客户端将该目标网站的用户名和新密码封装为目标账户信息,将该目标网站的目标域名、原始账户信息和目标账户信息封装为修改密码信息。

s202:从所述智能合约中所述目标域名对应的目标公钥,利用所述目标公钥对所述修改密码信息进行加密并基于去中心化消息协议广播至所述目标网站的服务器,以便所述目标网站的服务器对所述目标域名和所述原始账户信息进行验证后将所述原始账户信息修改为所述目标账户信息;

s203:接收所述目标网站的服务器发送的修改确认信息。

在具体实施中,客户端根据目标域名从智能合约中获取目标网站对应的目标公钥,并利用该目标公钥对修改密码信息进行加密并基于去中心化消息协议进行广播,目标网站的服务器接收到修改密码信息的密文后利用自身的私钥进行解密,验证其中的原始账户信息,确认无误即更新新密码,广播修改确认信息,其中可以包括目标域名、目标网站的用户名和客户端的公钥,并用网站的私钥进行签名。

本实施例将对客户端向分布式存储系统上传用户信息的过程进行详细介绍,具体的,如图4所示,包括:

s301:通过输入接口获取所述用户信息,利用所述客户端的公钥对所述用户信息加密后上传至所述分布式存储系统中;其中,所述用户信息包括用于登录所述网站的账户信息;

在本实施例中,用户可以通过客户端上传用户信息,对比传统的授权机制,验证成功之后可以获得用户的用户名、性别、头像等信息,信息存放是中心化的节点中,保证用户信息的安全。在本步骤中,用户在客户端中输入用户信息,客户端利用自身的公钥进行加密,并上传至所述分布式存储系统中。

s302:接收所述分布式存储系统发送的加密后的用户信息对应的第二散列值,利用所述客户端的私钥对所述第二散列值进行签名并基于去中心化消息协议广播至所述权威节点,以便所述权威节点利用所述客户端的公钥进行签名校验,并将所述第二散列值写入智能合约;

s303:接收所述权威节点对所述用户信息的校验结果。

在具体实施中,分布式存储系统接收到加密后的用户信息后返回密文对应的散列值,即本步骤中的第二散列值。客户端利用自身的私钥对该第二散列值进行签名并进行广播,权威节点接收到广播的信息后利用该客户端的公钥进行签名验证,验证通过后将第二散列值写入智能合约,并向客户端返回校验结果。

本实施例将对用户绑定的过程进行详细介绍,具体的,如图5所示,包括:

s401:通过输入接口获取所述网站的域名和用于登录所述网站的账户信息,生成所述客户端的公钥和私钥;

在本实施例中,用户在客户端中输入网站的域名、用于登录该网站的账户信息,可以包括用户名和密码,客户端根据域名从智能合约中获取该网站的公钥,并生成自身的公钥和私钥。

s402:利用所述网站的公钥对绑定信息进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器对所述账户信息验证通过后利用所述权威节点将所述账户信息与所述域名的对应关系写入所述智能合约;其中,所述绑定信息包括所述账户信息、所述客户端的公钥和所述域名;

s403:接收所述权威节点发送的绑定结果。

在具体实施中,客户端将用户输入的账户信息、自身的公钥和网站的域名封装为绑定信息,利用网站的公钥进行加密并基于去中心化消息协议进行广播,网站的服务器接收到绑定信息后利用自身的私钥进行解密,并验证其中的账户信息,验证通过后广播topic为“user_bind_confirm”,信息内容包含网站的域名、用户名和客户的端的公钥,并用网站的私钥进行签名。权威节点接收到“user_bind_confirm”信息之后,利用该网站的公钥进行校验,验证通过之后,将用户和网站的关系记录到智能合约中,即将账户信息与域名的对应关系写入智能合约,并发送绑定成功广播。

下面对本申请实施例提供的一种身份验证装置进行介绍,下文描述的一种身份验证装置与上文描述的一种身份验证方法可以相互参照。

参见图6,根据一示例性实施例示出的一种身份验证装置的结构图,如图6所示,包括:

获取模块601,用于从网站的服务器中获取随机字符串,向分布式存储系统请求所述网站对应的账户信息,并利用所述网站的公钥对所述账户信息加密后重新上传至所述分布式存储系统中;

第一广播模块602,用于接收所述分布式存储系统发送的加密后的账户信息对应的第一散列值,利用所述随机字符串对所述第一散列值进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器基于所述第一散列值从所述分布式存储系统中获取所述加密后的账户信息并进行验证;

第一接收模块603,用于接收所述服务器发送的验证结果。

本申请实施例提供的身份验证装置,保存账户信息的分布式存储系统为去中心化的系统,不存在单点故障的问题。基于去中心化消息协议代替http/https,能够更好的保护接入区块链网络的网站。客户端可以利用网站的公钥对账户信息进行加密,与oauth2.0相比,不再需要实现回调接口,彻底杜绝了csrf漏洞、重放攻击、中间人攻击,提高了身份验证的安全性。

在上述实施例的基础上,作为一种优选实施方式,所述获取模块601包括:

获取单元,用于从网站对应的服务器中获取所述网站的域名和随机字符串;其中,所述网站为在权威节点中注册完成的网站,所述权威节点将注册完成的网站的域名与公钥的对应关系写入智能合约;

请求单元,用于向分布式存储系统请求所述网站对应的账户信息,并利用所述域名从所述智能合约中获取所述网站的公钥;

上传单元,用于利用所述公钥对所述账户信息加密后重新上传至所述分布式存储系统中。

在上述实施例的基础上,作为一种优选实施方式,还包括:

生成模块,用于通过输入接口获取所述网站的域名和用于登录所述网站的账户信息,生成所述客户端的公钥和私钥;

第二广播模块,用于利用所述网站的公钥对绑定信息进行加密并基于去中心化消息协议广播至所述服务器,以便所述服务器对所述账户信息验证通过后利用所述权威节点将所述账户信息与所述域名的对应关系写入所述智能合约;其中,所述绑定信息包括所述账户信息、所述客户端的公钥和所述域名;

第二接收模块,用于接收所述权威节点发送的绑定结果。

在上述实施例的基础上,作为一种优选实施方式,还包括:

封装模块,用于当接收到修改密码命令后,将所述修改密码命令对应的目标网站的目标域名、原始账户信息和修改后的目标账户信息封装为修改密码信息;

第三广播模块,用于从所述智能合约中所述目标域名对应的目标公钥,利用所述目标公钥对所述修改密码信息进行加密并基于去中心化消息协议广播至所述目标网站的服务器,以便所述目标网站的服务器对所述目标域名和所述原始账户信息进行验证后将所述原始账户信息修改为所述目标账户信息;

第三接收模块,用于接收所述目标网站的服务器发送的修改确认信息。

在上述实施例的基础上,作为一种优选实施方式,还包括:

上传模块,用于通过输入接口获取用户信息,利用所述客户端的公钥对所述用户信息加密后上传至所述分布式存储系统中;

第四广播模块,用于接收所述分布式存储系统发送的加密后的用户信息对应的第二散列值,利用所述客户端的私钥对所述第二散列值进行签名并基于去中心化消息协议广播至所述权威节点,以便所述权威节点利用所述客户端的公钥进行签名校验,并将所述第二散列值写入智能合约;

第四接收模块,用于接收所述权威节点对所述用户信息的校验结果。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本申请还提供了一种电子设备,参见图7,本申请实施例提供的一种电子设备700的结构图,如图7所示,可以包括处理器11和存储器12。该电子设备700还可以包括多媒体组件13,输入/输出(i/o)接口14,以及通信组件15中的一者或多者。

其中,处理器11用于控制该电子设备700的整体操作,以完成上述的身份验证方法中的全部或部分步骤。存储器12用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件13可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器12或通过通信组件15发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件15用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件15可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的身份验证方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述身份验证方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器12,上述程序指令可由电子设备700的处理器11执行以完成上述的身份验证方法。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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