CN111461720A - 基于区块链的身份验证方法、装置、存储介质及电子设备 - Google Patents

基于区块链的身份验证方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111461720A
CN111461720A CN202010293352.6A CN202010293352A CN111461720A CN 111461720 A CN111461720 A CN 111461720A CN 202010293352 A CN202010293352 A CN 202010293352A CN 111461720 A CN111461720 A CN 111461720A
Authority
CN
China
Prior art keywords
key
public key
terminal
public
private key
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.)
Granted
Application number
CN202010293352.6A
Other languages
English (en)
Other versions
CN111461720B (zh
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010293352.6A priority Critical patent/CN111461720B/zh
Publication of CN111461720A publication Critical patent/CN111461720A/zh
Application granted granted Critical
Publication of CN111461720B publication Critical patent/CN111461720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions

Abstract

本申请实施例公开了一种基于区块链的身份验证方法、装置、存储介质及电子设备,其中,方法包括:基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥,接收所述区块链平台发送的所述第一公钥,获取所保存的所述私钥对应的第二公钥,基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。可以基于区块链对终端进行身份验证,提高了身份验证过程的通用性。

Description

基于区块链的身份验证方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的身份验证方法、装置、存储介质及电子设备。
背景技术
随着无线通信技术的发展以及终端(例如智能手机,平板电脑)的普及,终端可以安装的应用越来越多,用户在使用终端的应用过程中,通常会涉及到终端上的应用对终端进行身份认证,如应用上的积分领取为了防止冒领会对终端进行身份验证,应用上的商品限时抢购活动也会涉及到对终端进行身份验证,等等。
目前,在对终端身份验证的过程中,通常是终端上的应用获取终端当前的身份识别码,将当前的身份识别码与应用中记录的终端身份识别码进行比对来进行身份验证,然而由于身份识别码作为终端的身份标识涉及到安全隐私具有严格的使用限制,以及不同的终端存在身份识别码类型不一致的情况,从而无法对终端进行身份验证,导致身份验证的通用性较低。
发明内容
本申请实施例提供了一种基于区块链的身份验证方法、装置、存储介质及电子设备,可以基于区块链对终端进行身份验证,提高了身份验证过程的通用性。所述技术方案如下:
第一方面,本申请实施例提供了一种基于区块链的身份验证方法,所述方法包括:
基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥;
接收所述区块链平台发送的所述第一公钥,获取所保存的所述私钥对应的第二公钥;
基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。
第二方面,本申请实施例提供了另一种基于区块链的身份验证方法,所述方法包括:
接收终端发送的密钥查询请求,所述密钥查询请求携带私钥;
生成所述私钥对应的第一公钥,将所述第一公钥发送至所述终端,所述第一公钥用于指示所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。
第三方面,本申请实施例提供了一种基于区块链的身份验证装置,所述装置包括:
查询请求发送模块,用于基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥;
第二公钥获取模块,用于接收所述区块链平台发送的所述第一公钥,获取所保存的所述私钥对应的第二公钥;
终端身份验证模块,用于基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。
第四方面,本申请实施例提供了一种基于区块链的身份验证装置,所述装置包括:
查询请求接收模块,用于接收终端发送的密钥查询请求,所述密钥查询请求携带私钥;
第一公钥生成模块,用于生成所述私钥对应的第一公钥,将所述第一公钥发送至所述终端,所述第一公钥用于指示所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。
第五方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第六方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在本申请一个或多个实施例中,终端可以基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥,接收所述区块链平台发送的所述第一公钥,并获取所保存的所述私钥对应的第二公钥,终端就可以基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。可以避免采用终端身份识别码无法对终端身份验证的问题,在终端获取到区块链平台的第一公钥和所保存的第二公钥之后就可以进行身份验证,身份验证过程不涉及到获取身份识别码,终端在预先接入的区块链平台下就可以完成身份验证,从而提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性更高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于区块链的身份验证方法的流程示意图;
图2是本申请实施例提供的另一种基于区块链的身份验证方法的流程示意图;
图3是本申请实施例提供的另一种基于区块链的身份验证方法的流程示意图;
图4是本申请实施例提供的一种基于区块链的身份验证装置的结构示意图;
图5是本申请实施例提供的一种第二公钥获取模块的结构示意图;
图6是本申请实施例提供的另一种基于区块链的身份验证装置的结构示意图;
图7是本申请实施例提供的另一种基于区块链的身份验证装置的结构示意图;
图8是本申请实施例提供的一种第一公钥获取模块的结构示意图;
图9是本申请实施例提供的另一种基于区块链的身份验证装置的结构示意图;
图10是本申请实施例提供的一种电子设备的结构示意图;
图11是本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面结合具体的实施例对本申请进行详细说明。
在一个实施例中,如图1所示,特提出了一种基于区块链的身份验证方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的基于区块链的身份验证装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。其中,本申请实施例中的基于区块链的身份验证装置可以为终端,包括但不限于:个人电脑、平板电脑、手持设备、车载设备、服务器、计算设备或连接到无线调制解调器的其它处理设备等。
具体的,该基于区块链的身份验证方法包括:
步骤101:基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥。
所述密钥查询请求是用于请求区块链平台查询私钥对应的公钥的指示和要求,可以理解为请求区块链平台执行“查询私钥对应的公钥”运算或功能实现的某种控制的代码。实际应用中,区块链平台接收到密钥查询请求可以对所述密钥查询请求作出响应,执行“查询私钥对应的公钥”的代码,在区块链平台中获取到私钥对应的第一公钥,如区块链平台可以基于预设的区块加密算法生成私钥对应的第一公钥。
通常,所述私钥与公钥对应。在本申请实施例中,终端向区块链平台通过发送密钥查询请求的方式而获取的公钥,可以理解为第一公钥。
具体的,终端预先保存有一私钥,该私钥用于对终端的身份进行身份验证,如终端上所安装的应用程序在执行应用业务(如应用积分签到、积分领取、限时秒杀等应用业务)时,会涉及到对终端进行身份验证。此时终端的应用程序可以在终端本地储存空间中获取预先保存的私钥,然后进行下一步基于私钥对终端的身份进行验证,具体为终端可以生成包含私钥的密钥查询请求,将密钥查询请求通过与所述区块链平台的通信连接将密钥查询请求发送至区块链平台。
具体的,区块链平台向终端提供有数据通信(如密钥查询)的适配接口,以方便终端通过适配接口进行密钥查询;其中区块链平台查询到的内容可以根据使用者-终端的需求进行设置,例如所述终端需要查询本端私钥对应的公钥。区块链平台即向终端的适配接口提供查询“终端私钥对应的公钥”的区块链应用服务;又例如终端需要通过区块链平台来获取生成的私钥,区块链平台即向终端的适配接口提供获取“为终端所生成的私钥”的区块链应用服务,等等。
需要说明的是,上述举例中,所述查询“终端私钥对应的公钥”对应的区块链应用服务以及获取“为终端所生成的私钥”的区块链应用服务可以是由相同的区块链平台或区块链网络提供,也可以为不同的区块链平台或区块链网络提供。此处不做具体的限定。
进一步的,所述终端上可以安装有区块链平台对应的区块链平台应用服务,所述区块链平台应用可以是一种去中心化应用服务,所述去中心化应用服务(Decentralizedapplication,Dapp)是一种应用服务,和一般的应用(app)服务一样,一般应用(app)服务是由前端和后台服务器构成,而Dapp应用服务是一种由前端和智能合约构成,智能合约相当于后台服务器,前台界面通过适配接口与区块链平台连接,以实现相应的去中心化应用服务的功能。
在本申请实施例中,所述区块链应用服务具有查询终端私钥对应公钥的功能。终端上的应用程序的可以通过该区块链应用服务查询所保存的私钥对应的第一公钥。其中,所述私钥可以预先存储在终端的底层,并通过终端上的安全机制向终端上的应用或应用服务提供软件调用接口,终端上的应用程序可以通过软件调用接口来获取终端底层所储存的私钥。从而可以根据该私钥来生成包含私钥的密钥查询请求,将密钥查询请求通过适配接口(如RPC应用程序服务接口)与所述区块链平台的通信连接将密钥查询请求发送至区块链平台。
其中,预先存储在终端底层的私钥可以是终端通过区块链平台获取到的,如终端在出厂测试完成时,通过区块链平台获取到私钥,并将私钥保存;或,终端在由用户触发首次开机激活时,终端自动向区块链平台获取到私钥,并将私钥保存,等等。
步骤102:接收所述区块链平台发送的所述第一公钥,获取所保存的所述私钥对应的第二公钥。
具体的,区块链平台在接收到终端发送的密钥查询请求之后,根据密钥查询请求携带的私钥,来获取生成的第一公钥。一种获取方式是区块链平台可以采用生成公钥的加密算法(如ECC-椭圆曲线加密算法),基于私钥进行加密计算,可以得到私钥对应的第一公钥。一种方式是区块链平台预先保存有终端的密钥对,所述密钥对包括私钥与公钥,区块链平台只需在所存储的包含至少一个密钥对的集合中,查找私钥对应的目标公钥即可。
其中,上述提及的生成公钥的加密算法通常为一种非对称加密算法,所述非对称加密算法包括但不限于RSA加密算法、Elgamal加密算法、背包算法、Rabin加密算法、ECC(椭圆曲线加密算法)等等。
具体的,区块链平台在获取到终端的私钥对应的第一公钥后,将第一公钥通过与终端的通信连接发送至终端。此时终端即可通过建立的通信连接接收到区块链平台发送的所述第一公钥。
其中,所建立的通信连接可以为通信长连接或通信短连接。
长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
长连接的操作步骤是:建立连接——数据传输...(保持连接)...数据传输——关闭连接。
短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。
短连接的操作步骤是:建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接。
长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就可以,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。
而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连接好。
需要说明的是,所述终端与区块链平台间通信方式可以是通信长连接,也可以是通信短连接,此处不作具体限定。
所述第二公钥为预先保存的公钥,如终端获取到私钥时,由于在私钥生成时可以同时根据加密算法得到私钥对应的公钥,该公钥即第二公钥,则可以将第二公钥保存,如终端可以将第二公钥保存在本地。则终端可以在本地获取所保存的私钥对应的第二公钥。
步骤102:基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。
在实际应用中,第二公钥保存之后,通常第二公钥通常是对外可以获取的到的,所述第二公钥可以理解为在本地或在区块链平台的公有链上发布,任何节点、个人、应用程序可以无需鉴权许可便可随时查看以及下载的公钥。
具体的,终端可以是在私钥生成时(如在终端检测完成出厂时),同时获取到私钥对应的第二公钥,将第二公钥保存在本地,在后期终端的使用过程中,由于第二公钥对外公开的特性,通常有可能被存在隐患的脚本、网络爬虫、人为因素等进行篡改、损坏等风险,在本申请实施例中,基于保存的第二公钥与获取到的第一公钥对终端的身份状态进行验证,可以理解的是当第一公钥与所述第二公钥相匹配时,终端可以控制所安装的应用程序确定终端身份验证通过;当第一公钥与所述第二公钥不匹配时,终端可以控制所安装的应用程序确定终端身份验证失败。
具体的,终端在获取到所述第一公钥以及所述第二公钥之后,基于预设的匹配规则对第一公钥以及第二公钥进行匹配计算,根据匹配结果对应的评判要求来确定终端身份验证是否通过。
其中,所述匹配处理方式可以是对所述第一公钥以及所述第二公钥计算相似度,可以是对所述第一公钥以及所述第二公钥计算相似度计算相似距离,可以是对所述第一公钥以及所述第二公钥的计算差异特征信息,然后基于差异特征信息进行评级或评分,等等
可选的,当匹配结果是基于所述第一公钥以及所述第二公钥的相似度时,所述评判规则可以是设置相似度阈值,当所述匹配结果的语义相似度达到相似度阈值时,确定所述终端身份验证通过;当所述匹配结果的语义相似度未达到相似度阈值时,确定终端身份验证未通过。
可选的,当匹配结果是基于所述第一公钥以及所述第二公钥的相似距离时,所述评判规则可以是设置相似距离阈值,当所述匹配结果的相似度达到相似距离阈值时,确定所述终端身份验证通过;当所述匹配结果的相似度未达到相似距离阈值时,确定所述终端身份验证未通过。
可选的,当匹配结果是基于所述第一公钥以及所述第二公钥的差异特征信息(差异位数、差异字母等)的评级或评分时,所述评判规则可以是设置相似级阈值或相似分阈值,当所述匹配结果的相似级或相似分达到相似级阈值或相似分阈值时,确定所述终端身份验证通过;当所述匹配结果的相似度未达到相似级阈值或相似分阈值时,确定所述终端身份验证未通过。
在一种可行的实施方式中,终端也可以对第一公钥以及所述第二公钥通过预设摘要算法,计算第一公钥以及所述第二公钥分别对应的摘要值,具体计算通过摘要算法对公钥(第一公钥和第二公钥)经过填充、迭代压缩、生成杂凑值等过程,得到摘要值。其中,所述摘要算法可以是MD消息摘要算法(MD2、MD4、MD5)、可以是哈希算法、可以是SM3杂凑算法等算法中的一种。然后通过判断摘要值是否一致来确定终端的身份验证是否通过,可以理解的是,当摘要值一致时,可以确定终端身份验证通过;当摘要值不一致时,则确定终端身份验证不通过。
在本申请实施例中,终端可以基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥,接收所述区块链平台发送的所述第一公钥,并获取所保存的所述私钥对应的第二公钥,终端就可以基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。可以避免采用终端身份识别码无法对终端身份验证的问题,在终端获取到区块链平台的第一公钥和所保存的第二公钥之后就可以进行身份验证,身份验证过程不涉及到获取身份识别码,终端在预先接入的区块链平台下就可以完成身份验证,从而提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性更高。
请参见图2,图2是本申请提出的一种基于区块链的身份验证方法的另一种实施例的流程示意图。具体的:
步骤S201:向所述区块链平台发送密钥对获取请求,接收并保存所述区块链平台发送的密钥对,所述密钥对包括私钥以及所述私钥对应的第二公钥。
所述密钥对获取请求是用于请求区块链平台生成的私钥对,可以理解为请求区块链平台执行“生成私钥对”运算或功能实现的某种控制的代码。实际应用中,区块链平台接收到密钥对获取请求可以对所述密钥对获取请求作出响应,执行“生成私钥对”的代码,在区块链平台中为终端生成私钥对,并可以将密钥对发送至终端,如区块链平台可以基于预设的区块加密算法生成私钥对,所述密钥对包括私钥以及所述私钥对应的第二公钥。
具体的,终端可以在出厂完成总装测试(外观及整机功能测试等)时,可以通过向区块链平台发送密钥对获取请求;区块链平台接收到所述密钥对获取请求,对密钥对获取请求进行响应,生成终端的密钥对。在区块链平台生成密钥对时,首先调用所包含的随机数发生器生成一随机数,将该随机数作为私钥,然后采用预设生成公钥的加密算法生成私钥对应的第二公钥,如采用ECC(椭圆曲线加密算法)可以基于私钥生成私钥对应的第二公钥。此时,包含私钥以及私钥对应的第二公钥的集合即密钥对,终端将密钥对发送至终端;此时终端即可接收到区块链平台发送的密钥对,并将私钥对中的私钥和第二公钥对应保存在本端的存储空间中。进一步的,通常私钥会先存储在终端的底层,并通过终端上的安全机制向终端上的应用或应用服务提供软件调用接口,终端上的应用程序可以通过软件调用接口来获取终端底层所储存的私钥。可以理解的是,终端存储的私钥通常不可被篡改。第二公钥对外公开,第二公钥保存之后,通常第二公钥通常是对外可以获取的到的,所述第二公钥可以理解为在本地发布,任何节点、个人、应用程序可以无需鉴权许可便可随时查看以及下载公钥。
步骤S202:向所述区块链平台发送密钥公开请求,所述密钥公开请求用于指示所述区块链平台将所述第二公钥发布至所述区块链平台的公有链上。
所述密钥公开请求是用于请求区块链平台将生成的私钥对中的第二公钥公开,具体将第二公钥发布至区块链平台的公有链(也可以理解为区块链平台的公网)上。
具体的,终端接收并保存所述区块链平台发送的密钥对之后,可以生成密钥公开请求,通过与区块链平台的通信连接将密钥公开请求发送至区块链平台。区块链平台接收到密钥公开请求,将所述第二公钥发布至区块链平台的公有链(也可以理解为公网)上。第二公钥对外公开,通常第二公钥通常是对外可以获取的到的,所述第二公钥可以理解为在公有链发布,任何节点、个人、应用程序可以无需鉴权许可便可随时查看以及下载公钥。
步骤S203:基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥。
具体可参见步骤101,此处不再赘述。
步骤S204:接收所述区块链平台发送的所述第一公钥。
具体可参见步骤102,此处不再赘述。
步骤S205:在本地获取所述私钥对应的第二公钥。
所述第二公钥为预先保存的公钥,如终端获取到私钥时,由于在私钥生成时可以同时根据加密算法得到私钥对应的公钥,该公钥即第二公钥。终端通过向所述区块链平台发送密钥对获取请求,然后接收并保存所述区块链平台发送的密钥对。在这个过程中,终端可以将第二公钥保存在本地。在实际应用中,第二公钥保存之后,在本地对第二公钥进行发布,通常第二公钥通常是对终端上的应用程序可以获取的到的,任何节点、个人、应用程序可以无需鉴权许可便可随时查看以及下载的公钥。应用程序因为应用服务的需要,如,终端上的某一应用程序需要对终端身份进行验证,需要调用第二公钥时,终端可以控制所安装的应用程序在本地获取所保存的私钥对应的第二公钥。
步骤S206:(并205)向所述区块链平台发送密钥获取请求,接收所述区块链平台基于所述密钥获取请求在所述公有链上获取所述私钥对应的第二公钥。
根据一些实施例中,在区块链平台接收到终端的密钥公开请求后,将所述第二公钥发布至区块链平台的公有链(也可以理解为公网)上。第二公钥对外公开,通常第二公钥通常是对外可以获取的到的,所述第二公钥可以理解为在公有链发布,任何节点、个人、应用程序可以无需鉴权许可便可随时查看以及下载公钥。当应用程序因为应用服务的需要,如,终端上的某一应用程序需要对终端身份进行验证,需要调用第二公钥时,终端可以生成针对第二公钥的密钥获取请求,通过适配接口(如RPC应用程序服务接口)与所述区块链平台的通信连接将密钥获取请求发送至区块链平台。区块链平台获取到密钥获取请求后可以在公有链上获取终端的第二公钥,并在获取到第二公钥之后,可以将第二公钥返回至终端。此时终端即可接收到所述区块链平台基于所述密钥获取请求在所述公有链上获取所述私钥对应的第二公钥。
步骤S207:基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。
具体可参见步骤103,此处不再赘述。
在本申请实施例中,终端可以基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥,接收所述区块链平台发送的所述第一公钥,并获取所保存的所述私钥对应的第二公钥,终端就可以基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。可以避免采用终端身份识别码无法对终端身份验证的问题,在终端获取到区块链平台的第一公钥和所保存的第二公钥之后就可以进行身份验证,身份验证过程不涉及到获取身份识别码,终端在预先接入的区块链平台下就可以完成身份验证,从而提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性更高;以及终端在进行身份验证时,可以从本端或区块链平台的公有链上获取第二公钥,获取途径更多,提高了身份验证的便利性。
在一个实施例中,如图3所示,特提出了另一种基于区块链的身份验证方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的基于区块链的身份验证装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。以下以基于区块链的身份验证装置为区块链平台进行详细释义。
具体的,该基于区块链的身份验证方法包括:
步骤S301:接收所述终端发送的密钥对获取请求,控制随机数发生器生成私钥,对所述私钥进行加密计算,得到所述私钥对应的第二公钥。
随机数发生器(RNG)是一种用于产生一系列随机数的方法或装置。
具体的,区块链平台通过所包含的随机数发生器生成一随机数,一种方法是基于算法的RNG,基于算法的RNG更准确地应称为伪随机数发生器(PRNG),以时间作为数据源,采用数学运算等方式产生随机数。一种方式是基于物理的随机数发生器,通过采集环境信息来作为随机数生成的熵源,通常环境信息可以是自然环境中的信息(温度、湿度、声音等物理信息),还可以是来自系统环境的信息,例如:设备两次中断间的间隔、输入设备的操作时间间隔,连续磁盘操作的时间间隔、物理按键的按下间隔、内部电路的电信号变化等,通过熵源随机生成一固定位数的随机数。
根据一些实施例中,终端可以在出厂完成总装测试(外观及整机功能测试等)时,可以通过向区块链平台发送密钥对获取请求;区块链平台接收到所述密钥对获取请求,对密钥对获取请求进行响应,首先调用所包含的随机数发生器生成一随机数,将该随机数作为私钥,然后采用预设生成公钥的加密算法生成私钥对应的第二公钥,其中,上述提及的生成公钥的加密算法通常为一种非对称加密算法,所述非对称加密算法包括但不限于RSA加密算法、Elgamal加密算法、背包算法、Rabin加密算法、ECC(椭圆曲线加密算法)等等。
进一步的,所述区块链平台是由多个具备计算能力的区块链节点构成去中心化的数据库,每一个区块链节点中所存储的多个区块,各个区块链节点中所存储的区块相同,每一区块中存储有交易信息(如储存有至少一各电子设备的公钥)。当一个区块链节点中的区块内存储的交易信息发生变化(如新增一个公钥)时,区块链平台中其他区块链节点会针对这一区块的新交易信息(如一个公钥)进行同步,以保持各个区块链节点的区块内存储的交易信息相同。
通常,在区块链平台接收到终端的密钥对获取请求,基于共识机制,区块链平台在所包含的至少一个区块链节点中确定一个目标区块链节点,由该目标区块链节点执行“控制随机数发生器生成私钥,对所述私钥进行加密计算,得到所述私钥对应的第二公钥”的任务。在实际应用中,所述共识机制可以理解为区块链平台确定需要基于密钥对获取请求生成私钥和公钥时,区块链平台所包含的各区块链节点会争夺一个该“控制随机数发生器生成私钥,对所述私钥进行加密计算,得到所述私钥对应的第二公钥”任务的计算权或挖矿权(在区块链平台技术中也称记账权)已获得本次的成功记账(即成功基于密钥对获取请求生成私钥和公钥)的收益,各个节点不断地产生区块分叉,形成共识,再消除分叉的过程,最终确定目标区块链节点。
上述基于共识机制确定共识机制的共识过程,可以是利用目前常用的共识算法,例如:工作证明(proof of work,POW)算法、股权证明(proof of stake,POS)算法、委托权益证明(delegated proof of stake,DOS)算法或实用拜占庭容错(practical Byzantinefault tolerance,PBFT)算法。
步骤S302:将包含所述私钥以及所述第二公钥的密钥对发送至所述终端。
根据一些实施例中,在区块链平台生成密钥对时,首先调用所包含的随机数发生器生成一随机数,将该随机数作为私钥,然后采用预设生成公钥的加密算法生成私钥对应的第二公钥,如采用ECC(椭圆曲线加密算法)可以基于私钥生成私钥对应的第二公钥。此时,包含私钥以及私钥对应的第二公钥的集合即密钥对,区块链平台将私钥对通过与终端之间的通信连接发送至终端。终端接收到私钥对,可以将私钥会存储在终端的底层,公钥对外开放。
步骤S303:将所述第二公钥发布至所述区块链平台的公有链上。
在一种具体的实施场景中,区块链平台在生成密钥对之后,可以直接将所述第二公钥发布至区块链平台的公有链(也可以理解为公网)上。第二公钥对外公开,通常第二公钥通常是对外可以获取的到的,所述第二公钥可以理解为在公有链发布,任何节点、个人、应用程序可以无需鉴权许可便可随时查看以及下载公钥。
在一种具体的实施场景中,终端接收并保存所述区块链平台发送的密钥对之后,可以生成密钥公开请求,通过与区块链平台的通信连接将密钥公开请求发送至区块链平台。区块链平台接收到密钥公开请求,将所述第二公钥发布至区块链平台的公有链(也可以理解为公网)上。第二公钥对外公开,通常第二公钥通常是对外可以获取的到的,所述第二公钥可以理解为在公有链发布,任何节点、个人、应用程序可以无需鉴权许可便可随时查看以及下载公钥。
进一步的,上述区块链平台的目标区块链节点去的“控制随机数发生器生成私钥,对所述私钥进行加密计算,得到所述私钥对应的第二公钥”任务的计算权或挖矿权之后,可以直接或接收到密钥公开请求后将第二公钥发布至公有链上,具体为在公有链上创建区块并用区块存储第二公钥,区块链平台并控制所述目标区块链节点采用泛洪机制将所述第二公钥在区块链平台上进行广播
其中,对于一个区块链节点而言,通常可以包含用于记账的记账链,以及用于存储业务数据的存储链,所述存储链可以是多条用于存储不同数据类型的存储链,通常同一数据类型的业务数据保存至同一存储链中。在本申请实施例中,所述记账可以理解为记录当前“生成密钥对”“公布第二公钥”的记录信息,所述存储链中的至少一条可以作为公有链用于储存并公布第二公钥。可以理解的是记账链中的由各区块链式连接,一个区块可以代表某个时间点的记录信息,存储链中的由各区块链式连接,一个区块可以代表某个时间点的公布的第二公钥。
其中,对于储存业务数据的存储链来说,所述区块包括区块头和区块,区块头包括父摘要值、业务标识、高度、随机数、Merkle根哈希值、块内记录总数中的一种或多种,父区块摘要值表示父区块的摘要值,对于目标区块链节点中的首个区块来说,首个区块的父区块摘要值可以是记账链中的父区块的摘要值,也可以是记账链中的父区块的Merkle根哈希值。业务标识表示区块所在的存储链关联的业务的身份标识,不同的存储链具有不同的业务标识;时间戳表示记录各个业务数据的时刻;高度表示区块在存储链中的位置,例如:存储链中首个区块的高度为1,第二个区块的高度为2;块内记录总数表示区块体中记录的业务数据的数量,Merkle根哈希值是根据区块体中记录的业务数据生成的,Merkle根哈希值的生成过程可参照现有技术,此处不再赘述。在一种可能的实施方式中,区块头中还包括分支权重,分支权重用于表示当有多条存储链时该存储链的权重,分支权重可以用来调节在存储链上进行记账的收益。
其中,所述采用泛洪机制进行全网广播,在于让整个区块链平台网络对该区块进行同步。全网广播的方式就是。该节点首先向邻居节点广播。邻居节点收到广播消息后。再继续向自己的邻居节点广播,以此类推,从而广播整个网络。这种广播方法即泛洪机制。
具体的,当所述目标区块链节点在存储链上创建区块,在作为公有链的存储链上已存储好所述第二公钥之后,该目标区块链节点采用泛洪机制将“储存第二公钥的区块”在区块链平台上除目标区块链节点以外的区块链节点进行广播,对于区块链平台上的除目标区块链节点以外的除目标区块链节点以外的节点来说,在接收到所述目标区块链节点的广播的“储存第二公钥的区块”之后,将所述“储存第二公钥的区块”与对应的储存链中末尾区块链式相连,同时可以在记账链中创建用于记账的区块记录当前的存储信息。然后再继续向自己的邻居节点广播,以此类推,从而广播整个网络,以使得该区块链平台上的所有区块链节点对该“储存第二公钥的区块”进行数据备份,从而达到在区块链平台上对公有链进行公布的效果。
步骤S304:接收终端发送的密钥查询请求,所述密钥查询请求携带私钥。
根据一些实施例中,终端上的应用程序的可以通过该区块链应用服务查询所保存的私钥对应的第一公钥。其中,所述私钥可以预先存储在终端的底层,并通过终端上的安全机制向终端上的应用或应用服务提供软件调用接口,终端上的应用程序可以通过软件调用接口来获取终端底层所储存的私钥。从而可以根据该私钥来生成包含私钥的密钥查询请求,将密钥查询请求通过适配接口(如RPC应用程序服务接口)与所述区块链平台的通信连接将密钥查询请求发送至区块链平台。此时区块链平台即可接收到终端发送的密钥查询请求,所述密钥查询请求携带私钥。
步骤S305:生成所述私钥对应的第一公钥,将所述第一公钥发送至所述终端,所述第一公钥用于指示所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。
根据一些实施例中,区块链平台接收到所述密钥查询请求之后,基于共识机制,区块链平台在所包含的至少一个区块链节点中确定一个目标区块链节点,由该目标区块链节点执行“生成所述私钥对应的第一公钥”的任务。在实际应用中,所述共识机制可以理解为区块链平台确定需要基于密钥查询请求生成私钥对应的第一公钥时,区块链平台所包含的各区块链节点会争夺一个该“生成所述私钥对应的第一公钥”任务的计算权或挖矿权(在区块链平台技术中也称记账权)已获得本次的成功记账(即成功生成所述私钥对应的第一公钥)的收益,各个节点不断地产生区块分叉,形成共识,再消除分叉的过程,最终确定目标区块链节点。在确定目标区块链节点之后,由该目标区块链节点获取密钥查询请求携带的私钥,然后采用预设生成公钥的加密算法生成私钥对应的第一公钥,然后将所述第一公钥发送至所述终端。其中,上述提及的生成公钥的加密算法通常为一种非对称加密算法,所述非对称加密算法包括但不限于RSA加密算法、Elgamal加密算法、背包算法、Rabin加密算法、ECC(椭圆曲线加密算法)等等。进一步的,终端接收到区块链平台所包含的目标区块链节点发送的第一公钥之后,基于所述第一公钥与获取到的第二公钥进行终端身份验证。
一种可行的实施方式中,区块链平台在生成私钥对之后,可以将私钥对存储,具体以私钥对集合的形式,该私钥对集合包括至少一个私钥对,区块链平台所包含的至少一个区块链节点基于共识机制,确定目标区块链节点之后,可以由目标区块链节点在私钥对集合中查找所述私钥对应的第一公钥。进一步的,通常私钥对存储在区块链接节点的存储链中,存储私钥对的存储链通常为私有链对外不公开,存储私钥对的存储链通常由各区块链式连接,一个区块可以代表某个时间点存储的私钥对,存储私钥对的存储链可以为一个私钥对集合。而区块包括区块头和区块,区块头包括父摘要值、业务标识、高度、随机数、Merkle根哈希值、块内记录总数中的一种或多种,业务标识表示区块所在的存储链关联的业务的身份标识,不同的存储链具有不同的业务标识;时间戳表示记录各个业务数据的时刻;高度表示区块在存储链中的位置。更进一步的,区块链平台的目标区块链结点可以基于终端的业务标识去首个区块中确定待获取的私钥对在存储链中的高度,通常业务标识为终端在向区块链平台传输数据时随之确定,业务表示可以是终端的IP地址、端口号、ID等等。
步骤S306:接收所述终端发送的密钥获取请求,在所述区块链平台的所述公有链上获取所述终端当前的第二公钥,将所述第二公钥发送至所述终端。
根据一些实施例中,当终端的应用程序因为应用服务的需要,如,终端上的某一应用程序需要对终端身份进行验证,需要调用第二公钥时,终端可以生成针对第二公钥的密钥获取请求,通过适配接口(如RPC应用程序服务接口)与所述区块链平台的通信连接将密钥获取请求发送至区块链平台。区块链平台获取到密钥获取请求后,区块链平台所包含的至少一个区块链节点基于共识机制,确定目标区块链节点,由该目标区块链节点执行“在所述区块链平台的所述公有链上获取所述终端当前的第二公钥”的任务,
通常第二公钥存储在区块链接节点的存储链中,存储第二公钥的存储链通常为公有链对外公开,该存储链通常由各区块链式连接,一个区块可以代表某个时间点存储的第二公钥。而区块包括区块头和区块,区块头包括父摘要值、业务标识、高度、随机数、Merkle根哈希值、块内记录总数中的一种或多种,业务标识表示区块所在的存储链关联的业务的身份标识,不同的存储链具有不同的业务标识;时间戳表示记录各个业务数据的时刻;高度表示区块在存储链中的位置。更进一步的,区块链平台的目标区块链结点可以基于终端的业务标识去首个区块中确定待获取的第二公钥在存储链中的高度,然后获取所述高度指示的第二公钥,通常业务标识为终端在向区块链平台传输数据时随之确定,业务表示可以是终端的IP地址、端口号、ID等等。区块链平台的目标区块链接地那并在获取到第二公钥之后,可以将第二公钥返回至终端。
在本申请实施例中,区块链平台接收终端发送的密钥查询请求,根据密钥查询请求携带的私钥,生成所述私钥对应的第一公钥,并可以将所述第一公钥发送至所述终端,所述第一公钥用于辅助所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。区块链平台可以辅助终端避免采用身份识别码无法对终端身份验证的问题,在终端获取到区块链平台的第一公钥和所保存的第二公钥之后就可以进行身份验证,身份验证过程不涉及到获取身份识别码,终端在预先接入的区块链平台下就可以完成身份验证,从而提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性更高;以及终端在进行身份验证时,可以从本端或区块链平台的公有链上获取第二公钥,获取途径更多,提高了身份验证的便利性。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4,其示出了本申请一个示例性实施例提供的基于区块链的身份验证装置的结构示意图。该基于区块链的身份验证装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括查询请求发送模块11、第二公钥获取模块12和终端身份验证模块13。
查询请求发送模块11,用于基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥;
第二公钥获取模块12,用于接收所述区块链平台发送的所述第一公钥,获取所保存的所述私钥对应的第二公钥;
终端身份验证模块13,用于基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。
可选的,如图6所示,所述装置1,包括:
密钥对获取模块14,用于向所述区块链平台发送密钥对获取请求,接收并保存所述区块链平台发送的密钥对,所述密钥对包括私钥以及所述私钥对应的第二公钥。
可选的,如图6所示,所述装置1,包括:
密钥公开模块15,用于向所述区块链平台发送密钥公开请求,所述密钥公开请求用于指示所述区块链平台将所述第二公钥发布至所述区块链平台的公有链上。
可选的,如图5所示,所述第二公钥获取模块12,包括:
第二公钥获取单元121,用于在本地获取所述私钥对应的第二公钥;
获取请求发送单元122,用于向所述区块链平台发送密钥获取请求,接收所述区块链平台基于所述密钥获取请求在所述公有链上获取所述私钥对应的第二公钥。
可选的,所述终端身份验证模块13,具体用于:
当所述第一公钥与所述第二公钥匹配时,确定所述终端的身份验证成功;
当所述第一公钥与所述第二公钥不匹配时,确定所述终端的身份验证失败。
需要说明的是,上述实施例提供的基于区块链的身份验证装置在执行基于区块链的身份验证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于区块链的身份验证装置与基于区块链的身份验证方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,终端可以基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥,接收所述区块链平台发送的所述第一公钥,并获取所保存的所述私钥对应的第二公钥,终端就可以基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。可以避免采用身份识别码无法对终端身份验证的问题,在终端获取到区块链平台的第一公钥和所保存的第二公钥之后就可以进行身份验证,身份验证过程不涉及到获取身份识别码,终端在预先接入的区块链平台下就可以完成身份验证,从而提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性更高;以及终端在进行身份验证时,可以从本端或区块链平台的公有链上获取第二公钥,获取途径更多,提高了身份验证的便利性。
请参见图7,其示出了本申请一个示例性实施例提供的基于区块链的身份验证装置的结构示意图。该基于区块链的身份验证装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置2包括查询请求接收模块21和第一公钥生成模块22。
查询请求接收模块21,用于接收终端发送的密钥查询请求,所述密钥查询请求携带私钥;
第一公钥生成模块22,用于生成所述私钥对应的第一公钥,将所述第一公钥发送至所述终端,所述第一公钥用于指示所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。
可选的,如图8所示,所述第一公钥生成模块22,包括:
加密计算单元221,用于根据所述私钥进行加密计算,得到所述私钥对应的第一公钥;
公钥查找单元222,用于在所存储的密钥对集合中,查找所述私钥对应的第一公钥。
可选的,如图9所示,所述装置2,包括:
私钥生成模块23,用于接收所述终端发送的密钥对获取请求,控制随机数发生器生成私钥;
公钥计算模块24,用于对所述私钥进行加密计算,得到所述私钥对应的第二公钥;
密钥对发送模块25,用于将包含所述私钥以及所述第二公钥的密钥对发送至所述终端。
可选的,所述装置2,具体用于:
接收所述终端发送的密钥获取请求,在所述区块链平台的所述公有链上获取所述终端当前的第二公钥;
将所述第二公钥发送至所述终端。
需要说明的是,上述实施例提供的基于区块链的身份验证装置在执行基于区块链的身份验证方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于区块链的身份验证装置与基于区块链的身份验证方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本实施例中,区块链平台接收终端发送的密钥查询请求,根据密钥查询请求携带的私钥,生成所述私钥对应的第一公钥,并可以将所述第一公钥发送至所述终端,所述第一公钥用于辅助所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。区块链平台可以辅助终端避免采用身份识别码无法对终端身份验证的问题,在终端获取到区块链平台的第一公钥和所保存的第二公钥之后就可以进行身份验证,身份验证过程不涉及到获取身份识别码,终端在预先接入的区块链平台下就可以完成身份验证,从而提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性更高;以及终端在进行身份验证时,可以从本端或区块链平台的公有链上获取第二公钥,获取途径更多,提高了身份验证的便利性。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图3所示实施例的所述基于区块链的身份验证方法,具体执行过程可以参见图1-图3所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图3所示实施例的所述基于区块链的身份验证方法,具体执行过程可以参见图1-图3所示实施例的具体说明,在此不进行赘述。
请参见图10,为本申请实施例提供了一种电子设备的结构示意图。如图10所示,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链的身份验证应用程序。
在图10所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的基于区块链的身份验证应用程序,并具体执行以下操作:
基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥;
接收所述区块链平台发送的所述第一公钥,获取所保存的所述私钥对应的第二公钥;
基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。
在一个实施例中,所述处理器1001在执行所述基于所保存的私钥向区块链平台发送密钥查询请求之前,还执行以下操作:
向所述区块链平台发送密钥对获取请求,接收并保存所述区块链平台发送的密钥对,所述密钥对包括私钥以及所述私钥对应的第二公钥。
在一个实施例中,所述处理器1001在执行所述接收并保存所述区块链平台发送的密钥对之后,还执行以下操作:
向所述区块链平台发送密钥公开请求,所述密钥公开请求用于指示所述区块链平台将所述第二公钥发布至所述区块链平台的公有链上。
在一个实施例中,所述处理器1001在执行所述获取所保存的所述私钥对应的第二公钥时,具体执行以下操作:
在本地获取所述私钥对应的第二公钥;或,
向所述区块链平台发送密钥获取请求,接收所述区块链平台基于所述密钥获取请求在所述公有链上获取所述私钥对应的第二公钥。
在一个实施例中,所述处理器1001在执行所述基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证时,具体执行以下操作:
当所述第一公钥与所述第二公钥匹配时,确定所述终端的身份验证成功;
当所述第一公钥与所述第二公钥不匹配时,确定所述终端的身份验证失败。
在本实施例中,终端可以基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥,接收所述区块链平台发送的所述第一公钥,并获取所保存的所述私钥对应的第二公钥,终端就可以基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。可以避免采用终端身份识别码无法对终端身份验证的问题,提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性较高;以及终端在进行身份验证时,可以从本端或区块链平台的公有链上获取第二公钥,获取途径更多,提高了身份验证的便利性。
请参见图11,为本申请实施例提供了另一种电子设备的结构示意图。如图11所示,所述电子设备2000可以包括:至少一个处理器2001,至少一个网络接口2004,用户接口2003,存储器2005,至少一个通信总线2002。
其中,通信总线2002用于实现这些组件之间的连接通信。
其中,用户接口2003可以包括显示屏(Display),可选用户接口2003还可以包括标准的有线接口、无线接口。
其中,网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器2001可以包括一个或者多个处理核心。处理器2001利用各种借口和线路连接整个服务器2000内的各个部分,通过运行或执行存储在存储器2005内的指令、程序、代码集或指令集,以及调用存储在存储器2005内的数据,执行服务器2000的各种功能和处理数据。可选的,处理器2001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器2001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器2001中,单独通过一块芯片进行实现。
其中,存储器2005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器2005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器2005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图11所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链的身份验证应用程序。
在图11所示的电子设备2000中,用户接口2003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器2001可以用于调用存储器2005中存储的基于区块链的身份验证应用程序,并具体执行以下操作:
接收终端发送的密钥查询请求,所述密钥查询请求携带私钥;
生成所述私钥对应的第一公钥,将所述第一公钥发送至所述终端,所述第一公钥用于指示所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。
在一个实施例中,所述处理器2001在执行所述生成所述私钥对应的第一公钥时,具体执行以下操作:
根据所述私钥进行加密计算,得到所述私钥对应的第一公钥;或,
在所存储的密钥对集合中,查找所述私钥对应的第一公钥。
在一个实施例中,所述处理器2001在执行所述接收终端发送的密钥查询请求之前,还执行以下操作:
接收所述终端发送的密钥对获取请求,控制随机数发生器生成私钥;
对所述私钥进行加密计算,得到所述私钥对应的第二公钥;
将包含所述私钥以及所述第二公钥的密钥对发送至所述终端。
在一个实施例中,所述处理器2001在执行所述基于区块链的身份验证应用方法时,具体执行以下操作:
接收所述终端发送的密钥公开请求,将所述第二公钥发布至所述区块链平台的公有链上;或,
将所述第二公钥发布至所述区块链平台的公有链上。
在一个实施例中,所述处理器2001在执行所述基于区块链的身份验证应用方法时,具体执行以下操作:
接收所述终端发送的密钥获取请求,在所述区块链平台的所述公有链上获取所述终端当前的第二公钥;
将所述第二公钥发送至所述终端。
在本申请实施例中,区块链平台接收终端发送的密钥查询请求,根据密钥查询请求携带的私钥,生成所述私钥对应的第一公钥,并可以将所述第一公钥发送至所述终端,所述第一公钥用于辅助所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。区块链平台可以辅助终端避免采用身份识别码无法对终端身份验证的问题,在终端获取到区块链平台的第一公钥和所保存的第二公钥之后就可以进行身份验证,身份验证过程不涉及到获取身份识别码,终端在预先接入的区块链平台下就可以完成身份验证,从而提高了终端身份验证的通用性,同时基于区块链进行身份验证,身份验证的可靠性更高;以及终端在进行身份验证时,可以从本端或区块链平台的公有链上获取第二公钥,获取途径更多,提高了身份验证的便利性。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE GateArray,FPGA)、集成电路(Integrated Circuit,IC)等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。

Claims (12)

1.一种基于区块链的身份验证方法,其特征在于,应用于终端,所述方法包括:
基于所保存的私钥向区块链平台发送密钥查询请求,所述密钥查询请求用于指示所述区块链平台生成所述私钥对应的第一公钥;
接收所述区块链平台发送的所述第一公钥,获取所保存的所述私钥对应的第二公钥;
基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证。
2.根据权利要求1所述的方法,其特征在于,所述基于所保存的私钥向区块链平台发送密钥查询请求之前,还包括:
向所述区块链平台发送密钥对获取请求,接收并保存所述区块链平台发送的密钥对,所述密钥对包括私钥以及所述私钥对应的第二公钥。
3.根据权利要求2所述的方法,其特征在于,所述接收并保存所述区块链平台发送的密钥对之后,还包括:
向所述区块链平台发送密钥公开请求,所述密钥公开请求用于指示所述区块链平台将所述第二公钥发布至所述区块链平台的公有链上。
4.根据权利要求3所述的方法,其特征在于,所述获取所保存的所述私钥对应的第二公钥,包括:
在本地获取所述私钥对应的第二公钥;或,
向所述区块链平台发送密钥获取请求,接收所述区块链平台基于所述密钥获取请求在所述公有链上获取所述私钥对应的第二公钥。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一公钥以及所述第二公钥,对所述终端进行身份验证,包括:
当所述第一公钥与所述第二公钥匹配时,确定所述终端的身份验证成功;
当所述第一公钥与所述第二公钥不匹配时,确定所述终端的身份验证失败。
6.一种基于区块链的身份验证方法,其特征在于,应用于区块链平台,所述方法包括:
接收终端发送的密钥查询请求,所述密钥查询请求携带私钥;
生成所述私钥对应的第一公钥,将所述第一公钥发送至所述终端,所述第一公钥用于指示所述终端基于所述第一公钥与获取到的第二公钥进行身份验证。
7.根据权利要求6所述的方法,其特征在于,所述生成所述私钥对应的第一公钥,包括:
根据所述私钥进行加密计算,得到所述私钥对应的第一公钥;或,
在所存储的密钥对集合中,查找所述私钥对应的第一公钥。
8.根据权利要求6所述的方法,其特征在于,所述接收终端发送的密钥查询请求之前,还包括:
接收所述终端发送的密钥对获取请求,控制随机数发生器生成私钥;
对所述私钥进行加密计算,得到所述私钥对应的第二公钥;
将包含所述私钥以及所述第二公钥的密钥对发送至所述终端。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述终端发送的密钥公开请求,将所述第二公钥发布至所述区块链平台的公有链上;或,
将所述第二公钥发布至所述区块链平台的公有链上。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述终端发送的密钥获取请求,在所述区块链平台的所述公有链上获取所述终端当前的第二公钥;
将所述第二公钥发送至所述终端。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~5、6~10任意一项的方法步骤。
12.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~5、6~10任意一项的方法步骤。
CN202010293352.6A 2020-04-15 2020-04-15 基于区块链的身份验证方法、装置、存储介质及电子设备 Active CN111461720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010293352.6A CN111461720B (zh) 2020-04-15 2020-04-15 基于区块链的身份验证方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010293352.6A CN111461720B (zh) 2020-04-15 2020-04-15 基于区块链的身份验证方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111461720A true CN111461720A (zh) 2020-07-28
CN111461720B CN111461720B (zh) 2024-03-22

Family

ID=71678980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010293352.6A Active CN111461720B (zh) 2020-04-15 2020-04-15 基于区块链的身份验证方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111461720B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235290A (zh) * 2020-10-13 2021-01-15 中国联合网络通信集团有限公司 基于区块链的物联网设备管理方法及第一物联网设备
CN113300836A (zh) * 2021-04-23 2021-08-24 暨南大学 一种基于区块链和ecc的车载网络报文认证方法及系统
CN114065171A (zh) * 2021-11-11 2022-02-18 北京海泰方圆科技股份有限公司 一种身份认证方法、装置、系统、设备及介质
CN115134137A (zh) * 2022-06-23 2022-09-30 蚂蚁区块链科技(上海)有限公司 一种数据传输方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110414200A (zh) * 2019-04-08 2019-11-05 广州腾讯科技有限公司 身份验证方法、装置、存储介质和计算机设备
CN110417554A (zh) * 2018-04-26 2019-11-05 华为技术有限公司 一种验证终端设备身份的方法及装置
CN110458558A (zh) * 2019-07-04 2019-11-15 重庆金融资产交易所有限责任公司 基于区块链的数据保密方法、装置和计算机设备
CN110650160A (zh) * 2019-10-29 2020-01-03 北京天威诚信电子商务服务有限公司 一种身份认证方法及系统
WO2020048241A1 (zh) * 2018-09-04 2020-03-12 阿里巴巴集团控股有限公司 区块链跨链的认证方法、系统、服务器及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417554A (zh) * 2018-04-26 2019-11-05 华为技术有限公司 一种验证终端设备身份的方法及装置
WO2020048241A1 (zh) * 2018-09-04 2020-03-12 阿里巴巴集团控股有限公司 区块链跨链的认证方法、系统、服务器及可读存储介质
CN110414200A (zh) * 2019-04-08 2019-11-05 广州腾讯科技有限公司 身份验证方法、装置、存储介质和计算机设备
CN110458558A (zh) * 2019-07-04 2019-11-15 重庆金融资产交易所有限责任公司 基于区块链的数据保密方法、装置和计算机设备
CN110650160A (zh) * 2019-10-29 2020-01-03 北京天威诚信电子商务服务有限公司 一种身份认证方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235290A (zh) * 2020-10-13 2021-01-15 中国联合网络通信集团有限公司 基于区块链的物联网设备管理方法及第一物联网设备
CN112235290B (zh) * 2020-10-13 2023-03-24 中国联合网络通信集团有限公司 基于区块链的物联网设备管理方法及第一物联网设备
CN113300836A (zh) * 2021-04-23 2021-08-24 暨南大学 一种基于区块链和ecc的车载网络报文认证方法及系统
CN114065171A (zh) * 2021-11-11 2022-02-18 北京海泰方圆科技股份有限公司 一种身份认证方法、装置、系统、设备及介质
CN114065171B (zh) * 2021-11-11 2022-07-08 北京海泰方圆科技股份有限公司 一种身份认证方法、装置、系统、设备及介质
CN115134137A (zh) * 2022-06-23 2022-09-30 蚂蚁区块链科技(上海)有限公司 一种数据传输方法及装置
CN115134137B (zh) * 2022-06-23 2024-02-09 蚂蚁区块链科技(上海)有限公司 一种数据传输方法、装置、计算机可读存储介质和设备

Also Published As

Publication number Publication date
CN111461720B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
CN109889589B (zh) 一种基于区块链实现嵌入式硬件ota升级系统及方法
CN110493261B (zh) 基于区块链的验证码获取方法、客户端、服务器及存储介质
CN107294729B (zh) 区块链中不同节点之间的通信方法及装置
CN108241517B (zh) 一种软件升级方法、客户端及电子设备
WO2018112940A1 (zh) 区块链节点的业务执行方法、装置及节点设备
CN111461720A (zh) 基于区块链的身份验证方法、装置、存储介质及电子设备
CN108377272B (zh) 一种管理物联网终端的方法及系统
CN112559993B (zh) 身份认证方法、装置、系统及电子设备
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN111131416B (zh) 业务服务的提供方法和装置、存储介质、电子装置
CN110113355B (zh) 物联网云端的接入方法及装置
CN110177124A (zh) 基于区块链的身份认证方法及相关设备
CN107172001B (zh) 网站代理服务器的控制方法及装置、密钥代理服务器
CN109525989A (zh) 数据处理、身份认证方法及系统、终端
CN112989426B (zh) 授权认证方法及装置、资源访问令牌的获取方法
CN111815321A (zh) 交易提案的处理方法、装置、系统、存储介质和电子装置
KR20150059347A (ko) 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법
CN109194651A (zh) 一种身份认证方法、装置、设备及存储介质
US20220159462A1 (en) Router, network connection method and mobile terminal
CN111506327A (zh) 区块链节点热升级方法及相关设备
CN111488372A (zh) 一种数据处理方法、设备及存储介质
CN110910110A (zh) 一种数据处理方法、装置及计算机存储介质
CN111597537B (zh) 基于区块链网络的证书签发方法、相关设备及介质
CN113129002A (zh) 一种数据处理方法以及设备
CN110602133B (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
GR01 Patent grant
GR01 Patent grant