一种身份认证方法、身份认证装置及计算机可读介质与流程

文档序号:16382014发布日期:2018-12-22 09:34阅读:162来源:国知局
一种身份认证方法、身份认证装置及计算机可读介质与流程

本申请涉及区块链技术领域,尤其涉及一种身份认证方法、身份认证装置及计算机可读介质。

背景技术

区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了过去一定时间内所有区块链网络的网络交易信息,用于验证其信息的有效性和生成洗衣歌区块。近年来区块链技术得到广泛的关注和发展。区块链技术,又称为“分布式账本技术”,其本质是去中心化,且寓于分布式结构的数据存储、传输和证明的方法,有多个节点集体参与的分布式数据库系统。他不是一种单一的技术,而是多种技术整合的结果,利用区块链技术维护一个可靠地、难以篡改的账本记录,可以降低信任的风险,并能有效的降低多参与方协作的维护成本。

现有的pki/ca技术是以数字证书认证中心为基础,通过第三方可信ca来发放数字证书,并与应用系统对接,通过发布crl和ocsp为应用系统提供证书状态查询服务,实现相关的身份认证以及完整性保护。但是当前pki模式成本非常高,目前全球只有几家证书授权机构能够进行证书签发(公钥),签发收费很高,目前只有大型机构,公司,网站才能负担;另外当前证书签发的模式,效率非常低,需要来回核实审批等;当前模式在时效和成本上太大,导致无法让普通用户享受安全,廉价的公钥分发服务。



技术实现要素:

本申请实施例提供一种身份认证方法,可安全、高效且廉价的分发用户公钥以及有效的对用户身份进行验证。

第一方面,本申请实施例提供了一种身份认证方法,该方法包括:

验证节点接收已验证的第一用户信息,所述第一用户信息包括第一用户的第一地址标识、第一公钥和第一身份标识;

所述验证节点使用预设的第一单向加密算法对所述第一身份标识加密,得到第一身份指纹;

所述验证节点生成所述第一地址标识、所述第一公钥以及所述第一身份指纹的映射关系作为第一身份映射信息;

所述验证节点将所述第一身份映射信息添加到区块链中

第二方面,本申请实施例还提供了一种身份认证方法,该方法包括:

第二用户节点根据第一用户的第一用户地址标识从区块链中获取与所述第一用户地址标识对应的第一身份映射信息,所述第一身份映射信息包括第一用户地址标识、第一公钥和第一身份指纹;

所述第二用户节点使用所述第一公钥对第二用户的第二公钥加密,得到身份验证请求,将所述身份验证请求全网广播;

所述第二用户节点接收身份反馈信息,所述身份反馈信息为使用所述第一用户的私钥对所述身份验证请求解密得到所述第二公钥后,使用所述第二公钥对第一用户的第一身份标识加密得到的信息;

所述第二用户节点根据所述第二用户私钥和所述第一身份指纹对所述反馈信息进行验证,若验证通过,则确定所述第一用户地址标识为所述第一用户的用户地址标识。

第三方面,本申请实施例提供了一种设备,作为验证节点,该设备包:

第一接收单元,用于接收已验证的第一用户信息,所述第一用户信息包括第一用户的第一地址标识、第一公钥、第一身份标识;

第一加密单元,用于使用第一单向加密算法对所述第一身份标识加密,得到第一身份指纹;

第一生成单元,用于生成所述第一地址标识、所述第一公钥以及所述第一身份指纹的映射关系作为第一身份映射信息;

第一添加单元,用于将所述第一身份映射信息添加到区块链中。

第四方面,本申请实施例提供了一种设备,作为第二用户节点,该设备包:

第二获取单元,用于根据第一用户的第一用户地址标识从区块链中获取与所述第一用户地址标识对应的第一身份映射信息,所述第一身份映射信息包括第一用户地址标识、第一公钥和第一身份指纹;

第二加密单元,用于使用所述第一公钥对第二用户的第二公钥加密,得到身份验证请求,将所述身份验证请求全网广播;

第二接收单元,用于接收身份反馈信息,所述身份反馈信息为使用所述第一用户的私钥对所述身份验证请求解密得到所述第二公钥后,使用所述第二公钥对第一用户的第一身份标识加密得到的信息;

验证单元,用于根据所述第二用户私钥和所述第一身份指纹对所述反馈信息进行验证,若验证通过,则确定所述第一用户地址标识为所述第一用户的用户地址标识。

第五方面,本申请实施例提供了身份认证装置,包括处理器、存储器和通信模块,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码来执行上述第一方面和第二方面中的方法及其任一种可选方式的方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法和第二方面。

在本身申请实施例中,验证节点通过用户提供的用户地址标识、公钥和身份标识对用户的身份信息进行确认核实后,将通过单向加密算法对用户提供的身份标识进行加密计算得到用户的身份指纹。然后将用户的公钥、用户地址标识和上述身份指纹绑定生成身份映射信息,并将上述身份映射信息添加到区块链中。由于上述身份映射信息是通过验证节点对用户的身份核实后对并用户的用户地址标识、公钥以及身份指纹生成的,并确定了用户真实拥有上述用户地址表示和公钥对应的私钥,因此在区块链中,其他用户节点可以通过用户地址标识来准确的获取到用户的公钥和身份指纹。。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供一种身份认证方法的示意流程图;

图2是本申请实施例提供的另一种身份认证方法的示意流程图;

图3是本申请实施例提供的一种身份认证装置的功能单元组成图;

图4是本申请实施例提供的另一种身份认证装置的功能单元组成图;

图5是本申请实施例提供的一种身份认证装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

由于区块链天生的公开透明,防篡改的机制,所以可以代替传统证书签发的信任中间机构;个人、机构都可以生成自己的非对称加密密钥对,将私钥自己保留,将用户地址标识、对应公钥以及对应身份指纹发布到区块链中,在区块链中形成用户地址标识、对应公钥以及对应身份指纹的映射关系,以便接入区块链的节点在知晓某个人的地址标识的情况下,可以通过该地址标识在区块链中获取到与之对应的公钥,从而安全的获取到准确的公钥,并通过身份指纹来核实该用户的身份。其中,身份指纹是对用户的身份标识采用单向加密计算生成到的,即由用户身份标识可以得到身份指纹,但是由身份指纹不能得到身份标识。

参见图1,图1是本申请实施例提供一种身份认证方法的示意流程图,如图所示该方法可包括:

101:验证节点接收已验证的第一用户信息,上述第一用户信息包括第一用户的第一地址标识、第一公钥、第一身份标识。

在本申请实施例中,接入区块链的个人、机构或企业等用户通过区块链节点终端生成非对称的加密秘钥对,分别为公钥和私钥,并根据公钥生成用户地址标识。用户在生成秘钥对后,通过安全的方式(线上或线下)将自己的用户地址标识、公钥以及能表明自己身份的身份标识提供给区块链网络中的验证节点。然后区块链网络中的验证节点对用户提供的身份标识进行验证。当验证通过后,执行步骤102。

其中,上述用户的身份标识为能够证实上述用户身份的信息,例如,若上述用户为个人用户,则上述身份标识可以包括用户姓名和身份证号等信息;若上述用户为企业,则上述身份标识可以包括企业名称和企业的组织结构代码等信息。上述验证节点为区块链网络中可以信任的第三方信任机构或平台,例如,公安系统、工商管理系统等。

102:验证节点使用预设第一单向加密算法对上述第一身份标识加密,得到第一身份指纹。

在本申请实施例中,当区块链网络中的验证节点对用户提供的身份标识进行验证,验证通过后,便使用单向加密算法对上述用户提供的身份标识进行加密计算,以便得到能够在区块链中对用户身份进行标识且不会泄露用户身份信息的身份指纹。

其中,上述单向加密算法为只能够对数据进行加密得到加密数据,但不能有加密数据得到数据的算法。即可以使用单向加密算法对身份标识对身份标识进行加密得到身份指纹,然而不存在相应的解密算法来对上述身份指纹解密得到身份标识。上述单向加密算法可以包括信息-摘要算法(message-digestalgorithm,md)、算法和安全散列算法1(securehashalgorithm,sha-1)、散列消息鉴别码(hashmessageauthenticationcode,hmac)等。例如,上述单向加密算法为md算法时,则对上述身份标识进行哈希运算,得到的哈希值便为上述身份指纹。

在本申请实施例中,上述身份指纹是由的身份标识(例如,个人用户的姓名、身份证号等信息,或企业、单位等的名称、组织机构代码等信息)经过单向加密算法加密后生成的,上述身份标识是指持有与上述身份指纹和公钥对应的私钥的用户的真实身份信息。例如,对上述真实身份信息进行哈希得到其哈希值,将其哈希值作为上述身份指纹。可以理解的是,在本申请实施例中,不对上述验证节点作限制。上述验证节点可以是上述主账户运营节点,也可以是第三方信任机构,例如,对于个人用户的身份验证上述第三方信息机构可以是公安系统,对于企业或单位上述第三方信任机构可以是工商管理系统。

103:验证节点生成上述第一地址标识、上述第一公钥以及上述第一身份指纹的映射关系作为第一身份映射信息,将上述第一身份映射信息添加到区块链中。

在区块链网络中的验证节点对上述用户提供的用户地址标识、公钥以及身份标识的验证通过后,区块链网络中的验证节点便使用验证节点的私钥对该用户的用户地址标识、公钥以及身份指纹进行签名生成电子签名,然后将该用户的用户地址标识、公钥、身份指纹以及电子签名进行全网广播,并将该用户的用户地址标识、公钥、身份指纹写入本地区块中,等区块链的网络的各个节点经过共识机制达成共识后将包含有用户地址标识、公钥、身份指纹的区块连接到本地区块链的账本中。

在本申请实施例中,在区块链网络的其他网络节点接收到区块链网络中的验证节点广播的上述用户的用户地址标识、公钥、身份指纹以及电子签名信息后,使用上述用户的用户地址标识、公钥、身份指纹对该电子签名信息进行验证,验证通过后,将上述用户的用户地址标识、公钥、身份指纹写入本地当前区块中,等区块链的网络的各个节点经过共识机制达成共识后将包含有用户地址标识、公钥、身份指纹的区块连接到本地区块链的账本中

举例来说,个人用户a通过区块链网络节点终端生成了自己的私钥和公钥以及用户地址标识,然后用户a通过线下的方式去公安系统将自己的公钥、用户地址标识以及自己的姓名和身份证号进行登记,并要求在区块链中分发自己的公钥。在公安系统对用户a的姓名和身份证号进行验证,并确认提交上述公钥、用户地址标识以及姓名和身份证号的用户为用户a本人之后,公安系统本对用户a的姓名和身份证号进行哈希运算得到用户a的身份指纹,并使用公安系统的私钥对用户a的用户地址标识、公钥以及身份指纹进行签名生成电子签名信息。然后,公安系统将用户a的用户地址标识、公钥、身份指纹以及电子签名信息进行全网广播,并将用户a的用户地址标识、公钥、身份指纹写入本地当前区块中,等区块链的网络的各个节点达成共识后将该本地当前区块加入到区块链中。以便后续使用区块链中用户a的用户地址标识、公钥以及身份指纹对用户a进行身份核实。

作为一种可选的实施方式,为了确认提供上述公钥的用户是否真实持有该公钥对应的私钥,在上述区块链网络中的验证节点对用户提供的用户身份标识的验证通过后,区块链网络中的验证节点接收通过输入设备输入的第一随机数,然后触发智能合约生成第二随机数,接着根据第一随机数和第二随机数生成第三随机数。再接着验证节点使用单向加密算法对上述第三随机数加密的到第一信息,例如对上述第三随机数的哈希值加密得到上述第一信息。再然后,上述验证节点使用上述用户的公钥对上述第一信息加密得到第一验证信息,并将上述第一验证信息全网广播,即向用户发送了上述第一验证信息。

当上述用户节点接收到上述第一验证信息后,使用上述用户的私钥对上述第一验证信息进行解密的到上述第一信息。然后上述用户节点使用区块链网络中验证节点的公钥对上述第一信息加密得到第二信息,并将第二信息进行全网广播,即向验证节点发送上述第二信息。

区块链网络中的验证节点接收到上述第二信息后,使用区块链网络中的验证节点的私钥对上述第二信息解密得到第三信息。然后上述验证节点判断上述第三信息与上述第一信息是否相等,若上述第三信息和上述第一信息相等,则确定提供上述公钥的用户持有该公钥对应的私钥。然后执行使用第一单向加密算法对上述第一身份标识加密的步骤。

可以看出,在本身申请实施例中,验证节点通过用户提供的用户地址标识、公钥和身份标识对用户的身份信息进行确认核实后,将通过单向加密算法对用户提供的身份标识进行加密计算得到用户的身份指纹。然后将用户的公钥、用户地址标识和上述身份指纹绑定生成身份映射信息,并将上述身份映射信息添加到区块链中。由于上述身份映射信息是通过验证节点对用户的身份核实后对并用户的用户地址标识、公钥以及身份指纹生成的,并确定了用户真实拥有上述用户地址表示和公钥对应的私钥,因此在区块链中,其他用户节点可以通过用户地址标识来准确的获取到用户的公钥和身份指纹。

在实际生活中,当第一用户和第二用户进行交易或传送文件时,假设第一用户确认了第二用户的身份,但第二用户没有确定第一用户的身份,即第二用户的身份不需要核实,而第二用户需要核实第一用户的身份,即第二用户想要知道他获取到的用户地址到底是不是真实的第一用户拥有的用户地址。对此本申请在上述实时例一的基础上提供了另一种身份认证方法。

参见图2,图2是本申请实施例提供的另一种身份认证方法的示意流程图,如图所示该方法可包括:

201:第二用户节点根据第一用户的第一用户地址标识从区块链中获取与上述第一用户地址标识对应的第一身份映射信息,上述第一身份映射信息包括第一用户地址标识、第一公钥和第一身份指纹。

在本申请实施例中,当第二用户节点获取到了第一用户的用户地址标识。当第二用户想要对第一用户的身份进行核实验证时,上述第二用户节点可以根据事先获取到的第一用户地址标识从区块链中获取与上述第一用户地址标识对应的第一身份映射信息,该第一身份映射信息中包括第一用户地址标识、第一公钥和第一身份指纹。

其中,上述第一身份映射标识为区块链网络中的验证节点对上述第一用户的身份进行核实且对上述第一用户提供的公钥、用户地址标识和身份标识进行验证之后,将身份标识单向加密生成身份指纹。然后将验证后的第一用户的公钥、用户地址标识和身份指纹绑定生成的映射关系信息。

202:第二用户节点使用上述第一公钥对第二用户的第二公钥加密,得到身份验证请求,将上述身份验证请求全网广播;

在本申请实施例中,当第二用户节点获取到上述第一用户地址标识对应的身份指纹和公钥后,第二用户节点使用上述第一公钥对第二用户的第二公钥加密,生成身份验证请求,并将上述身份验证请求全网广播,即将上述身份验证请求通过广播的形式发送给了第一用户。

203:第二用户节点接收身份反馈信息,上述身份反馈信息为使用上述第一用户的私钥对上述身份验证请求解密得到上述第二公钥后,使用上述第二公钥对第一用户的第一身份标识加密得到的信息;

在本申请实施例中,区块链中的节点可以实时或在预设时长内检测在区块链中是否有本需要处理的消息。当上述第二用户节点将身份验证请求全网广播,且第一用户节点检测到上述身份验证请求需要处理后,上述第一用户节点便使用第一用户的私钥对上述身份验证请求进行解密,得到上述第二用户的第二公钥。然后上述第一用户节点将自己的第一身份标识使用上述第二公钥进行加密得到反馈信息,并将上述反馈信息全网广播,即将反馈信息发送给上述第二用户。其中上述第一用户的第一身份标识和第一用户向验证节点提供的身份标识相同。

204:第二用户节点根据上述第二用户私钥和上述第一身份指纹对上述反馈信息进行验证,若验证通过,则确定上述第一用户地址标识为上述第一用户的用户地址标识。

在本申请实施例中,当第二用户接收到上述反馈信息后,第二用户使用第二用户的私钥对上述反馈信息进行解密得到第二身份标识;然后使用和上述验证节点生成身份指纹相同的单向加密算法对上述第二身份标识进行加密,得到第二身份指纹。最后判断上述第二身份指纹和从区块链中得到的第一身份指纹是否相等,若相等,则确定上述第二身份标识真实为上述第一用户地址标识对应用户的身份标识。即对上述第一用户的身份验证通过。在对上述第一用户的身份验证通过后,上述第二用户可以根据得到的上述第二身份标识来判断上述第一用户是否为上述第二用户想要验证的用户。

例如,张三想要给王五发送一份机密文件,但是张三不能实际联到王五本人,只是获取到一个疑似王五的第三用户地址标识,此时张三就可以使用本申请提供的上述身份验证方法来对疑似王五的第三用户地址标识进行身份验证。首先张三从区块链中获取与上述第三用户地址标识对应的第三公钥和第三身份指纹。然后使用第三公钥将张三的公钥加密发送给第三用户地址标识的节点。当收到反馈信息后使用张三的私钥解密反馈信息得到身份标识,然后根据得到的身份标识得到身份指纹,并将其与上述第三身份指纹对比,若一样,则说明第三用户地址标识确实为上述得到的身份标识对应的用户。然后判断上述身份标识是否为王五的身份标识。若是则可以放心的将机密文件发送给上述第三用户地址标识对应的用户了。

作为一种可选的实施方式,当两个用户之间都不能确定对方的身份时也可以采用上述的身份验证方法来相互验证对方的身份。具体的:假设第一用户和第二用户进行交易和传送文件时,第一用户和第二用户均不能确认对方的身份,即第一用户和第二用户需要相互核实身份。

上述第一用户根据第二用户提供的第二用户地址标识从区块链中获取到第二用户地址标识对应的第二公钥以及第二身份指纹。然后第以用户使用第二公钥加密第一用户的第一公钥和第一用户的身份标识来生成身份核实请求,并将该身份核实请求进行全网广播。当上述第二用户接收到上述身份核实请求之后,上述第二用户使用自己的第二私钥对上述身份核实请求进行解密得到第一用户的第一公钥和第一用户的身份标识,然后根据第一用户的身份标识判断该第一身份标识是否真实为第一用户的身份标识;若是,则对上述第一用户的身份标识单向加密得到第一用户的身份指纹,并根据第一公钥从区块链中获取第一公钥对应的第一身份指纹。然后第二用户判断上述第一身份指纹和上述第一用户的身份指纹是否相等,若相等,则第二用户确认第一用户的身份,即确认发身份核实请求的用户为真实的第一用户。

在第二用户确认第一用户身份之后,第二用户使用解密得到的第一公钥对第二用户的身份标识进行加密得到反馈信息,并将该反馈信息进行全网广播。当第一用户接收到上述反馈信息后,第一用户使用第一私钥对上述反馈信息进行解密得到身份标识;然后根据得到的身份标识判断该身份标识是否为第一用户需要验证的第二用户的标识信息;若是,则继续对上述第二用户的身份标识单向加密得到第二用户的身份指纹,接着将上述第二用户的身份指纹和上述从区块链中获取的第二身份指纹对比,若两者相等,则确定上述从区块链中获取到的第二用户地址标识和公钥以及身份指纹是第二用户持有的,且第二用户真实持有上述第二用户地址标识对应的私钥。

可以看出,在本申请实施例中,先通过验证节点将包括用户的用户地址标识、公钥和身份指纹的身份映射信息上传到区块链中,然后当需要进行用户身份验证时,可以通过获取区块链中的上述用户身份映射信息来对应用户进行身份验证,并确定验证的用户是真实为需要联系的用户。

请参阅图3,图3是本申请实施例提供的一种身份认证装置300的一种可能的功能单元组成框图,该身份认证装置应用于验证节点,包括:第一接收单元310、第一加密单元320、第一生成单元330以及第一添加单元340。

第一接收单元310,用于接收已验证的第一用户信息,上述第一用户信息包括第一用户的第一地址标识、第一公钥、第一身份标识;

第一加密单元320,用于使用预设的第一单向加密算法对上述第一身份标识加密,得到第一身份指纹;

第一生成单元330,用于生成上述第一地址标识、上述第一公钥以及上述第一身份指纹的映射关系作为第一身份映射信息;

第一添加单元340,用于将上述第一身份映射信息添加到区块链中。

可选的,上述第一添加单元包括:

签名单元,用于对上述第一身份映射信息进行电子签名,得到第一电子签名;

记录单元,用于将上述第一身份映射信息记录到本地区块链中,将上述第一身份映射信息以及上述第一电子签名全网广播;

连接单元,用于将包含有上述第一身份映射信息的区块连接到本地区块链的账本中。

可选的,上述签名单元,用于对上述第一身份映射信息进行单向加密运算生成信息摘要,使用上述验证节点的私钥对上述信息摘要加密生成上述电子签名信息。

可选的,上述第一接收单元310,用于接收输入设备输入的第一随机数,触发第一智能合约生成第二随机数;

上述第一生成单元330,用于根据上述第一随机数、上述第二随机数和预设规则生成第三随机数;

上述第一加密单元320,用于使用第二单向加密算法对上述第三随机数加密的到第一信息;

上述第一加密单元320,还用于使用上述第一公钥对上述第一信息加密得到第一验证信息,将上述第一验证信息全网广播;

上述第一接收单元310,用于接收第二信息,上述第二信息为使用上述第一用户的私钥对上述第一验证信息解密得到上述第一信息后,经上述验证节点的公钥对上述第一信息加密得到的信息;

上述身份认证装置还包括:

第一解密单元,用于使用上述验证节点的私钥对上述第二信息解密得到第三信息,判断上述第三信息和上述第一信息相等,则执行上述使用第一单向加密算法对上述第一身份标识加密的步骤。

可以看出,在本身申请实施例中,验证节点通过用户提供的用户地址标识、公钥和身份标识对用户的身份信息进行确认核实后,将通过单向加密算法对用户提供的身份标识进行加密计算得到用户的身份指纹。然后将用户的公钥、用户地址标识和上述身份指纹绑定生成身份映射信息,并将上述身份映射信息添加到区块链中。由于上述身份映射信息是通过验证节点对用户的身份核实后对并用户的用户地址标识、公钥以及身份指纹生成的,并确定了用户真实拥有上述用户地址表示和公钥对应的私钥,因此在区块链中,其他用户节点可以通过用户地址标识来准确的获取到用户的公钥和身份指纹。

请参阅图4,图4是本申请实施例提供的一种身份认证装置300的一种可能的功能单元组成框图,该身份认证装置应用于第二用户节点,包括:获取单元、第二加密单元,第二接收单元。

获取单元,用于根据第一用户的第一用户地址标识从区块链中获取与上述第一用户地址标识对应的第一身份映射信息,上述第一身份映射信息包括第一用户地址标识、第一公钥和第一身份指纹;

第二加密单元,用于使用上述第一公钥对第二用户的第二公钥加密,得到身份验证请求,将上述身份验证请求全网广播;

第二接收单元,用于接收身份反馈信息,上述身份反馈信息为使用上述第一用户的私钥对上述身份验证请求解密得到上述第二公钥后,使用上述第二公钥对第一用户的第一身份标识加密得到的信息;

验证单元,用于根据上述第二用户私钥和上述第一身份指纹对上述反馈信息进行验证,若验证通过,则确定上述第一用户地址标识为上述第一用户的用户地址标识。

可选的,上述验证单元包括:

第二解密单元,用于使用上述第二用户的私钥对上述身份反馈信息解密得到第二身份标识;

第三加密单元,用于上述第二用户使用第一单向加密算法对上述第二身份标识加密得到第二身份指纹信息,判断上述第二身份指纹信息和上述第一身份指纹是否相等,若相等,则验证通过。

可选的,上述第一身份映射信息为区块链网络中的验证节点使用上述第一单向加密算法对第一用户的第一身份标识加密生成上述第一身份指纹后,根据上述第一用户地址标识、上述第一公钥和上述第一身份指纹生成的映射关系信息。

可以看出,在本申请实施例中,先通过验证节点将包括用户的用户地址标识、公钥和身份指纹的身份映射信息上传到区块链中,然后当需要进行用户身份验证时,可以通过获取区块链中的上述用户身份映射信息来对应用户进行身份验证,并确定验证的用户是真实为需要联系的用户。

请参阅图5,图5是本申请实施例提供的一种身份认证装置500的结构示意图,如图5所示,身份认证装置500包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序不同于上述一个或多个应用程序,且上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行。

在身份认证装置500为服务器时,上述程序包括用于执行以下步骤的指令:接收已验证的第一用户信息,上述第一用户信息包括第一用户的第一地址标识、第一公钥、第一身份标识;使用第一单向加密算法对上述第一身份标识加密,得到第一身份指纹;生成上述第一地址标识、上述第一公钥以及上述第一身份指纹的映射关系作为第一身份映射信息;将上述第一身份映射信息添加到区块链中。

在身份认证装置500为电子设备时,上述程序包括用于执行以下步骤的指令:根据第一用户的第一用户地址标识从区块链中获取与上述第一用户地址标识对应的第一身份映射信息,上述第一身份映射信息包括第一用户地址标识、第一公钥和第一身份指纹;使用上述第一公钥对第二用户的第二公钥加密,得到身份验证请求,将上述身份验证请求全网广播;接收身份反馈信息,上述身份反馈信息为使用上述第一用户的私钥对上述身份验证请求解密得到上述第二公钥后,使用上述第二公钥对第一用户的第一身份标识加密得到的信息;根据上述第二用户私钥和上述第一身份指纹对上述反馈信息进行验证,若验证通过,则确定上述第一用户地址标识为上述第一用户的用户地址标识。

应当理解,在本申请实施例中,所称处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在本申请的另一实施例中提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现:接收已验证的第一用户信息,上述第一用户信息包括第一用户的第一地址标识、第一公钥、第一身份标识;使用第一单向加密算法对上述第一身份标识加密,得到第一身份指纹;生成上述第一地址标识、上述第一公钥以及上述第一身份指纹的映射关系作为第一身份映射信息;将上述第一身份映射信息添加到区块链中。

或者上述计算机程序被处理器执行时实现:根据第一用户的第一用户地址标识从区块链中获取与上述第一用户地址标识对应的第一身份映射信息,上述第一身份映射信息包括第一用户地址标识、第一公钥和第一身份指纹;使用上述第一公钥对第二用户的第二公钥加密,得到身份验证请求,将上述身份验证请求全网广播;接收身份反馈信息,上述身份反馈信息为使用上述第一用户的私钥对上述身份验证请求解密得到上述第二公钥后,使用上述第二公钥对第一用户的第一身份标识加密得到的信息;根据上述第二用户私钥和上述第一身份指纹对上述反馈信息进行验证,若验证通过,则确定上述第一用户地址标识为上述第一用户的用户地址标识。

上述计算机可读存储介质可以是前述任一实施例上述的终端的内部存储单元,例如终端的硬盘或内存。上述计算机可读存储介质也可以是上述终端的外部存储设备,例如上述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,上述计算机可读存储介质还可以既包括上述终端的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述终端所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、服务器和方法,可以通过其它的方式实现。例如,以上所描述的身份认证装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、身份认证装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1