身份验证方法及装置和电子设备
技术领域
本说明书实施例涉及互联网技术领域,尤其涉及一种身份验证方法及装置和电子设备。
背景技术
随着智能终端的发展和网络应用的开发,用户通过终端上安装的各种应用客户端可以对各种网络应用进行访问,例如,社交类即时通信应用,购物类应用等。在访问过程中,往往需要对用户进行身份认证,以便在身份认证通过后,允许用户使用各种应用功能。
现有技术中,在进行身份认证时,往往需要用户在认证界面输入认证密码,服务器验证输入的认证密码与用户注册时的认证密码一致时,确认用户通过身份认证。但是,认证密码往往是数字和字母的简单组合,容易被恶意第三方窃取。因此,现有身份认证方式的可靠性较差,容易造成用户信息被盗取,导致认证的安全性不高。
发明内容
本说明书实施例提供的一种身份验证方法及装置和电子设备:
根据本说明书实施例的第一方面,提供一种身份验证方法,所述方法包括:
接收所述区块链中的目标用户的节点设备发起的数据获取请求;其中,所述数据获取请求携带有所述目标用户的区块链第一地址和目标业务方的区块链第二地址,所述目标业务方为对目标用户进行身份验证的业务方;
调用执行查询的智能合约,根据所述区块链第一地址获取登记在区块链上的所述目标用户的身份信息的目标存储地址和目标数字签名;
调用执行发送的智能合约,将所获取到的目标外部存储地址和目标数字签名发送给所述区块链第二地址对应的目标业务方的节点设备,以供所述目标业务方根据所述目标数字签名对目标存储地址对应的身份信息进行校验,并根据校验结果确定身份验证结果。
根据本说明书实施例的第二方面,提供一种身份验证装置,所述装置包括:
接收单元,接收所述区块链中的目标用户的节点设备发起的数据获取请求;其中,所述数据获取请求携带有所述目标用户的区块链第一地址和目标业务方的区块链第二地址,所述目标业务方为对目标用户进行身份验证的业务方;
获取单元,调用执行查询的智能合约,根据所述区块链第一地址获取登记在区块链上的所述目标用户的身份信息的目标存储地址和目标数字签名;
验证单元,调用执行发送的智能合约,将所获取到的目标外部存储地址和目标数字签名发送给所述区块链第二地址对应的目标业务方的节点设备,以供所述目标业务方根据所述目标数字签名对目标存储地址对应的身份信息进行校验,并根据校验结果确定身份验证结果。
根据本说明书实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为上述任一项身份验证方法。
本说明书实施例,提供了一种身份验证方案,由于区块链拥有不可篡改性,因此预先登记在区块链上外部存储地址和数字签名不可更改。此时,即使外部存储的身份信息被篡改了,在用户数字签名进行哈希校验(也称完整性校验)也会失败,从而验证失败。如此,可以保证身份验证的真实可信。
附图说明
图1是本说明书一实施例提供的身份验证方法的流程图;
图2是本说明书一实施例提供的身份验证的系统架构示意图;
图3是本说明书一实施例提供的身份验证装置的硬件结构图;
图4是本说明书一实施例提供的身份验证装置的模块示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,利用区块链技术来搭建去中心化系统,并在区块链的分布式数据库中收录各种执行程序进行自动执行,已在众多的领域中广泛的进行应用。
本说明书中,旨在提供一种基于区块链技术的身份验证方案。在实现时,可以预先将用户的个人身份信息登记至区块链,并在需要进行身份验证时,将登记在区块链上的身份信息提供给业务方。
其中,区块链的运营方需要在区块链部署与上述身份验证相关的智能合约,以及在智能合约中声明业务逻辑。
区块链中的节点设备可以包括用户的节点设备、业务方的节点设备以及外部存储设备的节点设备中的至少一种。
其中,用户的节点设备,可以是指需要进行验证身份的用户的节点设备;如前所述,用户的身份信息可以预先登记在区块链。
业务方的节点设备,可以是指提供某些业务的节点设备,这样的节点设备在执行用户所需服务时需要对用户的身份信息进行验证,在身份验证通过的情况下才可以继续执行相关的业务逻辑。
外部存储设备可以是指在公网可以访问到的开放式数据服务的存储设备,存储有用户的个人身份信息的存储方,例如权威机构(如公安机关存储公民身份信息的设备)。在采用外部存储设备时,用户的身份信息实际是存储在该外部存储设备中的,并且该外部存储设备会分配一个对应用户身份信息的外部存储地址;而区块链上登记的实际为该外部存储地址。通过外部存储地址可以从外部存储设备获取对应的数据。需要说明的是,在区块链登记的是外部存储地址之外还需要登记用于进行校验的数字签名。所述数字签名是根据用户的身份信息哈希后得到的哈希(hash)值。
由于区块链拥有不可篡改性,因此预先登记在区块链上外部存储地址和数字签名不可更改。此时,即使外部存储的身份信息被篡改了,在用户数字签名进行哈希校验(也称完整性校验)也会失败,从而验证失败。如此,可以保证身份验证的真实可信。
以下结合图1所示的身份验证方法实施例加以说明,所述身份验证方法可以包括以下步骤:
步骤110:将获取到的用户的身份信息的外部地址和数字签名登记至区块链。
步骤120:接收所述区块链中的目标用户的节点设备发起的数据获取请求;其中,所述数据获取请求携带有所述目标用户的区块链第一地址和目标业务方的区块链第二地址,所述目标业务方为对目标用户进行身份验证的业务方。
步骤130:调用执行查询的智能合约,根据所述区块链第一地址获取登记在区块链上的所述目标用户的目标身份信息的外部地址和目标数字签名。
步骤140:调用执行发送的智能合约,将所获取到的目标身份信息和目标数字签名发送给所述区块链第二地址对应的目标业务方的节点设备,以供所述目标业务方根据所述目标数字签名对外部地址对应的目标身份信息进行校验,并根据校验结果确定身份验证结果。
在本说明书中描述的身份信息,可以包括用户的手机号、身份证号或者其它任意可以表示用户身份的信息。
在本说明书中描述的区块链,具体可以包括供区块链中的节点设备接入的任意类型的区块链网络。
例如,在一个场景中,所述区块链具体可以是一个由区块链服务运营商、用户、业务方、外部存储等作为节点设备组成的一个区块链网络。
在一实施例中,所述区块链可以包括联盟链或者公有链。公有链是一种彻底去中心化的区块链技术。整个区块链网络中所有节点设备均可以作为潜在的记账节点,在对区块链进行操作时,所有节点设备需要进行一次记账权竞争,胜出者才可以对区块链进行操作并同步到全网。通常,公有链需要设置一定的激励机制来促使节点设备之间的协同保证整个区块链网络运转。公有链由于上述性质,好处在于整个系统是开放的,更公平可监督。联盟链是一种不完全去中心化的区块链技术。联盟链通过设置有限的几个节点设备维护整个区块链网络,这有这几个节点设备才可以对区块链进行操作例如记账。联盟链相对中心化的性质,好处在于数据的隐私性更能得到保证,以及不需要设置额外的激励机制,缺点是不够开放。
以下以图2所示的基于区块链的身份验证的系统架构示意图,图2所示系统架构可以包括业务方、用户标识与客户端之间的映射表、用户、区块链、外部存储。
在一实施例中,外部存储设备可以批量地或者单个地将用户预先存储的身份信息的外部存储地址以及数字签名上传至区块链,并由区块链中具有记账权的节点设备登记到区块链。
在一实施例中,实现时,在目标用户访问目标业务方提供的服务时,目标业务方可以通过用户的标识发起一个用户的身份验证。
例如,在一个场景中,用户在网上办理缴纳违章罚款的业务,平台(目标业务方)可以根据登录的用户账户上绑定的手机号,发起一个驾照验证(身份验证)。在对用户的驾照验证通过的情况下,才可以允许用户缴纳罚款。
其中,用户的标识用于确定目标用户的客户端。这里的客户端与前述的节点设备在概念上存在差异,客户端可以是指用户使用的APP客户端,而节点设备可以是指客户端在区块链上的节点设备。
具体地,可以预先配置一个用户标识与客户端之间的映射表,记录有用户标识与客户端之间的映射关系。例如,根据获取到的手机号,可以查找到该手机号绑定在哪个用户客户端;进而,向该用户客户端发起一次授权请求。
在一实施例中,用户的客户端在接收到授权请求之后,可以发起一次对用户的核身。这里的核身是为了确保当前使用客户端的用户为本人。具体地,可以采用生物识别技术,例如指纹识别、人脸识别等;或者可以采用传统的密码核身,包括预设的字符密码、图案密码或者短信验证码等。
在确定当前用户为本人的情况下,需要请求用户对身份验证进行授权;防止是其他用户冒用该用户进行身份验证。例如,在客户端上弹出一个对话框,提示用户是否授权本次身份验证,在用户点击“确定”按钮后,触发授权。
在接收到用户授权的情况下,客户端可以向区块链发起一个数据获取请求。其中,所述数据获取请求携带有所述目标用户的区块链第一地址和目标业务方的区块链第二地址,所述目标业务方为对目标用户进行身份验证的业务方。
其中,所述区块链第一地址可以是指目标用户被分配到的区块链网络中的唯一的地址;所述区块链第二地址可以是指目标业务方被分配到的区块链网络中的唯一的地址。
对于区块链网络中夺取记账权的节点设备来说,针对接收到的目标用户的节点设备发起的数据获取请求之后,通过调用执行查询的智能合约,根据所述区块链第一地址获取登记在区块链上的所述目标用户的身份信息的目标外部存储地址和目标数字签名;进一步的,调用执行发送的智能合约,将所获取到的目标外部存储地址和目标数字签名发送给所述区块链第二地址对应的目标业务方的节点设备。
目标业务方在接收到目标外部存储地址和目标数字签名之后,可以通过数字签名校验目标外部存储地址的内容的完整性,如果校验通过,证明身份信息真实有效,业务方继续原有业务逻辑。
在一实施例中,所述根据所述目标数字签名对外部地址对应的目标身份信息进行校验,并根据校验结果确定身份验证结果,具体包括:
访问所述外部地址并获取目标身份信息;
根据所述目标数字签名校验所获取的目标身份信息的完整性;
在完整性校验通过的情况下,确定目标用户的身份验证通过。
其中,所述根据所述目标数字签名校验所获取的目标身份信息的完整性,具体包括:
根据哈希算法将所获取的目标身份信息转化为哈希值;
将所述哈希值与目标数字签名进行比较;
在所述哈希值与目标数字签名一致的情况下,确定完整性校验通过。
通过上述实施例,由于区块链拥有不可篡改性,因此预先登记在区块链上外部存储地址和数字签名不可更改。此时,即使外部存储的身份信息被篡改了,在用户数字签名进行哈希校验(也称完整性校验)也会失败,从而验证失败。如此,可以保证身份验证的真实可信。
与前述身份验证方法实施例相对应,本说明书还提供了身份验证装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书身份验证装置所在设备的一种硬件结构图,除了图3所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据身份验证实际功能,还可以包括其他硬件,对此不再赘述。
请参见图4,为本说明书一实施例提供的身份验证装置的模块图,所述装置对应了图1所示实施例,所述装置包括:
接收单元310,接收所述区块链中的目标用户的节点设备发起的数据获取请求;其中,所述数据获取请求携带有所述目标用户的区块链第一地址和目标业务方的区块链第二地址,所述目标业务方为对目标用户进行身份验证的业务方;
获取单元320,调用执行查询的智能合约,根据所述区块链第一地址获取登记在区块链上的所述目标用户的身份信息的目标存储地址和目标数字签名;
验证单元330,调用执行发送的智能合约,将所获取到的目标外部存储地址和目标数字签名发送给所述区块链第二地址对应的目标业务方的节点设备,以供所述目标业务方根据所述目标数字签名对目标存储地址对应的身份信息进行校验,并根据校验结果确定身份验证结果。
可选的,所述装置还包括:
登记单元,将获取到的用户的身份信息的存储地址和数字签名登记至区块链。
可选的,所述数字签名为基于设定的哈希算法将身份信息哈希后的哈希值。
可选的,所述根据所述目标数字签名对目标存储地址对应的身份信息进行校验,并根据校验结果确定身份验证结果,具体包括:
访问子单元,访问所述目标存储地址并获取目标身份信息;
校验子单元,根据所述目标数字签名校验所获取的目标身份信息;
确定子单元,在校验通过的情况下,确定目标用户的身份验证通过。
可选的,所述校验子单元,具体包括:
根据设定的哈希算法将所获取的目标身份信息转换为哈希值;
将所述哈希值与目标数字签名进行比较;
在所述哈希值与目标数字签名一致的情况下,确定校验通过。
可选的,所述区块链包括联盟链或者公有链。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图4描述了身份验证装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收所述区块链中的目标用户的节点设备发起的数据获取请求;其中,所述数据获取请求携带有所述目标用户的区块链第一地址和目标业务方的区块链第二地址,所述目标业务方为对目标用户进行身份验证的业务方;
调用执行查询的智能合约,根据所述区块链第一地址获取登记在区块链上的所述目标用户的身份信息的目标存储地址和目标数字签名;
调用执行发送的智能合约,将所获取到的目标外部存储地址和目标数字签名发送给所述区块链第二地址对应的目标业务方的节点设备,以供所述目标业务方根据所述目标数字签名对目标存储地址对应的身份信息进行校验,并根据校验结果确定身份验证结果。
可选的,还包括:
将获取到的用户的身份信息的存储地址和数字签名登记至区块链。
可选的,所述数字签名为基于设定的哈希算法将身份信息哈希后的哈希值。
可选的,所述根据所述目标数字签名对目标存储地址对应的身份信息进行校验,并根据校验结果确定身份验证结果,具体包括:
访问所述目标存储地址并获取目标身份信息;
根据所述目标数字签名校验所获取的目标身份信息;
在校验通过的情况下,确定目标用户的身份验证通过。
可选的,所述根据所述目标数字签名校验所获取的目标身份信息,具体包括:
根据设定的哈希算法将所获取的目标身份信息转换为哈希值;
将所述哈希值与目标数字签名进行比较;
在所述哈希值与目标数字签名一致的情况下,确定校验通过。
可选的,所述区块链包括联盟链或者公有链。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。