基于联盟区块链的身份验证方法、设备及存储介质与流程

文档序号:18617193发布日期:2019-09-06 22:08阅读:204来源:国知局
基于联盟区块链的身份验证方法、设备及存储介质与流程

本发明实施例涉及区块链技术领域,尤其涉及一种基于联盟区块链的身份验证方法、设备及存储介质。



背景技术:

在互联网上有很多的互联网服务提供商(internetserviceprovider,简称isp)/网络内容服务商(internetcontentprovider,简称icp),每个用户在享受isp/icp提供的服务之前必须在该isp/icp上进行注册,比如当前每个人一般都有微信、支付宝等各种app,而每个app如果都注册,并且如果在不同的app上注册的账号和密码一样,则很容易被撞库攻击,账号的安全性较低,而如果在不同的app上注册的账号、密码不一样,则又很容易被遗忘,重新找回账号、密码的操作繁琐。



技术实现要素:

本发明实施例提供一种基于联盟区块链的身份验证方法、设备及存储介质,用以提高用户使用互联网服务时,身份验证的效率和安全性,避免用户记忆大量用户名和密码的麻烦,解决用户多个互联网服务的用户名和密码一致所导致的容易被撞库攻击的问题。

第一方面,本发明实施例提供一种基于联盟区块链的身份验证方法,该方法包括:

联盟区块链中的第一服务节点接收用户节点向其第一ip地址发送的登录请求,所述登录请求中包括用户提交的用户名,所述联盟区块链中的第二服务节点的区块链标识、第一加密数据、以及加密信息,其中,所述用户在所述第二服务节点上注册过所述用户名,所述加密信息包括所述第一服务节点的区块链标识,所述第一加密数据是所述用户节点根据所述用户输入的所述用户名对应的第一用户密钥和所述加密信息,采用预设算法对所述第二服务节点最新发布的随机数进行加密获得的;所述第一服务节点根据所述第二服务节点的区块链标识,在所述联盟区块链的账本中查找所述第二服务节点的第二ip地址,并向所述第二ip地址发送转发消息,所述转发消息中包括所述第一加密数据、所述用户名和所述加密信息,以使所述第二服务节点将所述第一加密数据与其自身计算得到的第二加密数据进行对比,其中,所述第二加密数据是所述第二服务节点根据所述加密信息和所述用户注册所述用户名时设置的第二用户密钥,采用所述预设算法对所述随机数进行加密获得的;所述第一服务节点接收所述第二服务节点发送的对比结果,若所述第一加密数据和所述第二加密数据相同,则确定所述用户的身份验证通过,否则身份验证失败。

在一种实施方式中,所述加密信息还包括:时间戳。

在一种实施方式中,所述联盟区块链中的第一服务节点接收用户节点向其第一ip地址发送的登录请求之前,所述方法还包括:

所述第一服务节点从所述联盟区块链的账本中获取所述第二服务节点最新发布的随机数,并将所述随机数发送给所述用户节点。

在一种实施方式中,所述用户节点用于生成所述第一加密数据的随机数,是所述用户节点从所述联盟区块链的账本中查找获得的。

第二方面,本发明实施例提供一种服务节点,所述服务节点适用于一种联盟区块链,所述服务节点包括:

存储器;

处理器;

通讯接口;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以下操作:

接收用户节点向其所在的服务节点的第一ip地址发送的登录请求,所述登录请求中包括用户提交的用户名,所述联盟区块链中的第二服务节点的区块链标识、第一加密数据、以及加密信息,其中,所述用户在所述第二服务节点上注册过所述用户名,所述加密信息包括所述处理器所在的所述服务节点的区块链标识,所述第一加密数据是所述用户节点根据所述用户输入的所述用户名对应的第一用户密钥和所述加密信息,采用预设算法对所述第二服务节点最新发布的随机数进行加密获得的;根据所述第二服务节点的区块链标识,在所述联盟区块链的账本中查找所述第二服务节点的第二ip地址,并向所述第二ip地址发送转发消息,所述转发消息中包括所述第一加密数据、所述用户名和所述加密信息,以使所述第二服务节点将所述第一加密数据与其自身计算得到的第二加密数据进行对比,其中,所述第二加密数据是所述第二服务节点根据所述加密信息和所述用户注册所述用户名时设置的第二用户密钥,采用所述预设算法对所述随机数进行加密获得的;接收所述第二服务节点发送的对比结果,若所述第一加密数据和所述第二加密数据相同,则确定所述用户的身份验证通过,否则身份验证失败。

在一种实施方式中,所述加密信息还包括:时间戳。

在一种实施方式中,所述处理器在执行接收用户节点向其所在的服务节点的第一ip地址发送的登录请求之前,还用于:

从所述联盟区块链的账本中获取所述第二服务节点最新发布的随机数,并将所述随机数发送给所述用户节点。

在一种实施方式中,所述用户节点用于生成所述第一加密数据的随机数,是所述用户节点从所述联盟区块链的账本中查找获得的。

第三方面,本发明实施例提供一种联盟区块链,该联盟区块链包括上述第二方面所述的服务节点。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。

在本发明实施例提供的于联盟区块链的身份验证方法、设备及存储介质中,联盟区块链中的第一服务节点在接收到用户节点向其发送给的第二服务节点的区块链标识、用户名、第一加密数据和加密信息后,根据第二服务节点的区块链标识从联盟区块链的账本中查找获得第二服务节点的第二ip地址,并根据第二ip地址向第二服务节点发送所述用户名、所述第一加密数据和所述加密信息,使得第二服务节点根据用户注册该用户名时设置的第二用户密钥、所述加密信息,采用预设算法对其自身最新发布的随机数据进行加密生成第二加密数据,并将第一加密数据与第二加密数据进行对比,第一服务节点根据对比结果得到用户身份验证的结果。基于本发明实施例提供的技术方案,只要用户在联盟区块链上任一服务节点上注册了用户名和用户密钥,就可以使用该用户名和用户密钥登录联盟区块链上的其他服务节点,并享受该服务节点的服务,从而避免了用户记忆大量用户名和密钥的麻烦,提高了身份验证的便利性,本发明实施例通过将验证过程中的验证信息采用p2p(即直接发送到接收方的ip地址上)的方式发送到接收方,使得验证信息不被记录在联盟区块链中,这样能够避免验证信息被黑客获取,降低撞库攻击的风险,另外,由于本发明实施例的随机数是由联盟区块中的第二服务节点定期发布并记录在联盟区块链的账本中的,因而用户节点可以直接从联盟区块链的账本中获取该随机数,而不需要其他节点的转发,进而进一步的提高了身份验证的效率。

附图说明

图1为本发明实施例提供的一种通信系统的示意图;

图2为本发明实施例提供的一种基于联盟区块链的身份验证方法的流程图;

图3是本发明实施例提供的一种基于联盟区块链的身份验证方法的流程图;

图4是本发明实施例提供的一种服务节点的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本发明实施例提供的基于联盟区块链的身份验证方法,旨在解决现有技术中如果用户在不同的应用程序(app)上注册的账号和密码一样,很容易被撞库攻击,账号的安全性较低,而如果在不同的app上注册的账号、密码不一样,又很容易被遗忘,重新找回账号、密码的操作繁琐的技术问题,特别的,在解决上述技术问题的基础上本发明实施例还着重于提高身份验证的效率。该方法可以适用于图1所示的通信系统。如图1所示,该通信系统包括:第一服务节点11、第二服务节点12、用户节点13、第三服务节点14、第四服务节点15、以及第五服务节点16,其中,第一服务节点11、第二服务节点12、用户节点13、第三服务节点14、第四服务节点15、以及第五服务节点16属于同一联盟区块链。其中,第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16可以为用户提供不同的服务,举例来说,第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16可以分别用于提供“推特”服务、“脸书”服务、“微信”服务和“支付宝”服务,当然这里仅为示例说明而不是唯一限定。另外,此处只是示意性说明,并不限定该联盟区块链的结构和该联盟区块链的节点个数。

下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2为本发明实施例提供的一种基于联盟区块链的身份验证方法的流程图。该方法适用于一种联盟区块链,该联盟区块链的结构可以参照图1,该方法具体步骤如下:

步骤201、联盟区块链中的第一服务节点接收用户节点向其第一ip地址发送的登录请求,所述登录请求中包括用户提交的用户名,所述联盟区块链中的第二服务节点的区块链标识、第一加密数据、以及加密信息。

其中,所述用户在所述第二服务节点上注册过所述用户名,所述加密信息包括所述第一服务节点的区块链标识,所述第一加密数据是所述用户节点根据所述用户输入的所述用户名对应的第一用户密钥和所述加密信息,采用预设算法对所述第二服务节点最新发布的随机数进行加密获得的。

步骤202、所述第一服务节点根据所述第二服务节点的区块链标识,在所述联盟区块链的账本中查找所述第二服务节点的第二ip地址,并向所述第二ip地址发送转发消息,所述转发消息中包括所述第一加密数据、所述用户名和所述加密信息,以使所述第二服务节点将所述第一加密数据与其自身计算得到的第二加密数据进行对比。

其中,所述第二加密数据是所述第二服务节点根据所述加密信息和所述用户注册所述用户名时设置的第二用户密钥,采用所述预设算法对所述随机数进行加密获得的。

步骤203、所述第一服务节点接收所述第二服务节点发送的对比结果,若所述第一加密数据和所述第二加密数据相同,则确定所述用户的身份验证通过,否则身份验证失败。

以图1为例,在图1中第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16构建形成联盟区块链,并为其他服务节点或用户节点提供身份验证服务。该联盟区块链的创世区块中保存有第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16的区块链标识和公钥等信息,第二服务节点12、第三服务节点14、第四服务节点15、以及第五服务节点16共同作为本联盟区块链的创始节点对联盟区块链进行管理,包括是否允许某个服务节点接入本联盟区块链等。

用户通过区块链链下的方式进行用户名和密钥的注册或者已经在联盟区块链的某个服务节点上注册过,本示例中,假设用户已在第二服务节点12上注册过,但未在第一服务节点11上注册过。

具体的,在本实施例中,联盟区块链的节点,比如第二服务节点,定期发布随机数,该些随机数记录在联盟区块链的账本中。用户节点13请求第一服务节点11的服务时,可选的,可以根据第二服务节点12的区块链标识(历史上,用户节点13在第二服务节点12上注册用户名,并记录第二服务节点12的区块链标识),从联盟区块链的账本中获取第二服务节点最新发布的随机数。并在获取到该随机数后,根据当前时刻生成的加密信息以及用户输入的第一用户密钥,采用预设算法对该随机数进行加密生成第一加密数据,其中,本实施例中所称的加密信息包括第一服务节点的区块链标识和时间戳。

进一步的,在得到第一加密数据后,用户节点13根据第一服务节点11的区块链标识(第一服务节点的区块链标识可以是预先保存在用户节点13中,也可以是用户通过用户交互界面输入的),从联盟区块链的账本中查找第一服务节点11的ip地址(为了便于区分,以下简称第一ip地址),根据第一服务节点11的ip地址向第一服务节点11发送登录请求,该登录请求中,包括用户提交的用户名、第二服务节点12的区块链标识、第一加密数据和所述加密信息。本实施例通过在验证请求中时间戳、第一服务节点的区块链标识等加密信息,以及第二服务节点12的区块链标识,能够防止恶意攻击方重放攻击。

第一服务节点11在接收到用户节点13的登录请求后,根据第二服务节点的区块链标识,从联盟区块链的账本中查找第二服务节点对应的第二ip地址,并向第二ip地址发送转发消息,该转发消息中包括第一加密数据、所述用户名和所述加密信息。

第二服务节点12接收到第一服务节点的转发消息后,首先查找用户历史注册所述账户名时设置的第二用户密钥,然后根据第二用户密钥、所述加密信息,采用与计算第一加密数据时相同的预设算法对其自身最新发布的随机数进行加密,得到第二加密数据,然后将第一加密数据和第二加密数据进行比对,并将比对结果发送给第一服务节点11(比如,将比对结果广播到联盟区块链上,或者将比对结果发送到第一服务节点11的ip地址上)。

第一服务节点11对第二服务节点12的比对结果进行解析,若第一加密数据和第二加密数据相同,则验证通过,第一服务节点11为用户提供服务,否则验证失败,不提供服务。

在本实施例中,整个身份验证的过程在联盟区跨链中有完整的记录,可查询。而验证过程中的验证信息,比如,第一加密数据,随机数等,通过p2p(即根据接收方的ip地址,直接发送给接收方)的传输方式,能够阻止黑客获取验证信息,进而避免撞库攻击事件的发生。另外,联盟区块链中的服务节点通过定期发布随机数,并将随机数记录在联盟区块链的账本中,能够方便用户节点直接从账本中获取相应服务节点发布的随机数,简化了用户节点获取随机数的操做,提高了身份验证的效率。

在本实施例提供的于联盟区块链的身份验证方法、设备及存储介质中,联盟区块链中的第一服务节点在接收到用户节点向其发送给的第二服务节点的区块链标识、用户名、第一加密数据和加密信息后,根据第二服务节点的区块链标识从联盟区块链的账本中查找获得第二服务节点的第二ip地址,并根据第二ip地址向第二服务节点发送所述用户名、所述第一加密数据和所述加密信息,使得第二服务节点根据用户注册该用户名时设置的第二用户密钥、所述加密信息,采用预设算法对其自身最新发布的随机数据进行加密生成第二加密数据,并将第一加密数据与第二加密数据进行对比,第一服务节点根据对比结果得到用户身份验证的结果。基于本实施例提供的技术方案,只要用户在联盟区块链上任一服务节点上注册了用户名和用户密钥,就可以使用该用户名和用户密钥登录联盟区块链上的其他服务节点,并享受该服务节点的服务,从而避免了用户记忆大量用户名和密钥的麻烦,提高了身份验证的便利性,本实施例通过将验证过程中的验证信息采用p2p(即直接发送到接收方的ip地址上)的方式发送到接收方,使得验证信息不被记录在联盟区块链中,这样能够避免验证信息被黑客获取,降低撞库攻击的风险,另外,由于本实施例的随机数是由联盟区块中的第二服务节点定期发布并记录在联盟区块链的账本中的,因而用户节点可以直接从联盟区块链的账本中获取该随机数,而不需要其他节点的转发,进而进一步的提高了身份验证的效率。

图3是本发明实施例提供的一种基于联盟区块链的身份验证方法的流程图,如图3所示,在图2实施例的基础上,该方法包括:

步骤301、联盟区块链中的第一服务节点从所述联盟区块链的账本中获取联盟区块链中的第二服务节点最新发布的随机数,并将所述随机数发送给用户节点。

步骤302、联盟区块链中的第一服务节点接收用户节点向其第一ip地址发送的登录请求,所述登录请求中包括用户提交的用户名,所述联盟区块链中的第二服务节点的区块链标识、第一加密数据、以及加密信息。

其中,所述用户在所述第二服务节点上注册过所述用户名,所述加密信息包括所述第一服务节点的区块链标识,所述第一加密数据是所述用户节点根据所述用户输入的所述用户名对应的第一用户密钥和所述加密信息,采用预设算法对所述第二服务节点最新发布的随机数进行加密获得的。

步骤303、所述第一服务节点根据所述第二服务节点的区块链标识,在所述联盟区块链的账本中查找所述第二服务节点的第二ip地址,并向所述第二ip地址发送转发消息,所述转发消息中包括所述第一加密数据、所述用户名和所述加密信息,以使所述第二服务节点将所述第一加密数据与其自身计算得到的第二加密数据进行对比。

其中,所述第二加密数据是所述第二服务节点根据所述加密信息和所述用户注册所述用户名时设置的第二用户密钥,采用所述预设算法对所述随机数进行加密获得的。

步骤304、所述第一服务节点接收所述第二服务节点发送的对比结果,若所述第一加密数据和所述第二加密数据相同,则确定所述用户的身份验证通过,否则身份验证失败。

本实施例,通过第一服务节点11定期将联盟区块链的账本中记录的第二服务节点12发布的随机数发送给用户节点13,使得用户节点13不必一直接入到联盟区块链,就可以获取到第二服务节点12发布的随机数,节约了用户节点13的电能损耗。

图4是本发明实施例提供的一种服务节点的结构示意图,该服务节点适用于一种联盟区块链,本发明实施例提供的服务节点可以执行上述基于联盟区块链的身份验证方法的执行方法实施例的处理流程。如图4所示,服务节点40包括:存储器41、处理器42、计算机程序和通讯接口43;其中,所述计算机程序存储在所述存储器中,并被配置为由处理器42执行以下操作:

接收用户节点向其所在的服务节点的第一ip地址发送的登录请求,所述登录请求中包括用户提交的用户名,所述联盟区块链中的第二服务节点的区块链标识、第一加密数据、以及加密信息,其中,所述用户在所述第二服务节点上注册过所述用户名,所述加密信息包括所述处理器所在的所述服务节点的区块链标识,所述第一加密数据是所述用户节点根据所述用户输入的所述用户名对应的第一用户密钥和所述加密信息,采用预设算法对所述第二服务节点最新发布的随机数进行加密获得的;根据所述第二服务节点的区块链标识,在所述联盟区块链的账本中查找所述第二服务节点的第二ip地址,并向所述第二ip地址发送转发消息,所述转发消息中包括所述第一加密数据、所述用户名和所述加密信息,以使所述第二服务节点将所述第一加密数据与其自身计算得到的第二加密数据进行对比,其中,所述第二加密数据是所述第二服务节点根据所述加密信息和所述用户注册所述用户名时设置的第二用户密钥,采用所述预设算法对所述随机数进行加密获得的;接收所述第二服务节点发送的对比结果,若所述第一加密数据和所述第二加密数据相同,则确定所述用户的身份验证通过,否则身份验证失败。

在一种实施方式中,所述加密信息还包括:时间戳。

在一种实施方式中,所述处理器在执行接收用户节点向其所在的服务节点的第一ip地址发送的登录请求之前,还用于:

从所述联盟区块链的账本中获取所述第二服务节点最新发布的随机数,并将所述随机数发送给所述用户节点。

在一种实施方式中,所述用户节点用于生成所述第一加密数据的随机数,是所述用户节点从所述联盟区块链的账本中查找获得的。

图4所示实施例的服务节点可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明实施例还提供一种联盟区块链,该联盟区块链包括如上述图4实施例所述的服务节点。

另外,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的基于联盟区块链的身份验证方法的执行方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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