CN115618399A - 基于区块链的身份认证方法、装置、电子设备和可读介质 - Google Patents
基于区块链的身份认证方法、装置、电子设备和可读介质 Download PDFInfo
- Publication number
- CN115618399A CN115618399A CN202110803029.3A CN202110803029A CN115618399A CN 115618399 A CN115618399 A CN 115618399A CN 202110803029 A CN202110803029 A CN 202110803029A CN 115618399 A CN115618399 A CN 115618399A
- Authority
- CN
- China
- Prior art keywords
- authentication
- identity
- user
- block chain
- verification information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请提供一种基于区块链的身份认证方法、装置、电子设备和可读介质。该方法包括:获取待认证用户的身份标识信息和区块链账户地址并接收业务服务器发送的针对待认证用户的验证信息;根据待认证用户的私钥对验证信息进行签名,得到签名结果;向业务服务器发送身份认证请求,身份认证请求携带区块链账户地址、签名结果和身份标识信息;接收认证客户端身份认证请求并根据身份认证请求中的区块链账户地址从区块链中获取对应的身份校验信息和公钥;根据公钥对签名结果进行解密,得到解密结果并根据验证信息和身份校验信息对解密结果和身份标识信息进行认证。该方法能够确保用于验证的信息未被篡改,防止非法用户登录系统,提升系统安全性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的身份认证方法、装置、电子设备和可读介质。
背景技术
随着计算机技术的发展,电子商务和各类业务的网络化越发普及,而为了保护用户的账户安全,各种身份认证的方式也层出补充,其中,双因子认证方案是常用的一种认证方式。
目前,在相关技术中,双因子认证在用于私有网络时,通常采用私有化本地服务器部署的方式。用户在登录时,通过账号和密码在本地服务器进行认证,然后本地服务器与双因子认证服务器通信来向用户提供认证信息,以便用户完成登录。
然而,上述方案中,用户的账户信息以及双因子认证的相关信息均存储在本地服务器中,因此本地服务器容易受到攻击到导致验证信息损坏或数据篡改等数据安全问题,从而导致非法用户利用篡改的验证信息登录系统,影响系统的安全性。
发明内容
基于上述技术问题,本申请提供一种基于区块链的身份认证方法、装置、电子设备和可读介质,以确保用于验证的信息未被篡改,从而防止非法用户登录系统,提升系统的安全性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种基于区块链的身份认证方法,包括:
认证客户端获取待认证用户的身份标识信息和区块链账户地址,并接收业务服务器发送的针对所述待认证用户的验证信息;
所述认证客户端根据所述待认证用户的私钥对所述验证信息进行签名,得到签名结果,所述私钥是所述待认证用户注册时生成的;
所述认证客户端向所述业务服务器发送身份认证请求,所述身份认证请求携带所述区块链账户地址、所述签名结果和所述身份标识信息;
所述业务服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
所述业务服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
根据本申请实施例的另一个方面,提供一种基于区块链的身份认证系统,包括认证客户端和业务服务器,所述认证客户端包括信息获取模块、签名模块和认证请求模块,所述业务服务器包括身份认证请求接收模块和身份认证模块;
其中,所述信息获取模块用于认证客户端获取待认证用户的身份标识信息和区块链账户地址,并接收业务服务器发送的针对所述待认证用户的验证信息;
所述签名模块用于所述认证客户端根据所述待认证用户的私钥对所述验证信息进行签名,得到签名结果,所述私钥是所述待认证用户注册时生成的;
所述认证请求模块用于所述认证客户端向所述业务服务器发送身份认证请求,所述身份认证请求携带所述区块链账户地址、所述签名结果和所述身份标识信息;
所述身份认证请求接收模块用于所述业务服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
所述身份认证模块用于所述业务服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
在本申请的一些实施例中,基于以上技术方案,信息获取模块包括:
账户地址获取单元,用于获取所述待认证用户的区块链账户地址;
校验码密钥获取单元,用于根据所述区块链账户地址,从所述区块链中获取对应的校验码密钥;
加密运算单元,用于根据所述校验码密钥进行加密运算,生成校验码作为所述身份标识信息。
在本申请的一些实施例中,基于以上技术方案,所述身份校验信息包括校验码密钥;所述认证客户端还包括第一认证开启模块,所述业务服务器还包括第一开启请求接收模块和第一关联存储模块;
其中,所述第一认证开启模块用于所述认证客户端向所述业务服务器发送携带所述区块链账户地址的认证开启请求;
所述第一开启请求接收模块用于所述业务服务器接收并响应所述认证客户端发送的认证开启请求,从密钥服务器获取校验码密钥作为所述身份校验信息;
所述第一关联存储模块用于所述业务服务器将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
在本申请的一些实施例中,基于以上技术方案,所述身份标识信息包括所述认证客户端生成的校验码;所述身份认证模块包括:
认证校验码生成单元,用于根据所述校验码密钥进行加密运算,生成认证校验码;
第一成功认证单元,用于若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
第一失败认证单元,用于若所述认证校验码与所述身份标识信息不一致、所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则确定对所述待认证用户的身份认证识别失败。
在本申请的一些实施例中,基于以上技术方案,身份校验信息包括生物特征;所述认证客户端还包括生物特征获取模块和第二认证开启模块,所述业务服务器还包括第二开启请求接收模块和第二关联存储模块。
所述生物特征获取模块用于所述认证客户端获取所述待认证用户的生物特征;
所述第二认证开启请求模块用于所述认证客户端向所述业务服务器发送认证开启请求,所述认证开启请求携带所述待认证用户的区块链账户地址和所述生物特征;
所述第二开启请求接收模块用于所述业务服务器接收所述认证开启请求,并获取所述认证开启请求中的生物特征作为所述身份校验信息;
所述第二关联存储模块用于所述业务服务器将所述身份校验信息和所述区块链账户地址关联存储到所述区块链中。
在本申请的一些实施例中,基于以上技术方案,所述身份标识信息包括生物特征;所述身份认证模块包括:
第二成功认证单元,用于若所述身份标识信息中的生物特征与所述身份校验信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
第二失败认证单元,用于若所述身份标识信息中的生物特征与所述身份校验信息不一致、所述解密结果与所述验证信息不一致,则确定对所述待认证用户的身份认证识别失败。
在本申请的一些实施例中,基于以上技术方案,所述认证客户端还包括注册请求模块和注册响应接收模块,所述业务服务器还包括密钥生成模块、区块链账户地址生成模块和注册响应发送模块;
其中,所述注册请求模块用于所述认证客户端向所述业务服务器发送注册请求,所述注册请求携带所述待认证用户的用户信息;
所述密钥生成模块用于所述业务服务器接收并响应所述认证客户端发送的注册请求,生成所述公钥和所述私钥;
所述区块链账户地址生成模块用于所述业务服务器根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
所述注册响应发送模块用于所述业务服务器向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址;
注册响应接收模块,用于所述认证客户端接收所述业务服务器发送的注册响应并保存所述私钥以及所述区块链账户地址。
在本申请的一些实施例中,基于以上技术方案,所述身份认证系统还包括指定服务器,所述指定服务器包括跨域请求接收模块和跨域认证模块,所述认证客户端还包括跨域请求模块;
其中,所述跨域请求模块用于所述认证客户端向指定服务器发送所述身份认证请求,所述指定服务器与所述业务服务器分别用于支持不同业务。
所述跨域请求接收模块用于所述指定服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从所述区块链中获取所述业务服务器上传的身份校验信息和所述公钥;
所述跨域认证模块用于所述指定服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
根据本申请实施例的另一个方面,提供一种基于区块链的身份认证方法,包括:
向认证客户端发送针对待认证用户的验证信息,所述验证信息用于使所述认证客户端根据所述验证信息进行身份认证;
接收所述认证客户端发送的身份认证请求,所述身份认证请求携带所述待认证用户的区块链账户地址和身份标识信息,以及根据所述待认证用户的私钥对所述验证信息进行签名得到的签名结果;
根据所述身份认证请求中的所述区块链账户地址,从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
根据本申请实施例的另一个方面,提供一种基于区块链的身份认证装置,包括:
验证信息发送模块,用于向认证客户端发送针对待认证用户的验证信息,所述验证信息用于使所述认证客户端根据所述验证信息进行身份认证;
身份认证请求接收模块,用于接收所述认证客户端发送的身份认证请求,所述身份认证请求携带所述待认证用户的区块链账户地址和身份标识信息,以及根据所述待认证用户的私钥对所述验证信息进行签名得到的签名结果;
公钥获取模块,用于根据所述身份认证请求中的所述区块链账户地址,从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
身份认证模块,用于根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
在本申请的一些实施例中,基于以上技术方案,身份认证装置还包括:
认证开启请求接收模块,用于接收认证开启请求,所述认证开启请求携带所述区块链账户地址;
校验码密钥获取模块,用于响应于所述认证开启请求,从密钥服务器获取校验码密钥;
关联存储模块,用于将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
在本申请的一些实施例中,基于以上技术方案,所述身份校验信息包括校验码密钥;身份认证模块包括:
加密运算单元,用于根据所述校验码密钥进行加密运算,生成认证校验码;
成功认证单元,用于若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
失败认证单元,用于若所述认证校验码与所述身份标识信息不一致、所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则确定对所述待认证用户的身份认证识别失败。
在本申请的一些实施例中,基于以上技术方案,身份认证装置还包括:
注册请求接收模块,用于接收所述认证客户端发送的注册请求,所述注册请求携带所述待认证用户的用户信息;
密钥生成模块,用于响应于所述注册请求,生成所述公钥和所述私钥;
区块链账户地址生成模块,用于根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
注册响应发送模块,用于向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址。
根据本申请实施例的一个方面,提供一种电子设备,该身份认证设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,该处理器配置为经由执行可执行指令来执行如以上技术方案中的基于区块链的身份认证方法。
根据本申请实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现如以上技术方案中的基于区块链的身份认证方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的身份认证方法。
在本申请的实施例中,认证客户端获取到身份标识信息、区块链账户地址以及私钥和验证信息,利用私钥对验证信息进行签名,再将身份标识信息、区块链账户地址和签名结果发送给服务器,以使业务服务器从区块链中获取身份校验信息和公钥来对认证客户端的登录请求进行校验。通过区块链中存储的数据来进行登录过程,从而能够确保用于验证的信息未被篡改,从而防止非法用户登录系统,提升系统的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在附图中:
图1示出了本申请实施例中实施场景的示意图;
图2示出了本申请实施例中的一种基于区块链的身份认证方法的流程示意图;
图3为本申请实施例中认证客户端登录界面的示意图;
图4为本申请实施例中认证客户端与业务服务器之间交互过程的示意图;
图5为本申请实施例中多机构系统架构的示意图;
图6示出了本申请实施例中区块链同步的示意图;
图7示出了本申请实施例中的一种基于区块链的身份认证方法的流程示意图;
图8示出了本申请实施例中签名验证流程的示意图;
图9是本申请实施例中基于区块链的身份认证方法的整体示意图;
图10示意性地示出了本申请实施例中身份认证装置的组成框图;
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,本申请的方案提供了一种基于区块链的身份认证方法,其属于涉及区块链(Blockchain)技术的技术范畴,可以应用于企业管理系统或者其他用于需要登录的内部系统的场景。在企业管理系统的场景中,系统通常要求用户使用多种方式来认证身份,从而确保登录用户的合法性。具体地,本申请提供的基于区块链的身份认证方法可以应用于如图1所示的企业管理系统,如图1所示,企业管理系统中包括终端设备、业务服务器以及区块链。业务服务器还与外部的第三方服务器通信,第三方服务器可以提供双因子认证服务。双因子认证可以采用动态密码、扫码、消息推送、邮件认证、指纹、人脸、虹膜、声音或者U盘证书等各类方式进行。本申请涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、掌上电脑、个人电脑、智能电视、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。服务器和终端设备的数量也不做限制。
当用户需要登录企业管理系统时,可以通过终端设备向业务服务器发起登录请求,并通过终端设备输入登录信息,业务服务器根据从区块链和第三方服务器获取的信息来验证用户输入的登录信息,从而对用户的登录请求进行认证。在一种实现方式中,用户输入的登录信息中包括账户名称、密码以及通过应用程序或者小程序等方式获得的验证码,业务服务器则从区块链获得验证信息来对账户名称和密码进行验证,并且获得第三方服务器提供的密钥来对验证码进行验证,根据验证的结果确定登录结果。另一种实现方式中,终端设备或者业务服务器直接将用户提供的验证码提供给第三方服务器,由第三方服务器来对验证码进行验证,从而与业务服务器的验证结果结合来确定登录结果。最后,业务服务器将最后的验证结果发送给终端设备,从而完成身份认证流程。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
下面结合具体实施方式对本申请提供的技术方案做出详细说明。
图2示出了本申请实施例中的一种基于区块链的身份认证方法的流程示意图,该方法可以应用于如图1中所示的系统中,由终端设备上的认证客户端和业务服务器来执行。本实施例的方法可以包括如下步骤S201至步骤S205:
步骤S201,认证客户端获取待认证用户的身份标识信息和区块链账户地址,并接收业务服务器发送的针对所述待认证用户的验证信息。
其中,身份标识信息是用于对用户的身份进行标识信息,其通常与用户唯一地对应,并且能够用于对用户进行识别。取决于进行双因子认证的具体方式,身份标识信息的具体内容不同,而获取待认证用户的身份标识信息的具体方式也可以不同。在一个实施例中,若采用面部识别的方式,则身份标识信息可以是基于用户面部图像获得的面部特征。区块链账户地址用户注册时为用户生成的信息,其用于区分各个用户账户。业务服务器是为用户提供具体业务服务的服务器,例如,用户登录的时候,则业务服务器可以是提供登录服务的服务器,在请假的时候,可以是提供流程审批管理的服务器。可以理解,一个业务服务器可以提供多个业务服务。验证信息是业务服务器在用户进行登录的时候为生成的信息,认证客户端会在进行登录时从业务服务器获取针对所述待认证用户的验证信息。具体地,用户在认证客户端上点击登录功能或者打开登录页面时,认证客户端会向业务服务器发送一个准备登录的请求,服务器则根据这个请求生成一个验证信息发送给认证客户端。可以理解的是,生成验证信息的具体时机可以不同,例如,待用户输入登录信息并且点击登录按钮时,首先向业务服务器申请验证信息,然后再进行后续过程。验证信息可以是随机生成的信息,即每次进行登录时,使用的验证信息均不同。
步骤S202,所述认证客户端根据所述待认证用户的私钥对所述验证信息进行签名,得到签名结果,所述私钥是所述待认证用户注册时生成的。
其中,私钥是由用户提供给认证客户端的信息。私钥通常以单独文件的形式来使用。用户可以将私钥文件放在预定的地址,在登录时将私钥文件的地址提供给认证客户端,认证客户端则从所获得的地址读取私钥文件并且利用其中的私钥对所获得的的验证信息进行签名。私钥和私钥对应的公钥是待认证用户注册时生成的。具体地,认证客户端在注册时候,业务服务器会为每个注册用户生成一对公钥和私钥,并且将公钥发送给用户,由用户保留,以便用户在登录时使用。
步骤S203,所述认证客户端向所述业务服务器发送身份认证请求,所述身份认证请求携带所述区块链账户地址、所述签名结果和所述身份标识信息。
其中,身份认证请求是认证客户端基于区块链账户地址、签名结果和身份标识信息生成的请求信息。在具体的实现中,认证客户端在页面上展示登录按钮,用户在完成信息输入后点击按钮,认证客户端则响应于用户的操作生成身份认证请求并且向业务服务器发送身份认证请求。为了便于介绍,请参阅图3,图3为本申请实施例中认证客户端登录界面的示意图,如图3所示,登录界面上将会提供输入区块链账户地址的输入框以及选择私钥文件的按钮。图3所示的登录页面采用了验证码作为身份标识信息,因此,图3的登录页面上还提供了输入验证码的输入框。在具体实现中,验证码可以通过其他终端设备获得,例如,通过业务服务器可以通知第三方服务器发送验证码给用户的手机,用户则通过短信或者邮件等方式获得验证码。用户还可以通过预先提供的硬件设备,例如密码令牌等密码生成设备,用户在登录时输入令牌上显示的密码作为校验码。用户在输入完所有的内容后,可以点击登录按钮开始登录过程。在一个实施例中,登录页面上还可以显示图片或者字符验证码,用户需要输入显示的验证图片中显示的文字或者数字,或者按照图片的要求进行运算或者完成拼图等方式,才可以点击登录按钮进行登录,以避免频繁发起登录而消耗过多资源。
步骤S204,所述业务服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从区块链中获取所述区块链账户地址对应的身份校验信息和公钥。
业务服务器在接收到身份认证请求之后将会根据请求中的区块链账户地址获取公钥和身份校验信息。具体地,公钥和身份校验信息可以预先存储在区块链中,并且与区块链账户地址相关联。业务服务器通过区块链账户地址来查询获得公钥和身份校验信息。
可以理解的是,身份校验信息和身份标识信息是同类信息,以便进行验证,即身份校验信息和身份标识信息通常采用相同的方式进行采集,并且采用相同的算法进行处理。例如,若为采用生物特征,则二者可以均是指纹信息或者面部信息等信息,若为验证码,则二者均是采用相同的算法获得生成的,并且所引入的参数也相同,例如采用相同的时间参数或者相同的随机因子。
步骤S205,所述业务服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
利用公钥可以对基于私钥加密的签名结果进行解密,从而将签名结果还原为验证信息。因此,将解密结果与验证信息比较,就可以确定身份认证请求中所使用的私钥与区块链账户地址所对应的公钥是否匹配,从而验证用户身份。
业务服务器会根据所述公钥和所述身份校验信息对所述签名结果和所述身份标识信息进行认证。具体地,服务器根据公钥对签名结果进行验证,以便确认用户具有合法的登录权限,并且通过身份校验信息对身份标识信息进行验证,以便确认是用户本人。具体地,对签名进行验证通常采用解密的方式进行,而对身份标识的验证可以通过比较是否一致或者进行同样的运算来查看是否能够得到相同结果的方式进行。
下面对认证客户端与业务服务器之间的交互过程进行整体介绍。为了便于介绍,请参阅图4,图4示出了本申请实施例中认证客户端与业务服务器之间交互过程的示意图。如图4所示,在正式使用前,认证客户端需要向业务服务器发送注册请求来进行注册,业务服务器则会根据注册请求生成公钥私钥以及区块链账户地址。区块链账户地址和公钥被存储到区块链,而私钥和区块链账户地址提供给认证客户端。之后,认证客户端需要向业务服务器发送认证开启请求来请求开启双因子认证服务,业务服务器则会根据用户的请求,确定用于进行双因子认证的身份校验信息并且存储到区块链中。在认证客户端需要进行验证时,需要获取身份标识信息和区块链账户地址,并且从业务服务器获取验证信息。认证客户端利用私钥对验证信息进行签名,并且把签名结果和身份标识信息添加到身份认证请求中发送给业务服务器。业务服务器会根据身份认证请求从区块链获取对应的身份校验信息和公钥,并且根据获取到的身份校验信息和公钥对身份认证请求中的签名结果和身份标识信息进行认证。最后,业务服务器将认证结果提供给认证客户端。应理解的是,图4中所示出的步骤顺序仅为示例,不代表对所示出的操作的执行顺序的限定。
在本申请的实施例中,认证客户端获取到身份标识信息、区块链账户地址以及私钥和验证信息,利用私钥对验证信息进行签名,再将身份标识信息、区块链账户地址和签名结果发送给服务器,以使服务器从区块链中获取身份校验信息和公钥来对认证客户端的登录请求进行校验。通过区块链中存储的数据来进行登录过程,从而能够确保用于验证的信息未被篡改,从而防止非法用户登录系统,提升系统的安全性。
在本申请的一个实施例中,双因子验证可以一次性密码(One Time Password,OTP)的方式进行。对此,基于上述的技术方案,身份校验信息包括校验码密钥,并且上述步骤S201,所述认证客户端获取待认证用户的身份标识信息和区块链账户地址,包括:
所述认证客户端获取所述待认证用户的区块链账户地址;
所述认证客户端根据所述区块链账户地址,从所述区块链中获取对应的校验码密钥;
所述认证客户端根据所述校验码密钥进行加密运算,生成校验码作为所述身份标识信息。
在本实施例中,对于用户的双因子认证采用公钥私钥与OTP相结合的方式进行。具体地,在用户注册之后,会申请开启OPT认证。在开启过程中,业务服务器将会通过第三方OTP服务器或者本地部署的OTP服务等方式来为用户生成校验码密钥并且与区块链账户地址相关联地存储在区块链中。认证客户端首先从用户输入信息中获取从区块链中待认证用户的区块链账户地址,例如,通过用户在登录页面上的输入框中输入区块链账户地址。随后认证客户端根据所获得的区块链账户地址,从区块链中获取对应的校验码密钥,例如通过业务服务器从区块链查询到校验码密钥。校验码密钥即OTP服务器所生成的OTP密钥,或者对OTP密钥进行进一步的转码等操作获得的信息。例如,可以对OTP密钥进行base64编码,从而得到一个64为的编码作为校验码密钥。随后,认证客户端会根据校验码密钥进行加密运算,生成校验码作为身份标识信息。具体地,该校验码可以是6位校验码或者8为校验码。在具体的实现中,基于校验码密钥进行加密运算的过程可以与具体获取校验码的过程分离。获取待认证用户的身份标识信息的过程具体可以是服务器将校验码密钥以二维码等形式发送给认证客户端,认证客户端则通过扫码或者读取文件等方式将校验码密钥保存到本地应用。在用户需要输入校验码时,可以打开本地应用,则本地应用会根据校验码密钥进行加密运算,生成校验码显示给用户作为身份标识信息。生成校验码的过程中,可以引入时间参数或者其他随机因子,以便确保每次生成的验证码不同,并且验证码的生成过程可以是按照时间循环进行,例如,每分钟生成一次,从而避免验证码被盗用或者劫持。
在本申请的实施例中,根据区块链账户地址获取校验码密钥,并且根据校验码密钥进一步生成校验码作为身份标识信息,由于生成验证码的所需要信息基于区块链进行存储,从而能够保证数据的可靠性并且无法进行篡改,提高信息安全。
在本申请的一个实施例中,用户需要先申请开启双因子认证,在登录时才会进行此认证。对此,基于上述的技术方案,所述身份校验信息包括校验码密钥;在上述步骤S203,所述认证客户端向所述业务服务器发送身份认证请求之前,所述方法还包括:
所述认证客户端向所述业务服务器发送携带所述区块链账户地址的认证开启请求;
所述业务服务器接收并响应所述认证客户端发送的认证开启请求,从密钥服务器获取校验码密钥作为所述身份校验信息;
所述业务服务器将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
具体地,用户可以在认证客户端上向业务服务器申请开启双因子认证,例如,认证客户端可以提供相应的页面来启动进行申请。认证客户端则会向业务服务器发送携带所述区块链账户地址的认证开启请求。业务服务器则会响应于认证开启请求获取针对区块链账户地址的校验码密钥。具体地,业务服务器可以向提供OTP服务的第三方服务器发送密钥生成的指令,而第三方服务器则生成响应的校验码密钥。该校验码密钥可以是基于区块链账户地址生成的,或者是随机生成的。第三方服务器将生成的校验码密钥发送给业务服务器,业务服务器则将校验码密钥与区块链账户地址绑定存储到区块链中。
可以理解的是,区块链通常由多个节点形成,业务服务器会将校验码密钥与区块链账户地址绑定存储到其中一个节点中,而节点之间则会自动进行数据同步,从而确保数据被分布式存储在区块链中。
在存储到区块链后,业务服务器会通知认证客户端开启成功,认证客户端则在接收到通知后向用户展示开启结果。在一个实施例中,业务服务器还会将校验码密钥发送到认证客户端,认证客户端向用户展示校验码密钥,以便认证客户端存储校验码密钥来生成登录时所需的验证码作为身份标识信息。
在本实施例中,用户需要向业务服务器申请开启认证,以便获取进行登录所需要的校验码密钥,从而能够允许用户按照自身需求来确定是否需要进行,提升方案的灵活性。
在本申请的一个实施例中,业务服务器基于校验码密钥来对身份。对此,在上述步骤S205,根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证,包括:
根据所述校验码密钥进行加密运算,生成认证校验码;
若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则向所述认证客户端发送登录成功响应;
若所述认证校验码与所述身份标识信息不一致、或者所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则向所述认证客户端发送登录失败响应。
具体地,加密运算可以采用基于时间基数的方式,或者其他基于OTP来获取验证码的方式。业务服务器根据校验码密钥进行加密运算,生成认证校验码。认证校验码通常是6位或8位验证码,并且该认证校验码的生成方式与服务器端生成身份标识信息的方式完全一致,即采用相同的算法并且采用相同的算法参数。
随后业务服务器将所生成的认证校验码与认证客户端提供的身份标识信息相比较。若认证校验码与身份标识信息一致,并且解密结果与验证信息一致,则表示对用户的动态认证和静态认证均成功,则可以认为用户登录成功,因此向认证客户端发送登录成功响应。若所述认证校验码与所述身份标识信息不一致则表示动态验证失败,用户提供的验证码与服务器生成的不一致,若所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则表示静态验证失败,用户使用的私钥与服务器拥有的公钥匹配,因此任一种情况均可以确定用户登录失败,因此向认证客户端发送登录失败响应。
在本申请的实施例中,业务服务器基于校验码的方式对用户提供的登录信息进行验证,验证过程采用了两组信息进行确认,并且两组信息之间相互独立,由于增加了验证信息的难度,从而能够提高登录的安全性。
在本申请的一个实施例中,双因子认证还可以采用生物特征的方式,用户则需要进行申请开启此认证以便在登录时进行认证。对此,基于上述的技术方案,身份校验信息包括生物特征,并且所述方法还包括:
所述认证客户端获取所述待认证用户的生物特征;
所述认证客户端向所述业务服务器发送认证开启请求,所述认证开启请求携带所述待认证用户的区块链账户地址和所述生物特征;
所述业务服务器接收所述认证开启请求,并获取所述认证开启请求中的生物特征作为所述身份校验信息;
所述业务服务器将所述身份校验信息和所述区块链账户地址关联存储到所述区块链中。
具体地,生物特征可以是面部特征、指纹特征、声纹特征或者虹膜特征等根据人体的生物特性确定的特征。认证客户端获取待认证用户的生物特征的方式可以是通过专用设备来提取生物特征信息并传送给认证客户端,或者通过认证客户端的硬件设备内置的装置来获取生物特征信息,例如指纹识别或者面部识别。
在获取到生物特征后,认证客户端则生成认证开启请求,认证开启请求携带待认证用户的区块链账户地址和所述生物特征,并且向业务服务器发送该请求。业务服务器在接收到该请求之后,会将区块链账户地址和生物特征绑定存储到区块链中。区块链中存储的生物特征将用作身份校验信息,并且与认证客户端在登录过程中提交的身份识别信息进行比对,以便进行身份认证。
在本实施例中,认证客户端首先获取到用户的生物特征,并且利用生物特征开启双因子认证,提供了进行开启认证的具体方式,提升方案的可操作性。
在本申请的一个实施例中,业务服务器可以基于生物特征的认证方式来对身份认证请求进行校验。对此,所述身份标识信息包括生物特征,并且在上述步骤S205,根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证,包括:
若所述身份标识信息中的生物特征与所述身份校验信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
若所述身份标识信息中的生物特征与所述身份校验信息不一致、所述解密结果与所述验证信息不一致,则确定对所述待认证用户的身份认证识别失败。
具体地,服务器需要比较认证客户端提供的身份标识信息中的生物特征与身份校验信息是否一致。身份校验信息是用户在开启认证服务时提供的信息。身份标识信息与身份校验信息采用相同的方式提取同类的信息,以便进行验证。若生物特征与身份校验信息一致,并且解密结果与验证信息一致,则可以理解为用户提供的指纹或者面部信息与开启认证服务时的一致,并且提供的私钥也与服务器的公钥匹配,从而可以确定用户登录成功,服务器则向认证客户端发送登录成功响应。若生物特征与身份校验信息不一致,或者解密结果与验证信息不一致,则表示用户的生物特征可能与开启认证服务时提供的不同,或者用户使用的私钥与服务器的公钥不匹配,从而可以确定用户身份存在问题,因此业务服务器向认证客户端发送登录失败响应。
在本实施例中,业务服务器利用生物特征对认证客户端的身份认证请求进行双因子认证,提供了进行基于生物特征的双因子认证的具体方式,提升方案的可实施性。
在本申请的一个实施例中,用户在登录系统之前需要先进行注册。对此,基于上述的技术方案,所述方法还包括:
所述认证客户端向所述业务服务器发送注册请求,所述注册请求携带所述待认证用户的用户信息;
所述业务服务器接收并响应所述认证客户端发送的注册请求,生成所述公钥和所述私钥;
所述业务服务器根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
所述业务服务器向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址;
所述认证客户端接收所述业务服务器发送的注册响应并保存所述私钥以及所述区块链账户地址。
具体地,认证客户端获取待认证用户的用户信息的方式通常是提供预设的页面以便用户填写,或者,认证客户端可以从文件中读取相关信息或者从用户提供的信息中提取相关的信息作为用户信息。用户信息通常包括用户名称等相关信息,以及与业务管理相关的信息,例如用户所属的部门和职位等信息。
认证客户端会基于用户信息生成注册请求并且向业务服务器发送该注册请求。业务服务器在接收到认证客户端的注册请求后,会为该用户生成公钥和私钥对。可以理解的是,各个用户的公钥和私钥对是唯一的。公钥和私钥生成的具体方式支持国密和非国密两种。用户可以在注册时候进行选择,选择国密,则采用ECC算法生成公钥和私钥,选择非国密则采用SM2算法。在生成公钥之后,业务服务器会根据所生成的公钥来计算用户的区块链账户地址。区块链账户地址的形式通常与区块链中记录账户的格式相关,例如,区块链中的账户地址为60个字节,则业务服务器计算得到的区块链账户地址也采取60个字节的格式。服务器会将区块链账户地址和公钥绑定存储的到区块链中。
最后,业务服务器将携带私钥和区块链账户地址的注册相应发送给认证客户端。认证客户端则接收业务服务器发送的注册响应,并且根据注册响应将区块链地址显示给用户,并且将私钥文件存储到认证客户端的终端设备中,以便于用户后续登录使用。
在本申请的实施例中,用户向业务服务器发送携带用户信息的注册请求,并且从业务服务器接收服务器生成的区块链账户地址和私钥,采用公钥私钥作为用户认证的方式,能够确保用户进行登录所用的信息的唯一性,避免用户被利用其它公开信息撞库攻击的可能性,从而提高方案的安全性。
在本申请的一个实施例中,用户可以采用跨域进行登录和访问。对此,基于上述的技术方案,所述认证客户端向指定服务器发送所述身份认证请求,所述指定服务器与所述业务服务器分别用于支持不同业务;
所述指定服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从所述区块链中获取所述业务服务器上传的身份校验信息和所述公钥;
所述指定服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
在本实施例中,多个业务服务器可以共用相同的区块链,从而允许用户进行跨域登录。具体地,区块链可以采用联盟链的方式,多个业务服务器的区块链服务器处于同一个区块链网络中,并且相互通信。因此,认证客户端可以向所述指定服务器发送所述身份认证请求,其主要内容与发送给业务服务器的内容相同,并且指定服务器对于身份认证请求所进行的操作也基本相同。需要强调的是,指定服务器获取身份校验信息和公钥的信息源是与业务服务器相同的同一个区块链,所获取的信息为业务服务器上传的信息,但具体地不一定是同一台物理服务器。
具体地,为了便于介绍,请参阅图5,图5为本申请实施例中多机构系统架构的示意图。如图5所示,机构A和机构B分别具有各自的业务服务器,但共用相同的区块链。用户可以在机构A进行注册,机构A的业务服务器将用户的注册信息上链后。区块链服务器之间会进行信息同步,从而将信息同步到机构B的区块链服务器中。因此,用户在机构B的系统中可以不用进行注册而直接进行登录。区块链服务器之间进行同步的方式请参阅图6,图6示出了本申请实施例中区块链同步的示意图。区块链中的每个节点会维护自身的状态,并且会向区块链中的其他节点定时广播表示自身状态的状态序列。如图6所示,区块链节点B会向区块链中的其他节点广播状态序列。区块链节点A在接收到状态序列之后判断区块链节点B是否发生了变化。在确定发生区块链节点B的信息变化之后,区块链节点A会向区块链节点B发起同步请求,并且从区块链节点B获取更新的状态和状态序列,并且更新区块链节点A的本地信息,从而完成数据同步。
在本申请的实施例中,通过区块链共享信息,从而允许用户进行跨域登录,避免用户在多个系统上反复进行注册,从而降低用户的操作量,提升系统使用效率和用户体验。
下面请参阅图7,图7示出了本申请实施例中的一种基于区块链的身份认证方法的流程示意图,本实施例的方法可以应用于如上文所描述的业务服务器中,由业务服务器上的服务程序来执行。本实施例的方法可以包括如下步骤S701至步骤S704:
步骤S701,向认证客户端发送针对待认证用户的验证信息,所述验证信息用于使所述认证客户端根据所述验证信息进行身份认证。
其中,认证客户端首先可以向业务服务器发送获取验证信息的请求,业务服务器则生成针对待验证用户的验证信息并且发送给认证客户端。具体地,验证信息可以是随机生成的一串字符或数字的组合。
步骤S702,接收所述认证客户端发送的身份认证请求,所述身份认证请求携带所述待认证用户的区块链账户地址和身份标识信息,以及根据所述待认证用户的私钥对所述验证信息进行签名得到的签名结果。
步骤S703,根据所述身份认证请求中的所述区块链账户地址,从区块链中获取所述区块链账户地址对应的身份校验信息和公钥。
其中,区块链通常部署在另外的区块链服务器上。业务服务器将所接收到的区块链账户地址发送给区块链服务器以查询向对应的信息,区块链服务器则返回与该区款链账户地址绑定的公钥,该公钥与认证客户端进行签名的私钥向匹配。
步骤S704,根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
具体地,利用公钥可以对基于私钥加密的签名结果进行解密,从而将签名结果还原为验证信息。因此,将解密结果与验证信息比较,就可以确定身份认证请求中所使用的私钥与区块链账户地址所对应的公钥是否匹配,从而验证用户身份。为了便于介绍,请参阅图8,图8示出了本申请实施例中签名验证流程的示意图。如图8所示,用户在步骤801中访问登录页面,然后在步骤802中,用户在登录页面上选择要使用的私钥文件并且输入区块链账户地址和通过应用或者短信等方式获取的验证信息。随后,在步骤803中,认证客户端利用私钥对验证信息进行签名,并且将签名结果和区块链账户地址发送给业务服务器。业务服务器在步骤804中根据区块链账户地址查询公钥,并且利用查询到的公钥校验签名结果。最后,业务服务器在步骤805中根据校验的结果来确定签名验证结果。可以看到的是,验证信息分别用于认证客户端的签名以及最后进行验证比较,从而确定认证客户端的私钥与服务器的公钥相匹配。
身份校验信息和身份标识信息是同类信息,业务服务器通过比较二者是否一致来对用户的身份进行二次确定,其内容和获取方式与上文针对于认证客户端侧描述内容相同,此处不再赘述。
在本申请的实施例中,服务器接收认证客户端发送的身份认证请求,并且根据身份认证请求中区块链账户地址从区块链中获取身份校验信息和公钥来对认证客户端的登录请求进行校验。通过区块链中存储的数据来进行登录过程,从而能够确保用于验证的信息未被篡改,从而防止非法用户登录系统,提升系统的安全性。
在本申请的一个实施例中,业务服务器需要响应于认证客户端的请求来为用户开启双因子认证。对此,在上述步骤S702,接收所述认证客户端发送的身份认证请求之前,所述方法还包括:
接收所述认证客户端发送的认证开启请求,所述认证开启请求携带所述区块链账户地址;
响应于所述认证开启请求,从密钥服务器获取校验码密钥;
将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
具体地,在本实施例中,认证开启请求是用于开启基于OTP的验证请求。业务服务器从认证客户端接收认证开启请求,认证开启请求携带区块链账户地址。可以理解的是,在认证客户端发送认证开启请求之前,需要首先通过本申请介绍的公钥和私钥的方式进行登录,才可以进行认证开启请求。
业务服务器响应于认证开启请求,从密钥服务器获取校验码密钥。具体地,密钥服务器可以是第三方提供的OTP密钥服务器。业务服务器向OTP密钥服务器发送密钥请求,由OTP密钥服务器生成OTP密钥发送给业务服务器。业务服务器则将接收到的OTP密钥作为校验码密钥。
最后,业务服务器将校验码密钥与区块链账户地址绑定并且存储到区块链中,以用于后续的认证过程,并且通知认证客户端认证开启完成。在一个实施例中,业务服务器会向认证客户端发送所获得OTP密钥,而用户可以使用应用程序来读取获得的OTP密钥。应用程序按照预定的时间间隔生成校验码,来用于进行登录验证。
在本申请实施例中,业务服务器根据认证客户端的请求开启认证,从而允许针对不同用户采用不同的验证方式,有利于对用户的安全进行分级管理,从而提升安全管理效率。
在本申请的一个实施例中,业务服务器基于校验码密钥来对身份。对此,所述身份校验信息包括校验码密钥;在上述步骤S704,根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证,包括:
若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
若所述认证校验码与所述身份标识信息不一致、所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则确定对所述待认证用户的身份认证识别失败。
具体地,加密运算可以采用基于时间基数的方式,或者其他基于OTP来获取验证码的方式。业务服务器根据校验码密钥进行加密运算,生成认证校验码。认证校验码通常是6位或8位验证码,并且该认证校验码的生成方式与服务器端生成身份标识信息的方式完全一致,即采用相同的算法并且采用相同的算法参数。
随后业务服务器将所生成的认证校验码与认证客户端提供的身份标识信息相比较。若认证校验码与身份标识信息一致,并且解密结果与验证信息一致,则表示对用户的动态认证和静态认证均成功,则可以认为用户登录成功,因此向认证客户端发送登录成功响应。若所述认证校验码与所述身份标识信息不一致则表示动态验证失败,用户提供的验证码与服务器生成的不一致,若所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则表示静态验证失败,用户使用的私钥与服务器拥有的公钥匹配,因此任一种情况均可以确定用户登录失败,因此向认证客户端发送登录失败响应。
在本申请的实施例中,业务服务器基于校验码的方式对用户提供的登录信息进行验证,验证过程采用了两组信息进行确认,并且两组信息之间相互独立,由于增加了验证信息的难度,从而能够提高登录的安全性。
在本申请的一个实施例中,业务服务器可以按照认证客户端请求来为用户开启基于生物特征的认证方式。对此,所述身份标识信息包括生物特征;在上述步骤S702,接收所述认证客户端发送的身份认证请求之前,所述方法还包括:
接收所述认证客户端发送的认证开启请求,所述认证开启请求携带所述区块链账户地址和所述生物特征;
获取所述认证开启请求中的生物特征作为所述身份校验信息;
将所述身份校验信息和所述区块链账户地址关联存储到所述区块链中。
具体地,认证客户端向业务服务器发送认证开启请求,其中携带有区块链账户地址和所述生物特征。生物特征可以是用户的指纹信息或者面部信息。生物特征可以是由认证客户端侧的设备进行过处理的信息,例如读取到的指纹或者面部特征码,也可以是原始信息,由服务器来进行处理,例如原始的面部图片。业务服务器会将所述身份校验信息和所述区块链账户地址关联存储到所述区块链中,以便后续在认证过程中使用。
在一个实施例中,业务服务器可以采用第三方提供的生物特征数据库来进行验证。业务服务器通过将认证客户端提供的原始的生物特征发送给第三方服务器,由第三方服务器对生物特征进行处理并且返回结果,业务服务器将返回的结果作为身份校验信息。例如,服务器将面部图片发送给第三方服务器,服务器则返回面部图片对应的特征码,各个面部的具有不同的特征码,以此作为身份校验信息。在进行认证时,同样需要提供面部图片给第三方服务器,根据获得的特征码与区块链中存储的特征码的匹配结果来进行验证。
在本实施例中,业务服务器利用生物特征为认证客户端开启双因子认证,提供了进行开启认证的具体方式,提升方案的可操作性。
在本申请的一个实施例中,业务服务器可以基于生物特征的认证方式来对身份认证请求进行校验。对此,身份标识信息和所述身份校验信息均包括生物特征,并且在上述步骤S704,根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证,包括:
若所述身份标识信息中的生物特征与所述身份校验信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
若所述身份标识信息中的生物特征与所述身份校验信息不一致、所述解密结果与所述验证信息不一致,则确定对所述待认证用户的身份认证识别失败。
具体地,服务器需要比较认证客户端提供的身份标识信息中的生物特征与身份校验信息是否一致。身份校验信息是用户在开启认证服务时提供的信息。身份标识信息与身份校验信息采用相同的方式提取同类的信息,以便进行验证。若生物特征与身份校验信息一致,并且解密结果与验证信息一致,则可以理解为用户提供的指纹或者面部信息与开启认证服务时的一致,并且提供的私钥也与服务器的公钥匹配,从而可以确定用户登录成功,服务器则向认证客户端发送登录成功响应。若生物特征与身份校验信息不一致,或者解密结果与验证信息不一致,则表示用户的生物特征可能与开启认证服务时提供的不同,或者用户使用的私钥与服务器的公钥不匹配,从而可以确定用户身份存在问题,因此业务服务器向认证客户端发送登录失败响应。
在本实施例中,业务服务器利用生物特征对认证客户端的身份认证请求进行双因子认证,提供了进行基于生物特征的双因子认证的具体方式,提升方案的可实施性。
在本申请的一个实施例中,业务服务器会处理用户的注册请求,以便用户登记信息。对此,基于上述技术方案,方法还包括:
接收所述认证客户端发送的注册请求,所述注册请求携带所述待认证用户的用户信息;
响应于所述注册请求,生成所述公钥和所述私钥;
根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址。
具体地,认证客户端将用户填写的用户信息发送给业务服务器。业务服务器则接收认证客户端发送的注册请求,注册请求携带所述用户信息。随后,业务服务器将用户信息整理成系统存储的格式并且响应于认证客户端的注册请求,为用户生成公钥和私钥,具体生成的方式如上文介绍,此处不再赘述。在生成公钥后,业务服务器会基于公钥进行哈希计算,并且将计算结果的后20个字节的16进制表示作为区块链账户地址,每个字节通常需要两个16进制数表示,因此区块链账户地址长度为40个字节。可以立即的是,从计算结果中取出的字节个数以及区块链账户地址的长度可以根据区块链中账户的长度而调整,此处对于具体数量不做限制,只要所生成的区块链账户地址的可以直接应用于区块链中而不需要进一步进行换算或者补位来调整长度即可。
业务服务器会将所生成的区块链账户地址与公钥绑定存储到区块连中,并且会向认证客户端发送注册响应消息,注册响应携带私钥以及区块链账户地址,以便于用户在后续的登录过程中使用。
在本申请的实施例中,业务服务器在用户注册的过程中为用户生成公钥和私钥来用于进行认证,由于不需要用户人为设定账户名和密码,而由服务器生成,从而能够确保用户进行登录所用的信息的公钥和私钥的唯一性,避免用户账户被利用其它公开信息撞库攻击的可能性,从而提高方案的安全性。
本申请实施例的整体流程可以参阅图9。图9是本申请实施例中基于区块链的身份认证方法的整体示意图。如图9所示,方案主要分为三个部分,分别为注册流程、认证流程和登录流程。注册流程和登录流程主要涉及认证客户端、业务服务器和区块链节点,认证流程还进一步涉及第三方服务器。注册流程主要内容包括进行注册,服务器为用户生成公钥私钥和区块链账户地址,将公钥和区块链账户地址上链存储并且将私钥和区块链账户地址提供给用户。认证过程主要包括业务服务器获取第三方服务器提供的OTP密钥,并且将OTP密钥和区块链账户地址绑定上链进行存储。登录过程则主要包括用户使用私钥和基于OTP密钥生成的验证码进行登录请求,服务器则根据区块链中获取的公钥和身份验证信息进行解码并比对来确认用户是否能够登录的过程。关于各个过程的具体内容与上述各个实施例中介绍的内容相同,此处不再赘述。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施,可以用于执行本申请上述实施例中的基于区块链的身份认证方法。图10示意性地示出了本申请实施例中身份认证系统的组成框图。如图10所示,身份认证系统1000包括认证客户端和业务服务器,所述认证客户端包括信息获取模块1010、签名模块1020和认证请求模块1030,所述业务服务器包括身份认证请求接收模块1040和身份认证模块1050;
其中,所述信息获取模块1010用于认证客户端获取待认证用户的身份标识信息和区块链账户地址,并接收业务服务器发送的针对所述待认证用户的验证信息;
所述签名模块1020用于所述认证客户端根据所述待认证用户的私钥对所述验证信息进行签名,得到签名结果,所述私钥是所述待认证用户注册时生成的;
所述认证请求模块1030用于所述认证客户端向所述业务服务器发送身份认证请求,所述身份认证请求携带所述区块链账户地址、所述签名结果和所述身份标识信息;
所述身份认证请求接收模块1040用于所述业务服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
所述身份认证模块1050用于所述业务服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
在本申请的一些实施例中,基于以上技术方案,信息获取模块1010包括:
账户地址获取单元,用于获取所述待认证用户的区块链账户地址;
校验码密钥获取单元,用于根据所述区块链账户地址,从所述区块链中获取对应的校验码密钥;
加密运算单元,用于根据所述校验码密钥进行加密运算,生成校验码作为所述身份标识信息。
在本申请的一些实施例中,基于以上技术方案,所述身份校验信息包括校验码密钥;所述认证客户端还包括第一认证开启模块,所述业务服务器还包括第一开启请求接收模块和第一关联存储模块;
其中,所述第一认证开启模块用于所述认证客户端向所述业务服务器发送携带所述区块链账户地址的认证开启请求;
所述第一开启请求接收模块用于所述业务服务器接收并响应所述认证客户端发送的认证开启请求,从密钥服务器获取校验码密钥作为所述身份校验信息;
所述第一关联存储模块用于所述业务服务器将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
在本申请的一些实施例中,基于以上技术方案,所述身份标识信息包括所述认证客户端生成的校验码;所述身份认证模块1050包括:
认证校验码生成单元,用于根据所述校验码密钥进行加密运算,生成认证校验码;
第一成功认证单元,用于若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
第一失败认证单元,用于若所述认证校验码与所述身份标识信息不一致、所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则确定对所述待认证用户的身份认证识别失败。
在本申请的一些实施例中,基于以上技术方案,身份校验信息包括生物特征;所述认证客户端还包括生物特征获取模块和第二认证开启模块,所述业务服务器还包括第二开启请求接收模块和第二关联存储模块;
所述生物特征获取模块用于所述认证客户端获取所述待认证用户的生物特征;
所述第二认证开启请求模块用于所述认证客户端向所述业务服务器发送认证开启请求,所述认证开启请求携带所述待认证用户的区块链账户地址和所述生物特征;
所述第二开启请求接收模块用于所述业务服务器接收所述认证开启请求,并获取所述认证开启请求中的生物特征作为所述身份校验信息;
所述第二关联存储模块用于所述业务服务器将所述身份校验信息和所述区块链账户地址关联存储到所述区块链中。
在本申请的一些实施例中,基于以上技术方案,所述身份标识信息包括生物特征;所述身份认证模块1050包括:
第二成功认证单元,用于若所述身份标识信息中的生物特征与所述身份校验信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
第二失败认证单元,用于若所述身份标识信息中的生物特征与所述身份校验信息不一致、所述解密结果与所述验证信息不一致,则确定对所述待认证用户的身份认证识别失败。
在本申请的一些实施例中,基于以上技术方案,所述认证客户端还包括注册请求模块和注册响应接收模块,所述业务服务器还包括密钥生成模块、区块链账户地址生成模块和注册响应发送模块;
其中,所述注册请求模块用于所述认证客户端向所述业务服务器发送注册请求,所述注册请求携带所述待认证用户的用户信息;
所述密钥生成模块用于所述业务服务器接收并响应所述认证客户端发送的注册请求,生成所述公钥和所述私钥;
所述区块链账户地址生成模块用于所述业务服务器根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
所述注册响应发送模块用于所述业务服务器向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址;
注册响应接收模块,用于所述认证客户端接收所述业务服务器发送的注册响应并保存所述私钥以及所述区块链账户地址。
在本申请的一些实施例中,基于以上技术方案,所述身份认证系统1000还包括指定服务器,所述指定服务器包括跨域请求接收模块和跨域认证模块,所述认证客户端还包括跨域请求模块;
其中,所述跨域请求模块用于所述认证客户端向指定服务器发送所述身份认证请求,所述指定服务器与所述业务服务器分别用于支持不同业务;
所述跨域请求接收模块用于所述指定服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从所述区块链中获取所述业务服务器上传的身份校验信息和所述公钥;
所述跨域认证模块用于所述指定服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
根据本申请实施例的另一个方面,提供一种基于区块链的身份认证装置,包括:
验证信息发送模块,用于向认证客户端发送针对待认证用户的验证信息,所述验证信息用于使所述认证客户端根据所述验证信息进行身份认证;
身份认证请求接收模块,用于接收所述认证客户端发送的身份认证请求,所述身份认证请求携带所述待认证用户的区块链账户地址和身份标识信息,以及根据所述待认证用户的私钥对所述验证信息进行签名得到的签名结果;
公钥获取模块,用于根据所述身份认证请求中的所述区块链账户地址,从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
身份认证模块,用于根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
在本申请的一些实施例中,基于以上技术方案,身份认证装置还包括:
认证开启请求接收模块,用于接收认证开启请求,所述认证开启请求携带所述区块链账户地址;
校验码密钥获取模块,用于响应于所述认证开启请求,从密钥服务器获取校验码密钥;
关联存储模块,用于将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
在本申请的一些实施例中,基于以上技术方案,所述身份校验信息包括校验码密钥;身份认证模块包括:
加密运算单元,用于根据所述校验码密钥进行加密运算,生成认证校验码;
成功认证单元,用于若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
失败认证单元,用于若所述认证校验码与所述身份标识信息不一致、所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则确定对所述待认证用户的身份认证识别失败。
在本申请的一些实施例中,基于以上技术方案,身份认证装置还包括:
注册请求接收模块,用于接收所述认证客户端发送的注册请求,所述注册请求携带所述待认证用户的用户信息;
密钥生成模块,用于响应于所述注册请求,生成所述公钥和所述私钥;
区块链账户地址生成模块,用于根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
注册响应发送模块,用于向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址。
在本申请的一些实施例中,基于以上技术方案,身份认证装置还包括:
第二认证开启请求接收模块,用于接收认证开启请求,所述认证开启请求携带所述区块链账户地址和所述生物特征;
生物特征获取模块,用于获取所述认证开启请求中的生物特征作为所述身份校验信息;
第二关联存储模块,用于将所述身份校验信息和所述区块链账户地址关联存储到所述区块链中。
在本申请的一些实施例中,基于以上技术方案,解密模块包括:
第二成功响应单元,用于若所述身份标识信息中的生物特征与所述身份校验信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
第二失败响应单元,用于若所述身份标识信息中的生物特征与所述身份校验信息不一致、所述解密结果与所述验证信息不一致,则确定对所述待认证用户的身份认证识别失败。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(Central Processing Unit,CPU)1101,其可以根据存储在只读存储器(Read-Only Memory,ROM)1102中的程序或者从储存部分1108加载到随机访问存储器(Random Access Memory,RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有系统操作所需的各种程序和数据。CPU1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(Input/Output,I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1107;包括硬盘等的储存部分1108;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入储存部分1108。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种基于区块链的身份认证方法,其特征在于,包括:
认证客户端获取待认证用户的身份标识信息和区块链账户地址,并接收业务服务器发送的针对所述待认证用户的验证信息;
所述认证客户端根据所述待认证用户的私钥对所述验证信息进行签名,得到签名结果,所述私钥是所述待认证用户注册时生成的;
所述认证客户端向所述业务服务器发送身份认证请求,所述身份认证请求携带所述区块链账户地址、所述签名结果和所述身份标识信息;
所述业务服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
所述业务服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
2.根据权利要求1所述的方法,其特征在于,所述认证客户端获取待认证用户的身份标识信息和区块链账户地址,包括:
所述认证客户端获取所述待认证用户的区块链账户地址;
所述认证客户端根据所述区块链账户地址,从所述区块链中获取对应的校验码密钥;
所述认证客户端根据所述校验码密钥进行加密运算,生成校验码作为所述身份标识信息。
3.根据权利要求1所述的方法,其特征在于,所述身份校验信息包括校验码密钥;在所述认证客户端向所述业务服务器发送身份认证请求之前,所述方法还包括:
所述认证客户端向所述业务服务器发送携带所述区块链账户地址的认证开启请求;
所述业务服务器接收并响应所述认证客户端发送的认证开启请求,从密钥服务器获取校验码密钥作为所述身份校验信息;
所述业务服务器将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
4.根据权利要求3所述的方法,其特征在于,所述身份标识信息包括所述认证客户端生成的校验码;根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证,包括:
所述业务服务器根据所述校验码密钥进行加密运算,生成认证校验码;
若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
若所述认证校验码与所述身份标识信息不一致、所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则确定对所述待认证用户的身份认证识别失败。
5.根据权利要求1所述的方法,其特征在于,所述身份校验信息包括生物特征;所述方法还包括:
所述认证客户端获取所述待认证用户的生物特征;
所述认证客户端向所述业务服务器发送认证开启请求,所述认证开启请求携带所述待认证用户的区块链账户地址和所述生物特征;
所述业务服务器接收所述认证开启请求,并获取所述认证开启请求中的生物特征作为所述身份校验信息;
所述业务服务器将所述身份校验信息和所述区块链账户地址关联存储到所述区块链中。
6.根据权利要求5所述的方法,其特征在于,所述身份标识信息包括生物特征;根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证,包括:
若所述身份标识信息中的生物特征与所述身份校验信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
若所述身份标识信息中的生物特征与所述身份校验信息不一致、所述解密结果与所述验证信息不一致,则确定对所述待认证用户的身份认证识别失败。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述认证客户端向所述业务服务器发送注册请求,所述注册请求携带所述待认证用户的用户信息;
所述业务服务器接收并响应所述认证客户端发送的注册请求,生成所述公钥和所述私钥;
所述业务服务器根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
所述业务服务器向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址;
所述认证客户端接收所述业务服务器发送的注册响应并保存所述私钥以及所述区块链账户地址。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述认证客户端向指定服务器发送所述身份认证请求,所述指定服务器与所述业务服务器分别用于支持不同业务;
所述指定服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从所述区块链中获取所述业务服务器上传的身份校验信息和所述公钥;
所述指定服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
9.一种基于区块链的身份认证方法,其特征在于,包括:
向认证客户端发送针对待认证用户的验证信息,所述验证信息用于使所述认证客户端根据所述验证信息进行身份认证;
接收所述认证客户端发送的身份认证请求,所述身份认证请求携带所述待认证用户的区块链账户地址和身份标识信息,以及根据所述待认证用户的私钥对所述验证信息进行签名得到的签名结果;
根据所述身份认证请求中的所述区块链账户地址,从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
10.根据权利要求9所述的方法,其特征在于,所述接收所述认证客户端发送的身份认证请求之前,所述方法还包括:
接收所述认证客户端发送的认证开启请求,所述认证开启请求携带所述区块链账户地址;
响应于所述认证开启请求,从密钥服务器获取校验码密钥;
将所述校验码密钥和所述区块链账户地址关联存储到所述区块链中。
11.根据权利要求9所述的方法,其特征在于,所述身份校验信息包括校验码密钥;所述根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证,包括:
根据所述校验码密钥进行加密运算,生成认证校验码;
若所述认证校验码与所述身份标识信息一致,并且所述解密结果与所述验证信息一致,则确定对所述待认证用户的身份认证成功;
若所述认证校验码与所述身份标识信息不一致、所述解密结果与所述验证信息不一致或者所述解密结果指示解密失败,则确定对所述待认证用户的身份认证识别失败。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述认证客户端发送的注册请求,所述注册请求携带所述待认证用户的用户信息;
响应于所述注册请求,生成所述公钥和所述私钥;
根据所述公钥生成所述待认证用户的区块链账户地址,并且将所述区块链账户地址和所述公钥关联存储到所述区块链中;
向所述认证客户端发送注册响应,所述注册响应携带所述私钥以及所述区块链账户地址。
13.一种基于区块链的身份认证系统,其特征在于,包括认证客户端和业务服务器,所述认证客户端包括信息获取模块、签名模块和认证请求模块,所述业务服务器包括身份认证请求接收模块和身份认证模块;
其中,所述信息获取模块用于认证客户端获取待认证用户的身份标识信息和区块链账户地址,并接收业务服务器发送的针对所述待认证用户的验证信息;
所述签名模块用于所述认证客户端根据所述待认证用户的私钥对所述验证信息进行签名,得到签名结果,所述私钥是所述待认证用户注册时生成的;
所述认证请求模块用于所述认证客户端向所述业务服务器发送身份认证请求,所述身份认证请求携带所述区块链账户地址、所述签名结果和所述身份标识信息;
所述身份认证请求接收模块用于所述业务服务器接收所述认证客户端发送的身份认证请求,并且根据所述身份认证请求中的所述区块链账户地址从区块链中获取所述区块链账户地址对应的身份校验信息和公钥;
所述身份认证模块用于所述业务服务器根据所述公钥对所述签名结果进行解密,得到解密结果,并且根据所述验证信息和所述身份校验信息对所述解密结果和所述身份标识信息进行认证。
14.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任一项所述的基于区块链的身份认证方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的基于区块链的身份认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110803029.3A CN115618399A (zh) | 2021-07-15 | 2021-07-15 | 基于区块链的身份认证方法、装置、电子设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110803029.3A CN115618399A (zh) | 2021-07-15 | 2021-07-15 | 基于区块链的身份认证方法、装置、电子设备和可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115618399A true CN115618399A (zh) | 2023-01-17 |
Family
ID=84855198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110803029.3A Pending CN115618399A (zh) | 2021-07-15 | 2021-07-15 | 基于区块链的身份认证方法、装置、电子设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115618399A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982247A (zh) * | 2023-03-15 | 2023-04-18 | 中国信息通信研究院 | 基于区块链的账户信息查询方法和装置、设备和介质 |
CN116132071A (zh) * | 2023-04-13 | 2023-05-16 | 中国信息通信研究院 | 基于区块链的标识解析节点身份认证方法和装置 |
CN116684214A (zh) * | 2023-08-03 | 2023-09-01 | 杭州字节方舟科技有限公司 | 基于区块链的会议纪要处理方法、系统、节点设备和介质 |
CN116956255A (zh) * | 2023-09-18 | 2023-10-27 | 轩创(广州)网络科技有限公司 | 一种基于区块链的数字身份识别方法及系统 |
CN116980228A (zh) * | 2023-09-01 | 2023-10-31 | 河南省信息化集团有限公司 | 一种互联网环境下实现匿名身份登录的方法及系统 |
CN117579402A (zh) * | 2024-01-17 | 2024-02-20 | 北京大学 | 平台二次认证登录系统及方法 |
-
2021
- 2021-07-15 CN CN202110803029.3A patent/CN115618399A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115982247A (zh) * | 2023-03-15 | 2023-04-18 | 中国信息通信研究院 | 基于区块链的账户信息查询方法和装置、设备和介质 |
CN116132071A (zh) * | 2023-04-13 | 2023-05-16 | 中国信息通信研究院 | 基于区块链的标识解析节点身份认证方法和装置 |
CN116132071B (zh) * | 2023-04-13 | 2023-06-27 | 中国信息通信研究院 | 基于区块链的标识解析节点身份认证方法和装置 |
CN116684214A (zh) * | 2023-08-03 | 2023-09-01 | 杭州字节方舟科技有限公司 | 基于区块链的会议纪要处理方法、系统、节点设备和介质 |
CN116684214B (zh) * | 2023-08-03 | 2023-10-03 | 杭州字节方舟科技有限公司 | 基于区块链的会议纪要处理方法、系统、节点设备和介质 |
CN116980228A (zh) * | 2023-09-01 | 2023-10-31 | 河南省信息化集团有限公司 | 一种互联网环境下实现匿名身份登录的方法及系统 |
CN116980228B (zh) * | 2023-09-01 | 2024-03-08 | 河南省信息化集团有限公司 | 一种互联网环境下实现匿名身份登录的方法及系统 |
CN116956255A (zh) * | 2023-09-18 | 2023-10-27 | 轩创(广州)网络科技有限公司 | 一种基于区块链的数字身份识别方法及系统 |
CN116956255B (zh) * | 2023-09-18 | 2024-01-05 | 轩创(广州)网络科技有限公司 | 一种基于区块链的数字身份识别方法及系统 |
CN117579402A (zh) * | 2024-01-17 | 2024-02-20 | 北京大学 | 平台二次认证登录系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110677418B (zh) | 可信声纹认证方法、装置、电子设备及存储介质 | |
US11223614B2 (en) | Single sign on with multiple authentication factors | |
US11658961B2 (en) | Method and system for authenticated login using static or dynamic codes | |
CN115618399A (zh) | 基于区块链的身份认证方法、装置、电子设备和可读介质 | |
CN105427099B (zh) | 安全电子交易的网络认证方法 | |
US20180082050A1 (en) | Method and a system for secure login to a computer, computer network, and computer website using biometrics and a mobile computing wireless electronic communication device | |
WO2017197974A1 (zh) | 一种基于生物特征的安全认证方法、装置及电子设备 | |
US8438385B2 (en) | Method and apparatus for identity verification | |
JP2018532301A (ja) | 本人認証方法及び装置 | |
US20080215890A1 (en) | System and method for secure remote biometric authentication | |
US11556617B2 (en) | Authentication translation | |
CN111130798B (zh) | 一种请求鉴权方法及相关设备 | |
TWM623435U (zh) | 使用多安全層級驗證客戶身分與交易服務之系統 | |
KR102012262B1 (ko) | 키 관리 방법 및 fido 소프트웨어 인증장치 | |
CN111989892B (zh) | 认证系统及计算机可读取的记录介质 | |
CN114760070A (zh) | 数字证书颁发方法、数字证书颁发中心和可读存储介质 | |
CN113205342A (zh) | 基于多端支付的用户身份验证方法及装置 | |
CN116112242B (zh) | 面向电力调控系统的统一安全认证方法及系统 | |
KR102123405B1 (ko) | 보안 회원가입 및 로그인 호스팅 서비스 제공 시스템 및 그 방법 | |
CN102739398A (zh) | 网银身份认证的方法及装置 | |
US20200304601A1 (en) | Verification of data recipient | |
WO2023022584A1 (en) | System and method for decentralising digital identification | |
CN114329368A (zh) | 交易账户的管理方法、装置、计算机可读介质及电子设备 | |
CN109779411B (zh) | 基于区块链的密码锁开锁方法、装置及设备 | |
US20230360123A1 (en) | Cryptocurrency exchange platform |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40079479 Country of ref document: HK |