本发明涉及计算机领域,具体涉及一种用户身份认证方法、装置、可读存储介质和计算机设备。
背景技术
目前互联网对用户身份二次确认的常用手段有:短信二次确认、邮件二次确认、数字证书确认等,这些手段都存在被盗用和伪造的风险,而且中心化的验证系统如果系统被侵入则用户身份被完全掌握,可以随意冒充,
本专利利用区块链技术实现对用户身份的集体确认,这样即使应用系统被攻击也能保证用户身份的真实可信以及可追溯。
技术实现要素:
为解决上述技术问题,本发明实施例提供一种用户身份认证方法、装置、可读存储介质和计算机设备,保证用户身份认证的可靠性。
为了解决上述技术问题,本发明实施例提供了一种用户身份认证方法,所述方法包括:
对用户的身份进行认证时,接收所述用户输入的第一信息,从区块链中获取所述用户的中间信息,利用所述第一信息和所述中间信息生成第二信息;判断所述第二信息与所述区块链中预先存储的结果信息是否匹配,根据匹配结果判断所述用户的身份是否合法。
进一步地,所述方法还包括:将所述用户的用户标识与所述第一信息发送给辅助认证区块链节点,接收所述辅助认证区块链节点返回的匹配结果;
所述判断所述第二信息与所述区块链中预先存储的结果信息是否匹配,根据匹配结果判断所述用户的身份是否合法,包括:
判断所述第二信息与所述区块链中预先存储的结果信息是否匹配得到本节点的匹配结果,结合所述本节点的匹配结果与辅助认证区块链节点返回的匹配结果,判断当所有匹配结果中有超过预定数量的匹配结果表示为匹配时,确定所述用户的身份为合法。
进一步地,所述辅助认证区块链节点返回的匹配结果由辅助认证区块链节点通过以下方式生成:辅助认证区块链节点在接收认证区块链节点发送的用户标识和用户输入的第一信息后,从区块链中获取所述用户的中间信息,利用所述第一信息和所述中间信息生成第三信息,判断所述生成的第三信息与所述区块链中预先存储的结果信息是否匹配,得到匹配结果。
进一步地,所述方法还包括:接收辅助认证区块链节点返回的临时参数,从返回匹配结果表示匹配的辅助认证区块链节点返回的临时参数中选择一个临时参数作为所述用户的会话令牌,所述临时参数为由辅助认证区块链节点生成的随机参数。
为了解决上述技术问题,本发明实施例还提供了一种用户身份认证方法,所述方法包括:
接收认证区块链节点发送的用户标识和用户输入的第一信息,从区块链中获取所述用户的中间信息,利用所述第一信息和所述中间信息生成第三信息,判断所述生成的第三信息与所述区块链中预先存储的结果信息是否匹配,向所述认证区块链节点返回匹配结果。
进一步地,所述方法还包括:生成一随机参数作为临时参数,将所述临时参数返回给所述认证区块链节点。
为了解决上述技术问题,本发明实施例还提供了一种用户身份认证装置,所述装置包括第一接收模块、中间信息获取模块、第二信息生成模块和身份认证模块,其中:
所述第一接收模块,被配置为接收所述用户输入的第一信息;
所述中间信息获取模块,被配置为从区块链中获取所述用户的中间信息;
所述第二信息生成模块,被配置为利用所述第一信息和所述中间信息生成第二信息;
所述身份认证模块,被配置为判断所述第二信息与所述区块链中预先存储的结果信息是否匹配,根据匹配结果判断所述用户的身份是否合法。
进一步地,所述装置还包括第一发送模块,所述第一发送模块被配置为将所述第一接收模块接收的所述第一信息以及所述用户的用户标识发送给辅助认证区块链节点;
所述第一接收模块还配置为接收辅助认证区块链节点返回的匹配结果;
所述身份认证模块判断所述第二信息与所述区块链中预先存储的结果信息是否匹配,根据匹配结果判断所述用户的身份是否合法,包括:所述身份认证模块判断所述第二信息与所述区块链中预先存储的结果信息是否匹配得到本节点的匹配结果,结合所述本节点的匹配结果与辅助区块链节点返回的匹配结果,判断当所有匹配结果中有超过预定数量的匹配结果表示为匹配时,确定所述用户的身份为合法。
进一步地,所述第一接收模块还配置为接收辅助认证区块链节点返回的临时参数,所述临时参数为由辅助认证区块链节点生成的随机参数;
所述装置还包括令牌选择模块,被配置为从返回匹配结果表示匹配的辅助认证区块链节点返回的临时参数中选择一个临时参数作为所述用户的会话令牌。
为了解决上述技术问题,本发明实施例还提供了一种用户身份认证装置,所述装置包括第二接收模块、中间信息获取模块和结果生成模块,其中:
所述第二接收模块,被配置为接收认证区块链节点发送的用户标识和用户输入的第一信息;
所述中间信息获取模块,被配置为从区块链中获取所述用户的中间信息;
所述结果生成模块,被配置为利用所述第一信息和所述中间信息生成第三信息,判断所述第三信息与所述区块链中预先存储的结果信息是否匹配,向所述认证区块链节点返回匹配结果。
进一步地,所述装置还包括临时参数生成模块,被配置为生成一随机参数作为临时参数,并将所述临时参数返回给所述认证区块链节点。
为了解决上述技术问题,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现上述方法的步骤。
为了解决上述技术问题,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述方法的步骤。
通过上述认证方法,采用用户提供的信息与区块链上的中间信息进行计算,将计算结果与区块上的结果信息进行匹配,根据匹配结果判断身份是否合法。相较于现有的短信认证、邮件认证或数字证书认证,验证信息的载体相比手机、邮箱和u盾更加可靠。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。本发明的其它特征和优点将在随后的说明书实施例中阐述,并且,部分地从说明书实施例中变得显而易见,或者通过实施本发明而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。附图中各部件的形状和大小不反映真实比例,目的只是示意说明本发明内容。
图1为本发明实施例用户注册流程图;
图2为本发明实施例认证区块链节点用户身份认证流程图;
图3为本发明实施例区块链节点网络示意图;
图4为本发明实施例辅助认证区块链节点认证流程图;
图5为本发明实施例认证区块链节点和辅助认证区块链节点认证流程图;
图6为本发明实施例第一身份认证装置示意图;
图7为本发明实施例第二身份认证装置的示意图。
具体实施方式
下面结合附图和实施例对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
传统的通过短信或者邮件或者数字证书的认证方式,用户身份都有被冒充的风险,例如用户手机丢失、或者邮箱被盗、或者数字证书被盗时,用户身份可能被不法分子冒充。申请人对现有技术研究发现,现有技术中是由于提供用户身份验证信息的载体存在不可靠性,从而导致用户账户安全性和可靠性下降。由此申请人想到将区块链技术引入身份认证中。
由于区块链使用分布式核算和存储,不存在中心化的硬件或管理机构,系统中的数据块由整个系统中具有维护功能的节点来共同维护,一旦信息经过验证并添加至区块链,就会永久的存储起来,被篡改的可能性极低,具有极高的数据稳定性和可靠性。因此采用区块链作为用户身份验证信息的载体将大大提高用户身份认证的可靠性。
本申请实施例针对需要对用户进行身份认证的场景,包括但不限于:
●需要对用户身份进行二次认证的场景,例如用户已经通过用户名和密码登陆系统后,在进行一些重要操作时,系统需要对用户身份进行二次认证场景;
上述重要操作包括可能会导致严重后果的操作,例如财产的转移(如转账)、用户隐私泄露(如查看用户重要信息,包括但不限于查看银行卡号或身份证号等)、账户安全(如修改密码)等。
●用户忘记密码需要找回密码的场景。
在本申请实施例中,区块链中每个区块存储一个用户或多个用户的数据,该区块在用户注册时生成并持久化到区块链中,如果有多个用户同时注册,则一个区块中可能存储多个用户的数据。区块链中的区块按照时间顺序排列。除第一个区块外,每个区块的区块头中包括前一个区块的哈希值和本区块的哈希值,使得所有的区块像链条一样链接在一起。每个区块的区块体中包括用户的中间信息和结果信息。中间信息可以由用户注册时提供,也可以由节点生成。结果信息由身份信息和中间信息经过算法生成。身份信息在用户注册时由用户提供。
虽然本申请实施例采用区块链作为用户身份验证信息的载体,但并非是将所有信息均存储于区块链上仅由区块链节点进行简单的匹配,而是需要用户提供一部分信息,将该部分信息与区块链上的中间信息进行计算,再与区块链上的结果信息进行匹配,进而得到认证结果,或者是根据用户提供的信息与区块链上的中间信息进行计算,再与其他节点的计算结果进行比较,从而得到认证结果。相比简单匹配的方案,本申请实施例方案认证结果可靠,可以避免受猜测攻击,防止泄露结果信息。
下面介绍向区块链中预先存储中间信息和结果信息的过程,该过程可以发生在用户注册的流程中,也可以在用户合法登陆后进行设置,如图1所示,包括以下步骤:
步骤101,接收用户提供的身份信息;
除了由用户自行提供外,在其他实施例中,当前节点也可以为用户提供多个备选信息,由用户从中选择一信息作为身份信息。
该身份信息有别于用户标识,是用于在用户进行重要操作时对该用户进行二次身份认证,或者在用户找回密码过程中用于认证用户身份。该身份信息可以是字或词或者是一句话或者是数字,或者是数字与字或词的组合,对身份信息的长度、格式并无特别要求,只要用户能记住该信息即可,同时可提示用户该信息是进行重要操作或者找回密码所需的重要信息。
步骤102,生成中间信息;
除了由当前节点生成外,在其他实施例中,该中间信息也可以由用户提供,即要求用户提供中间信息。但该中间信息无需用户记住。
当前节点生成中间信息的方法例如可以是用一随机数生成器生成一随机数或随机字或随机词,或者是对用户提供的身份信息进行某种计算得到中间信息,或者是将用户注册时的相关信息以某种算法生成中间信息,相关信息包括以下至少之一:用户名、注册时间、客户机地址、服务器地址等,或者如果由节点提供备选信息,则也可以从用户未选择的备选信息中选择一信息作为中间信息。生成中间信息的方法有多种,本申请实施例并不做限定。
步骤103,利用身份信息和中间信息生成结果信息;
生成的算法可以有多种,本申请实施例并不做限定。在本实施例中,采用哈希(hash)算法将身份信息和中间信息进行哈希后,得到的哈希值作为结果信息。
步骤104,将用户标识与对应的中间信息和结果信息持久化到区块链中。
包括构建区块体和区块头,区块体中保存有中间信息和结果信息,可以采用键-值(key-value)形式存储,如用户标识-中间信息,用户标识-结果信息。区块头中至少保存有上一区块的哈希值、本区块的哈希值和时间戳信息。
可选地,可以记录该用户的用户标识与区块头信息的对应关系。所述用户标识例如可以是该用户的用户名,或者内部唯一标识该用户的用户码。
持久化的操作可以由当前区块链节点完成,也可以由具有持久化权限的区块链节点完成。持久化后,所有的区块链节点均会同步该区块到本节点。
持久化时使用用户的私钥进行签名。持久化过程属于本领域技术人员的常用技术手段,本文中不再赘述。
经过上述流程后,用户的中间信息和结果信息已经上链,且不可篡改,供认证时使用。
下面介绍对用户身份认证的流程。基于上述提到的场景,在任一场景下均可以使用以下身份认证流程,如图2所示,应用于认证区块链节点,包括以下步骤:
步骤201,接收用户认证请求,所述认证请求中至少包括用户标识和用户输入的第一信息;
该第一信息可通过认证请求的形式发送给当前节点(认证区块链节点)。当前节点可以是用户注册时的区块链节点,也可以是另一区块链节点。如果是非用户注册时的区块链节点,则认证请求中还可以包含认证所需信息所在的区块的区块头信息,即预先记录的该用户的用户标识对应的区块头信息。本领域技术人员可以知晓所述认证请求是经过用户密钥加密的,区块链节点使用用户公钥能够解密该认证请求。
如果为合法用户,则该用户提供的第一信息应与身份信息相同。
步骤202,根据用户标识从区块链中获取所述用户的中间信息;
区块链节点可以使用公钥对认证请求进行签名验证,验证通过后,即可根据用户标识读取该用户的中间信息。由于区块体中采用“用户标识-中间信息”、“用户标识-结果信息”此种key-value的形式存储中间信息和结果信息,因此根据用户标识即可查找到该用户对应的中间信息和结果信息。
步骤203,利用所述第一信息和所述中间信息生成第二信息;
生成第二信息的方法与步骤103中的算法相同。
步骤204,判断所述第二信息与所述区块链中预先存储的结果信息是否匹配;
区块链中预先存储的结果信息可以在上述步骤202中获取也可以在计算得到第二信息后获取。判断第二信息与区块链中预先存储的结果信息是否匹配是指,判断第二信息与区块链中预先存储的结果信息是否一致,如果一致就认为匹配,如果不一致就认为不匹配。
步骤205,根据匹配结果判断所述用户的身份是否合法。
如果匹配结果为匹配,则表示用户身份合法,如果匹配结果为不匹配,则表示用户身份不合法。
通过上述认证方法,采用用户提供的信息与区块链上的中间信息进行计算,将计算结果与区块上的结果信息进行匹配,根据匹配结果判断身份是否合法。相较于现有的短信认证、邮件认证或数字证书认证,验证信息的载体相比手机、邮箱和u盾更加可靠。
上述图2认证方法为由一区块链节点完成的认证,为了进一步保证可靠性,避免因区块链节点被篡改后导致的认证结果不准确,还可以采用多节点认证机制。区块链网络如图3所示,每个区块链节点中均设置有智能合约,智能合约是以基于预定事件触发、不可篡改、自动执行的计算机程序,由智能合约完成信息的接收、匹配等工作。在本实施例中,将接收到用户认证请求的区块链节点称为认证区块链节点,参与认证的其他区块链节点称为辅助认证区块链节点。如图4所示,应用于辅助认证区块链节点的辅助认证流程包括以下步骤:
步骤401,认证区块链节点将待认证的用户的用户标识和用户输入的第一信息发送给辅助认证区块链节点;
认证区块链节点可以通过预设规则选出多个辅助认证区块链节点,或者随机选出n个其他区块链节点作为辅助认证区块链节点。
本多节点认证流程可以与图2所示认证流程并发执行,例如在步骤201后启动本流程,执行步骤401;或者也可以在步骤204后再启动本流程,或者也可以在其他时刻执行,只要在步骤205之前执行本流程即可。
认证区块链节点还可以把预先记录的该用户的用户标识对应的区块头信息一并发送给辅助认证区块链节点。
步骤402-403,同步骤202-203,收到用户第一信息的辅助认证区块链节点从区块链中获取所述用户的中间信息,利用所述第一信息和所述中间信息生成第三信息;
步骤404,判断生成的第三信息与区块链中预先存储的结果信息是否匹配,将匹配结果返回给认证区块链节点。
采用多节点认证机制,认证区块链节点在执行步骤205用户身份是否合法的判断时,不仅仅根据本认证区块链节点的匹配结果判断,还需要结合其他辅助认证区块链节点的匹配结果进行判断,可以采用的方式是,判断当所有匹配结果中有超过预定数量的匹配结果表示为匹配时,确定所述用户的身份为合法。上述预定数量例如可以是所有认证节点的半数,即采用多数策略认定用户是否合法。采用多节点认证机制可以进一步保证认证的可靠性,避免因区块链节点被篡改后导致的认证结果不准确。
除了上述认证区块链节点进行认证、认证区块链节点与辅助区块链节点联合认证的方案外,在一个可选实施例中,还可以采用另一种辅助认证方案,由辅助区块链节点匹配,认证区块链节点进行认证,具体流程如图5所示,包括以下步骤:
步骤501,认证区块链节点接收所述用户输入的第一信息,将所述用户的用户标识与所述第一信息发送给辅助认证区块链节点;
步骤502,辅助认证区块链节点接收认证区块链节点发送的用户标识和用户输入的第一信息;
步骤503,辅助认证区块链节点从区块链中获取所述用户的中间信息,利用所述第一信息和所述中间信息生成第三信息;
辅助认证区块链节点可根据预先获取的区块头信息索引区块链,根据用户标识从区块中获取对应的中间信息。区块头信息可以由认证区块链节点发送给辅助认证区块链节点,也可以存储于一预定位置,由辅助认证区块链节点自己获取。
步骤504,辅助认证区块链节点判断所述生成的第三信息与所述区块链中预先存储的结果信息是否匹配,向所述认证区块链节点返回匹配结果;
步骤505,认证区块链节点根据匹配结果判断所述用户的身份是否合法。
辅助认证区块链节点可以有一个或多个,如果只有一个,则匹配结果为匹配,则认证区块链节点判断用户身份合法,如果匹配结果为不匹配,则判断用户身份不合法。如果有多个,判断当所有匹配结果中有超过预定数量(例如半数)的匹配结果表示为匹配时,确定所述用户的身份为合法。
上述流程中,步骤501和505是认证区块链节点完成的操作,步骤502-504是由辅助认证区块链节点完成的操作。
在上述实施例的基础上,可选地,在多节点认证机制的基础上,每个辅助认证区块链节点还可以为该待认证用户生成一临时参数,并将该临时参数与匹配结果或者第二信息一起反馈给认证区块链节点。所述临时参数为由辅助认证区块链节点生成的参数。临时参数可采用预设算法生成,或者该临时参数也可以是由辅助认证区块链节点生成的随机数。本实施例并不限制临时参数的生成时机,只要在向认证区块链节点返回之前生成即可。
对于认证区块链节点,其接收到其他辅助认证区块链节点反馈的临时参数后,在用户身份认证为合法后,从接收到的临时参数中选择一个作为所述用户的会话令牌(sessiontoken)。具体地,可以从返回匹配结果表示匹配的辅助认证区块链节点返回的临时参数中选择一个临时参数作为所述用户的会话令牌,即如果有x个辅助认证区块链节点返回的匹配结果为匹配,则从该x个辅助认证区块链节点返回的共计x个临时参数中选择一个作为会话令牌。选择的方法有多种,例如可以随机选择,或者如果临时参数为随机数,也可以从中选择一个最大的数或者最小的数作为会话令牌。所述会话令牌为一身份标识符,该会话令牌将参与到用户后续的会话操作中。
在本实施例中,作为会话令牌的临时身份标识不是由应用系统产生,而是由区块链网络产生,由于区块链本身的机制,可以保证会话令牌的合法性和随机性,同时避免系统被攻破后随意生成令牌。
本申请实施例提出的认证方案或多节点认证方案可以与现有的认证方式结合使用,也可以单独使用。
下面介绍实现上述实施例方法的第一身份认证装置,所述装置位于认证区块链节点,如图6所示,所述装置包括第一接收模块61、中间信息获取模块62、第二信息生成模块63和身份认证模块64,其中:
所述第一接收模块61,被配置为对用户的身份进行认证时,接收所述用户输入的第一信息;
所述中间信息获取模块62,被配置为从区块链中获取所述用户的中间信息;
所述第二信息生成模块63,被配置为利用所述第一信息和所述中间信息生成第二信息;
所述身份认证模块64,被配置为判断所述第二信息与所述区块链中预先存储的结果信息是否匹配,根据匹配结果判断所述用户的身份是否合法。
在一可选实施例中,所述装置还包括第一发送模块,所述第一发送模块被配置为将所述第一接收模块接收的所述第一信息和用户的用户标识发送给辅助认证区块链节点;
所述第一接收模块还配置为接收辅助认证区块链节点返回的匹配结果;
所述身份认证模块判断所述第二信息与所述区块链中预先存储的结果信息是否匹配,根据匹配结果判断所述用户的身份是否合法,包括:所述身份认证模块判断所述第二信息与所述区块链中预先存储的结果信息是否匹配得到本节点的匹配结果,结合所述本节点的匹配结果与辅助区块链节点返回的匹配结果,判断当所有匹配结果中有超过预定数量的匹配结果表示为匹配时,确定所述用户的身份为合法。
在此实施例中,一种可选的方式是,所述第一接收模块还被配置为接收辅助认证区块链节点返回的临时参数,所述临时参数为由辅助认证区块链节点生成的随机参数;所述装置还包括令牌选择模块,被配置为从返回匹配结果表示匹配的辅助认证区块链节点返回的临时参数中选择一个临时参数作为所述用户的会话令牌。
下面介绍实现上述实施例方法的第二身份认证装置,所述装置位于辅助认证区块链节点,如图7所示,所述装置包括第二接收模块71、中间信息获取模块72和结果生成模块73,其中:
所述第二接收模块71,被配置为接收认证区块链节点发送的用户标识和用户输入的第一信息;
所述中间信息获取模块72,被配置为从区块链中获取所述用户的中间信息;
所述结果生成模块73,被配置为利用所述第一信息和所述中间信息生成第三信息,判断所述第三信息与所述区块链中预先存储的结果信息是否匹配,向所述认证区块链节点返回匹配结果。
在一个可选实施例中,所述装置还可包括临时参数生成模块,被配置为生成一随机参数作为临时参数,并将所述临时参数返回给所述认证区块链节点。
区块链节点中可以预设其中部分区块链节点为认证区块链节点,另一部分为辅助认证区块链节点。也可以预设所有区块链节点既可以是认证区块链节点,也可以是辅助认证区块链节点,即上述第一身份认证装置和第二身份认证装置可以位于同一区块链节点。当第一身份认证装置和第二身份认证装置位于同一区块链节点时,上述装置中功能相近的模块可以合并设置,例如第一身份认证装置中的中间信息获取模块62与第二身份认证装置中的中间信息获取模块72功能相同,仅设置一个即可,再例如第一身份认证装置中的第一接收模块61与第二身份认证装置中的第二接收模块71可以合并设置;第一身份认证装置中的第二信息生成模块63和身份认证模块64与第二身份认证装置中的结果生成模块73功能相近,可以合并设置。本领域技术人员根据上述实施例中的描述可以知道如何进行模块的设置,本文中不再赘述。
应用示例
本例以区块链上保存有中间信息和结果信息为例进行说明,以下步骤(1-1)-(1-4)为注册时的流程,步骤(1-5)-(1-12)为认证时的流程:
步骤1-1,新用户注册时,业务应用使该用户提供用于认证身份的若干个助记单词作为身份信息;
可选地,也可以将用户提供的多个助记单词哈希后得到的哈希值作为身份信息;
步骤1-2,生成中间信息;
例如可以从相关信息中选择其中一种或多种生成中间信息,相关信息包括但不限于:用户名、注册时间、客户机地址、服务器地址、随机数等;生成中间信息的方法有很多,如将上述至少一种信息的哈希值作为中间信息;
步骤1-3,用身份信息和中间信息进行哈希后得到的值作为结果信息;
步骤1-4,将该新用户的注册事件广播到区块链网络,即将该用户的中间信息和结果信息写入区块链中;
步骤1-5,在认证身份时,进行认证的认证区块链节点接收到用户的认证请求,其中包括用户标识、用户提供的用于认证身份的第一信息;
一种可选的方式是,用户注册时,在提供身份信息后,生成一个或多个混淆信息,与身份信息一并保存。当认证身份时,提取所保存的信息作为候选项,由用户从中选择身份信息。以防止用户忘记该助记单词。
步骤1-6,从区块链中获取该用户的中间信息;
在本示例中,认证区块链节点为用户注册时的区块链节点,其上记录有区块头信息,由区块头信息可以检索区块链,再根据用户标识可以查找到该用户对应的中间信息。如果认证区块链节点并非注册时的区块链节点,则其可以向注册时的区块链节点获取区块头信息。
步骤1-7,对第一信息和中间信息进行哈希计算得到第二信息;
步骤1-8,判断第二信息是否与区块链中的结果信息匹配;
步骤1-9,随机选择x个其他区块链节点作为辅助认证区块链节点,调用这些节点上的身份认证智能合约,将用户的第一信息和用户标识作为输入传给上述节点的身份认证智能合约;
步骤1-10,被选中的辅助认证区块链节点的身份认证智能合约根据接收到的第一信息和根据用户标识从区块链中获得的中间信息分别进行哈希计算,并判断计算结果是否匹配区块链中的结果信息,将匹配结果返回给认证区块链节点,可选地,在返回匹配结果时还返回一个随机数值;
步骤1-11,认证区块链节点根据本节点的匹配结果和其他辅助认证节点的匹配结果,判断用户是否合法;
可采用多数原则,当超过半数的匹配结果为匹配,则判断用户为合法用户。如果未采用多节点认证机制,则在步骤1-8之后可以直接执行步骤1-11,得到用户是否合法的结果。
步骤1-12,当判断用户合法时,从返回匹配结果为匹配的辅助认证区块链节点提供的随机数值中选择一个作为后续操作中的会话令牌。
选择算法有很多,本示例不做限定,例如可以随机选一个。
后续,用户可以变更自己的助记单词,不会影响身份验证流程。
采用本示例的方案,单独的认证区块链节点可完成认证,也可以结合辅助认证区块链节点进行多节点认证,有多种可选认证方式。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后,能够实现前述一个或多个实施例提供的身份认证方法,例如,执行如图1所示方法。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时能够实现前述一个或多个实施例提供的身份认证方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理单元的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。