基于区块链的身份认证方法及系统与流程

文档序号:12134877阅读:854来源:国知局
基于区块链的身份认证方法及系统与流程

本发明涉及互联网技术领域,具体涉及一种基于区块链的身份认证方法及系统。



背景技术:

在互联网技术中,当用户登录某个应用服务器时,该应用服务器经常需要对用户进行身份认证,从而确定该用户是否具有访问某些资源和使用某些资源的权限,即确定该用户是否为授权用户,进而使互联网的访问策略能够可靠、有效地执行,防止攻击者假冒授权用户获得资源的访问权限和使用权限,保证数据安全以及授权用户的合法利益。

在现有技术中,可通过第三方认证服务器进行身份认证,具体过程为:用户通过终端设备向第三方认证服务器发送身份认证请求,该身份认证请求中包含有应用服务器要求的信息,接着第三方认证服务器对该身份认证请求进行验证,验证通过后对应用服务器要求的信息进行签名,并将认证结果返回给终端设备,该认证结果中包含有第三方认证服务器对应用服务器要求的信息的签名,然后终端设备将该认证结果发送至应用服务器,应用服务器根据认证结果中的签名就可验证终端设备的身份。但是,如果第三方认证服务器出现信息泄露或者信息被篡改,将可能会给终端设备侧的用户和应用服务器带来巨大损失。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于区块链的身份认证方法及系统。

根据本发明的一个方面,提供了一种基于区块链的身份认证方法,该方法包括:

终端设备向应用服务器发送身份认证请求;其中,身份认证请求包括认证因子;

应用服务器接收身份认证请求,根据身份认证请求中的认证因子,生成第一交易信息;

应用服务器将第一交易信息广播至区块链网络;

应用服务器将第一交易信息的第一交易编号信息发送至终端设备;

终端设备接收第一交易编号信息,根据第一交易编号信息和认证因子,生成第二交易信息,并将第二交易信息广播至区块链网络;

区块链网络根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。

根据本发明的另一方面,提供了一种基于区块链的身份认证系统,该系统包括:终端设备、应用服务器和区块链网络;其中,

终端设备用于:向应用服务器发送身份认证请求;其中,身份认证请求包括认证因子;

应用服务器用于:接收身份认证请求,根据身份认证请求中的认证因子,生成第一交易信息;将第一交易信息广播至区块链网络,并将第一交易信息的第一交易编号信息发送至终端设备;

终端设备进一步用于:接收第一交易编号信息,根据第一交易编号信息和认证因子,生成第二交易信息,并将第二交易信息广播至区块链网络;

区块链网络用于:根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。

根据本发明提供的技术方案,应用服务器根据终端设备的身份认证请求中的认证因子,生成第一交易信息,将第一交易信息广播至区块链网络,并将第一交易信息的第一交易编号信息发送至终端设备,接着终端设备根据第一交易编号信息和认证因子,生成第二交易信息,并将第二交易信息广播至区块链网络,然后区块链网络根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。根据本发明提供的技术方案,通过区块链网络能够安全、便捷地对终端设备进行身份认证,另外,利用区块链不可篡改的特性,还增加了身份认证的可信度。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的基于区块链的身份认证方法的信令流程图;

图2示出了根据本发明另一个实施例的基于区块链的身份认证方法的信令流程图;

图3示出了根据本发明一个实施例的基于区块链的身份认证系统的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的基于区块链的身份认证方法的信令流程图,如图1所示,该方法包括如下步骤:

步骤S100,终端设备向应用服务器发送身份认证请求。

其中,身份认证请求包括认证因子。具体地,认证因子包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。另外,认证因子还可包括其他可用于认证身份的信息,此处不做限定。

步骤S101,应用服务器接收身份认证请求,根据身份认证请求中的认证因子,生成第一交易信息。

应用服务器接收终端设备发送的身份认证请求,接着根据身份认证请求中的认证因子,生成第一交易信息。

步骤S102,应用服务器将第一交易信息广播至区块链网络。

在生成了第一交易信息之后,应用服务器将第一交易信息广播至区块链网络。其中,区块链具有不可篡改的特性。

步骤S103,应用服务器将第一交易信息的第一交易编号信息发送至终端设备。

具体地,第一交易信息的第一交易编号信息可为利用哈希算法对第一交易信息进行计算得到的。为了使终端设备能够获得第一交易信息,应用服务器将第一交易信息的第一交易编号信息发送至终端设备。

步骤S104,终端设备接收第一交易编号信息,根据第一交易编号信息和认证因子,生成第二交易信息,并将第二交易信息广播至区块链网络。

终端设备在接收了应用服务器发送的第一交易编号信息之后,根据第一交易编号信息和认证因子,生成第二交易信息,接着将所生成的第二交易信息广播至区块链网络。

步骤S105,区块链网络根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。

由于第一交易信息和第二交易信息都广播至了区块链网络,那么在步骤S105中,区块链网络就可根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。其中,认证结果包括:第一认证结果和第二认证结果。具体地,第一认证结果为认证成功的认证结果,第二认证结果为认证失败的认证结果。

根据本发明实施例提供的基于区块链的身份认证方法,应用服务器根据终端设备的身份认证请求中的认证因子,生成第一交易信息,将第一交易信息广播至区块链网络,并将第一交易信息的第一交易编号信息发送至终端设备,接着终端设备根据第一交易编号信息和认证因子,生成第二交易信息,并将第二交易信息广播至区块链网络,然后区块链网络根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。根据本发明提供的技术方案,通过区块链网络能够安全、便捷地对终端设备进行身份认证,另外,利用区块链不可篡改的特性,还增加了身份认证的可信度。

图2示出了根据本发明另一个实施例的基于区块链的身份认证方法的信令流程图,如图2所示,该方法包括如下步骤:

步骤S200,终端设备向应用服务器发送身份认证请求。

其中,身份认证请求包括认证因子。具体地,认证因子包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。本领域技术人员还可根据实际需要将其他可用于认证身份的信息作为认证因子,此处不做限定。

步骤S201,应用服务器接收身份认证请求,根据身份认证请求,生成脚本信息。

应用服务器在接收了身份认证请求之后,会根据身份认证请求,生成脚本信息。

步骤S202,应用服务器利用身份认证请求中的认证因子和脚本信息,得到数学变换结果。

具体地,利用脚本信息对身份认证请求中的认证因子进行数学变化,得到数学变换结果。例如,将身份认证请求中的认证因子作为脚本信息对应的输入信息,利用脚本信息得到输出信息,所得到的输出信息即为数学变换结果。其中,数学变化包括但不限于加运算、减运算、与运算、异或运算和哈希运算等。

步骤S203,应用服务器利用哈希算法计算得到脚本信息对应的脚本哈希值。

应用服务器利用哈希算法对脚本信息进行哈希运算,得到脚本信息对应的脚本哈希值。

步骤S204,应用服务器根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果,生成第一交易信息。

其中,脚本信息具有对应的区块链地址信息,根据脚本信息的区块链地址信息可得到脚本信息。由于交易信息包括交易输入信息和交易输出信息,那么在步骤S204中,应用服务器可将区块链的代币作为第一交易信息的交易输入信息,将脚本信息的区块链地址信息、脚本哈希值和数学变换结果作为第一交易信息的交易输出信息,从而生成第一交易信息。

步骤S205,应用服务器将第一交易信息广播至区块链网络。

在生成了第一交易信息之后,应用服务器将第一交易信息广播至区块链网络。相当于应用服务器将脚本信息的区块链地址信息、脚本哈希值和数学变换结果以第一交易信息的形式广播至区块链网络。

步骤S206,应用服务器将第一交易信息的第一交易编号信息发送至终端设备。

具体地,第一交易信息的第一交易编号信息为利用哈希算法对第一交易信息进行计算得到的。可选地,在步骤S206之前,该方法还可包括:应用服务器利用哈希算法对第一交易信息进行计算,得到第一交易信息的第一交易编号信息的步骤。

步骤S207,终端设备接收第一交易编号信息,根据第一交易编号信息,获取第一交易信息。

由于第一交易信息的第一交易编号信息为利用哈希算法对第一交易信息进行计算得到的,那么在终端设备接收了第一交易编号信息之后,就可根据第一交易编号信息,获取第一交易信息。

步骤S208,终端设备根据第一交易信息,得到脚本信息。

由于第一交易信息是根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果生成的,那么终端设备根据第一交易信息就可得到脚本信息的区块链地址信息,接着根据脚本信息的区块链地址信息就可得到脚本信息。

步骤S209,终端设备根据第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息,生成第二交易信息。

应用服务器具有对应的区块链地址信息,根据应用服务器的区块链地址信息可确定应用服务器。具体地,终端设备可将第一交易编号信息、脚本信息、认证因子作为第二交易信息的交易输入信息,将应用服务器的区块链地址信息作为第二交易信息的交易输出信息,从而生成第二交易信息。

步骤S210,终端设备将第二交易信息广播至区块链网络。

在生成了第二交易信息之后,终端设备将第二交易信息广播至区块链网络。相当于终端设备将第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息以第二交易信息的形式广播至区块链网络。

步骤S211,区块链网络根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。

由于第一交易信息和第二交易信息都广播至了区块链网络,那么在步骤S211中,区块链网络就可根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。

由于第一交易信息是根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果生成的,那么区块链网络根据第一交易信息,可得到第一交易信息对应的脚本信息的区块链地址信息、脚本哈希值和数学变换结果,同理,第二交易信息是根据第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息生成的,区块链网络根据第二交易信息,可得到第二交易信息对应的第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息。

具体地,区块链网络根据第二交易信息,得到第二交易信息对应的脚本信息;利用哈希算法对第二交易信息对应的脚本信息进行计算,得到待认证脚本哈希值。区块链网络根据第一交易信息,得到第一交易信息对应的脚本哈希值。

在得到了待认证脚本哈希值和第一交易信息对应的脚本哈希值之后,区块链网络判断待认证脚本哈希值是否与第一交易信息对应的脚本哈希值相同。

如果区块链网络判断得到待认证脚本哈希值与第一交易信息对应的脚本哈希值相同,则区块链网络根据第二交易信息,得到第二交易信息对应的认证因子,并根据第二交易信息对应的认证因子和脚本信息,得到待认证数学变换结果;接着区块链网络根据第一交易信息,得到第一交易信息对应的数学变换结果;在得到了待认证数学变换结果和第一交易信息对应的数学变换结果之后,区块链网络判断待认证数学变换结果是否与第一交易信息对应的数学变换结果相同。如果判断得到认证数学变换结果与第一交易信息对应的数学变换结果相同,则区块链网络得到第一认证结果,即得到认证成功的认证结果;如果判断得到认证数学变换结果不与第一交易信息对应的数学变换结果相同,则区块链网络得到第二认证结果,即得到认证失败的认证结果。

如果区块链网络判断得到待认证脚本哈希值不与第一交易信息对应的脚本哈希值相同,则区块链网络得到第二认证结果。

在本实施例中,在区块链网络对终端设备进行身份认证的过程中,区块链网络不仅验证脚本哈希值,还验证数学变换结果,从而能够更加全面、准确地进行身份认证,进而获得可靠的认证结果。

其中,其他的验证交易合法性的方式与现有技术中区块链网络验证交易合法性的方式相同,此处不再赘述。

在实际应用中,可由区块链网络中的矿工节点根据第一交易信息和第二交易信息,对终端设备进行身份认证。如果经区块链网络中的矿工节点对终端设备进行身份认证,得到第一认证结果,即认证成功,那么矿工节点在区块链网络中广播第二交易信息,在区块链网络中的各节点达成共识后写入区块链。

步骤S212,区块链网络将认证结果发送至应用服务器。

区块链网络根据第二交易信息可得到应用服务器的区块链地址信息,根据应用服务器的区块链地址信息,就可将认证结果发送至应用服务器,以便应用服务器获知终端设备的身份认证是否认证成功。

根据本发明实施例提供的基于区块链的身份认证方法,应用服务器根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果,生成第一交易信息,将第一交易信息广播至区块链网络,并将第一交易信息的第一交易编号信息发送至终端设备,终端设备根据第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息,生成第二交易信息,并将第二交易信息广播至区块链网络,然后区块链网络根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。根据本发明提供的技术方案,通过区块链网络保存并验证脚本哈希值和数学变换结果,从而能够安全、便捷、准确地对终端设备进行身份认证,另外,利用区块链不可篡改的特性,还增加了身份认证的可信度。

图3示出了根据本发明一个实施例的基于区块链的身份认证系统的结构框图,如图3所示,该系统包括:终端设备310、应用服务器320和区块链网络330。

终端设备310用于:向应用服务器320发送身份认证请求。

其中,身份认证请求包括认证因子。本领域技术人员可根据实际需要将可用于认证身份的信息作为认证因子,此处不做限定。例如,认证因子可包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。

应用服务器320用于:接收身份认证请求,根据身份认证请求中的认证因子,生成第一交易信息;将第一交易信息广播至区块链网络,并将第一交易信息的第一交易编号信息发送至终端设备。

具体地,应用服务器320包括:第一接收模块321、第一处理模块322、第一生成模块323、第一广播模块324和第一发送模块325。其中,第一接收模块321用于:接收身份认证请求。第一处理模块322用于:根据身份认证请求,生成脚本信息;利用身份认证请求中的认证因子和脚本信息,得到数学变换结果;利用哈希算法计算得到脚本信息对应的脚本哈希值。第一生成模块323用于:根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果,生成第一交易信息。第一广播模块324用于:将第一交易信息广播至区块链网络。第一发送模块325用于:将第一交易信息的第一交易编号信息发送至终端设备310。

其中,应用服务器320中的第一处理模块322利用脚本信息对身份认证请求中的认证因子进行数学变化,得到数学变换结果。例如,将身份认证请求中的认证因子作为脚本信息对应的输入信息,利用脚本信息得到输出信息,所得到的输出信息即为数学变换结果。数学变化包括但不限于加运算、减运算、与运算、异或运算和哈希运算等。

由于交易信息包括交易输入信息和交易输出信息,那么应用服务器320中的第一生成模块323可将区块链的代币作为第一交易信息的交易输入信息,将脚本信息的区块链地址信息、脚本哈希值和数学变换结果作为第一交易信息的交易输出信息,从而生成第一交易信息。在第一生成模块323生成了第一交易信息之后,应用服务器320中的第一广播模块324将第一交易信息广播至区块链网络330,相当于第一广播模块324将脚本信息的区块链地址信息、脚本哈希值和数学变换结果以第一交易信息的形式广播至区块链网络。

可选地,应用服务器320还用于:利用哈希算法对第一交易信息进行计算,得到第一交易信息的第一交易编号信息。具体地,应用服务器320中的第一处理模块322利用哈希算法对第一交易信息进行计算,得到第一交易信息的第一交易编号信息。

终端设备310还用于:接收第一交易编号信息,根据第一交易编号信息和认证因子,生成第二交易信息,并将第二交易信息广播至区块链网络。

具体地,终端设备310包括:第二发送模块311、第二接收模块312、第二处理模块313、第二生成模块314和第二广播模块315。其中,第二发送模块311用于:向应用服务器320发送身份认证请求。第二接收模块312用于:接收第一交易编号信息。第二处理模块313用于:根据第一交易编号信息,获取第一交易信息;根据第一交易信息,得到脚本信息。第二生成模块314用于:根据第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息,生成第二交易信息。第二广播模块315用于:将第二交易信息广播至区块链网络330。

由于第一交易信息的第一交易编号信息为利用哈希算法对第一交易信息进行计算得到的,那么终端设备310中的第二接收模块312接收了第一交易编号信息之后,第二处理模块313根据第一交易编号信息,获取第一交易信息。由于第一交易信息是根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果生成的,那么第二处理模块313根据第一交易信息就可得到脚本信息的区块链地址信息,根据脚本信息的区块链地址信息就可得到脚本信息。

接着终端设备310中的第二生成模块314就可根据第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息,生成第二交易信息。具体地,第二生成模块314可将第一交易编号信息、脚本信息、认证因子作为第二交易信息的交易输入信息,将应用服务器的区块链地址信息作为第二交易信息的交易输出信息,从而生成第二交易信息。在第二生成模块314生成了第二交易信息之后,第二广播模块315将第二交易信息广播至区块链网络330,相当于第二广播模块315将第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息以第二交易信息的形式广播至区块链网络330。

区块链网络330用于:根据第一交易信息和第二交易信息,对终端设备310进行身份认证,得到认证结果。

其中,区块链网络330包括:第三接收模块331、第三处理模块332、第一认证模块333、第四处理模块334、第二认证模块335和结果生成模块336。

第三接收模块331用于:接收第一交易信息和第二交易信息。

第三处理模块332用于:根据第二交易信息,得到第二交易信息对应的脚本信息;利用哈希算法对第二交易信息对应的脚本信息进行计算,得到待认证脚本哈希值;根据第一交易信息,得到第一交易信息对应的脚本哈希值。

第一认证模块333用于:判断待认证脚本哈希值是否与第一交易信息对应的脚本哈希值相同。

第四处理模块334用于:若第一认证模块333判断得到待认证脚本哈希值与第一交易信息对应的脚本哈希值相同,则根据第二交易信息,得到第二交易信息对应的认证因子,并根据第二交易信息对应的认证因子和脚本信息,得到待认证数学变换结果;根据第一交易信息,得到第一交易信息对应的数学变换结果。

第二认证模块335用于:判断待认证数学变换结果是否与第一交易信息对应的数学变换结果相同。

结果生成模块336用于:若第一认证模块333判断得到待认证脚本哈希值不与第一交易信息对应的脚本哈希值相同,则得到第二认证结果;若第二认证模块335判断得到待认证数学变换结果与第一交易信息对应的数学变换结果相同,则得到第一认证结果;若第二认证模块335判断得到待认证数学变换结果不与第一交易信息对应的数学变换结果相同,则得到第二认证结果。

在本实施例中,区块链网络不仅验证脚本哈希值,还验证数学变换结果,从而能够更加全面、准确地进行身份认证,进而获得可靠的认证结果。

可选地,区块链网络330还用于将认证结果发送至应用服务器320,以便应用服务器320获知终端设备310的身份认证是否认证成功。具体地,区块链网络330可包括第三发送模块(图中未示出),第三发送模块用于将认证结果发送至应用服务器320。

根据本发明提供的基于区块链的身份认证系统,应用服务器根据脚本信息的区块链地址信息、脚本哈希值和数学变换结果,生成第一交易信息,将第一交易信息广播至区块链网络,并将第一交易信息的第一交易编号信息发送至终端设备,终端设备根据第一交易编号信息、脚本信息、认证因子和应用服务器的区块链地址信息,生成第二交易信息,并将第二交易信息广播至区块链网络,然后区块链网络根据第一交易信息和第二交易信息,对终端设备进行身份认证,得到认证结果。根据本发明提供的技术方案,通过区块链网络保存并验证脚本哈希值和数学变换结果,从而能够安全、便捷、准确地对终端设备进行身份认证,另外,利用区块链不可篡改的特性,还增加了身份认证的可信度。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应该被理解和认定为覆盖了所有这些其他变型或修改。

本领域技术人员应当理解,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。此外,本发明也不针对任何特定编程语言,应当明白,可以利用各种编程语言实现本发明描述的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

需要注意的是,尽管在上面的说明中详细描述了基于区块链的身份认证系统中的若干模块,但是这种划分仅仅是示例性的,并非是强制性的。本领域的技术人员可以理解,实际上,可以对实施例中的模块进行自适应性地改变,将实施例中的多个模块组合成一个模块,也可将一个模块划分成多个模块。

此外,尽管在附图中以特定顺序描述了本发明实施操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。可以省略某些步骤,将多个步骤合并为一个步骤执行,或者将一个步骤分成多个步骤执行。

综上所述,应用本发明所述的基于区块链的身份认证方法和系统,通过区块链网络能够安全、便捷地对终端设备进行身份认证,另外,利用区块链不可篡改的特性,还增加了身份认证的可信度。

以上对本发明的方法和具体实施方法进行了详细的介绍,并给出了相应的实施例。当然,除上述实施例外,本发明还可以有其它实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明所要保护的范围之内。

本发明公开了:

A1、一种基于区块链的身份认证方法,其特征在于,包括:

终端设备向应用服务器发送身份认证请求;其中,所述身份认证请求包括认证因子;

所述应用服务器接收所述身份认证请求,根据所述身份认证请求中的认证因子,生成第一交易信息;

所述应用服务器将所述第一交易信息广播至区块链网络;

所述应用服务器将第一交易信息的第一交易编号信息发送至所述终端设备;

所述终端设备接收所述第一交易编号信息,根据所述第一交易编号信息和所述认证因子,生成第二交易信息,并将所述第二交易信息广播至所述区块链网络;

所述区块链网络根据所述第一交易信息和所述第二交易信息,对所述终端设备进行身份认证,得到认证结果。

A2、根据A1所述的基于区块链的身份认证方法,其特征在于,所述认证因子包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。

A3、根据A1所述的基于区块链的身份认证方法,其特征在于,所述应用服务器接收所述身份认证请求,根据所述身份认证请求中的认证因子,生成第一交易信息进一步包括:

所述应用服务器接收所述身份认证请求,根据所述身份认证请求,生成脚本信息;

所述应用服务器利用所述身份认证请求中的认证因子和所述脚本信息,得到数学变换结果;

所述应用服务器利用哈希算法计算得到所述脚本信息对应的脚本哈希值;

所述应用服务器根据脚本信息的区块链地址信息、所述脚本哈希值和所述数学变换结果,生成第一交易信息。

A4、根据A1所述的基于区块链的身份认证方法,其特征在于,在所述应用服务器将第一交易信息的第一交易编号信息发送至所述终端设备之前,所述方法还包括:

所述应用服务器利用哈希算法对所述第一交易信息进行计算,得到所述第一交易信息的第一交易编号信息。

A5、根据A3所述的基于区块链的身份认证方法,其特征在于,所述终端设备接收所述第一交易编号信息,根据所述第一交易编号信息和所述认证因子,生成第二交易信息,并将所述第二交易信息广播至所述区块链网络进一步包括:

所述终端设备接收所述第一交易编号信息,根据所述第一交易编号信息,获取所述第一交易信息;

所述终端设备根据所述第一交易信息,得到所述脚本信息;

所述终端设备根据所述第一交易编号信息、所述脚本信息、所述认证因子和应用服务器的区块链地址信息,生成第二交易信息;

所述终端设备将所述第二交易信息广播至所述区块链网络。

A6、根据A5所述的基于区块链的身份认证方法,其特征在于,所述区块链网络根据所述第一交易信息和所述第二交易信息,对所述终端设备进行身份认证,得到认证结果进一步包括:

所述区块链网络根据所述第二交易信息,得到所述第二交易信息对应的脚本信息;

所述区块链网络利用哈希算法对所述第二交易信息对应的脚本信息进行计算,得到待认证脚本哈希值;

所述区块链网络根据所述第一交易信息,得到所述第一交易信息对应的脚本哈希值;

所述区块链网络判断所述待认证脚本哈希值是否与所述第一交易信息对应的脚本哈希值相同;

若所述区块链网络判断得到所述待认证脚本哈希值与所述第一交易信息对应的脚本哈希值相同,则所述区块链网络根据所述第二交易信息,得到所述第二交易信息对应的认证因子,并根据所述第二交易信息对应的认证因子和脚本信息,得到待认证数学变换结果;所述区块链网络根据所述第一交易信息,得到所述第一交易信息对应的数学变换结果;所述区块链网络判断所述待认证数学变换结果是否与所述第一交易信息对应的数学变换结果相同;若是,则所述区块链网络得到第一认证结果;若否,则所述区块链网络得到第二认证结果;

若所述区块链网络判断得到所述待认证脚本哈希值不与所述第一交易信息对应的脚本哈希值相同,则所述区块链网络得到第二认证结果。

A7、根据A1-A6任一项所述的基于区块链的身份认证方法,其特征在于,在所述区块链网络根据所述第一交易信息和所述第二交易信息,对所述终端设备进行身份认证,得到认证结果之后,所述方法还包括:

所述区块链网络将所述认证结果发送至所述应用服务器。

本发明还公开了:

B8、一种基于区块链的身份认证系统,其特征在于,包括:终端设备、应用服务器和区块链网络;其中,

所述终端设备用于:向所述应用服务器发送身份认证请求;其中,所述身份认证请求包括认证因子;

所述应用服务器用于:接收所述身份认证请求,根据所述身份认证请求中的认证因子,生成第一交易信息;将所述第一交易信息广播至区块链网络,并将第一交易信息的第一交易编号信息发送至所述终端设备;

所述终端设备进一步用于:接收所述第一交易编号信息,根据所述第一交易编号信息和所述认证因子,生成第二交易信息,并将所述第二交易信息广播至所述区块链网络;

所述区块链网络用于:根据所述第一交易信息和所述第二交易信息,对所述终端设备进行身份认证,得到认证结果。

B9、根据B8所述的基于区块链的身份认证系统,其特征在于,所述认证因子包括以下一项或多项:用户名信息、用户密码信息、设备指纹信息、动态码和行为习惯信息。

B10、根据B8所述的基于区块链的身份认证系统,其特征在于,所述应用服务器包括:第一接收模块、第一处理模块、第一生成模块、第一广播模块和第一发送模块;

所述第一接收模块用于:接收所述身份认证请求;

所述第一处理模块用于:根据所述身份认证请求,生成脚本信息;利用所述身份认证请求中的认证因子和所述脚本信息,得到数学变换结果;利用哈希算法计算得到所述脚本信息对应的脚本哈希值;

所述第一生成模块用于:根据脚本信息的区块链地址信息、所述脚本哈希值和所述数学变换结果,生成第一交易信息;

所述第一广播模块用于:将所述第一交易信息广播至区块链网络;

所述第一发送模块用于:将第一交易信息的第一交易编号信息发送至所述终端设备。

B11、根据B8所述的基于区块链的身份认证系统,其特征在于,所述应用服务器进一步用于:

利用哈希算法对所述第一交易信息进行计算,得到所述第一交易信息的第一交易编号信息。

B12、根据B10所述的基于区块链的身份认证系统,其特征在于,所述终端设备包括:第二发送模块、第二接收模块、第二处理模块、第二生成模块和第二广播模块;

所述第二发送模块用于:向所述应用服务器发送所述身份认证请求;

所述第二接收模块用于:接收所述第一交易编号信息;

所述第二处理模块用于:根据所述第一交易编号信息,获取所述第一交易信息;根据所述第一交易信息,得到所述脚本信息;

所述第二生成模块用于:根据所述第一交易编号信息、所述脚本信息、所述认证因子和应用服务器的区块链地址信息,生成第二交易信息;

所述第二广播模块用于:将所述第二交易信息广播至所述区块链网络。

B13、根据B12所述的基于区块链的身份认证系统,其特征在于,所述区块链网络包括:第三接收模块、第三处理模块、第一认证模块、第四处理模块、第二认证模块和结果生成模块;

所述第三接收模块用于:接收所述第一交易信息和所述第二交易信息;

所述第三处理模块用于:根据所述第二交易信息,得到所述第二交易信息对应的脚本信息;利用哈希算法对所述第二交易信息对应的脚本信息进行计算,得到待认证脚本哈希值;根据所述第一交易信息,得到所述第一交易信息对应的脚本哈希值;

所述第一认证模块用于:判断所述待认证脚本哈希值是否与所述第一交易信息对应的脚本哈希值相同;

所述第四处理模块用于:若所述第一认证模块判断得到所述待认证脚本哈希值与所述第一交易信息对应的脚本哈希值相同,则根据所述第二交易信息,得到所述第二交易信息对应的认证因子,并根据所述第二交易信息对应的认证因子和脚本信息,得到待认证数学变换结果;根据所述第一交易信息,得到所述第一交易信息对应的数学变换结果;

所述第二认证模块用于:判断所述待认证数学变换结果是否与所述第一交易信息对应的数学变换结果相同;

所述结果生成模块用于:若所述第一认证模块判断得到所述待认证脚本哈希值不与所述第一交易信息对应的脚本哈希值相同,则得到第二认证结果;若所述第二认证模块判断得到所述待认证数学变换结果与所述第一交易信息对应的数学变换结果相同,则得到第一认证结果;若所述第二认证模块判断得到所述待认证数学变换结果不与所述第一交易信息对应的数学变换结果相同,则得到第二认证结果。

B14、根据B8-B13任一项所述的基于区块链的身份认证系统,其特征在于,所述区块链网络进一步用于:

将所述认证结果发送至所述应用服务器。

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