具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
其中,区块链节点包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的计算机,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述区块链节点还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理PDA、游戏机、交互式网络电视IPTV、智能式穿戴式设备等。其中,所述用户设备及网络设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络VPN等。
此外,区块链节点上安装了区块链程序,可以参与共识和记账。多个区块链节点可以通过P2P(peer to peer,点对点)互相连接而构成区块链网络。
请参见图1,图1是本发明公开的一种基于区块链的身份认证方法的较佳实施例的流程图。其中,所述基于区块链的身份认证方法应用于区块链节点,所述区块链节点上集成有硬件令牌芯片,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11、在所述区块链节点触发身份认证时,区块链节点根据所述硬件令牌芯片中的内容,生成令牌认证消息,以及区块链节点构造密钥认证消息。
其中,所述区块链节点为集成了硬件令牌芯片、安装了区块链程序,可参与区块链记账的计算机。其中,所述硬件令牌芯片是一种采用内置存储器、密码计算芯片等部件的安全动态口令生成设备。
本发明实施例中,在所述区块链节点触发身份认证时,所述区块链节点能够通过区块链程序读取所述硬件令牌芯片运算产生的认证信息(一个字符串),将所述认证信息添加到消息数据包中,即可生成令牌认证消息。其中,所述令牌认证消息主要包括从所述硬件令牌芯片中读取出的认证信息、其它认证用的字段,字段可以包括但不限于消息版本号、认证目的、当前时间、机器ID、机器IP或MAC地址等。
需要说明的是,在所述区块链节点触发身份认证时,区块链节点生成令牌认证消息,以及区块链节点构造密钥认证消息,可以同时进行,也可以先后进行,本发明实施例不做限定。
本发明实施例中,将所述硬件令牌芯片集成在所述区块链节点中,使得所述硬件令牌芯片能够与所述区块链节点绑定,所述硬件令牌芯片的认证信息能够被应用程序读取,因此,在后续的认证过程中无需人工干预,并且不会被窃取、丢失或转移。通过对所述硬件令牌芯片的认证,系统能确认接入或共识的区块链节点都是标准化的可信硬件。
其中,所述密钥认证消息包括公钥基础设施PKI(Public Key Infrastructure)认证消息或自建公钥密码系统的认证消息。其中,所述PKI认证消息是基于国际上成熟的PKI标准体系。其中,所述自建公钥密码系统的认证消息是基于非PKI标准体系的,可以自定义的。
本发明实施例中,在所述区块链节点触发身份认证时,所述区块链节点能够根据自身设置的签名算法,来构造密钥认证消息,比如构造PKI认证消息或自建公钥密码系统的认证消息。
其中,所述PKI认证消息包括密钥,但通常也包含其它的内容,例如颁发者标识符信息、主体标识符信息、颁发者的数字签名、有效期等等,这些都是PKI标准中规范化的。但企业自建的或区块链中常用的,可以不使用PKI标准证书,而是直接生成一个公钥和私钥就可以使用了,这种情况就可以使用自建公钥密码系统的认证消息。
具体的,所述构造密钥认证消息包括:
获取可信服务器分发的私钥,以及获取消息标准规定的结构所填充的原始字符串;
根据预设的签名算法,采用所述私钥对所述原始字符串进行加密,获得签名结果;
根据所述签名结果,生成密钥认证消息。
在该可选的实施方式中,所述可信服务器(例如PKI标准体系中的CA服务器、RA服务器)可以用于证书或密钥的生成和分发,并负责维护证书库或公钥列表。
其中,构造密钥认证消息只需要按照消息标准规定的结构填充对应的字段即可,例如认证消息通常包括消息版本号、认证目的、当前时间、机器ID、机器IP或MAC地址、原始字符串、用私钥对原始字符串进行加密获得的签名结果等字段。
其中,签名算法比如RSA加密算法、椭圆曲线加密算法等。
作为一种可选的实施方式,所述方法还包括:
当检测到所述区块链节点启动时,确定所述区块链节点触发身份认证;或
获取所述区块链节点在当前时间之前进行身份认证的最晚认证时间,以及获取所述最晚认证时间对应的有效时间段;判断所述当前时间是否超过所述有效时间段;若所述当前时间超过所述有效时间段,确定所述区块链节点触发身份认证。
在该可选的实施方式中,通常,在所述区块链节点启动时,需要对所述区块链节点进行身份认证,以确定所述区块链节点是否是可信的节点。
此外,所述区块链节点在启动并认证之后,通常,认证会有一个有效期,在该有效期内,所述区块链节点为可信的节点,在该有效期之外,所述区块链节点不一定可信,需要再次进行认证。具体的,可以获取所述区块链节点在当前时间之前进行身份认证的最晚认证时间,即获取所述区块链节点距离当前时间最近的上一次的认证时间,并获取所述最晚认证时间对应的有效时间段,比如有效时间段为T1~T2,所述区块链节点可以将所述当前时间与所述有效时间段进行比较,判断所述当前时间是否超过所述有效时间段,比如判断所述当前时间是否超过T2,如果所述当前时间超过所述有效时间段,表明所述区块链节点的上一次认证已经过期,需要重新进行身份认证,即可确定所述区块链节点触发身份认证。
S12、区块链节点向令牌认证服务器发送携带有所述令牌认证消息的令牌认证请求,以及向密钥认证服务器发送携带有所述密钥认证消息的密钥认证请求。
其中,区块链网络中可以存在若干个令牌认证服务器,所述令牌认证服务器负责接收区块链节点发送过来的令牌认证信息,进行合法性认证,并将认证结果返回给区块链节点。其中,所述令牌认证服务器可以是区块链网络内置的,也可以是集成的第三方的认证服务。
其中,所述密钥认证服务器包括PKI认证服务器或自建的公钥密码系统认证服务器。其中,区块链网络中可以存在若干个PKI认证服务器或自建的公钥认证服务器,所述PKI认证服务器或自建的公钥密码系统认证服务器可以负责接收区块链节点发送过来的认证信息,进行合法性认证,并将认证结果返回给区块链节点。其中,PKI认证服务器或自建的公钥密码系统认证服务器可以是区块链网络内置的,也可以是集成的第三方的认证服务。
需要说明的是,本发明中,令牌认证和密钥认证可以同时进行,也可以先后进行,二者之间不分先后顺序。
本发明实施例中,基于自建的公钥密码系统或者基于PKI的身份认证能够认证节点的角色和权限(访问控制等安全策略),进一步提升安全性。并且能集成第三方PKI认证服务,从而能提升区块链系统的公信力、公平性和透明度。
本发明中结合硬件令牌芯片和密钥两种因子认证的方式,提升了区块链系统的安全性和合规性,拓展了区块链的应用场景。
S13、区块链节点接收所述令牌认证服务器对所述令牌认证消息进行认证后返回的令牌认证结果,以及接收所述密钥认证服务器对所述密钥认证消息进行认证后返回的密钥认证结果。
其中,所述令牌认证服务器对所述令牌认证消息进行认证取决于令牌算法,比如动态口令、基于非对称密码学的key的数字签名、基于质询/响应的令牌的令牌算法等等,具体认证方法属于现有技术,在此不再赘述。
其中,所述密钥认证服务器可以使用公钥对所述密钥认证消息进行验证,并且坚持公钥是否是可信的授权中心颁发的即可。
S14、区块链节点根据所述令牌认证结果以及所述密钥认证结果,确定所述区块链节点的身份认证结果。
其中,如果所述令牌认证结果以及所述密钥认证结果中任一个认证结果失败,即可确定所述区块链节点的身份认证结果失败,如果所述令牌认证结果以及所述密钥认证结果均表示认证成功,即可确定所述区块链节点的身份认证结果成功。
作为一种可选的实施方式,所述方法还包括:
若所述身份认证结果表明所述区块链节点认证成功,向区块链网络发送携带有所述身份认证结果的接入请求;
在接收到所述区块链网络针对所述接入请求返回的允许响应时,接入所述区块链网络。
在该可选的实施方式中,当所述区块链节点需要加入区块链网络时,需要进行硬件令牌芯片和公钥密码体系的密钥或PKI证书的双重认证,如果所述身份认证结果表明所述区块链节点认证成功,所述区块链节点向区块链网络发送携带有所述身份认证结果的接入请求,区块链网络接收到该接入请求之后,即可对所述身份认证结果进行验证,在验证通过后,即可向所述区块链节点返回允许响应,即允许所述区块链节点接入所述区块链网络,所述区块链节点在接收到所述区块链网络针对所述接入请求返回的允许响应时,即可接入所述区块链网络。
作为一种可选的实施方式,所述方法还包括:
向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的交易信息;或
向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的投票信息。
在该可选的实施方式中,当所述区块链节点需要参与共识投票时,可以在基于投票的共识算法中,在交易信息或投票信息中包含密钥认证消息和令牌认证消息两个认证因子,并将这两个认证因子都保存到区块中,以保障共识过程中的节点身份认证和抗抵赖性,提升安全性。如果所述身份认证结果表明所述区块链节点认证成功,所述区块链节点可以向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的交易信息,或向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的投票信息,以便于所述验证人节点判断接收到的交易信息或投票信息是否来自信任节点列表中的合法信任节点,如果是合法信任节点,则存储交易信息或投票信息;如果不是合法信任节点,则丢弃交易信息或投票信息。
在图1所描述的方法流程中,在所述区块链节点触发身份认证时,可以根据所述硬件令牌芯片中的内容,生成令牌认证消息,以及构造密钥认证消息;进一步地,可以向令牌认证服务器发送携带有所述令牌认证消息的令牌认证请求,以及向密钥认证服务器发送携带有所述密钥认证消息的密钥认证请求,接收所述令牌认证服务器对所述令牌认证消息进行认证后返回的令牌认证结果,以及接收所述密钥认证服务器对所述密钥认证消息进行认证后返回的密钥认证结果,最后即可根据所述令牌认证结果以及所述密钥认证结果,确定所述区块链节点的身份认证结果。可见,本发明中,可以利用嵌入在区块链节点中的硬件令牌芯片,结合密钥进行身份认证,构造出一种不需要人工干预的自动化双因子认证方案,此外,硬件令牌芯片与区块链节点进行绑定,保证了区块链节点为标准化的可信硬件,同时,密钥认证能够认证区块链节点的角色和权限,从而能够从整体上提高区块链系统的安全性。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
请参见图2,图2是本发明公开的一种基于区块链的身份认证装置的较佳实施例的功能模块图。
在一些实施例中,所述基于区块链的身份认证装置运行于区块链节点中。所述基于区块链的身份认证装置可以包括多个由程序代码段所组成的功能模块。所述基于区块链的身份认证装置中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的基于区块链的身份认证方法中的部分或全部步骤。
本实施例中,所述基于区块链的身份认证装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:生成模块201、构造模块202、发送模块203、接收模块204及确定模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
生成模块201,用于在所述区块链节点触发身份认证时,根据所述硬件令牌芯片中的内容,生成令牌认证消息;
具体的,所述生成模块201根据所述硬件令牌芯片中的内容,生成令牌认证消息包括:
读取所述硬件令牌芯片中的认证信息,生成令牌认证消息。
其中,所述区块链节点为集成了硬件令牌芯片、安装了区块链程序,可参与区块链记账的计算机。其中,所述硬件令牌芯片是一种采用内置存储器、密码计算芯片等部件的安全动态口令生成设备。
本发明实施例中,在所述区块链节点触发身份认证时,所述区块链节点能够通过区块链程序读取所述硬件令牌芯片的内容(一个字符串),将所述硬件令牌芯片的内容添加到消息数据包中,即可生成令牌认证消息。其中,所述令牌认证消息主要包括从所述硬件令牌芯片中读取出的令牌内容、其它认证用的字段,字段可以包括但不限于消息版本号、认证目的、当前时间、机器ID、机器IP或MAC地址等。
本发明实施例中,将所述硬件令牌芯片集成在所述区块链节点中,使得所述硬件令牌芯片能够与所述区块链节点绑定,所述硬件令牌芯片的认证信息能够被应用程序读取,因此,在后续的认证过程中无需人工干预,并且不会被窃取、丢失或转移。通过对所述硬件令牌芯片的认证,系统能确认接入或共识的区块链节点都是标准化的可信硬件。
其中,所述密钥认证消息包括公钥基础设施PKI(Public Key Infrastructure)认证消息或自建公钥密码系统的认证消息。其中,所述PKI认证消息是基于国际上成熟的PKI标准体系。其中,所述自建公钥密码系统的认证消息是基于非PKI标准体系的,可以自定义的。
本发明实施例中,在所述区块链节点触发身份认证时,所述区块链节点能够根据自身设置的签名算法,来构造密钥认证消息,比如构造PKI认证消息或自建公钥密码系统的认证消息。
其中,所述PKI认证消息包括密钥,但通常也包含其它的内容,例如颁发者标识符信息、主体标识符信息、颁发者的数字签名、有效期等等,这些都是PKI标准中规范化的。但企业自建的或区块链中常用的,可以不使用PKI标准证书,而是直接生成一个公钥和私钥就可以使用了,这种情况就可以使用自建公钥密码系统的认证消息。
构造模块202,用于构造密钥认证消息;
具体的,所述构造模块202构造密钥认证消息包括:
获取可信服务器分发的私钥,以及获取消息标准规定的结构所填充的原始字符串;
根据预设的签名算法,采用所述私钥对所述原始字符串进行加密,获得签名结果;
根据所述签名结果,生成密钥认证消息。
在该可选的实施方式中,所述可信服务器(例如PKI标准体系中的CA服务器、RA服务器)可以用于证书或密钥的生成和分发,并负责维护证书库或公钥列表。
其中,构造密钥认证消息只需要按照消息标准规定的结构填充对应的字段即可,例如认证消息通常包括消息版本号、认证目的、当前时间、机器ID、机器IP或MAC地址、原始字符串、用私钥对原始字符串进行加密获得的签名结果等字段。
其中,签名算法比如RSA加密算法、椭圆曲线加密算法等。
发送模块203,用于向令牌认证服务器发送携带有所述令牌认证消息的令牌认证请求,以及向密钥认证服务器发送携带有所述密钥认证消息的密钥认证请求;
其中,区块链网络中可以存在若干个令牌认证服务器,所述令牌认证服务器负责接收区块链节点发送过来的令牌认证信息,进行合法性认证,并将认证结果返回给区块链节点。其中,所述令牌认证服务器可以是区块链网络内置的,也可以是集成的第三方的认证服务。
其中,所述密钥认证服务器包括PKI认证服务器或自建的公钥密码系统认证服务器。其中,区块链网络中可以存在若干个PKI认证服务器或自建的公钥认证服务器,所述PKI认证服务器或自建的公钥密码系统认证服务器可以负责接收区块链节点发送过来的认证信息,进行合法性认证,并将认证结果返回给区块链节点。其中,PKI认证服务器或自建的公钥密码系统认证服务器可以是区块链网络内置的,也可以是集成的第三方的认证服务。
需要说明的是,本发明中,令牌认证和密钥认证可以同时进行,也可以先后进行,二者之间不分先后顺序。
本发明实施例中,基于自建的公钥密码系统或者基于PKI的身份认证能够认证节点的角色和权限(访问控制等安全策略),进一步提升安全性。并且能集成第三方PKI认证服务,从而能提升区块链系统的公信力、公平性和透明度。
本发明中结合硬件令牌芯片和密钥两种因子认证的方式,提升了区块链系统的安全性和合规性,拓展了区块链的应用场景。
接收模块204,用于接收所述令牌认证服务器对所述令牌认证消息进行认证后返回的令牌认证结果,以及接收所述密钥认证服务器对所述密钥认证消息进行认证后返回的密钥认证结果;
其中,所述令牌认证服务器对所述令牌认证消息进行认证取决于令牌算法,比如动态口令、基于非对称密码学的key的数字签名、基于质询/响应的令牌的令牌算法等等,具体认证方法属于现有技术,在此不再赘述。
其中,所述密钥认证服务器可以使用公钥对所述密钥认证消息进行验证,并且坚持公钥是否是可信的授权中心颁发的即可。
确定模块205,用于根据所述令牌认证结果以及所述密钥认证结果,确定所述区块链节点的身份认证结果。
其中,如果所述令牌认证结果以及所述密钥认证结果中任一个认证结果失败,即可确定所述区块链节点的身份认证结果失败,如果所述令牌认证结果以及所述密钥认证结果均表示认证成功,即可确定所述区块链节点的身份认证结果成功。
可选的,所述基于区块链的身份认证装置还包括:
触发模块,用于当检测到所述区块链节点启动时,确定所述区块链节点触发身份认证;或,获取所述区块链节点在当前时间之前进行身份认证的最晚认证时间,以及获取所述最晚认证时间对应的有效时间段;判断所述当前时间是否超过所述有效时间段;若所述当前时间超过所述有效时间段,确定所述区块链节点触发身份认证。
在该可选的实施方式中,通常,在所述区块链节点启动时,需要对所述区块链节点进行身份认证,以确定所述区块链节点是否是可信的节点。
此外,所述区块链节点在启动并认证之后,通常,认证会有一个有效期,在该有效期内,所述区块链节点为可信的节点,在该有效期之外,所述区块链节点不一定可信,需要再次进行认证。具体的,可以获取所述区块链节点在当前时间之前进行身份认证的最晚认证时间,即获取所述区块链节点距离当前时间最近的上一次的认证时间,并获取所述最晚认证时间对应的有效时间段,比如有效时间段为T1~T2,所述区块链节点可以将所述当前时间与所述有效时间段进行比较,判断所述当前时间是否超过所述有效时间段,比如判断所述当前时间是否超过T2,如果所述当前时间超过所述有效时间段,表明所述区块链节点的上一次认证已经过期,需要重新进行身份认证,即可确定所述区块链节点触发身份认证。
可选的,所述发送模块203,还用于若所述身份认证结果表明所述区块链节点认证成功,向区块链网络发送携带有所述身份认证结果的接入请求;
所述接收模块204,还用于在接收到所述区块链网络针对所述接入请求返回的允许响应时,接入所述区块链网络。
在该可选的实施方式中,当所述区块链节点需要加入区块链网络时,需要进行硬件令牌芯片和公钥密码体系的密钥或PKI证书的双重认证,如果所述身份认证结果表明所述区块链节点认证成功,所述区块链节点向区块链网络发送携带有所述身份认证结果的接入请求,区块链网络接收到该接入请求之后,即可对所述身份认证结果进行验证,在验证通过后,即可向所述区块链节点返回允许响应,即允许所述区块链节点接入所述区块链网络,所述区块链节点在接收到所述区块链网络针对所述接入请求返回的允许响应时,即可接入所述区块链网络。
作为一种可选的实施方式,所述方法还包括:
所述发送模块203,还用于向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的交易信息;或,向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的投票信息。
在该可选的实施方式中,当所述区块链节点需要参与共识投票时,可以在基于投票的共识算法中,在交易信息或投票信息中包含密钥认证消息和令牌认证消息两个认证因子,并将这两个认证因子都保存到区块中,以保障共识过程中的节点身份认证和抗抵赖性,提升安全性。如果所述身份认证结果表明所述区块链节点认证成功,所述区块链节点可以向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的交易信息,或向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的投票信息,以便于所述验证人节点判断接收到的交易信息或投票信息是否来自信任节点列表中的合法信任节点,如果是合法信任节点,则存储交易信息或投票信息;如果不是合法信任节点,则丢弃交易信息或投票信息。
在图2所描述的基于区块链的身份认证装置中,在所述区块链节点触发身份认证时,可以根据所述硬件令牌芯片中的内容,生成令牌认证消息,以及构造密钥认证消息;进一步地,可以向令牌认证服务器发送携带有所述令牌认证消息的令牌认证请求,以及向密钥认证服务器发送携带有所述密钥认证消息的密钥认证请求,接收所述令牌认证服务器对所述令牌认证消息进行认证后返回的令牌认证结果,以及接收所述密钥认证服务器对所述密钥认证消息进行认证后返回的密钥认证结果,最后即可根据所述令牌认证结果以及所述密钥认证结果,确定所述区块链节点的身份认证结果。可见,本发明中,可以利用嵌入在区块链节点中的硬件令牌芯片,结合密钥进行身份认证,构造出一种不需要人工干预的自动化双因子认证方案,此外,硬件令牌芯片与区块链节点进行绑定,保证了区块链节点为标准化的可信硬件,同时,密钥认证能够认证区块链节点的角色和权限,从而能够从整体上提高区块链系统的安全性。
如图3所示,图3是本发明实现基于区块链的身份认证方法的较佳实施例的区块链节点的结构示意图。所述区块链节点3包括存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
本领域技术人员可以理解,图3所示的示意图仅仅是所述区块链节点3的示例,并不构成对所述区块链节点3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述区块链节点3还可以包括输入输出设备、网络接入设备等。
所述区块链节点3还包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(InternetProtocol Television,IPTV)、智能式穿戴式设备等。所述区块链节点3所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述区块链节点3的控制中心,利用各种接口和线路连接整个区块链节点3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述区块链节点3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据区块链节点3的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
结合图1,所述区块链节点3中的所述存储器31存储多个指令以实现一种基于区块链的身份认证方法,所述处理器32可执行所述多个指令从而实现:
在所述区块链节点触发身份认证时,根据所述硬件令牌芯片中的内容,生成令牌认证消息;
构造密钥认证消息;
向令牌认证服务器发送携带有所述令牌认证消息的令牌认证请求,以及向密钥认证服务器发送携带有所述密钥认证消息的密钥认证请求;
接收所述令牌认证服务器对所述令牌认证消息进行认证后返回的令牌认证结果,以及接收所述密钥认证服务器对所述密钥认证消息进行认证后返回的密钥认证结果;
根据所述令牌认证结果以及所述密钥认证结果,确定所述区块链节点的身份认证结果。
在一种可选的实施方式中,所述处理器32可执行所述多个指令从而实现:
当检测到所述区块链节点启动时,确定所述区块链节点触发身份认证;或
获取所述区块链节点在当前时间之前进行身份认证的最晚认证时间,以及获取所述最晚认证时间对应的有效时间段;判断所述当前时间是否超过所述有效时间段;若所述当前时间超过所述有效时间段,确定所述区块链节点触发身份认证。
在一种可选的实施方式中,所述根据所述硬件令牌芯片中的内容,生成令牌认证消息包括:
读取所述硬件令牌芯片中的认证信息,生成令牌认证消息。
在一种可选的实施方式中,所述构造密钥认证消息包括:
获取可信服务器分发的私钥,以及获取消息标准规定的结构所填充的原始字符串;
根据预设的签名算法,采用所述私钥对所述原始字符串进行加密,获得签名结果;
根据所述签名结果,生成密钥认证消息。
在一种可选的实施方式中,所述密钥认证消息包括公钥基础设施PKI认证消息或自建公钥密码系统的认证消息。
在一种可选的实施方式中,所述处理器32可执行所述多个指令从而实现:
若所述身份认证结果表明所述区块链节点认证成功,向区块链网络发送携带有所述身份认证结果的接入请求;
在接收到所述区块链网络针对所述接入请求返回的允许响应时,接入所述区块链网络。
在一种可选的实施方式中,所述处理器32可执行所述多个指令从而实现:
向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的交易信息;或
向区块链网络中的验证人节点发送携带有所述令牌认证消息以及所述密钥认证消息的投票信息。
具体地,所述处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在图3所描述的区块链节点3中,在所述区块链节点触发身份认证时,可以根据所述硬件令牌芯片中的内容,生成令牌认证消息,以及构造密钥认证消息;进一步地,可以向令牌认证服务器发送携带有所述令牌认证消息的令牌认证请求,以及向密钥认证服务器发送携带有所述密钥认证消息的密钥认证请求,接收所述令牌认证服务器对所述令牌认证消息进行认证后返回的令牌认证结果,以及接收所述密钥认证服务器对所述密钥认证消息进行认证后返回的密钥认证结果,最后即可根据所述令牌认证结果以及所述密钥认证结果,确定所述区块链节点的身份认证结果。可见,本发明中,可以利用嵌入在区块链节点中的硬件令牌芯片,结合密钥进行身份认证,构造出一种不需要人工干预的自动化双因子认证方案,此外,硬件令牌芯片与区块链节点进行绑定,保证了区块链节点为标准化的可信硬件,同时,密钥认证能够认证区块链节点的角色和权限,从而能够从整体上提高区块链系统的安全性。
所述区块链节点3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。