CN114969714A - 一种基于区块链的用户登录认证方法、装置及设备 - Google Patents

一种基于区块链的用户登录认证方法、装置及设备 Download PDF

Info

Publication number
CN114969714A
CN114969714A CN202110212247.XA CN202110212247A CN114969714A CN 114969714 A CN114969714 A CN 114969714A CN 202110212247 A CN202110212247 A CN 202110212247A CN 114969714 A CN114969714 A CN 114969714A
Authority
CN
China
Prior art keywords
user
login authentication
random number
intelligent contract
service end
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110212247.XA
Other languages
English (en)
Inventor
王伟兵
张帆
罗森
李照川
孙永超
江国福
孙源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Quality Chain Technology Co Ltd
Original Assignee
Shandong Inspur Quality Chain Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Inspur Quality Chain Technology Co Ltd filed Critical Shandong Inspur Quality Chain Technology Co Ltd
Priority to CN202110212247.XA priority Critical patent/CN114969714A/zh
Publication of CN114969714A publication Critical patent/CN114969714A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例公开了一种基于区块链的用户登录认证方法,应用于用户端,用以解决基于区块链的交互式验证方案,在进行随机数挑战和用户写链响应时软件架构复杂的问题。方法包括:根据时间戳和用户公钥,确定出可验证随机数;根据用户私钥和可验证随机数生成数字签名;根据可验证随机数、时间戳和数字签名调用预先写入的登录认证智能合约;将可验证随机数、时间戳和数字签名写入区块链节点,以便业务端的登录认证智能合约进行用户挑战事件的验证;在用户挑战事件验证通过后接收服务器端发放的访问令牌,并根据访问令牌完成用户登录认证。

Description

一种基于区块链的用户登录认证方法、装置及设备
技术领域
本说明书涉及安全认证领域,尤其涉及一种基于区块链的用户登录认证方法、装置及设备。
背景技术
在登录系统中,常见的软件实现为“用户名+口令”的方式来证明自己的身份。验证方需要事先保存用户密码,用以验证用户输入的口令是否正确,当验证正确时发放访问令牌给用户。
随着区块链的普及,在国内外基于区块链的认证实践中,一般采用的是交互式的证明方式,验证方发送一个随机数,用户利用自己的区块链私钥将该随机数写入区块链,验证方查看链上数据是否写入了正确的随机数,以及写链过程中使用的私钥与实现注册的公钥是否对应,如果两项都符合就发放给用户访问令牌。
现有的基于区块链的交互认证方式虽然保证了安全性,但是在软件实现层面比较复杂。因此,现需要一种在保证安全性的前提下,可以简化软件架构及软件的用户登录认证方法。
发明内容
本说明书一个或多个实施例提供了一种基于区块链的用户登录认证方法、装置及设备,用于解决如下技术问题:现需要一种在保证安全性的前提下,可以简化软件架构及软件的用户登录认证方法。
本说明书一个或多个实施例采用下述技术方案:
本说明书一个或多个实施例提供一种基于区块链的用户登录认证方法,应用于用户端,方法包括:
根据时间戳和用户公钥,确定出可验证随机数;
根据所述用户私钥和所述可验证随机数生成数字签名;
根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证
可选地,所述业务端的登录认证智能合约进行用户挑战事件的验证,具体包括:
所述业务端的登录认证智能合约检查所述用户公钥是否存在于预先建立的用户白名单;
所述业务端的登录认证智能合约检查所述用户的数字签名是否有效;
所述业务端的登录认证智能合约检查所述时间戳与服务器时间戳的差值是否超过预设阈值。
本说明书一个或多个实施例提供一种基于区块链的用户登录认证方法,应用于业务端,方法包括:
将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
可选地,所述通过登录认证智能合约进行用户挑战事件的验证之前,方法还包括:根据预先设定的机制关联所述用户挑战事件。
可选地,所述根据预定的机制关联所述用户挑战事件之后,方法还包括:
所述用户挑战事件经过所述业务端验证后,根据所述预先设定的机制向所述用户端发放所述访问令牌。
可选地,所述预先设定的机制为消息订阅机制。
可选地,所述向所述用户端发送访问令牌之前,所述方法还包括:根据预先设定格式与加密方式,生成所述访问令牌。
本说明书的一个或多个实施例提供的一种基于区块链的用户登录认证装置,应用于用户端,所述装置包括:
生成单元,用于根据时间戳和用户公钥,确定出可验证随机数;
所述生成单元,还用于根据所述用户私钥和所述可验证随机数生成数字签名;
调用单元,用于根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
验证单元,用于将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
接收单元,在所述用户挑战事件验证通过后接收服务器端发放访问令牌,并根据所述访问令牌完成用户登录认证。
本说明书的一个或多个实施例提供的一种基于区块链的用户登录认证装置,应用于业务端,所述装置包括:
注册单元,用于将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收单元,用于接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
发送单元,用于在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
本说明书的一个或多个实施例提供的一种基于区块链的用户登录认证设备,应用于用户端,所述设备包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
根据时间戳和用户公钥,确定出可验证随机数;
根据所述用户私钥和所述可验证随机数生成数字签名;
根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证。
本说明书的一个或多个实施例提供的一种基于区块链的用户登录认证设备,应用于业务端,所述设备包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于用户端,存储有计算机可执行指令,所述计算机可执行指令设置为:
根据时间戳和用户公钥,确定出可验证随机数;
根据所述用户私钥和所述可验证随机数生成数字签名;
根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于业务端,存储有计算机可执行指令,所述计算机可执行指令设置为:
将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
利用零知识证明的思想,用户根据时间戳和用户公钥直接自己确定出可验证随机数,并写入区块链中;通过智能合约验证后确定用户端持有对应的私钥并发放访问令牌,避免了用户端与业务端的交互验证过程,简化了交互认证过程中软件架构及软件的复杂性,降低了验证过程中可能出现的错误。同时利用智能合约以及智能合约时间机制,可以增强认证的方式。登录请求在区块链上进行留下了痕迹并且用户的区块链交易数字签名是无法伪造和无法抵赖的,可以增强用户登录的安全性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书实施例提供的一种基于区块链的用户登录认证方法,用户端的方法流程图;
图2为本说明书实施例提供的一种基于区块链的用户登录认证方法的业务端方法流程图;
图3为本说明书实施例提供的应用场景下一种基于区块链的用户登录认证的示意图;
图4为本说明书实施例提供的一种基于区块链的用户登录认证装置应用于用户端的装置内部结构示意图;
图5为本说明书实施例提供的一种基于区块链的用户登录认证装置应用于业务端的装置内部结构示意图;
图6为本说明书实施例提供的一种基于区块链的用户登录认证设备应用于用户端的设备内部结构示意图;
图7为本说明书实施例提供的一种基于区块链的用户登录认证设备应用于业务端的设备内部结构示意图;
图8为本说明书实施例提供的一种应用于用户端的非易失性计算机存储介质内部结构示意图;
图9为本申请实施例提供的一种应用于业务端的非易失性计算机存储介质内部结构示意图。
具体实施方式
本说明书实施例提供一种基于区块链的用户登录认证方法、装置及设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
登录机制主要分为登录验证、登录保持、登出三部分。常见的登录验证是指用户使用“用户+口令”来证明自己的身份,验证方实现保存有用户密码,可以验证用户输入的口令是否正确,正确后发放访问令牌给用户。区块链可以理解为是基于区块链技术形成的公共数据库。区块链中数据的存储、传输、验证等过程均基于分布式的系统结构,整个网络中不依赖一个中心节点。公共链网络中所有参与的节点都可以具有同等的权利与义务。区块链系统中的数据库采用分布式存储,任一参与节点都可以拥有一份完整的拷贝。同时,区块链技术采用非对称密码对交易进行签名,使得交易不能被伪造;同时利用哈希算法保证交易数据不能被轻易篡改,最后借助分布式系统各节点的工作量证明等共识算法形成强大的算力来抵御破坏者的攻击,保证区块链中的区块及区块内的交易数据不可篡改和不可伪造,因此具有极高的安全性。
随着区块链技术的普及和发展,越来越多的系统希望利用区块链的数据透明、不可伪造、不可抵赖、数据不可篡改的特性,实现比用户口令更高的安全认证,即让用户使用区块链私钥来证明自己的身份。在国内外基于区块链的认证实践中,一般采用的都是交互式证明方式,基于交互式的认证方式从安全性上很完美,但从软件的实现层面看其认证方式和算法使得软件架构及软件都比较复杂。
为了解决交互式用户登录认证时软件架构复杂及软件复杂的问题。本说明书提供了一种基于区块链的用户登录认证方法、装置及设备。
以下结合附图,详细说明本说明书提供的技术方案。
如图1所示,图1为本说明书一个或多个实施例提供的一种基于区块链的用户登录认证方法,应用于用户端的方法流程图。
图1中的流程可以包括以下步骤:
S101:根据时间戳和用户公钥,确定出可验证随机数。
非交互验证的基本思想是在用户端生成一个随机数,用来代替交互式验证方式中生成的随机数,减去和验证方进行交互的过程。生成可验证随机数的过程,可以利用散列函数根据时间戳和用户公钥确定出的可验证随机数。
具体地,假设可验证随机数为V,则V=HASH(时间戳T,用户公钥)得到散列函数处理后的可验证随机数。利用时间戳挑战可以有效防止时间倒签的行为,加强了对电子身份信息的安全防范,也可以为相关的争议提供有力证据。
需要说明的是,用户端的用户公钥是被服务器端提前注册到登录认证智能合约中的白名单中的,用户公钥是被公开的可被验证的。其中,时间戳可以被验证的前提是,用户端的系统时间和作为验证方的服务器端的系统时间应保持一致,其差值不能超过预设的阈值。例如,当预设阈值为5分钟时,如果用户端的系统时间和服务器端的系统时间的差值超过5分钟,那么该可验证随机数在后续的验证过程中,不能通过登录认证智能合约的验证。
S102:根据所述用户私钥和所述可验证随机数生成数字签名。
利用用户私钥进行数字签名,具体地,数字签名S=SIG(V,用户私钥)。
S103:根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约。
S104:将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证。
在本说明书一个或多个实施例中,所述业务端的登录认证智能合约进行用户挑战事件的验证,具体包括:
所述业务端的登录认证智能合约检查所述用户公钥是否存在于预先建立的用户白名单;
所述业务端的登录认证智能合约检查所述用户的数字签名是否有效;
所述业务端的登录认证智能合约检查所述时间戳与服务器时间戳的差值是否超过预设阈值。
用户公钥被服务器端提前注册于登录认证智能合约,在登录认证智能合约形成了类似于“用户表”的位于区块链链上的用户白名单。当业务端的登录认证智能合约对来自用户端的登录请求进行验证时,通过白名单中存在的公钥来验证用户公钥是否是合法的。若用户公钥不存在于登录认证智能合约的用户白名单中,则该用户端不能通过登录认证。同时,业务端的登录认证智能合约还要验证用户进行数字签名时使用的用户私钥是否与公钥相对应,若对应则数字签名通过验证,否则验证失败不能登录。业务端的登录认证智能合约在检查时间戳时,需要用到最新的区块生成时间。其中,最新的区块生成时间一般保存在区块头中,由矿工写入。对于联盟链来说,因为矿工的时间是可控的,其时间戳比较准确。而对于公有链来说,时间戳准确性较差,有的区块生成时间与真实时间相比可能误差接近两个小时,所以对于公有链可以放大时间戳的有效范围。
需要说明的是,用户公钥的挑战成功事件在登录认证智能合约进行验证之前,登录认证智能合约的挑战成功事件就关联于业务端。使得登录认证智能合约在发出挑战成功事件后,服务器端可以接收该事件从而向用户端发出访问令牌。
将可验证随机数、时间戳和数字签名写入区块链后,登录认证的验证过程在链上进行,用户的信息在区块链上留下了痕迹,并且用户的区块链交易数字签名是无法伪造和无法抵赖的。利用区块链的特性,增强了用户登录的安全性。
S105:在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证。
用户端在登录认证的身份验证过程中,当用户端的信息经过登录认证智能合约的认证后,由业务端的服务器将访问令牌返回给用户端,用户需要将此凭证信息存储在本地,当用户发起新的请求时,需要在请求头中附带此凭证信息,当业务端的服务器接收到用户请求时,会先检查请求头有无凭证,是否过期是否有效。如果凭证有效,将会放行该请求;若凭证非法过过期,则会重新返回登录认证过程重新获取新的访问令牌,进行登录认证。
上述步骤将现有的业务端服务器的随机数挑战转换为了时间戳挑战,在确保随机性和不可预测性的同时,省略了用户端和服务器端的交互步骤,由用户直接发出验证使得基于区块链的用户登录认证的实现过程变得简单和有效。
为了更好的理解本说明书提供的一种基于区块链的用户登录认证方法,接下来从业务端进行解释说明。如图2所示,为本说明书实施例提供的一种基于区块链的用户登录认证方法的业务端的方法流程图。
图2中的方法流程包括以下步骤:
S201:将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单。
业务端的身份认证服务器将允许登录的用户公钥注册到登录认证智能合约中,形成区块链上的用户白名单,用于后续的验证过程中。
S202:接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证。
在本说明书一个或多个实施例中,所述通过登录认证智能合约进行用户挑战事件的验证之前,所述方法还包括:
根据预先设定的机制关联所述用户挑战事件。
在本说明书的一个或多个实施例中,所述预先设定的机制为消息订阅机制。
业务端的身份认证服务器需要根据设定的机制,事先订阅登录认证智能合约的用户挑战事件,当用户挑战成功后,业务端的身份认证服务器基于设定的机制会接收到该用户挑战成功事件,以判断是否在本地生成访问令牌使得用户端成功通过登录认证。
需要说明的是,消息订阅机制定义了一种依赖关系,解决了主体对象与观察者之间的功能耦合,它定义对象之间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。消息访问订阅机制可以广泛的用于异步编程中,这是一种替代传统回调函数的方案。比如订阅用户挑战事件中的success事件,在用户挑战事件成功的时候,业务端的身份认证服务器可以做出相应的逻辑处理,即生成对应地访问令牌。通过利用消息访问订阅机制使得业务端无需过多的关注对象在异步运行期间的内部状态,只需要订阅事件发生点即可。
S203:在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
在本说明书的一个或多个实施例中,所述向所述用户端发送访问令牌之前,所述方法还包括:
根据预先设定格式与加密方式,生成所述访问令牌。
常用的访问令牌格式有JWT,JWT的原理是,服务器认证以后,生成一个JSON对象,发回给用户。例如返回:“姓名:张三,角色:管理员,到期时间:2021年2月19日0时0分”。在生成JSON对象后,用户端进行登录认证时都要发回这个JSON对象。业务端的身份认证服务器会根据该对象认定用户身份。其中,为了防止用户篡改数据,业务端的身份认证服务器在生成这个对象的时候,里面有一个类似数字签名的签名字段。该字段与选择的加密方式有关可以选择非对称、对称或者哈希等类型。
需要说明的是,上述访问令牌的生成过程中的签名字段需要用到一个密钥,这个密钥需要保密,并确保只有业务端的身份认证服务器知道不能泄露给用户。由于智能合约代码在链上的数据是公开的,所以无法让访问令牌生成的密钥保密,这也是不能直接用智能合约生成访问令牌的原因。
在本说明书的一个或多个实施例中,所述根据预定的机制关联所述用户挑战事件之后,所述方法还包括:
所述用户挑战事件经过所述业务端验证后,根据所述预先设定的机制向所述用户端发放所述访问令牌。
所述用户挑战事件经过所述业务端验证后,根据所述预先设定的机制向所述用户端发放所述访问令牌。
在用户挑战事件为成功事件时,业务端的身份认证服务器根据预先设定的机制将令牌发放给用户。
如图3所示为本说明书实施例提供的应用场景下一种基于区块链的用户登录认证的示意图,图3中列出了基于区块链的用户登录认证方法的整体过程。
业务端的身份认证服务器将允许登录的用户公钥,注册到登录认证智能合约中。用户端将根据用户公钥、时间戳形成的可验证随机数结合数字签名和时间戳,构成随机的不可预测的“时间戳挑战”写入区块链中,并根据上述写入链的数据调用登录认证智能合约对上述数据进行验证。在登录认证智能合约进行认证前服务器端根据预先设定的消息订阅机制,订阅了登录认证智能合约的用户挑战事件。当经过用户端的数据经过登录认证智能合约的验证后,业务端获取登录认证智能合约的用户挑战事件结果,经过验证后业务端生成访问令牌并向用户端发放,用户端接收访问令牌后即可以访问令牌为凭证实现登录。通过区块链进行的非交互式的用户登录验证方法运用了“非交互零知识证明”的方式,通过时间戳挑战的形式确保了验证挑战的随机性和不可预测性,避免了交互过程中使得软件架构复杂化的问题。
图4为本说明书实施例提供的一种基于区块链的用户登录认证装置应用于用户端的装置内部结构示意图。如图4所示,本说明书一个或多个实施例提供的一种基于区块链的用户登录认证装置,应用于用户端,所述装置包括:
生成单元401,用于根据时间戳和用户公钥,确定出可验证随机数;
所述生成单元401,还用于根据所述用户私钥和所述可验证随机数生成数字签名;
调用单元402,用于根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
验证单元403,用于将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
接收单元404,在所述用户挑战事件验证通过后接收服务器端发放访问令牌,并根据所述访问令牌完成用户登录认证。
图5为本说明书实施例提供的一种基于区块链的用户登录认证装置应用于业务端的装置内部结构示意图。如图5所示,本说明书的一个或多个实施例提供的一种基于区块链的用户登录认证装置,应用于业务端,所述装置包括:
注册单元501,用于将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收单元502,用于接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
发送单元503,用于在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
图6为本说明书实施例提供的一种基于区块链的用户登录认证设备应用于用户端的设备内部结构示意图。如图6所示,本说明书的一个或多个实施例提供的一种基于区块链的用户登录认证设备,应用于用户端,所述设备包括:至少一个处理器601;以及,
与所述至少一个处理器601通信连接的存储器602;其中,
所述存储器602存储有可被所述至少一个处理器601执行的指令,所述指令被所述至少一个处理器601执行,以使所述至少一个处理器601能够:
根据时间戳和用户公钥,确定出可验证随机数;
根据所述用户私钥和所述可验证随机数生成数字签名;
根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证。
图7为本说明书实施例提供的一种基于区块链的用户登录认证设备应用于业务端的设备内部结构示意图。如图7所示,在本说明书一个或多个实施例提供的一种基于区块链的用户登录认证设备,应用于业务端,所述设备包括:至少一个处理器701,以及,
与所述至少一个处理器701通信连接的存储器702,其中,
所述存储器702存储有可被所述至少一个处理器701执行的指令,所述指令被所述至少一个处理器701执行,以使所述至少一个处理器701能够:
将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
图8为本说明书实施例提供的一种应用于用户端的非易失性计算机存储介质内部结构示意图。如图8所示,本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于用户端,存储有计算机可执行指令801,所述计算机可执行指令801设置为:
根据时间戳和用户公钥,确定出可验证随机数;
根据所述用户私钥和所述可验证随机数生成数字签名;
根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证。
图9为本申请实施例提供的一种应用于服务器端的非易失性计算机存储介质内部结构示意图。如图9所示,本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于业务端,存储有计算机可执行指令901,所述计算机可执行指令901设置为:
将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种基于区块链的用户登录认证方法,其特征在于,应用于用户端,所述方法包括:
根据时间戳和用户公钥,确定出可验证随机数;
根据所述用户私钥和所述可验证随机数生成数字签名;
根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证。
2.根据权利要求1所述的一种基于区块链的用户登录认证方法,其特征在于,所述业务端的登录认证智能合约进行用户挑战事件的验证,具体包括:
所述业务端的登录认证智能合约检查所述用户公钥是否存在于预先建立的用户白名单;
所述业务端的登录认证智能合约检查所述用户的数字签名是否有效;
所述业务端的登录认证智能合约检查所述时间戳与服务器时间戳的差值是否超过预设阈值。
3.一种基于区块链的用户登录认证方法,其特征在于,应用于业务端,所述方法包括:
将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
4.根据权利要求3所述的基于区块链的用户登录认证方法,其特征在于,所述通过登录认证智能合约进行用户挑战事件的验证之前,所述方法还包括:
根据预先设定的机制关联所述用户挑战事件。
5.根据权利要求4所述的基于区块链的用户登录认证方法,其特征在于,所述根据预定的机制关联所述用户挑战事件之后,所述方法还包括:
所述用户挑战事件经过所述业务端验证后,根据所述预先设定的机制向所述用户端发放所述访问令牌。
6.根据权利要求4所述的基于区块链的用户登录认证方法,其特征在于,所述预先设定的机制为消息订阅机制。
7.根据权利要求3所述的基于区块链的用户登录认证方法,其特征在于,所述向所述用户端发送访问令牌之前,所述方法还包括:
根据预先设定格式与加密方式,生成所述访问令牌。
8.一种基于区块链的用户登录认证装置,其特征在于,应用于用户端,所述装置包括:
生成单元,用于根据时间戳和用户公钥,确定出可验证随机数;
所述生成单元,还用于根据所述用户私钥和所述可验证随机数生成数字签名;
调用单元,用于根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
验证单元,用于将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
接收单元,在所述用户挑战事件验证通过后接收服务器端发放访问令牌,并根据所述访问令牌完成用户登录认证。
9.一种基于区块链的用户登录认证装置,其特征在于,应用于业务端,所述装置包括:
注册单元,用于将允许登录的用户公钥注册到登录认证智能合约,形成区块链上的用户白名单;
接收单元,用于接收用户端发送的可验证随机数、时间戳和数字签名,并通过登录认证智能合约进行用户挑战事件的验证;
发送单元,用于在所述用户挑战事件验证通过后,向所述用户端发送访问令牌。
10.一种基于区块链的用户登录认证设备,其特征在于,应用于用户端,所述设备包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
根据时间戳和用户公钥,确定出可验证随机数;
根据所述用户私钥和所述可验证随机数生成数字签名;
根据所述可验证随机数、所述时间戳和所述数字签名调用预先写入的业务端的登录认证智能合约;
将所述可验证随机数、所述时间戳和所述数字签名写入区块链节点,以便所述业务端的登录认证智能合约进行用户挑战事件的验证;
在所述用户挑战事件验证通过后接收所述业务端发放的访问令牌,并根据所述访问令牌完成用户登录认证。
CN202110212247.XA 2021-02-25 2021-02-25 一种基于区块链的用户登录认证方法、装置及设备 Pending CN114969714A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110212247.XA CN114969714A (zh) 2021-02-25 2021-02-25 一种基于区块链的用户登录认证方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110212247.XA CN114969714A (zh) 2021-02-25 2021-02-25 一种基于区块链的用户登录认证方法、装置及设备

Publications (1)

Publication Number Publication Date
CN114969714A true CN114969714A (zh) 2022-08-30

Family

ID=82972775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110212247.XA Pending CN114969714A (zh) 2021-02-25 2021-02-25 一种基于区块链的用户登录认证方法、装置及设备

Country Status (1)

Country Link
CN (1) CN114969714A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226938A (zh) * 2023-05-10 2023-06-06 飞天诚信科技股份有限公司 一种通过智能合约管理事务的实现方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226938A (zh) * 2023-05-10 2023-06-06 飞天诚信科技股份有限公司 一种通过智能合约管理事务的实现方法及系统
CN116226938B (zh) * 2023-05-10 2023-08-08 飞天诚信科技股份有限公司 一种通过智能合约管理事务的实现方法及系统

Similar Documents

Publication Publication Date Title
US11651109B2 (en) Permission management method, permission verification method, and related apparatus
US20230163948A1 (en) Blockchain for general computation
US11388010B2 (en) Blockchain account migration
CN108337239B (zh) 电子设备的事件证明
CN113537984A (zh) 基于区块链的内容验证方法及装置、电子设备
KR20190105027A (ko) 데이터 공유 방법 및 데이터 공유 시스템
WO2021008453A1 (zh) 一种基于标识认证的区块链离线交易方法和系统
US20020062452A1 (en) Countering credentials copying
CN110177124B (zh) 基于区块链的身份认证方法及相关设备
CN111211909A (zh) 一种基于零知识证明的分布式认证方法
US11757884B2 (en) Method and system for controlling the release of a resource
CN109274650A (zh) 一种电子影像调阅的管理系统及方法
WO2019178763A1 (zh) 一种证书导入方法及终端
CN109508562A (zh) 基于tee的可信远程验证的方法
CN108496194A (zh) 一种验证终端合法性的方法、服务端及系统
CN113328854B (zh) 基于区块链的业务处理方法及系统
CN112101945B (zh) 一种区块链内容的监管方法及系统
CN114969714A (zh) 一种基于区块链的用户登录认证方法、装置及设备
CN113869901B (zh) 密钥生成方法、装置、计算机可读存储介质及计算机设备
CN115622812A (zh) 基于区块链智能合约的数字身份验证方法及系统
KR20230089520A (ko) 블록체인을 이용한 액세스 토큰 관리 시스템 및 방법
EP3883204B1 (en) System and method for secure generation, exchange and management of a user identity data using a blockchain
CN114978677A (zh) 资产访问控制方法、装置、电子设备和计算机可读介质
CN114936853A (zh) 基于可信执行环境的链下交易协议与交易认证方法
CN115052011B (zh) 基于区块链的信息交互方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination