发明内容
本说明书提供一种基于区块链的身份校验方法、装置、设备及存储介质,用于实现用户身份信息校验。
根据本说明书的第一方面,提供一种基于区块链的身份校验方法,所述区块链存证了权威机构发布的各用户的用户身份信息,所述方法应用于区块链节点设备,所述方法包括:
接收校验机构在检测到目标用户触发的身份校验操作时发送的身份校验请求,所述身份校验请求包括:所述目标用户的用户标识;
响应于所述身份校验请求,在所述区块链存证的各用户的用户身份信息中,查找是否存在与该目标用户的用户标识对应的用户身份信息;
若存在,则将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验。
可选的,所述身份校验请求还包括:所述校验机构的加密密钥;所述区块链存证的用户身份信息为密文;所述查找到的用户身份信息为经过该目标用户对应的加密密钥加密得到的第一密文;
所述将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验,包括:
将所述第一密文转换为第二密文;所述第二密文为所述查找到的用户身份信息经过所述校验机构对应的加密密钥加密得到的密文;
将所述第二密文发送给所述校验机构,以由所述校验机构采用所述校验机构的解密密钥对所述第二密文进行解密,得到所述目标用户的用户身份信息明文,并对得到的用户身份信息明文进行身份校验。
可选的,所述将所述第一密文转换为第二密文,包括:
将所述第一密文和本节点设备的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户对应的解密密钥对所述第一密文进行解密,得到用户身份信息明文,并采用本节点设备的加密密钥对该用户身份信息明文进行加密得到第三密文,并将第三密文发送给本节点设备;
接收所述用户终端发送的第三密文;
采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述区块链还存证了与所述目标用户的用户标识对应的第一密文签名;所述第一密文签名是采用所述目标用户的解密密钥对所述区块链存证的第一密文进行签名而得到的;
所述采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文,包括:
接收所述用户终端发送的第一密文签名;所述第一密文签名是由所述用户终端在接收到所述第一密文后,采用该目标用户的解密密钥对所述第一密文进行签名得到;
检测接收到的第一密文签名与所述区块链存证的该目标用户的用户标识对应的第一密文签名是否匹配;
若匹配,则采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述将所述第一密文转换为第二密文,包括:
将所述第一密文和所述校验机构的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户的解密密钥对所述第一密文进行解密,得到该目标用户的用户身份信息明文,并采用校验机构的加密密钥对该用户身份信息明文进行加密得到第二密文;
从所述用户终端获取所述第二密文。
根据本说明书的第二方面,提供一种基于区块链的身份校验装置,所述区块链存证了权威机构发布的各用户的用户身份信息,所述装置应用于区块链节点设备,所述装置包括:
接收模块,接收校验机构在检测到目标用户触发的身份校验操作时发送的身份校验请求,所述身份校验请求包括:所述目标用户的用户标识;
查找模块,响应于所述身份校验请求,在所述区块链存证的各用户的用户身份信息中,查找是否存在与该目标用户的用户标识对应的用户身份信息;
发送模块,若存在,则将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验。
可选的,所述身份校验请求还包括:所述校验机构的加密密钥;所述区块链存证的用户身份信息为密文;所述查找到的用户身份信息为经过该目标用户对应的加密密钥加密得到的第一密文;
所述发送模块,将所述第一密文转换为第二密文;所述第二密文为所述查找到的用户身份信息经过所述校验机构对应的加密密钥加密得到的密文;将所述第二密文发送给所述校验机构,以由所述校验机构采用所述校验机构的解密密钥对所述第二密文进行解密,得到所述目标用户的用户身份信息明文,并对得到的用户身份信息明文进行身份校验。
可选的,所述发送模块,将所述第一密文和本节点设备的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户对应的解密密钥对所述第一密文进行解密,得到用户身份信息明文,并采用本节点设备的加密密钥对该用户身份信息明文进行加密得到第三密文,并将第三密文发送给本节点设备;接收所述用户终端发送的第三密文;采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述区块链还存证了与所述目标用户的用户标识对应的第一密文签名;所述第一密文签名是采用所述目标用户的解密密钥对所述区块链存证的第一密文进行签名而得到的;
所述发送模块,接收所述用户终端发送的第一密文签名;所述第一密文签名是由所述用户终端在接收到所述第一密文后,采用该目标用户的解密密钥对所述第一密文进行签名得到;检测接收到的第一密文签名与所述区块链存证的该目标用户的用户标识对应的第一密文签名是否匹配;若匹配,则采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述发送模块,将所述第一密文和所述校验机构的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户的解密密钥对所述第一密文进行解密,得到该目标用户的用户身份信息明文,并采用校验机构的加密密钥对该用户身份信息明文进行加密得到第二密文;从所述用户终端获取所述第二密文。
根据本说明书的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现基于区块链的身份校验方法。
根据本说明书的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述基于区块链的身份校验方法的步骤。
由上述描述可知,权威机构将各用户的用户身份信息发布在区块链上进行存证,校验机构可从区块链上获取目标用户的用户身份信息,而无需目标用户输入用户身份信息,所以极大地方便了用户的操作。此外,由于校验机构不需要等待用户输入身份信息,而直接可以从区块链获取目标用户的身份信息,所以极大提高了身份校验的效率。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化***,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
其中,区块链中支持的共识算法可以包括:
第一类共识算法,即节点设备需要争夺每一轮的记账周期的记账权的共识算法;例如,工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)等共识算法;
第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
在采用第一类共识算法的区块链网络中,争夺记账权的节点设备,都可以在接收到交易后执行该笔交易。争夺记账权的节点设备中可能有一个节点设备在本轮争夺记账权的过程中胜出,成为记账节点。记账节点可以将收到的交易与其它交易一起打包以得到最新区块,并将得到的最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
在采用第二类共识算法的区块链网络中,具有记账权的节点设备在本轮记账前已经商定好。因此,节点设备在接收到交易后,如果自身不是本轮的记账节点,则可以将该交易发送至记账节点。对于本轮的记账节点,在将该交易与其它交易一起打包以得到最新区块的过程中或者之前,可以执行该交易。记账节点在得到最新区块后,可以将该最新区块或者该最新区块的区块头发送至其它节点设备进行共识。
如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以得到最新区块,并将得到的最新区块或者该最新区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到最新区块或者该最新区块的区块头后,经验证没有问题,可以将该最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
在传统的身份校验方式中,用户若要在一个校验机构完成校验,用户需要输入该用户的身份信息,校验机构对用户输入的身份信息进行校验。当用户在另一个校验机构完成校验时,用户还需要向另一个校验机构提交用户信息,以使得另一校验机构基于用户提交的身份信息完成校验。
由上述描述可以看出,用户需要向不同校验机构重复提供的用户身份信息,为用户进行身份校验造成了极大的不便。而对应机构来说,校验机构在对用户身份信息进行校验时,还需要等待用户输入用户身份信息才能完成用户身份信息的校验,所以极大地降低了身份校验效率。
有鉴于此,本说明书提出一种基于区块链的身份校验方法,区块链上存证了各用户的用户身份信息。当目标用户触发校验机构的身份校验操作时,校验机构可从区块链上获取该目标用户的用户身份信息,并对获取到的用户身份信息进行校验。
由此可以看出,在本说明书提供的基于区块链的身份校验方法中,权威机构将各用户的用户身份信息发布在区块链上进行存证,校验机构可从区块链上获取目标用户的用户身份信息,而无需目标用户输入用户身份信息,所以极大地方便了用户的操作。此外,由于校验机构不需要等待用户输入身份信息,而直接可以从区块链获取目标用户的身份信息,所以极大提高了身份校验的效率。
此外,在本说明书中,为了保证用户身份信息在校验机构与区块链节点设备、用户终端等各方之间传递的安全性,区块链存证的用户身份信息为密文,用户身份信息在各方之间传递也以密文形式传递,从而极大地提高了用户身份信息储存和传递的安全性。
参见图1,图1是本说明书一示例性实施例示出的一种基于区块链的身份校验的组网示意图;
该组网包括:区块链、权威机构、校验机构、用户终端等。这里只是对该组网所包含的设备进行示例性地说明,不对该组网所包含的设备进行具体地限定。
1)权威机构
权威机构是指,可以保障用户身份信息的可靠性和真实性的机构。比如,该权威机构可以是公安局等。这里只是对权威机构进行示例性地说明,不对该权威机构进行具体地限定。
用户可以在权威机构上登记自身的用户身份信息,权威机构可将已登记用户的用户身份信息发布至区块链进行存证。
2)区块链
区块链存证了各用户的用户身份信息。本说明书所述的区块链可以联盟链,也可以是公有链或者私有链等,这里不对区块链进行具体地限定。
3)校验机构
校验机构是指对用户身份信息进行校验的机构。
例如,用户去银行创建账户时,银行需要对用户的身份信息进行校验,此时银行可以是校验机构。
再例如,用户登录某个APP等,APP的服务端需要对用户身份信息进行校验,此时,APP的服务端可以是校验机构。
这里只是对校验机构进行示例性地说明,凡是需要对用户身份信息进行校验的机构都可以是校验机构,这里不对校验机构进行具体地限定。
4)用户终端
用户终端是指用户所使用的终端设备。
用户终端可包括:手机、计算机、笔记本、IPAD等终端设备,这里只是对用户终端进行示例性地说明,不对其进行具体地限定。
在本说明书实施例中,用户可通过用户终端在权威机构登记自己的用户身份信息。权威机构可将用户身份信息发布至区块链进行存证。
当校验机构检测到目标用户触发的身份校验操作后,校验机构可从区块链上获取目标用户的用户身份信息,并对获取到的用户身份信息进行校验。
在介绍本说明书提供的基于区块链的身份校验方法之前,先对本说明书所涉及的概念进行介绍。
1)密钥
本说明书涉及了至少三套密钥。这三套密钥分别为:
目标用户的加密密钥和解密密钥;
区块链的节点设备的加密密钥和解密密钥;
校验机构的加密密钥和解密密钥。
需要说明的是,当本说明书所采用的加解密算法为对称加密算法时,各套密钥中的加密密钥和解密密钥相同。当本说明书所采用的加解密算法为非对称加密算法时,各套密钥中的加密秘钥为公钥,解密密钥为私钥。这里只是对本说明书所采用的加解密算法、以及与加解密算法配套的加密秘钥和解密秘钥的示例性说明,这里不对其进行具体地限定。
2)密文
本说明书至少涉及三种密文,分别为第一密文、第二密文和第三密文。其中,“第一”、“第二”和“第三”只是为了方便描述,并没有实际含义。
第一密文是指:目标用户的用户身份信息明文经过该目标用户的加密密钥加密而得到的密文。
第二密文是指:目标用户的用户身份信息明文经过校验机构的加密密钥加密而得到的密文。
第三密文是指:目标用户的用户身份信息明文经过区块链的节点设备的加密密钥加密而得到的密文。
在介绍完上述概念后,下面对本说明书提供的基于区块链的身份校验方法进行详细地说明。
参见图2,图2是本说明书一示例性实施例示出的一种基于区块链的身份校验方法的流程图,该方法可应用在区块链的节点设备上,可包括如下所示步骤。
步骤202:区块链节点设备接收校验机构在检测到目标用户触发的身份校验操作时发送的身份校验请求,所述身份校验请求包括:所述目标用户的用户标识。
在本说明书实施例中,区块链存证了权威机构发布的各用户的用户身份信息。
在发布时,权威机构可向该区块链的节点设备发送交易,该交易中携带了各用户的用户身份信息。区块链的节点设备可将该交易发送至该区块链的其他节点设备,以由其他节点设备以及该节点设备对该交易进行共识处理。在共识通过后,区块链的各节点设备将该交易携带的各用户的用户身份信息储存在各节点设备的区块链账本中。
需要说明的是,区块链存证的用户身份信息可以是明文,也可以是用户身份信息经过用户的加密密钥加密形成的密文。这里只是对用户身份信息的存储形式进行示例性地说明,不对其进行具体地限定。
在本说明书实施例中,校验机构在检测到目标用户触发的身份校验操作后,可获取该目标用户的用户标识。
比如,在实现时,目标用户的用户终端可基于该目标用户的用户标识,生成图形码,并将图形码提供给校验机构。
校验机构可扫描该图形码,并识别图形码所包含的目标用户的用户标识。
然后,校验机构可基于目标用户的用户标识和该校验机构的加密密钥,生成身份校验请求,并将身份校验请求发送给区块链节点设备。
其中,用户标识可以是唯一标识一个用户的信息,比如该用户标识为权威机构为用户分配的唯一标识码,或者该用户标识为该用户的加密密钥,这里只是对用户标识进行示例性地说明,不对该用户标识进行具体地限定。
步骤204:区块链节点设备响应于所述身份校验请求,在所述区块链存证的各用户的用户身份信息中,查找是否存在与该目标用户的用户标识对应的用户身份信息。
区块链的节点设备在接收到校验机构发送的身份校验请求后,可响应于该身份校验请求,在所述区块链存证的各用户的用户身份信息中,查找是否存在与该目标用户的用户标识对应的用户身份信息。
若存在与该目标用户的用户标识对应的用户身份信息,则执行步骤206;
若不存在与该目标用户的用户标识对应的用户身份信息,则向校验机构发送告警信息,以提示校验机构无法进行用户身份信息校验。
步骤206:若存在,区块链节点设备则将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验。
由于区块链存证的用户身份信息可以是明文,也可以是密文,所以在将查找到的用户身份信息发送给校验机构时,也可以采用多种方式进行发送,下面对步骤206进行详细地说明。下面介绍几种步骤206的实现方式。
1)步骤206的实现方式一:
区块链存证的用户身份信息是密文。该密文是用户身份信息经过用户的加密密钥进行加密得到的密文。
当区块链存证的用户身份信息是密文时,查找到的与目标用户对应的用户身份信息为经过了目标用户的加密密钥加密得到的第一密文。
为了使得校验机构可以获取到该用户身份信息明文,区块链的节点设备需要将第一密文转换为经过校验机构的加密密钥加密得到的第二密文。区块链节点设备将第二密文发送给校验机构,以使得校验机构采用该校验机构的解密密钥对第二密文进行解密,得到用户身份信息明文。
下面通过步骤A1至步骤A3对步骤206进行详细地说明。
步骤A1:区块链节点设备将第一密文转换为第二密文。
转换方式一:
区块链节点设备将查找到的第一密文和该区块链节点设备的加密密钥发送给该目标用户的用户终端。
用户终端采用该保存的该目标用户的解密密钥对该第一密文进行解密,得到用户身份信息明文。
然后,用户终端可采用区块链节点设备发送的该区块链节点设备的加密密钥对该用户身份信息明文进行加密,得到第三密文,然后将第三密文发送给区块链节点设备。
区块链节点设备可采用该区块链节点设备对应的解密密钥对第三密文解密,得到用户身份信息明文。
然后,区块链节点设备再采用上述身份校验请求中携带的校验机构的加密密钥,对得到的用户身份信息明文进行加密,得到第二密文。
可选的,为了防止不法机构假冒用户终端向区块链的节点设备发送消息,换句话来说,为了验证第三密文的发送方,本说明书实施例还采用了签名机制。
在实现时,区块链上除了存证了权威机构的发送的用户身份信息密文,区块链上还存证了与各用户身份信息密文对应的密文签名。区块链存证的用户对应的密文签名是由该用户身份信息密文经过该用户的解密密钥签名而得到。
这里,为了方便叙述,将目标用户的用户身份信息密文对应的密文签名,称之为第一密文签名。
当用户终端接收到区块链节点设备发送的第一密文和该区块链节点设备的加密密钥后,一方面,用户终端可以采用该目标用户的解密密钥对该第一密文解密得到用户身份信息明文,并采用该区块链节点设备的加密密钥对用户身份信息进行加密得到第三密文。另一方面,用户终端还可以采用该目标用户的解密密钥对第一密文进行签名,得到第一密文签名。
然后,用户终端可将第三密文以及第一密文签名发送给区块链节点设备。区块链节点设备可先检测接收到的第一密文签名与区块链存证的该目标用户的第一密文签名是否匹配。
若区块链节点设备接收到的第一密文签名与该区块链存证的该目标用户的第一密文签名匹配,则区块链节点设备采用该区块链节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
若区块链节点设备接收到的第一密文签名与该区块链存证的第一密文签名不匹配,则向校验机构返回无法验证的告警信息。校验机构可采用传统的方式来进行用户身份信息的校验。比如,校验机构可向用户展示提示消息。该提示消息用于提示用户无法校验,提示用户提供用户身份信息。校验机构可获取用户输入的用户身份信息,然后对用户身份信息进行身份校验。
转换方式二:
区块链节点设备将第一密文和所述校验机构的加密密钥发送给所述目标用户的用户终端。
目标用户的用户终端采用该目标用户的解密密钥对所述第一密文进行解密得到该目标用户的用户身份信息明文。然后,目标用户的用户终端可采用校验机构的加密密钥对该用户身份信息明文进行加密得到第二密文。
然后,区块链节点设备可从用户终端获取第二密文。比如,区块链节点设备可以向用户终端发送获取请求,用户终端在接收到该获取请求后将该第二密文发送给区块链的节点设备。再比如,用户终端在得到第二密文后,可直接将该第二密文发送给区块链的节点设备。
步骤A2:区块链节点设备将所述第二密文发送给所述校验机构,以由所述校验机构采用所述校验机构的解密密钥对所述第二密文进行解密得到所述目标用户的用户身份信息明文,并对该用户身份信息明文进行身份校验。
在得到该第二密文后,区块链节点设备可将第二密文发送给校验机构。
校验机构可采用所述校验机构的解密密钥对所述第二密文进行解密得到所述目标用户的用户身份信息明文,并对该用户身份信息明文进行身份校验。
具体地,校验机构储存了已注册用户的用户身份信息,在进行身份校验时,校验机构可在已注册用户的用户身份信息中查找目标用户的身份信息。然后,校验机构可检测该校验机构储存的目标用户的身份信息和查找到的用户身份信息明文是否一致。若一致,则确定对用户身份信息明文的校验通过。若不一致,则确定对用户身份信息明文的校验不通过。此外,若校验机构未在已注册用户的用户身份信息中查找该目标用户的身份信息,则确定对该用户身份信息明文的校验不通过。
由于用户身份信息是以密文形式存证在区块链上的,并且用户身份信息也以密文形式在区块链节点设备、用户终端和校验机构之间传递,所以极大地保障了用户身份信息的安全性。
2)实现步骤206的方式二:
当然,区块链上存储的用户身份信息也可以是用户身份信息明文。
在一种可选的实现方式中,区块链节点设备在区块链存证的用户身份信息明文中查找到该目标用户的用户身份信息明文后,可直接将该目标用户的用户身份信息明文发送给校验机构。校验机构可对区块链节点设备发送的用户身份信息明文进行校验。
校验方式参见上文描述,这里不再赘述。
在另一种可选的实现方式中,上述校验请求中还携带了校验机构的加密密钥;
区块链节点设备在区块链存证的用户身份信息明文中查找到该目标用户的用户身份信息明文后,为了保障用户身份信息明文在区块链节点设备和校验机构之间传递的安全性,区块链节点设备可采用校验机构的加密密钥对用户身份信息明文进行加密,得到第二密文。
区块链节点设备可将第二密文送给校验机构,校验机构采用所述校验机构的解密密钥对所述第二密文进行解密得到所述目标用户的用户身份信息明文,并对该用户身份信息明文进行身份校验。
由上述描述可知,由于权威机构将各用户的用户身份信息发布在区块链上进行存证,校验机构可从区块链上获取目标用户的用户身份信息,而无需目标用户输入用户身份信息,所以极大地方便了用户的操作。此外,由于校验机构不需要等待用户输入身份信息,而直接可以从区块链获取目标用户的身份信息,所以极大提高了身份校验的效率。
下面以上述加密密钥为公钥,解密密钥为私钥,目标用户的用户标识为目标用户的公钥,区块链上存证了权威机构发布的用户的公钥、用户身份信息密文、密文签名的对应关系为例,并结合图3,对本说明书提供的基于区块链的身份校验方法进行详细地说明。
其中,用户身份信息密文为用户身份信息经过用户的公钥加密形成的密文,密文签名为采用用户的私钥对用户身份信息密文进行签名得到的密文签名。
参见图3,图3是本说明书一示例性实施例示出的一种基于区块链的身份校验方法的流程图。
步骤301:校验机构在检测到目标用户触发的身份校验操作后,向区块链节点设备发送身份校验请求。该身份校验请求携带了目标用户的公钥和校验机构的公钥。
在实现时,用户终端上安装了与校验机构关联的APP。该APP中保存了用户终端的私钥和公钥。用户在该APP上注册时,可采用生物信息进行注册。在用户完成注册后,该APP可基于用户终端的公钥生成图形码。
当然,该APP还可在其他时机下生成图形码,比如该APP检测到用户触发了该图形码生成操作时,可基于该用户终端的公钥生成图形码。
当校验机构在检测到目标用户触发的身份校验操作后,可扫描该用户终端的APP生成的图形码,并对图形码进行识别,获取该用户终端的公钥。
然后,校验机构可通过用户终端的公钥和校验机构的公钥生成身份校验请求,并将身份校验请求发送至区块链的节点设备。
步骤302:区块链节点设备在区块链存证的用户的公钥、用户身份信息的密文、和密文签名的对应关系中,查找与该目标用户的公钥对应的第一密文。
步骤303:区块链节点设备向目标用户终端发送第一密文和区块链节点设备的公钥。
其中,目标用户终端是指目标用户的用户终端
步骤304:目标用户终端采用该目标用户终端的私钥对第一密文进行解密,得到目标用户的用户身份信息明文,采用区块链节点设备的公钥对该目标用户的用户身份信息明文进行加密,得到第三密文、以及采用目标用户终端的解密密钥对第一密文进行签名,得到第一密文签名。
步骤305:目标用户终端向区块链节点设备发送第一密文签名和第三密文。
步骤306:区块链节点设备检测用户终端发送的第一密文签名与该区块链存证的与该目标用户公钥对应的第一密文签名是否一致。
若目标用户终端发送的第一密文签名与该区块链存证的与该目标用户公钥对应的第一密文签名一致,则执行步骤307至步骤309;
若目标用户终端发送的第一密文签名与该区块链存证的与该目标用户公钥对应的第一密文签名不一致,则执行步骤310。
步骤307:区块链节点设备采用本区块链节点设备的私钥对第三密文进行解密,得到目标用户的用户身份信息明文,并采用校验机构的公钥对得到的目标用户的用户身份信息明文进行加密,得到第二密文。
步骤308:区块链节点设备向校验机构发送第二密文。
步骤309:校验机构采用校验机构的私钥对第二密文进行解密,得到目标用户的用户身份信息明文,并对用户身份信息明文进行校验。
310:区块链节点设备向校验机构发送无法校验的告警信息。
与上述基于区块链的身份校验方法实施例相对应,本说明书还提供了基于区块链的身份校验装置的实施例。
与上述基于区块链的身份校验方法实施例相对应,本说明书还提供了一种基于区块链的身份校验装置的实施例。本说明书的基于区块链的身份校验装置的实施例可以应用在电子设备(例如区块链节点设备)上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书的基于区块链的身份校验装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
参见图5,图5是本说明书一示例性实施例示出的一种基于区块链的身份校验装置的框图,所述区块链存证了权威机构发布的各用户的用户身份信息,所述装置应用于区块链节点设备,所述装置包括:
接收模块501,接收校验机构在检测到目标用户触发的身份校验操作时发送的身份校验请求,所述身份校验请求包括:所述目标用户的用户标识;
查找模块502,响应于所述身份校验请求,在所述区块链存证的各用户的用户身份信息中,查找是否存在与该目标用户的用户标识对应的用户身份信息;
发送模块503,若存在,则将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验。
可选的,所述身份校验请求还包括:所述校验机构的加密密钥;所述区块链存证的用户身份信息为密文;所述查找到的用户身份信息为经过该目标用户对应的加密密钥加密得到的第一密文;
所述发送模块503,将所述第一密文转换为第二密文;所述第二密文为所述查找到的用户身份信息经过所述校验机构对应的加密密钥加密得到的密文;将所述第二密文发送给所述校验机构,以由所述校验机构采用所述校验机构的解密密钥对所述第二密文进行解密,得到所述目标用户的用户身份信息明文,并对得到的用户身份信息明文进行身份校验。
可选的,所述发送模块503,将所述第一密文和本节点设备的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户对应的解密密钥对所述第一密文进行解密,得到用户身份信息明文,并采用本节点设备的加密密钥对该用户身份信息明文进行加密得到第三密文,并将第三密文发送给本节点设备;接收所述用户终端发送的第三密文;采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述区块链还存证了与所述目标用户的用户标识对应的第一密文签名;所述第一密文签名是采用所述目标用户的解密密钥对所述区块链存证的第一密文进行签名而得到的;
所述发送模块503,接收所述用户终端发送的第一密文签名;所述第一密文签名是由所述用户终端在接收到所述第一密文后,采用该目标用户的解密密钥对所述第一密文进行签名得到;检测接收到的第一密文签名与所述区块链存证的该目标用户的用户标识对应的第一密文签名是否匹配;若匹配,则采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述发送模块503,将所述第一密文和所述校验机构的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户的解密密钥对所述第一密文进行解密,得到该目标用户的用户身份信息明文,并采用校验机构的加密密钥对该用户身份信息明文进行加密得到第二密文;从所述用户终端获取所述第二密文。
此外,本说明书还提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令实现接收校验机构在检测到目标用户触发的身份校验操作时发送的身份校验请求,所述身份校验请求包括:所述目标用户的用户标识;
响应于所述身份校验请求,在所述区块链存证的各用户的用户身份信息中,查找是否存在与该目标用户的用户标识对应的用户身份信息;
若存在,则将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验。
可选的,所述身份校验请求还包括:所述校验机构的加密密钥;所述区块链存证的用户身份信息为密文;所述查找到的用户身份信息为经过该目标用户对应的加密密钥加密得到的第一密文;
所述处理器通过运行所述可执行指令,在将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验时,实现将所述第一密文转换为第二密文;所述第二密文为所述查找到的用户身份信息经过所述校验机构对应的加密密钥加密得到的密文;将所述第二密文发送给所述校验机构,以由所述校验机构采用所述校验机构的解密密钥对所述第二密文进行解密,得到所述目标用户的用户身份信息明文,并对得到的用户身份信息明文进行身份校验。
可选的,所述处理器通过运行所述可执行指令,在将所述第一密文转换为第二密文时,实现将所述第一密文和本节点设备的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户对应的解密密钥对所述第一密文进行解密,得到用户身份信息明文,并采用本节点设备的加密密钥对该用户身份信息明文进行加密得到第三密文,并将第三密文发送给本节点设备;接收所述用户终端发送的第三密文;采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述区块链还存证了与所述目标用户的用户标识对应的第一密文签名;所述第一密文签名是采用所述目标用户的解密密钥对所述区块链存证的第一密文进行签名而得到的;
所述处理器通过运行所述可执行指令,在采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文时,实现接收所述用户终端发送的第一密文签名;所述第一密文签名是由所述用户终端在接收到所述第一密文后,采用该目标用户的解密密钥对所述第一密文进行签名得到;检测接收到的第一密文签名与所述区块链存证的该目标用户的用户标识对应的第一密文签名是否匹配;若匹配,则采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述处理器通过运行所述可执行指令,在将所述第一密文转换为第二密文时,将所述第一密文和所述校验机构的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户的解密密钥对所述第一密文进行解密,得到该目标用户的用户身份信息明文,并采用校验机构的加密密钥对该用户身份信息明文进行加密得到第二密文;从所述用户终端获取所述第二密文。
此外,本说明书还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现接收校验机构在检测到目标用户触发的身份校验操作时发送的身份校验请求,所述身份校验请求包括:所述目标用户的用户标识;
响应于所述身份校验请求,在所述区块链存证的各用户的用户身份信息中,查找是否存在与该目标用户的用户标识对应的用户身份信息;
若存在,则将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验。
可选的,所述身份校验请求还包括:所述校验机构的加密密钥;所述区块链存证的用户身份信息为密文;所述查找到的用户身份信息为经过该目标用户对应的加密密钥加密得到的第一密文;
该指令被处理器执行,在将查找到的用户身份信息发送给所述校验机构,以由所述校验机构对查找到的用户身份信息进行身份校验时,实现将所述第一密文转换为第二密文;所述第二密文为所述查找到的用户身份信息经过所述校验机构对应的加密密钥加密得到的密文;将所述第二密文发送给所述校验机构,以由所述校验机构采用所述校验机构的解密密钥对所述第二密文进行解密,得到所述目标用户的用户身份信息明文,并对得到的用户身份信息明文进行身份校验。
可选的,该指令被处理器执行,在将所述第一密文转换为第二密文时,实现将所述第一密文和本节点设备的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户对应的解密密钥对所述第一密文进行解密,得到用户身份信息明文,并采用本节点设备的加密密钥对该用户身份信息明文进行加密得到第三密文,并将第三密文发送给本节点设备;接收所述用户终端发送的第三密文;采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,所述区块链还存证了与所述目标用户的用户标识对应的第一密文签名;所述第一密文签名是采用所述目标用户的解密密钥对所述区块链存证的第一密文进行签名而得到的;
该指令被处理器执行,在采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文时,实现接收所述用户终端发送的第一密文签名;所述第一密文签名是由所述用户终端在接收到所述第一密文后,采用该目标用户的解密密钥对所述第一密文进行签名得到;检测接收到的第一密文签名与所述区块链存证的该目标用户的用户标识对应的第一密文签名是否匹配;若匹配,则采用本节点设备的解密密钥对第三密文进行解密得到该目标用户的用户身份信息明文,并采用所述校验机构的加密密钥对该用户身份信息明文进行加密,得到第二密文。
可选的,该指令被处理器执行,在将所述第一密文转换为第二密文时,将所述第一密文和所述校验机构的加密密钥发送给所述目标用户的用户终端,以由所述目标用户的用户终端采用该目标用户的解密密钥对所述第一密文进行解密,得到该目标用户的用户身份信息明文,并采用校验机构的加密密钥对该用户身份信息明文进行加密得到第二密文;从所述用户终端获取所述第二密文。
上述实施例阐明的***、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。