基于区块链的身份验证方法和系统与流程

文档序号:16900240发布日期:2019-02-19 17:54阅读:286来源:国知局
基于区块链的身份验证方法和系统与流程

本发明涉及通信技术领域,尤其涉及一种基于区块链的身份验证方法和系统。



背景技术:

目前,随着法制化社会的发展,通过身份证等证件信息来对公民进行管理成为主流,然而,相关技术中,对证件信息的验证方式由于需要特定的注册设备来认证,认证效率较低,认证限制较高,较难普及到普通大众使用,比如,当前的身份证验证是靠离线的身份证读卡器完成的。有关部门授权的厂家进行生产读卡器,内嵌内置专用安全模块进行验证。且只局限于规定的单位授权进行身份证验证,普通大众无法完成验证。因此,认证效率不高,且认证操作难以普及。



技术实现要素:

本发明提出了一种基于区块链的身份验证方法和系统,以解决现有技术中,身份验证效率不高且限制较强无法普及的技术问题。

本发明第一实施例提供一种基于区块链的身份验证方法,包括:用户节点生成证件信息,其中,所述证件信息包括:证件类型、证件号码、经过用户的声纹密钥加密的证件头像,以及证件基本信息,应用用户私钥对所述证件信息和用户公钥签名后,向验证设备发送证件验证请求;所述验证设备接收所述证件验证请求,应用所述用户公钥验证所述用户私钥的有效性,若验证通过,则查询预存的与所述证件类型对应的身份数据库,获取与所述证件号码对应的用户声纹信息和验证头像,以及验证基本信息;所述验证设备将所述验证基本信息与所述证件基本信息进行匹配,若匹配成功,则根据所述用户声纹信息和预设算法对所述经过用户的声纹密钥加密的证件头像进行解密,将解密后的证件头像与所述验证头像进行匹配,若两者匹配成功,则应用设备私钥对所述证件信息进行签名后,向所述用户节点反馈证件验证成功响应,以使所述用户节点应用所述用户私钥对所述验证成功响应签名后发送给区块链网络的各参与节点;所述参与节点应用预存的用户公钥对所述用户私钥进行签名验证,验证通过后,应用预存的设备公钥对所述设备私钥进行签名验证,验证通过后,向所述区块链网络发送身份验证成功消息;挖矿节点若在预设时间内获取发送身份验证成功消息的参与节点的比例超过预设的第一阈值,则确定所述用户节点的证件信息验证成功,并将认证成功消息写入到区块中并向所述区块链网络广播。

本发明第二实施例提供一种基于区块链的身份验证系统,包括:用户节点、验证设备、参与节点和挖矿节点,其中,所述用户节点,用于生成证件信息,其中,所述证件信息包括:证件类型、证件号码、经过用户的声纹密钥加密的证件头像,以及证件基本信息,应用用户私钥对所述证件信息和用户公钥签名后,向验证设备发送证件验证请求;所述验证设备,用于接收所述证件验证请求,应用所述用户公钥验证所述用户私钥的有效性,若验证通过,则查询预存的与所述证件类型对应的身份数据库,获取与所述证件号码对应的用户声纹信息和验证头像,以及验证基本信息;所述验证设备,还用于将所述验证基本信息与所述证件基本信息进行匹配,若匹配成功,则根据所述用户声纹信息和预设算法对所述经过用户的声纹密钥加密的证件头像进行解密,将解密后的证件头像与所述验证头像进行匹配,若两者匹配成功,则应用设备私钥对所述证件信息进行签名后,向所述用户节点反馈证件验证成功响应,以使所述用户节点应用所述用户私钥对所述验证成功响应签名后发送给区块链网络的各参与节点;所述参与节点,用于应用预存的用户公钥对所述用户私钥进行签名验证,验证通过后,应用预存的设备公钥对所述设备私钥进行签名验证,验证通过后,向所述区块链网络发送身份验证成功消息;所述挖矿节点,用于若在预设时间内获取发送身份验证成功消息的参与节点的比例超过预设的第一阈值,则确定所述用户节点的证件信息验证成功,并将认证成功消息写入到区块中并向所述区块链网络广播。

本发明第三实施例提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述实施例所述的基于区块链的身份验证方法。

本发明第四实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的基于区块链的身份验证方法。

本发明实施例提供的技术方案可以包括以下有益效果:

用户节点生成证件信息,其中,证件信息包括:证件类型、证件号码、经过用户的声纹密钥加密的证件头像,以及证件基本信息,应用用户私钥对证件信息和用户公钥签名后,向验证设备发送证件验证请求,验证设备接收证件验证请求,应用用户公钥验证用户私钥的有效性,若验证通过,则查询预存的与证件类型对应的身份数据库,获取与证件号码对应的用户声纹信息和验证头像,以及验证基本信息,验证设备将验证基本信息与证件基本信息进行匹配,若匹配成功,则根据用户声纹信息和预设算法对经过用户的声纹密钥加密的证件头像进行解密,将解密后的证件头像与验证头像进行匹配,若两者匹配成功,则应用设备私钥对证件信息进行签名后,向用户节点反馈证件验证成功响应,以使用户节点应用用户私钥对验证成功响应签名后发送给区块链网络的各参与节点,进而,参与节点应用预存的用户公钥对用户私钥进行签名验证,验证通过后,应用预存的设备公钥对设备私钥进行签名验证,验证通过后,向区块链网络发送身份验证成功消息,最后,挖矿节点若在预设时间内获取发送身份验证成功消息的参与节点的比例超过预设的第一阈值,则确定用户节点的证件信息验证成功,并将认证成功消息写入到区块中并向区块链网络广播。由此,实现了证件信息的在线认证,降低了认证限制,在保证认证可靠性的基础上,提高了认证效率和安全性。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,

图1是根据本发明一个实施例的基于区块链的身份验证系统的结构示意图;

图2是根据本发明一个实施例的基于区块链的身份验证系统的应用场景示意图;以及

图3是根据本发明一个实施例的基于区块链的身份验证方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

基于背景技术的描述,不难理解,现有技术中,对证件信息的验证方式由于需要特定的注册设备来验证,验证效率较低,验证限制较高,即使西安哟技术中提供了网站可以在线进行身份验证的方式,也仅仅反馈用户的姓名和证件号码是否一致,并不能对持证人的身份进行验证,验证可靠性较低,且集中的查询服务器,也容易收到拒绝服务的攻击。

为了解决上述技术问题,本发明提出了一种基于区块链的身份验证方法,将区块链验证技术和有关合法部门之间的验证之间的限制打通,由此,实现了证件信息的在线验证,降低了验证限制,在保证验证可靠性的基础上,提高了验证效率和安全性。

其中,为了描述的清楚,首先对本发明实施例的基于区块链的身份验证系统进行描述,图1是根据本发明一个实施例的基于区块链的身份验证系统的结构示意图,如图1所示,该系统包括用户节点100、验证设备200、参与节点300和挖矿节点400,其中,用户节点100对应于待进行身份验证的用户所持终端设备,用户节点与用户本人是一种隐形绑定关系,基于用户节点100可以保证当前进行身份验证的为用户本人,而不是持有用户身份信息的一些其他非法用户,用户节点100可以理解为区块链网络中所有可以进行身份验证的节点,验证设备200可以对应于权威性较高的部分授权的验证设备,包括手持终端验证设备,电脑验证设备等,在此不作限制,基于验证设备200进行身份验证,保证了验证结果的可靠性,参与节点300为区块链网络中参阅验证用户节点100的身份验证的节点,可以为挖矿节点,也可以为其他任意类型的节点。

其中,本系统在执行过程中,用户节点、参与节点、挖矿节点和验证设备基于公钥证书技术进行通信时的身份验证,其中,公钥技术的核心为一对密钥,其基本原理是:由一个密钥进行加密的信息内容,只能由与之配对的另一个密钥才能进行解密。加密公钥可以广泛地发给与自己有关的通信者,加密私钥则需要十分安全地存放起来。其中,验证设备由于某些保密性和安全性的限制,可以不是区块链网络中的节点,验证设备可以基于蓝牙、红外、wifi等无线技术与用户节点通信,也可以基于电路等有线方式通信连接,在此不作限制。

参照图2,在实际执行过程中,用户节点生成证件信息,其中,证件信息包括:证件类型、证件号码、经过用户的声纹密钥加密的证件头像,以及证件基本信息,应用用户私钥对证件信息和用户公钥签名后,向验证设备发送证件验证请求(步骤1)。

进而,验证设备接收证件验证请求,应用用户公钥验证用户私钥的有效性,若验证通过,则表明是用户节点本身发送的验证请求,而不是非法节点冒充的,从而,查询预存的与证件类型对应的身份数据库,获取与证件号码对应的用户声纹信息和验证头像,以及验证基本信息(步骤2)。

进而,验证设备将验证基本信息与证件基本信息进行匹配,若匹配成功,则根据用户声纹信息和预设算法对经过用户的声纹密钥加密的证件头像进行解密,将解密后的证件头像与验证头像进行匹配,若两者匹配成功,则表明用户身份可靠,进而,应用设备私钥对证件信息进行签名后,向用户节点反馈证件验证成功响应,以使用户节点应用用户私钥对验证成功响应签名后发送给区块链网络的各参与节点(步骤3),其中,在步骤3中,根据用户声纹信息和预设算法对经过用户的声纹密钥加密的证件头像进行解密,由此,由于声纹信息和用户唯一对应,保证了验证的可靠性。

当然,即使用户节点发送了验证成功的消息,为了保证该消息的真实可靠性,还需要其他参阅节点共同监督验证,即参与节点应用预存的用户公钥对用户私钥进行签名验证,验证通过后,应用预存的设备公钥对设备私钥进行签名验证,验证通过后,向区块链网络发送身份验证成功消息(步骤4)。

最终,挖矿节点若在预设时间内获取发送身份验证成功消息的参与节点的比例超过预设的第一阈值,则确定用户节点的证件信息验证成功,并将认证成功消息写入到区块中并向区块链网络广播(步骤5)。也就是说,在角较多参与节点认证身份验证成功后,才确定用户身份信息验证合法,进一步保证了验证的可靠性。

当然,在本实施例中,参与节点应用预存的用户公钥对用户私钥进行签名验证,验证失败后,向区块链网络发送身份验证失败消息,或者,应用预存的设备公钥对设备私钥进行签名验证,验证失败后,向区块链网络发送身份验证失败消息,挖矿节点若在预设时间内获取发送身份验证失败消息的参与节点的比例超过预设的第二阈值,则确定用户节点的证件信息验证失败,并将认证失败消息写入到区块中并向区块链网络广播。

由此,本发明实施例的基于区块链的身份验证系统,将用户的身份验证区块链网络结合起来,其中,身份验证结合权威性较高的部分授权的验证设备验证,保证了验证结果的可靠性,且由于将认证压力拆分到区块链网络中的挖矿节点和参与节点,降低了认证限制,为身份验证的普适化应用和普及提供了技术支撑,且高了认证效率。

为了更加详细的说明本发明实施例的身份验证时的细节,使得本领域的技术人员对本发明的基于区块链的身份验证过程更加清楚,下面集中在基于区块链的身份验证方法侧进行身份验证过程细节的描述。

图3是根据本发明一个实施例的基于区块链的身份验证方法的流程图,如图3所示,该方法包括:

步骤101,用户节点生成证件信息,其中,证件信息包括:证件类型、证件号码、经过用户的声纹密钥加密的证件头像,以及证件基本信息,应用用户私钥对证件信息和用户公钥签名后,向验证设备发送证件验证请求。

其中,用户私钥和用户公钥用于对用户节点进行身份初步验证,用户私钥由用户节点自己持有,用户公钥以广播的形式广播到区块链网络,以使得区块链网络中的其他节点基于用户公钥和用户私钥的对应关系,验证用户节点的可靠性。

另外,上述证件类型包括身份证、护照、医保卡等能表示用户身份唯一性的证件,证件号码是与证件类型对应的唯一编码。在本发明的实施例中,为了保护用户的隐私信息,该证件信息中的证件头像通过用户的声纹密钥进行加密,其中,用户的声纹密钥基于用户的声纹生成,用户的声纹与用户一一对应,较难被破解,即使该身份验证请求被截获,也获取不到用户的证件头像,保证了用户证件头像的安全性,证件基本信息包括证件有效期限等、用户地址等。

具体地,用户节点根据与验证设备通信环境的不同,可以基于无线方式向验证设备发送证件验证请求,也可以基于有线方式向验证设备发送证件验证请求。

步骤102,验证设备接收证件验证请求,应用用户公钥验证用户私钥的有效性,若验证通过,则查询预存的与证件类型对应的身份数据库,获取与证件号码对应的用户声纹信息和验证头像,以及验证基本信息。

具体地,验证设备在接收到验证请求后,首先,为了避免应该整检验证请求是其他非法节点发送的,首先对用户节点的身份进行初步验证,基于用户公钥和用户私钥的对应关系,应用用户公钥验证用户私钥的有效性,若验证用户公钥和用户私钥匹配,则验证通过,表明当前验证请求正是用户节点本身发送的,从而,查询预设的与证件类型对应的身份数据库,其中,该身份数据库中存储有对应证件类型的用户证件号码以及对应的用户声纹信息和验证头像,以及验证基本信息,其中,由于验证设备是由具有绝对权威的部分授权使用的,因而,身份数据库中的信息具有绝对的可靠性,另外,上述验证基本信息与证件基本信息对应,可以包括的证件有效期、用户地址等信息。

步骤103,验证设备将验证基本信息与证件基本信息进行匹配,若匹配成功,则根据用户声纹信息和预设算法对经过用户的声纹密钥加密的证件头像进行解密,将解密后的证件头像与验证头像进行匹配,若两者匹配成功,则应用设备私钥对证件信息进行签名后,向用户节点反馈证件验证成功响应,以使用户节点应用用户私钥对验证成功响应签名后发送给区块链网络的各参与节点。

同样的,设备私钥和设备公钥用于对验证设备进行身份验证,设备私钥由验证设备自己持有,设备公钥以广播的形式广播到区块链网络,以使得区块链网络中的其他节点基于设备公钥和设备私钥的对应关系,验证验证设备的真实性。

具体地,为了提高资源利用率,提高匹配效率,在本实施例中,首先对用户身份进行初步粗验证,验证设备将验证基本信息与证件基本信息进行匹配,若匹配成功,比如有效期和用户地址一致,则进一步进行细验证,根据用户审问信息和预设算法对经过用户的声纹密钥加密的证件头像进行解密,将解密后的证件头像与验证头像进行匹配,若两者匹配成功,则表明证件头像也合法,从而,应用设备私钥对证件信息进行签名,以表明该验证消息是验证设备本身发送的,进而,向用户节点反馈证件验证成功响应,以使得用户节点对应用用户私钥对验证成功响应签名后发送给区块链网络的各参与节点。

需要说明的是,在本发明的实施例中,身份验证消息中的证件头像可以是证件中包含的,也可以是通过摄像头等设备实时采集的,当时由用户实时采集时,基于用户当前实时采集的证件图像与身份数据库中的头像是否一致,实现了对用户身份的再一次验证,进一步保证了验证结果的可靠性。

另外,在实际执行过程中,根据应用场景的不同,根据用户声纹信息和预设算法对经过用户的声纹密钥加密的证件头像进行解密的方式不同,作为一种可能的实现方式,对用户声纹信息进行处理,提取声纹特征,比如声纹大小、频谱分布等,生成与所述声纹特征对应的声纹向量,按照预设解密算法对声纹向量进行计算,获取声纹私钥,进而,用声纹私钥对经过用户的声纹密钥加密的证件头像进行解密获取证件头像。在本实施例中,无论是声纹信息不匹配还是证件头像不匹配,均会导致验证不成功,保证了验证结果的准确性。

在本发明的实施例中,为了确保身份验证流程的全面性,以便于用户节点实时了解验证结果,验证设备若获知验证基本信息与证件基本信息匹配失败,或者,获知将解密后的证件头像与验证头像匹配失败,则应用设备私钥对证件信息进行签名后,向用户节点反馈证件验证失败响应。

步骤104,参与节点应用预存的用户公钥对用户私钥进行签名验证,验证通过后,应用预存的设备公钥对设备私钥进行签名验证,验证通过后,向区块链网络发送身份验证成功消息。

不难理解的是,即使用户节点发送了验证设备验证其身份合法的验证成功响应,为了确保验证结果的可靠性,还需要基于其他参与节点共同监督该验证结果是否真实。

具体地,参与节点应用预存的用户公钥对用户私钥进行签名验证,验证通过后,则表明当前验证成功响应是由用户节点本身发送的,从而,进一步验证该响应是否是由权威部门认定的验证设备发送的,即基于预存的设备公钥对设备私钥进行签名验证,验证通过后,向区块链网络发送身份验证成功消息。

步骤105,挖矿节点若在预设时间内获取发送身份验证成功消息的参与节点的比例超过预设的第一阈值,则确定用户节点的证件信息验证成功,并将认证成功消息写入到区块中并向区块链网络广播。

为了维护验证秩序,在本发明的实施例中,当大部分的参与节点均认可身份验证成功后,才认为用户节点身份验证成功,即挖矿节点如果在预设时间内获取发送身份验证成功消息的参与节点的比例超过预设的第一阈值,比如超过半数参与节点,则确定用户节点的证件信息验证成功,并将认证成功消息写入到区块中并向区块链网络广播。

其中,上述预设时间基于当前区块链网络的网络情况等设定,在该预设时间内,挖矿节点通常可以成功接收到参与节点发送的验证消息,且在该预设时间内,通常其他拦截到参与节点的非法节点,无法完成向挖矿节点发送篡改后的验证消息的操作,另外,上述第一阈值根据区块链网络中的参与节点的数量设定,当参与节点的数量较多时,作弊难度较大,为了平衡处理压力,该第一阈值可以较小,比如,为百分之三十,当参与节点的数量较小,则为了确保结果可靠性,第一阈值较大,比如为百分之七十等。

在本发明的一个实施例中,为了保证验证的直观性,参与节点应用预存的用户公钥对用户私钥进行签名验证,验证失败后,向区块链网络发送身份验证失败消息,或者,应用预存的设备公钥对设备私钥进行签名验证,验证失败后,向区块链网络发送身份验证失败消息,此时为了避免有些恶意参与节点扰乱验证环境,仍然需要综合其他参与节点的验证消息来进行验证结果的确定,即挖矿节点若在预设时间内获取发送身份验证失败消息的参与节点的比例超过预设的第二阈值,则确定用户节点的证件信息验证失败,并将认证失败消息写入到区块中并向区块链网络广播。

需要理解的是,本发明实施例中的基于区块链的身份验证系统,还可以基于当前系统组成结构实现证件信息更新等发布情况等,以保证基于区块链的身份验证系统的灵活性。

具体而言,用户节点接收验证设备发送的证件到期更新提示信息,应用用户私钥对证件信息和证件有效期信息签名后,向验证设备发送证件到期更新请求,由此,由验证设备发送新的证件信息,实现了在线办证等,大大方便了用户的生活。

综上,本发明实施例的基于区块链的身份验证方法,用户节点生成证件信息,其中,证件信息包括:证件类型、证件号码、经过用户的声纹密钥加密的证件头像,以及证件基本信息,应用用户私钥对证件信息和用户公钥签名后,向验证设备发送证件验证请求,验证设备接收证件验证请求,应用用户公钥验证用户私钥的有效性,若验证通过,则查询预存的与证件类型对应的身份数据库,获取与证件号码对应的用户声纹信息和验证头像,以及验证基本信息,验证设备将验证基本信息与证件基本信息进行匹配,若匹配成功,则根据用户声纹信息和预设算法对经过用户的声纹密钥加密的证件头像进行解密,将解密后的证件头像与验证头像进行匹配,若两者匹配成功,则应用设备私钥对证件信息进行签名后,向用户节点反馈证件验证成功响应,以使用户节点应用用户私钥对验证成功响应签名后发送给区块链网络的各参与节点,进而,参与节点应用预存的用户公钥对用户私钥进行签名验证,验证通过后,应用预存的设备公钥对设备私钥进行签名验证,验证通过后,向区块链网络发送身份验证成功消息,最后,挖矿节点若在预设时间内获取发送身份验证成功消息的参与节点的比例超过预设的第一阈值,则确定用户节点的证件信息验证成功,并将认证成功消息写入到区块中并向区块链网络广播。由此,实现了证件信息的在线认证,降低了认证限制,在保证认证可靠性的基础上,提高了认证效率和安全性。

为了实现上述实施例,本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如前述实施例描述的基于区块链的身份验证方法。

为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时能够实现如前述实施例描述的基于区块链的身份验证方法。

在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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