一种硬件钱包及其持有者身份验证方法与流程

文档序号:11143970阅读:539来源:国知局
一种硬件钱包及其持有者身份验证方法与制造工艺

本发明涉及数字货币领域,特别涉及一种硬件钱包及其持有者身份验证方法。



背景技术:

数字货币是电子货币形式的替代货币,数字金币和密码货币都属于数字货币,他不能完全等同于虚拟世界中的虚拟货币,因为它更多的应用于真实的商品和服务交易中。密码货币是使用密码算法的数字货币;绝大多数的密码运算都沿用了信息安全领域已经非常成熟的非对称加密体系进行数据的摘要和签名;这样一来,私钥的安全就成了数字货币发展的重中之重,目前通常的解决方案是将私钥存储在应用软件上或者服务提供商的服务器上,使用时也在软件上或者服务器商进行,但是现有技术中,这种私钥存储方式存在安全隐患,很容易受到黑客的攻击而使私钥丢失,给广大数字货币持有者造成损失。因此,如何提高数字货币的安全防护机制是现有技术中亟需解决的技术问题。



技术实现要素:

本发明提供了一种硬件钱包及其持有者身份验证方法,在提高了数字货币的安全防护机制的同时,实现了多钱包应用的身份认证管理。

本发明提供了一种硬件钱包的持有者身份验证方法,所述硬件钱包中包括:虚拟机、生物特征认证模块和多个钱包应用;

步骤r1:若当前钱包应用接收到来自上位机的包括交易数据的交易请求,所述当前钱包应用向所述虚拟机发送第一验证请求;所述交易数据包括密钥派生路径;

步骤r2:当所述虚拟机接收到来自所述当前钱包应用的第一验证请求后,所述虚拟机向所述生物特征认证模块发送第二验证请求;

步骤r3:所述生物特征认证模块提示当前用户录入生物特征,当检测到当前用户录入生物特征后,根据所述生物特征判断当前用户是否已注册,如果是,则将与所述生物特征对应的生物特征ID作为第二验证结果发送给所述虚拟机,所述虚拟机执行步骤r4;否则,则将验证失败作为第二验证结果发送给所述虚拟机,所述虚拟机执行步骤r4;

步骤r4:所述虚拟机判断所述第二验证结果是否为验证失败,如果是,则将验证失败作为第一验证结果发送给所述当前钱包应用,所述当前钱包应用执行步骤r6;否则,执行步骤r5;

步骤r5:所述虚拟机根据所述生物特征ID判断当前用户是否与所述当前钱包应用匹配,如果是,则将验证成功作为第一验证结果发送给所述当前钱包应用,所述当前钱包应用执行步骤r6;否则,将验证失败作为第一验证结果发送给所述当前钱包应用,所述当前钱包应用执行步骤r6;

步骤r6:所述当前钱包应用判断第一验证结果是否为验证成功,如果是,则使用与所述密钥派生路径对应的私钥对所述交易数据和与所述密钥派生路径对应的账户地址进行签名生成交易凭据,向所述上位机返回所述交易凭据,结束当前操作;否则,向所述上位机报错,结束当前操作。

本发明还提供了一种硬件钱包,包括:虚拟机、生物特征认证模块和多个钱包应用;

所述多个钱包应用中的当前钱包应用包括:第一接收子模块、第一发送子模块、第二接收子模块、第一判断子模块、第一生成子模块和第二发送子模块;

所述第一接收子模块,用于接收来自上位机的包括交易数据的交易请求;所述交易数据中包括密钥派生路径;

所述第一发送子模块,用于向所述虚拟机发送第一验证请求;

所述第二接收子模块,用于接收来自所述虚拟机的第一验证结果;

所述第一判断子模块,用于判断所述第二接收子模块接收到的第一验证结果是否为验证成功;

所述第一生成子模块,用于当所述第一判断子模块判断为是后,使用与所述第一接收子模块接收到的密钥派生路径对应的私钥对所述交易数据和与所述密钥派生路径对应的账户地址进行签名生成交易凭据;

所述第二发送子模块,用于将所述第一生成子模块生成的所述交易凭据返回给所述上位机;以及当所述第一判断子模块判断为否后,向所述上位机报错;

所述虚拟机中包括:第三接收子模块、第三发送子模块、第四接收子模块、第二判断子模块、第三判断子模块和第四发送子模块;

所述第三接收子模块,用于接收来自所述当前钱包应用的第一验证请求;

所述第三发送子模块,用于向所述生物特征认证模块发送第二验证请求;

所述第四接收子模块,用于接收来自所述生物特征认证模块的第二验证结果;

所述第二判断子模块,用于判断所述第四接收子模块接收到的所述第二验证结果是否为验证失败;

所述第三判断子模块,用于当所述第二判断子模块判断为否时,根据所述生物特征ID判断当前用户是否与所述当前钱包应用匹配;

所述第四发送子模块,用于当所述第二判断子模块判断为是时,将验证失败作为第一验证结果发送给所述当前钱包应用;当所述第三判断子模块判断为否时,将验证失败作为第一验证结果发送给所述当前钱包应用;当所述第三判断子模块判断为是时,将验证成功作为第一验证结果发送给所述当前钱包应用;

所述生物特征认证模块包括:第五接收子模块、第一提示子模块、第一检测子模块、第四判断子模块和第五发送子模块;

所述第五接收子模块,用于接收来自所述虚拟机的第二验证请求;

所述第一提示子模块,用于当所述第五接收子模块接收到来自所述虚拟机的第二验证请求后,提示当前用户录入生物特征;

所述第一检测子模块,用于检测用户是否录入生物特征;

所述第四判断子模块,用于根据所述第一检测子模块检测到的所述生物特征判断当前用户是否已注册;

所述第五发送子模块,用于当所述第四判断子模块判断为是时,将与所述生物特征对应的生物特征ID作为第二验证结果发送给所述虚拟机;当所述第四判断子模块判断为否时,将验证失败作为第二验证结果发送给所述虚拟机。

本发明的有益效果:本发明提供了的一种硬件钱包及其持有者身份验证方法,其中硬件钱包中包括多个钱包应用,每个钱包应用中存储私钥,硬件钱包为每个钱包应用录入用于验证与每个钱包应用对应的硬件钱包持有者身份的生物特征,只有当与当前钱包应用对应的硬件钱包持有者身份验证通过后,才能使用当前钱包应用中的私钥对数字货币进行交易,在提高了数字货币的安全防护机制的同时,实现了多钱包应用的身份认证管理。

附图说明

图1为本发明实施例1提供的一种硬件钱包的持有者身份验证方法的流程图;

图2-图3为本发明实施例2提供的一种硬件钱包的持有者身份验证方法的流程图;

图4、图5、图6、图7和图8分别为本发明实施例2又提供的一种硬件钱包的持有者身份验证方法中的指纹注册流程图、指纹验证流程图、指纹列表查询流程图、指纹清空流程和指纹删除流程图;

图9为本发明实施例3提供的一种硬件钱包的方框图。

具体实施方法

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

实施例1

本发明实施例1提供了一种硬件钱包的持有者身份验证方法,如图1所示,包括:

本实施例中,硬件钱包中包括:虚拟机、生物特征认证模块和多个钱包应用;

步骤r1:若当前钱包应用接收到来自上位机的包括交易数据的交易请求,当前钱包应用向虚拟机发送第一验证请求;交易数据中包括密钥派生路径;

步骤r2:当虚拟机接收到来自当前钱包应用的第一验证请求后,虚拟机向生物特征认证模块发送第二验证请求;

步骤r3:生物特征认证模块提示当前用户录入生物特征,当检测到当前用户录入生物特征后,根据生物特征判断当前用户是否已注册,如果是,则将与生物特征对应的生物特征ID作为第二验证结果发送给虚拟机,虚拟机执行步骤r4;否则,则将验证失败作为第二验证结果发送给虚拟机,虚拟机执行步骤r4;

本实施例中,生物特征可以但不限于为用户的指纹特征、人脸识别特征或其他具有识别功能的生物特征等。

其中,根据生物特征判断当前用户是否已注册,具体为:生物特征认证模块在自身的生物特征数据库中查找该生物特征,如果查找到,则判断当前用户已注册;否则,判断当前用户未注册。

步骤r4:虚拟机判断第二验证结果是否为验证失败,如果是,则将验证失败作为第一验证结果发送给当前钱包应用,当前钱包应用执行步骤r6;否则,执行步骤r5;

步骤r5:虚拟机根据生物特征ID判断当前用户是否与当前钱包应用匹配,如果是,则将验证成功作为第一验证结果发送给当前钱包应用,当前钱包应用执行步骤r6;否则,将验证失败作为第一验证结果发送给当前钱包应用,当前钱包应用执行步骤r6;

其中,根据生物特征ID判断当前用户是否与当前钱包应用匹配,具体为:

虚拟机判断与当前钱包应用对应的生物特征注册结果列表中的与生物特征ID对应的生物特征录入结果标识是否为第一预设标识,如果是,则判断当前用户与当前钱包应用匹配;否则,判断当前用户与当前钱包应用不匹配。

步骤r6:当前钱包应用判断第一验证结果是否为验证成功,如果是,则使用与密钥派生路径对应的私钥对交易数据和与密钥派生路径对应的账户地址进行签名生成交易凭据,向上位机返回交易凭据,结束当前操作;否则,向上位机报错,结束当前操作。

本实施例中,使用与密钥派生路径对应的私钥对交易数据和与密钥派生路径对应的账户地址进行签名生成交易凭据之前还包括:当前钱包应用根据自身的主密钥通过密钥派生算法生成与密钥派生路径对应的公钥和私钥,并根据公钥生成账户地址。

本实施例中,步骤r1之前还可以包括:

虚拟机接收来自上位机的包括激活钱包应用指令和应用标识的激活请求,激活与应用标识对应的钱包应用,并将与应用标识对应的钱包应用作为当前钱包应用,向上位机返回激活成功应答。

本实施例中,第二验证请求中还可以包括:与当前钱包应用对应的生物特征注册结果列表;相应地,步骤r3具体为:生物特征认证模块提示用户录入生物特征,当检测到用户录入生物特征后,根据生物特征、自身的生物特征数据库和生物特征注册结果列表判断当前用户是否已注册且当前用户是否与当前钱包应用匹配,如果是,则将生物特征注册结果列表中的与生物特征对应的生物特征ID作为第二验证结果发送给虚拟机;若没有查找到,则将验证失败作为第二验证结果发送给虚拟机。

进一步地,步骤r1和步骤r2之间还可以包括:虚拟机获取与当前钱包应用对应的生物特征注册结果列表。

进一步地,第一验证请求中还可以包括:与当前钱包应用对应的生物特征注册结果列表;相应地,步骤r1之前还可以包括:

步骤c1:虚拟机接收来自当前钱包应用的查询生物特征注册结果列表请求;

步骤c2:虚拟机向当前钱包应用返回与当前钱包应用对应的生物特征注册结果列表。

本实施例中,根据生物特征、自身的生物特征数据库和生物特征注册结果列表判断当前用户是否已注册且当前用户是否与当前钱包应用匹配,具体为:根据生物特征、自身的生物特征数据库和生物特征注册结果列表查找与生物特征对应的并且生物特征注册结果列表中的生物特征录入结果标识为第一预设标识的生物特征ID,若查找到,判断当前用户已注册且当前用户与当前钱包应用匹配;若没有查找到,则判断当前用户未注册和/或当前用户与当前钱包应用不匹配。

本实施例中提供的一种硬件钱包的持有者身份验证方法中,还可以包括:

步骤s1:当虚拟机接收到来自当前钱包应用的注册请求后,虚拟机向生物特征认证模块发送录入请求;

步骤s2:生物特征认证模块提示用户录入生物特征,当检测到用户录入生物特征后,将生物特征与当前生物特征ID建立对应关系,将自身的生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识,将当前生物特征ID及与其对应的生物特征保存到生物特征数据库中,将录入结果设置为录入成功,向虚拟机发送录入结果;当没有检测到用户录入生物特征后,将录入结果设置为录入失败,向虚拟机发送录入结果;

步骤s3:虚拟机根据录入结果判断生物特征认证模块是否成功获取到与当前生物特征ID对应的生物特征,如果是,则执行步骤s4;否则,向当前钱包应用报错,结束当前操作;

步骤s4:虚拟机将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识,向当前钱包应用返回注册成功,结束当前操作。

进一步地,注册请求中还可以包括当前生物特征ID;录入请求中还可以包括当前生物特征ID。

更进一步地,步骤s1之前,还包括:虚拟机接收来自当前钱包应用的获取当前生物特征ID请求,虚拟机向生物特征认证模块发送获取当前生物特征ID请求;生物特征认证模块从自身的生物特征数据库中获取当前生物特征ID,向虚拟机返回当前生物特征ID;虚拟机向当前钱包应用返回当前生物特征ID。

再进一步地,生物特征认证模块从自身的生物特征数据库中获取当前生物特征ID具体为:生物特征认证模块从自身的生物特征数据库中获取注册结果标识为第二预设标识的最小生物特征ID,并将其作为当前生物特征ID。

本实施例中,录入请求中还可以包括当前生物特征ID;相应地,当虚拟机接收到来自当前钱包应用的注册请求后,还包括:虚拟机从与当前钱包应用对应的生物特征注册结果列表中获取当前生物特征ID。

进一步地,虚拟机从与当前钱包应用对应的生物特征注册结果列表中获取当前生物特征ID,具体为:从当前钱包应用对应的生物特征注册结果列表中获取注册结果标识为第二预设标识的最小生物特征ID,并将其作为当前生物特征ID。

本实施例中,若录入结果为录入成功,录入结果中还可以包括:当前生物特征ID;相应地,将生物特征与当前生物特征ID建立对应关系,具体为将生物特征与自身的生物特征数据库中的当前生物特征ID建立对应关系。

进一步地,将生物特征与当前生物特征ID建立对应关系之前,还包括:生物特征认证模块从自身的生物特征数据库中获取注册结果标识为第二预设标识的最小生物特征ID,并将其作为当前生物特征ID。

本实施例中,若注册请求中还包括当前生物特征ID;录入请求中还包括当前生物特征ID,相应地,当虚拟机接收到来自当前钱包应用的注册请求后,虚拟机向生物特征认证模块发送录入请求之前,还包括:

步骤a1:虚拟机检测与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识,如果是,则向生物特征认证模块发送录入请求,继续;否则,执行步骤a2;

步骤a2:虚拟机向生物特征认证模块发送包括生物特征ID的第一查找请求;

步骤a3:生物特征认证模块接收到来自虚拟机的第一查找请求后,判断在自身的生物特征数据库中与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识,如果是,则将第一查找结果设置为失败,向虚拟机发送第一查找结果;否则,将第一查找结果设置为成功,向虚拟机发送第一查找结果;

步骤a4:虚拟机根据第一查找结果判断生物特征认证模块的生物特征数据库中与当前生物特征ID对应的生物特征录入结果是否为第一预设标识,如果是,则向当前钱包应用报错,结束当前操作;否则,向生物特征认证模块发送录入请求,继续。

本实施例中,注册请求中还可以包括录入次数;录入请求中还可以包括录入次数;相应地:

步骤s3中判断为是后,步骤s4之前,还包括:虚拟机判断录入次数是否为预设限制次数,如果是,则执行步骤s4;否则,向当前钱包应用返回注册成功,返回步骤s1;

生物特征认证模块将生物特征与当前生物特征ID建立对应关系后,将自身的生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识之前还包括:判断录入次数是否为预设限制次数,如果是,则将自身的生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识,将当前生物特征ID及与其对应的生物特征保存到生物特征数据库中,将录入结果设置为录入成功,向虚拟机发送录入结果;否则,将录入结果设置为录入成功,向虚拟机发送录入结果。

本实施例中提供的一种硬件钱包的持有者身份验证方法中,还可以包括:

步骤d1:当虚拟机接收来自当前钱包应用的清空请求后,虚拟机将生物特征注册结果列表中的第一个生物特征ID作为当前生物特征ID;

步骤d2:虚拟机判断当前生物特征ID是否超过预设限制范围,如果是,则向当前钱包应用返回清空成功信息,结束当前操作;否则,执行步骤d3;

步骤d3:虚拟机判断与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识,如果是,则执行步骤d4;否则,执行步骤d8;

步骤d4:虚拟机向生物特征认证模块发送包括当前生物特征ID的删除请求;

步骤d5:生物特征认证模块在自身的生物特征数据库中查找当前生物特征ID,若查找到,则将生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识,删除与当前生物特征ID对应的生物特征,将删除结果设置为删除成功,向虚拟机返回删除结果,虚拟机执行步骤d6;若没有在所在生物特征数据库中查找到当前生物特征ID,则将删除结果设置为删除失败,向虚拟机返回删除结果,虚拟机执行步骤d6;

步骤d6:虚拟机根据删除结果判断生物特征认证模块是否已删除与当前生物特征ID对应的生物特征,如果是,则执行步骤d7;否则,向当前钱包应用报错;结束当前操作;

步骤d7:虚拟机将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识;

步骤d8:虚拟机将与当前钱包应用对应的生物特征注册结果列表中的当前生物特征ID的下个生物特征ID作为当前生物特征ID,返回步骤d2。

本实施例中提供的一种硬件钱包的持有者身份验证方法中,还可以包括:

步骤f1:当虚拟机接收来自当前钱包应用的包括当前生物特征ID的删除请求后,虚拟机判断与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识,如果是,则执行步骤f2;否则,向当前钱包应用报错;结束当前操作;

步骤f2:虚拟机向生物特征认证模块发送包括当前生物特征ID的删除请求;

步骤f3:生物特征认证模块在自身的生物特征数据库中查找当前生物特征ID,若查找到,则将生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识,删除与当前生物特征ID对应的生物特征,将删除结果设置为删除成功,向虚拟机返回删除结果,虚拟机执行步骤f4;若没有在所在生物特征数据库中查找到当前生物特征ID,则将删除结果设置为删除失败,向虚拟机返回删除结果,虚拟机执行步骤f4;

步骤f4:虚拟机根据删除结果判断生物特征认证模块是否已删除与当前生物特征ID对应的生物特征,如果是,则执行步骤f5;否则,向当前钱包应用报错;结束当前操作;

步骤f5:虚拟机将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识;向当前钱包应用返回删除成功信息;结束当前操作。

进一步地,当虚拟机接收来自当前钱包应用的包括当前生物特征ID的删除请求后,步骤f1之前还包括:虚拟机在与当前钱包应用对应的生物特征注册结果列表中查找当前生物特征ID,若查找到,则执行步骤f1;否则,向当前钱包应用报错;结束当前操作。

本实施例提供了的一种硬件钱包的持有者身份验证方法,其中硬件钱包中包括虚拟机、生物特征认证模块和多个钱包应用,每个钱包应用中存储私钥,硬件钱包通过虚拟机和生物特征认证模块为每个钱包应用录入用于验证与每个钱包应用对应的硬件钱包持有者身份的生物特征,只有当与当前钱包应用对应的硬件钱包持有者身份验证通过后,才能使用当前钱包应用中的私钥对数字货币进行交易,在提高了数字货币的安全防护机制的同时,实现了多钱包应用的身份认证管理。

实施例2

本实施例提供了一种硬件钱包的持有者身份验证方法,如图2-图3所示,包括:

本实施例中,硬件钱包中包括1个或多个钱包应用、虚拟机和生物特征认证模块。本实施例中,生物特征认证模块以指纹模块为例。生物特征数据库具体为:指纹数据库;生物特征注册结果列表具体为:应用指纹列表。

步骤101:虚拟机接收来自当前钱包应用的请求,当接收到注册指纹请求后,执行步骤102;当接收到第一验证指纹请求后,执行步骤111;当接收到查询指纹列表请求后,执行步骤118;当接收到清空指纹请求后,执行步骤123;当接收到删除指纹请求后,执行步骤132;

需说明的是,步骤101之前,还包括:虚拟机接收来自上位机的包括激活钱包应用指令和钱包应用的应用标识的激活请求,根据激活钱包应用指令激活与应用标识对应的钱包应用,并将与应用标识对应的钱包应用作为当前钱包应用,保存当前钱包应用的应用标识,等待接收来自当前钱包应用的指纹管理请求。

本实施例中,还包括:若当前钱包应用接收到来自上位机的包括交易数据的交易请求,当前钱包应用向虚拟机发送第一验证请求,等待接收来自虚拟机返回的第一验证结果;其中,交易数据包括密钥派生路径;当接收到来自虚拟机的第一验证结果后,当前钱包应用判断第一验证结果是否为指纹ID,如果是,则使用与密钥派生路径对应的私钥对交易数据和与密钥派生路径对应的账户地址进行签名生成交易凭据,向上位机返回交易凭据;否则,向上位机报错。

本实施例中,硬件钱包中包括1个或多个钱包应用,应用标识为每个钱包应用的唯一识别标识。例如,硬件钱包中包括3个钱包应用,分别为第一钱包应用、第二钱包应用和第三钱包应用,其中,第一钱包应用的应用标识为应用标识1,第二钱包应用的应用标识为应用标识2,第三钱包应用的应用标识为应用标识3。

本实施例中,上位机可以但不限于为PC或手机。

步骤102:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤104;否则,执行步骤103;

具体地,虚拟机获取当前钱包应用的应用标识,根据应用标识检测与当前钱包应用对应的指纹管理存储区是否为空,如果是,则检测出没有初始化与当前钱包应用对应的指纹管理存储区,执行步骤103;否则,检测出当前钱包应用已初始化指纹管理存储区,执行步骤104。

例如,若虚拟机获取到当前钱包应用的应用标识1,则根据应用标识1检测与第一钱包应用对应的指纹管理存储区是否为空,如果是,则检测出没有初始化与第一钱包应用对应的指纹管理存储区,执行步骤103;否则,检测出已初始化与第一钱包应用对应的指纹管理存储区,执行步骤104。

若虚拟机获取到当前钱包应用的应用标识2,则根据应用标识2检测与二钱包应用对应的指纹管理存储区是否为空,如果是,则检测出没有初始化与第二钱包应用对应的指纹管理存储区,执行步骤103;否则,检测出已初始化与第二钱包应用对应的指纹管理存储区,执行步骤104。

步骤103:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

具体地,虚拟机初始化指纹ID以及与指纹ID对应的指纹录入结果标识,将指纹ID和与指纹ID对应的指纹结果录入标识存储到与当前钱包应用对应的指纹管理存储区。

例如,若当前钱包应用为第一钱包应用,虚拟机初始化指纹ID0-指纹ID83,将与指纹ID对应的指纹录入结果标识初始化为第二预设标识;将指纹ID和与指纹ID对应的指纹结果录入标识存储到与第一钱包应用对应的指纹管理存储区,得到如表1所示的应用指纹列表。本实施例中,优选地,第二预设标识为0。

表1

若当前钱包应用为第二钱包应用,虚拟机初始化指纹ID0-指纹ID83,将与指纹ID对应的指纹录入结果标识初始化为第二预设标识;将指纹ID和与指纹ID对应的指纹结果录入标识存储到与第二钱包应用对应的指纹管理存储区,得到如表2所示的应用指纹列表。

表2

需说明的是,本实施例中表1和表2仅为指纹ID与指纹录入结果标识的对应关系的一种表示形式,本实施例中指纹ID与指纹录入结果标识的对应关系的表示形式可以但不限于如表1和表2所示。

步骤104:虚拟机检测与当前钱包应用对应的指纹管理存储区中的与注册指纹请求中的指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则执行步骤106;否则,执行步骤105;

本实施例中,优选地,第一预设标识为1。

步骤105:虚拟机判断指纹模块的指纹数据库中的与指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则向当前钱包应用报错,返回步骤101;否则,执行步骤106;

具体包括:步骤1051:虚拟机向指纹模块发送包括指纹ID的第一查找请求;

步骤1052:指纹模块根据第一查找请求中的指纹ID,在自身的指纹数据库中查找与指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则将第一查找结果设置为成功,执行步骤1053;否则,将第一查找结果设置为失败,执行步骤1053;

本实施例中,指纹模块在步骤1052之前,还包括:指纹模块上电初始化,具体地,指纹模块上电后,初始化指纹数据库,在自身的指纹数据库中初始化包括指纹ID及与指纹ID对应的指纹录入结果的芯片指纹列表。

例如,指纹模块上电后,初始化指纹数据库,指纹模块初始化指纹ID0-指纹ID83,将与指纹ID对应的指纹录入结果标识初始化为第二预设标识;将指纹ID和与指纹ID对应的指纹结果录入标识存储到自身的指纹数据库中,得到如表3所示的芯片指纹列表。

表3

需说明的是,本实施例中表3仅为指纹ID与指纹录入结果标识的对应关系的一种表示形式,本实施例中指纹ID与指纹录入结果标识的对应关系的表示形式可以但不限于如表3所示。

步骤1053:指纹模块向虚拟机发送第一查找结果;

步骤1054:虚拟机根据第一查找结果判断指纹模块的指纹数据库中的与指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则向当前钱包应用报错,返回步骤101;否则,执行步骤106;

步骤106:虚拟机向指纹模块发送包括指纹ID和注册请求中的录入次数的录入指纹请求;接收来自指纹模块的录入结果;

当指纹模块接收到来自虚拟机的包括指纹ID和注册请求中的录入次数的录入指纹请求后,指纹模块提示用户录入指纹,当没有检测到用户录入指纹后,将录入结果设置为录入失败,向虚拟机返回录入结果;当检测到用户录入指纹后,根据用户录入的指纹获取指纹特征,将指纹特征与指纹ID及录入次数建立对应关系,指纹模块判断录入次数是否为预设限制次数,如果是,则将自身的指纹数据库中的与指纹ID对应的指纹录入结果标识设置为第一预设标识,并将与指纹ID和每个录入次数对应的指纹特征保存到指纹数据库中,将录入结果设置为注册成功,向虚拟机返回录入结果;否则,将录入结果设置为注册成功,向虚拟机返回录入结果。

或者当指纹模块接收到来自虚拟机的录入指纹请求后,当没有检测到用户录入指纹后,将录入结果设置为录入失败,向虚拟机返回录入结果;当检测到用户录入指纹后,根据用户录入的指纹获取指纹特征,将指纹特征与指纹ID及录入次数建立对应关系,将录入结果设置为注册成功,判断录入次数是否为预设限制次数,如果是,则将自身的指纹数据库中的与指纹ID对应的指纹录入结果标识设置为第一预设标识,并将与指纹ID和每个录入次数对应的指纹特征保存到指纹数据库中,向虚拟机返回录入结果;否则,向虚拟机返回录入结果。

其中,将指纹特征与指纹ID及录入次数建立对应关系,具体为,将录入次数设置为指纹特征的标识,将设置标识后的指纹特征与指纹ID建立对应关系。

例如,当指纹模块接收到来自虚拟机的包括指纹ID为指纹ID1和注册请求中的录入次数为1的录入指纹请求后,指纹模块提示用户录入指纹,当检测到用户录入指纹后,根据用户录入的指纹获取指纹特征,将录入次数1设置为指纹特征的标识,将设置标识后的指纹特征1与指纹ID建立对应关系,指纹模块判断录入次数1不为预设限制次数,则将录入结果设置为注册成功,向虚拟机返回录入结果。

当指纹模块接收到来自虚拟机的包括指纹ID为指纹ID1和注册请求中的录入次数为4的录入指纹请求后,指纹模块提示用户录入指纹,当检测到用户录入指纹后,根据用户录入的指纹获取指纹特征,将录入次数4设置为指纹特征的标识,将设置标识后的指纹特征4与指纹ID建立对应关系,指纹模块判断录入次数4为预设限制次数,则将自身的指纹数据库中的与指纹ID1对应的指纹录入结果标识设置为第一预设标识,得到如表3-1所示的更新后的指纹ID与指纹录入结果标识的对应关系,并将与指纹ID1和每个录入次数对应的指纹特征保存到指纹数据库,得到如表4所示的列表,将录入结果设置为注册成功,向虚拟机返回录入结果;否则,将录入结果设置为注册成功,向虚拟机返回录入结果。

优选地,预选限制次数为4。

表3-1

表4

需说明的是,本实施例中表4仅为指纹特征与指纹ID及录入次数的对应关系的一种表示形式,本实施例中指纹特征与指纹ID及录入次数的对应关系的表示形式可以但不限于如表4所示。

本实施例中,与指纹ID1对应的指纹特征1、指纹特征2、指纹特征3和指纹特征4可以全部相同或者部分相同或者各不相同。例如,与指纹ID1对应的指纹特征1、指纹特征2和指纹特征3均与用户的食指对应,指纹特征4与用户的中指对应。

步骤107:虚拟机根据录入结果判断指纹模块是否成功获取到指纹特征,如果是,则执行步骤108;否则,则向当前钱包应用报错,返回步骤101;

步骤108:虚拟机判断录入次数是否为预设限制次数,如果是,则执行步骤109;否则,执行步骤110;

步骤109:虚拟机将与当前钱包应用对应的指纹管理存储区中的与指纹ID对应的指纹录入结果标识设置为第一预设标识;

例如,虚拟机将与第一钱包应用对应的指纹管理存储区中的与指纹ID1对应的指纹录入结果标识设置为第一预设标识,得到如表1-1所示的更新后的指纹ID与指纹录入结果标识的对应关系。

表1-1

步骤110:虚拟机向当前钱包应用返回指纹ID,返回步骤101。

本实施例中,虚拟机中为多个钱包应用分别分配对应的指纹存储区,每个指纹存储区中存储着与各自钱包应用对应的指纹ID与指纹录入结果标识的对应关系,指纹模块的指纹数据库中存储着与所有钱包应用对应的指纹ID与纹录入结果标识的对应关系、与所有钱包应用对应的指纹特征与指纹ID及录入次数的对应关系。例如,若虚拟机接收到来自第一钱包应用的包括指纹ID为1,录入次数为限制次数注册指纹请求后,虚拟机将指纹ID1对应的指纹注册完成后,虚拟机中的与第一钱包应用对应的指纹管理存储区中的指纹ID与指纹录入结果标识的对应关系可以如表1-1所示,指纹模块的数据库中指纹ID与指纹录入结果标识的对应关系可以如表3-1所示;指纹特征与指纹ID及录入次数的对应关系如表4所示。若虚拟机将指纹ID1对应的指纹注册完成后,又接收到第二钱包应用的包括指纹ID为0,录入次数为限制次数注册指纹请求后,虚拟机按照再次执行步骤101-110,当虚拟机将指纹ID0对应的指纹注册完成后,虚拟机中的与第二钱包应用对应的指纹管理存储区中的指纹ID与指纹录入结果标识的对应关系可以如表2-1所示,指纹模块再次更新的数据库中指纹ID与指纹录入结果标识的对应关系,得到表3-2所示的列表;指纹模块更新指纹特征与指纹ID及录入次数的对应关系,得到如表4-1所示的列表。

表2-1

表3-2

表4-1

本实施例中,与指纹ID0对应的指纹特征1、指纹特征2、指纹特征3和指纹特征4可以全部相同或者部分相同或者各不相同。例如,与指纹ID0对应的指纹特征1、指纹特征2和指纹特征3均与用户的中指对应,指纹特征4与用户的食指对应。

步骤111:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤113;否则,执行步骤112;

步骤112:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤113:虚拟机从与当前钱包应用对应的指纹管理存储区中获取包括指纹ID及与指纹ID对应的指纹录入结果标识的应用指纹列表;

例如,虚拟机从与第一钱包应用对应的指纹管理存储区中获取包括指纹ID及与指纹ID对应的指纹录入结果标识的应用指纹列表如表1-1所示。

步骤114:虚拟机向指纹模块发送包括应用指纹列表的第二验证指纹请求;

当指纹模块接收到来自虚拟机的包括应用指纹列表的第二验证请求后,指纹模块提示用户录入指纹,当检测到用户录入指纹后,获取与用户录入的指纹对应的指纹特征,在应用指纹列表中查找与指纹特征对应的并且指纹录入结果标识为第一预设标识的指纹ID,若查找到,则将指纹ID作为第二验证结果发送给虚拟机;若没有查找到,将验证失败作为第二验证结果发送给虚拟机;当没有检测到用户录入指纹后,将验证失败作为第二验证结果发送给虚拟机。

例如,当指纹模块接收到来自虚拟机的包括表1-1所示的应用指纹列表的第二验证请求后,指纹模块提示用户录入指纹,当检测到用户录入指纹后,获取与用户录入的食指指纹对应的指纹特征,在表1-1中查找与食指指纹对应的指纹特征1、指纹特征2和指纹特征3所对应的指纹ID1的录入结果标识为第一预设标识,则将指纹ID1作为验证结果发送给虚拟机。

步骤115:虚拟机接收来自指纹模块的第二验证结果,根据第二验证结果判断指纹模块是否验证成功,如果是,则执行步骤116;否则,则将验证失败作为第一验证结果,执行步骤117;

具体地,虚拟机接收来自指纹模块的第二验证结果,判断第二验证结果是否为指纹ID,如果是,则判断指纹模块验证成功,则执行步骤116;否则,则向当前钱包应用报错,返回步骤101。

步骤116:虚拟机在与当前钱包应用对应的应用指纹列表中查询与指纹ID对应的指纹录入结果标识是否是第一预设标识,如果是,则将指纹ID作为第一验证结果,执行步骤117;否则,将验证失败作为第一验证结果,执行步骤117;

步骤117:虚拟机向当前钱包应用返回第一验证结果,返回步骤101。

本实施例提供的一种硬件钱包的持有者身份验证方法中,通过使用“虚拟机向指纹模块发送包括应用指纹列表的第二验证指纹请求,当指纹模块接收到来自虚拟机的包括应用指纹列表的第二验证请求后,提示用户录入指纹,当检测到用户录入指纹后,在应用指纹列表中查找与指纹特征对应的并且指纹录入结果标识为第一预设标识的指纹ID,若查找到,则将指纹ID作为验证结果发送给虚拟机;若没有查找到,将验证失败作为验证结果发送给虚拟机”的技术手段,可以避免:若用户使用同一根手指为多个钱包应用注册指纹后,在虚拟机对当前钱包应用的指纹验证过程中,用户使用该手指验证指纹时,若指纹模块根据自身指纹数据库中的指纹ID与该手指指纹特征的对应关系,向虚拟机返回指纹ID时,可能会将当前钱包应用之外的其他钱包应用的指纹ID返回给虚拟机,当执行到步骤116时,虚拟机会向当前钱包应用报错,而导致指纹验证失败的情况发生,影响用户体验。

例如,若用户使用食指为第一钱包应用和第二钱包应用注册指纹后,若当前应用为第一钱包应用,在虚拟机对第一钱包应用的指纹验证过程中,用户使用该手指验证指纹时,若指纹模块采用轮询的方法在自身指纹数据库中的如表4-1所示的指纹ID与指纹特征的对应关系中,查找到与食指对应的指纹特征4对应的指纹ID0,向虚拟机返回指纹ID0,当执行到步骤116时,虚拟机在与第一钱包应用对应的如表1-1所示的应用指纹列表中查询与指纹ID对应的指纹录入结果标识不为第一预设标识,虚拟机会向第一钱包应用报错,而导致指纹验证失败的情况发生,影响用户体验。

步骤118:虚拟机从指纹模块中获取最小可用指纹ID;

步骤118具体包括:虚拟机向指纹模块发送获取最小可用指纹ID请求;接收来自指纹模块的最小可用指纹ID。

当指纹模块接收到来自虚拟机的最小可用指纹ID请求后,指纹模块从自身的指纹数据库中查找到最小可用指纹ID,向虚拟机发送最小可用指纹ID。

具体地,当指纹模块接收到来自虚拟机的最小可用指纹ID请求后,指纹模块从自身的指纹数据库中查找指纹录入结果标识为第二预设标识的且数值最小的指纹ID,若查找到,则将其作为最小可用指纹向虚拟机发送;若没有查找到,则向虚拟机报错。

步骤119:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤121;否则,执行步骤120;

步骤120:虚拟机初始化与当前钱包应用对应的指纹管理存储区,执行步骤121;

步骤121:虚拟机从与当前钱包应用对应的指纹管理存储区中获取包括指纹ID及与指纹ID对应的指纹录入结果标识的应用指纹列表;

步骤122:虚拟机向当前钱包应用返回应用指纹列表及最小可用指纹ID,返回步骤101。

步骤123:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤125;否则,执行步骤124;

步骤124:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤125:虚拟机将与当前钱包应用对应的指纹管理存储区中的第一个指纹ID作为当前指纹ID;

步骤126:虚拟机判断当前指纹ID是否超过预设限制范围,如果是,则执行步骤131;否则,执行步骤127;

步骤127:虚拟机判断与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则执行步骤128;否则,将与当前钱包应用对应的指纹管理存储区中的当前指纹ID的下一个指纹ID作为当前指纹ID,返回步骤126;

步骤128:虚拟机根据当前指纹ID向指纹模块发送删除请求;接收来自指纹模块的删除结果;

当指纹模块接收到来自虚拟机的删除请求后,指纹模块将指纹数据库中的与当前指纹ID对应的指纹录入结果标识设置为第二预设标识,删除与当前指纹ID对应的各个指纹特征,指纹模块将删除结果设置为删除成功,向虚拟机返回删除结果。若指纹模块接收到来自虚拟机的删除请求后,没有在数据库中查找到与当前指纹ID,则将删除结果设置为删除失败,向虚拟机返回删除结果。

步骤129:虚拟机根据删除结果判断指纹模块是否删除与当前指纹ID对应的指纹特征,如果是,则执行步骤130;否则,向当前钱包应用报错,返回步骤101;

步骤130:虚拟机将与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识设置为第二预设标识,将与当前钱包应用对应的指纹管理存储区中的当前指纹ID的下一个指纹ID作为当前指纹ID,返回步骤126;

步骤131:虚拟机向当前钱包应用返回清空成功信息,返回步骤101;

步骤132:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤134;否则,执行步骤133;

步骤133:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤134:虚拟机判断删除指纹请求中的当前指纹ID是否存储在与当前钱包应用对应的指纹管理存储区中,如果是,则执行步骤135;否则,向当前钱包应用报错,返回步骤101;

步骤135:虚拟机判断与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则执行步骤136;否则,向当前钱包应用报错,返回步骤101;

步骤136:虚拟机根据当前指纹ID向指纹模块发送删除请求;接收来自指纹模块的删除结果;

当指纹模块接收到来自虚拟机的删除请求后,指纹模块将指纹数据库中的与当前指纹ID对应的指纹录入结果标识设置为第二预设标识,删除与当前指纹ID对应的各个指纹特征,指纹模块将删除结果设置为删除成功,向虚拟机返回删除结果;若指纹模块接收到来自虚拟机的删除请求后,没有在数据库中查找到与当前指纹ID,则将删除结果设置为删除失败,向虚拟机返回删除结果。

步骤137:虚拟机根据删除结果判断指纹模块是否删除当前指纹ID对应的指纹特征,如果是,则执行步骤138;否则,向当前钱包应用报错,返回步骤101;

步骤138:虚拟机将与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识设置为第二预设标识;

步骤139:虚拟机向当前钱包应用返回删除成功信息,返回步骤101。

本实施例还提供了一种硬件钱包的持有者身份验证方法,其中,硬件钱包中包括钱包应用、虚拟机和指纹模块,所述方法包括:指纹注册流程、指纹验证流程、指纹列表查询流程、指纹清空流程和指纹删除流程,其中,指纹注册流程,如图4所示,包括:

步骤201:当前钱包应用向虚拟机发送注册指纹请求;

需说明的是,步骤201之前,还包括:虚拟机接收来自上位机的包括激活钱包应用指令和钱包应用的应用标识的激活请求,根据激活钱包应用指令激活与应用标识对应的钱包应用,并将与应用标识对应的钱包应用作为当前钱包应用,保存当前钱包应用的应用标识,等待接收来自当前钱包应用的指纹管理请求。本实施例中,指纹管理请求包括:注册指纹请求、验证指纹请求、查询指纹列表请求、清空指纹列表请求和删除指纹列表请求。

本实施例中,硬件钱包中包括1个或多个钱包应用,应用标识为每个钱包应用的唯一识别标识。例如,硬件钱包中包括3个钱包应用,分别为第一钱包应用、第二钱包应用和第三钱包应用,其中,第一钱包应用的应用标识为应用标识1,第二钱包应用的应用标识为应用标识2,第三钱包应用的应用标识为应用标识3。

步骤202:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤204;否则,执行步骤203;

步骤203:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤204:虚拟机检测与当前钱包应用对应的指纹管理存储区中的与注册指纹请求中的指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则执行步骤209;否则,执行步骤205;

步骤205:虚拟机向指纹模块发送包括指纹ID的第一查找请求;

步骤206:指纹模块根据第一查找请求中的指纹ID,在自身的指纹数据库中查找与指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则将第一查找结果设置为失败,执行步骤207;否则,将第一查找结果设置为成功,执行步骤207;

步骤207:指纹模块向虚拟机发送第一查找结果;

步骤208:虚拟机根据第一查找结果判断指纹模块的指纹数据库中的与指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则向当前钱包应用报错;否则,执行步骤209;

步骤209:虚拟机向指纹模块发送包括指纹ID和注册请求中的录入次数的录入指纹请求;

步骤210:指纹模块提示用户录入指纹,当检测到用户录入指纹后,执行步骤211;当没有检测到用户录入指纹后,将录入结果设置为录入失败,执行步骤213;

步骤211:指纹模块根据用户录入的指纹获取指纹特征,将指纹特征与指纹ID及录入次数建立对应关系;

步骤212:指纹模块判断录入次数是否为预设限制次数,如果是,则将自身的指纹数据库中的与指纹ID对应的指纹录入结果标识设置为第一预设标识,并将与指纹ID和每个录入次数对应的指纹特征保存到指纹数据库中,将录入结果设置为录入成功,执行步骤213;如果否,将录入结果设置为录入成功,执行步骤213;

本实施例中,步骤212还可以具体为:指纹模块将录入结果设置为录入成功,判断录入次数是否为预设限制次数,如果是,则将自身的指纹数据库中的与指纹ID对应的指纹录入结果标识设置为第一预设标识,并将与指纹ID和每个录入次数对应的指纹特征保存到指纹数据库中,执行步骤213;否则,执行步骤213;

步骤213:指纹模块向虚拟机发送录入结果;

步骤214:虚拟机根据录入结果判断指纹模块是否成功获取到指纹特征,如果是,则执行步骤215;否则,则向当前钱包应用报错;

步骤215:虚拟机判断录入次数是否为预设限制次数,如果是,则执行步骤216;否则,执行步骤217;

步骤216:虚拟机将与当前钱包应用对应的指纹管理存储区中的与指纹ID对应的指纹录入结果标识设置为第一预设标识;

步骤217:虚拟机向当前钱包应用返回指纹ID。

指纹验证流程,如图5所示,包括:

步骤301:当前钱包应用向虚拟机发送第一验证指纹请求;

步骤302:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤304;否则,执行步骤303;

步骤303:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤304:虚拟机从与当前钱包应用对应的指纹管理存储区中获取包括指纹ID及与指纹ID对应的指纹录入结果标识的应用指纹列表;

步骤305:虚拟机向指纹模块发送包括应用指纹列表的第二验证指纹请求;

步骤306:指纹模块提示用户录入指纹,当检测到用户录入指纹后,获取与用户录入的指纹对应的指纹特征,在应用指纹列表中查找与指纹特征对应的并且指纹录入结果标识为第一预设标识的指纹ID,若查找到,则将指纹ID作为第二验证结果发送给虚拟机;若没有查找到,则将验证失败作为第二验证结果发送给虚拟机;当没有检测到用户录入指纹后,将验证失败作为第二验证结果发送给虚拟机;

步骤307:虚拟机判断第二验证结果是否为验证失败,如果是,则将验证失败作为第一验证结果发送给当前钱包应用;否则,执行步骤308;

步骤308:虚拟机在与当前钱包应用对应的应用指纹列表中查询与指纹ID对应的指纹录入结果标识是否是第一预设标识,如果是,则将指纹ID作为第一验证结果,执行步骤309;否则,则将验证失败作为第一验证结果,执行步骤309;

步骤309:虚拟机向前钱包应用返回第一验证结果。

需说明的是,步骤301之前还包括:当前钱包应用接收到来自上位机的包括交易数据的交易请求;其中,交易数据包括密钥派生路径;相应地,当当前钱包应用接收到来自虚拟机的第一验证结果后,若第一验证结果为指纹ID,则判断第一验证结果是否为验证成功,则使用与密钥派生路径对应的私钥对交易数据和与密钥派生路径对应的账户地址进行签名生成交易凭据,向上位机返回交易凭据;若第一验证结果为验证失败,则向上位机报错。

指纹列表查询流程,如图6所述,包括:

步骤401:当前钱包应用向虚拟机发送查询指纹列表请求;

步骤402:虚拟机向指纹模块发送获取最小可用指纹ID请求;

步骤403:指纹模块从自身的指纹数据库中查找到最小可用指纹ID;

具体地,指纹模块从自身的指纹数据库中查找指纹录入结果标识为第二预设标识的且数值最小的指纹ID,若查找到,则将其作为最小可用指纹ID;若没有查找到,则向虚拟机报错。

步骤404:指纹模块向虚拟机发送最小可用指纹ID;

步骤405:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤407;否则,执行步骤406;

步骤406:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤407:虚拟机从与当前钱包应用对应的指纹管理存储区中获取包括指纹ID及与指纹ID对应的指纹录入结果标识的应用指纹列表;

步骤408:虚拟机向当前钱包应用返回应用指纹列表及最小可用指纹ID。

指纹清空流程,如图7所示,包括:

步骤501:当前钱包应用向虚拟机发送清空指纹列表请求;

步骤502:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤504;否则,执行步骤503;

步骤503:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤504:虚拟机将与当前钱包应用对应的指纹管理存储区中的第一个指纹ID作为当前指纹ID;

步骤505:虚拟机判断当前指纹ID是否超过预设限制范围,如果是,则执行步骤512;否则,执行步骤506;

步骤506:虚拟机判断与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则执行步骤507;否则,将与当前钱包应用对应的指纹管理存储区中的当前指纹ID的下一个指纹ID作为当前指纹ID,返回步骤505;

步骤507:虚拟机根据当前指纹ID向指纹模块发送删除请求;

步骤508:指纹模块将指纹数据库中的当前指纹ID对应的指纹录入结果标识设置为第二预设标识,删除与当前指纹ID对应的各个指纹特征,将删除结果设置为删除成功;

步骤509:指纹模块向虚拟机返回删除结果;

步骤510:虚拟机根据删除结果判断指纹模块是否删除当前指纹ID对应的指纹特征,如果是,则执行步骤511;否则,向当前钱包应用报错;

步骤511:虚拟机将与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识设置为第二预设标识,将与当前钱包应用对应的指纹管理存储区中的当前指纹ID的下一个指纹ID作为当前指纹ID,返回步骤505;

步骤512:虚拟机向当前钱包应用返回清空成功信息。

指纹删除流程,如图8所示,包括:

步骤601:当前钱包应用向虚拟机发送删除指纹请求;

步骤602:虚拟机获取当前钱包应用的应用标识,根据应用标识检测是否已初始化与当前钱包应用对应的指纹管理存储区,如果是,则执行步骤604;否则,执行步骤603;

步骤603:虚拟机初始化与当前钱包应用对应的指纹管理存储区;

步骤604:虚拟机判断删除指纹请求中的当前指纹ID是否存储在与当前钱包应用对应的指纹管理存储区中,如果是,则执行步骤605;否则,向当前钱包应用报错;

步骤605:虚拟机判断与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识是否为第一预设标识,如果是,则执行步骤606;否则,向当前钱包应用报错;

步骤606:虚拟机根据当前指纹ID向指纹模块发送删除请求;

步骤607:指纹模块将指纹数据库中的当前指纹ID对应的指纹录入结果标识设置为第二预设标识,删除与当前指纹ID对应的各个指纹特征;将删除结果设置为删除成功;

步骤608:指纹模块向虚拟机返回删除结果;

步骤609:虚拟机根据删除结果判断指纹模块是否已删除与当前指纹ID对应的指纹特征,如果是,则执行步骤610;否则,向当前钱包应用报错;

步骤610:虚拟机将与当前钱包应用对应的指纹管理存储区中的与当前指纹ID对应的指纹录入结果标识设置为第二预设标识;

步骤611:虚拟机向当前钱包应用返回删除成功信息。

本实施例提供了的一种硬件钱包的持有者身份验证方法,其中硬件钱包中包括虚拟机、生物特征认证模块和多个钱包应用,每个钱包应用中存储私钥,硬件钱包通过虚拟机和生物特征认证模块为每个钱包应用录入用于验证与每个钱包应用对应的硬件钱包持有者身份的指纹特征,只有当与当前钱包应用对应的硬件钱包持有者身份验证通过后,才能使用当前钱包应用中的私钥对数字货币进行交易,在提高了数字货币的安全防护机制的同时,实现了多钱包应用的指纹身份认证管理。

实施例3

本实施例提供了一种硬件钱包,如图9所示,包括:虚拟机、生物特征认证模块和多个钱包应用;

多个钱包应用中的当前钱包应用包括:第一接收子模块01、第一发送子模块02、第二接收子模块03、第一判断子模块04、第一生成子模块05和第二发送子模块06;

虚拟机中包括:第三接收子模块07、第三发送子模块08、第四接收子模块09、第二判断子模块10、第三判断子模块11和第四发送子模块12;

生物特征认证模块包括:第五接收子模块13、第一提示子模块14、第一检测子模块15、第四判断子模块16和第五发送子模块17;

第一接收子模块01,用于接收来自上位机的包括交易数据的交易请求;交易数据中包括密钥派生路径;

第一发送子模块02,用于向虚拟机发送第一验证请求;

第二接收子模块03,用于接收来自虚拟机的第一验证结果;

第一判断子模块04,用于判断第二接收子模块03接收到的第一验证结果是否为验证成功;

第一生成子模块05,用于当第一判断子模块04判断为是后,使用与第一接收子模块01接收到的密钥派生路径对应的私钥对交易数据和与密钥派生路径对应的账户地址进行签名生成交易凭据;

第二发送子模块06,用于将第一生成子模块05生成的交易凭据返回给上位机;以及当第一判断子模块04判断为否后,向上位机报错;

第三接收子模块07,用于接收来自当前钱包应用的第一验证请求;

第三发送子模块08,用于向生物特征认证模块发送第二验证请求;

第四接收子模块09,用于接收来自生物特征认证模块的第二验证结果;

第二判断子模块10,用于判断第四接收子模块09接收到的第二验证结果是否为验证失败;

第三判断子模块11,用于当第二判断子模块10判断为否时,根据生物特征ID判断当前用户是否与当前钱包应用匹配;

第三判断子模块11,具体用于当第二判断子模块10判断为否时,判断与当前钱包应用对应的生物特征注册结果列表中的与生物特征ID对应的生物特征录入结果标识是否为第一预设标识,如果是,则判断当前用户与当前钱包应用匹配;否则,判断当前用户与当前钱包应用不匹配。

第四发送子模块12,用于当第二判断子模块10判断为是时,将验证失败作为第一验证结果发送给当前钱包应用;当第三判断子模块11判断为否时,将验证失败作为第一验证结果发送给当前钱包应用;当第三判断子模块11判断为是时,将验证成功作为第一验证结果发送给当前钱包应用;

第五接收子模块13,用于接收来自虚拟机的第二验证请求;

第一提示子模块14,用于当第五接收子模块13接收到来自虚拟机的第二验证请求后,提示当前用户录入生物特征;

第一检测子模块15,用于检测用户是否录入生物特征;

第四判断子模块16,用于根据第一检测子模块15检测到的生物特征判断当前用户是否已注册;

第四判断子模块16,具体用于在生物特征认证模块的生物特征数据库中查找第一检测子模块15检测到的生物特征,如果查找到,则判断当前用户已注册;否则,判断当前用户未注册。

第五发送子模块17,用于当第四判断子模块16判断为是时,将与生物特征对应的生物特征ID作为第二验证结果发送给虚拟机;当第四判断子模块16判断为否时,将验证失败作为第二验证结果发送给虚拟机。

本实施例中,优选地,第一预设标识为1,第二预设标识为0。

本实施例中,虚拟机还可以包括:第六接收子模块、激活子模块和第六发送子模块;

第六接收子模块,用于接收来自上位机的包括激活钱包应用指令和应用标识的激活请求;

激活子模块,用于激活第六接收子模块接收到的应用标识对应的钱包应用,并将与应用标识对应的钱包应用作为当前钱包应用;

第六发送子模块,用于向上位机返回激活成功应答。

本实施例中,第二验证请求中还可以包括:与当前钱包应用对应的生物特征注册结果列表;相应地,第四判断子模块16,还可以具体用于根据第一检测子模块15检测到的生物特征、生物特征认证模块的生物特征数据库和生物特征注册结果列表判断当前用户是否已注册且当前用户是否与当前钱包应用匹配。

进一步地,虚拟机还可以包括:第一获取子模块;

第一获取子模块,用于当第三接收子模块07接收到来自当前钱包应用的第一验证请求后,第三发送子模块08向生物特征认证模块发送第二验证请求之前,获取与当前钱包应用对应的生物特征注册结果列表。

进一步地,第一验证请求中还可以包括:与当前钱包应用对应的生物特征注册结果列表;相应地:

虚拟机还包括:第七接收子模块和第七发送子模块;

第七接收子模块,用于接收来自当前钱包应用的查询生物特征注册结果列表请求;

第七发送子模块,用于向当前钱包应用返回与当前钱包应用对应的生物特征注册结果列表。

本实施例中,当第四判断子模块16具体用于根据第一检测子模块15检测到的生物特征、自身的生物特征数据库和生物特征注册结果列表判断当前用户是否已注册且当前用户是否与当前钱包应用匹配时,第四判断子模块16具体包括:第一查找单元和第一判断单元;

第一查找单元,用于根据第一检测子模块15检测到的生物特征、生物特征认证模块的生物特征数据库和生物特征注册结果列表查找与生物特征对应的并且生物特征注册结果列表中的生物特征录入结果标识为第一预设标识的生物特征ID;

第一判断单元,用于当第一查找单元查找到与生物特征对应的并且生物特征录入结果标识为第一预设标识的生物特征ID后,判断当前用户已注册且当前用户与当前钱包应用匹配;当第一查找单元没有查找到与生物特征对应的并且生物特征录入结果标识为第一预设标识的生物特征ID后,判断当前用户未注册和/或当前用户与当前钱包应用不匹配。

本实施例中提供的硬件钱包中,虚拟机还可以包括:第八接收子模块、第八发送子模块、第九接收子模块、第五判断子模块、第一设置子模块和第九发送子模块;生物认证特征子模块还包括:第十接收子模块、第一对应子模块、第一保存子模块、第二设置子模块和第十发送子模块;

第八接收子模块,用于接收来自当前钱包应用的注册请求;

第八发送子模块,用于向生物特征认证模块发送录入请求;

第九接收子模块,用于接收来自生物特征认证模块的录入结果;

第五判断子模块,用于根据第九接收子模块接收到的录入结果判断生物特征认证模块是否成功获取到与当前生物特征ID对应的生物特征;

第一设置子模块,用于当第五判断子模块判断为是时,将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识;

第九发送子模块,用于当第五判断子模块判断为否时,向当前钱包应用报错;以及当第一设置子模块将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识后,向当前钱包应用返回注册成功;

第十接收子模块,用于接收来自虚拟机的录入请求;

第一提示子模块14,还用于当第十接收子模块接收到来自虚拟机的录入请求后,提示当前用户录入生物特征;

第一对应子模块,用于将第一检测子模块15检测到的生物特征与当前生物特征ID建立对应关系;

第一保存子模块,用于将生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识,将当前生物特征ID及与其对应的生物特征保存到生物特征数据库中;

第二设置子模块,用于当第一对应子模块将当前生物特征ID及与其对应的生物特征保存到生物特征数据库中后,将录入结果设置为录入成功;当第一检测子模块15没有检测到用户录入生物特征后,将录入结果设置为录入失败;

第十发送子模块,用于向虚拟机发送录入结果。

进一步地,注册请求中还可以包括当前生物特征ID;录入请求中包括当前生物特征ID。

更进一步地,虚拟机还可以包括:第十一接收子模块、第十一发送子模块、第十二接收子模块和第十二发送子模块;

第十一接收子模块,用于当八接收子模块接收到来自当前钱包应用的注册请求之前,接收来自当前钱包应用的获取当前生物特征ID请求;

第十一发送子模块,用于向生物特征认证模块发送获取当前生物特征ID请求;

第十二接收子模块,用于接收来自生物特征认证模块的当前生物特征ID;

第十二接收子模块,用于向当前钱包应用返回当前生物特征ID;

生物认证特征子模块,还包括:第十三接收子模块、第二获取子模块和第十三发送子模块;

第十三接收子模块,用于接收来自虚拟机的获取当前生物特征ID请求;

第二获取子模块,用于从生物特征数据库中获取当前生物特征ID;

第二获取子模块,具体用于从生物特征数据库中的获取注册结果标识为第二预设标识的最小生物特征ID,并将其作为当前生物特征ID。

第十三接收子模块,用于向虚拟机返回第二获取子模块获取到的当前生物特征ID。

本实施中,录入请求中包括当前生物特征ID;相应地,虚拟机还可以包括:第三获取子模块;

第三获取子模块,用于当第八接收子模块接收到来自当前钱包应用的注册请求后,从与当前钱包应用对应的生物特征注册结果列表中获取当前生物特征ID。

进一步地,第三获取子模块,具体用于当第八接收子模块接收到来自当前钱包应用的注册请求后,从当前钱包应用对应的生物特征注册结果列表中获取注册结果标识为第二预设标识的最小生物特征ID,并将其作为当前生物特征ID。

本实施例中,若第二设置子模块将录入结果设置为录入成功,录入结果中还包括:当前生物特征ID;相应地,第一对应子模块,具体用于将第一检测子模块检测到的生物特征与生物特征数据库中的当前生物特征ID建立对应关系。

进一步地,生物认证特征子模块,还可以包括:第四获取子模块;

第四获取子模块,用于当第一对应子模块将生物特征与当前生物特征ID建立对应关系之前,从自身的生物特征数据库中的获取注册结果标识为第二预设标识的最小生物特征ID,并将其作为当前生物特征ID。

本实施例中,当注册请求中包括当前生物特征ID;录入请求中包括当前生物特征ID,虚拟机还可以包括:第二检测子模块、第十四发送子模块、第十四接收子模块和第六判断子模块;生物特征认证模块,还可以包括:第十五接收子模块、第七判断子模块、第三设置子模块和第十五发送子模块;

第二检测子模块,用于当第八接收子模块接收来自当前钱包应用的注册请求之后,第八发送子模块向生物特征认证模块发送录入请求之前,检测与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识;

第十四发送子模块,用于当第二检测子模块检测为否后,向生物特征认证模块发送包括生物特征ID的第一查找请求;

第十四接收子模块,用于接收来自生物特征认证模块的第一查找结果;

第六判断子模块,用于根据第十四接收子模块接收到的第一查找结果判断生物特征认证模块的生物特征数据库中与当前生物特征ID对应的生物特征录入结果是否为第一预设标识;

第八发送子模块,具体用于当第二检测子模块检测为是后,向生物特征认证模块发送录入请求;当第六判断子模块为否后,向生物特征认证模块发送录入请求;

第九发送子模块,还用于当第六判断子模块判断为是后,向当前钱包应用报错;

第十五接收子模块,用于接收来自虚拟机的第一查找请求;

第七判断子模块,用于当第十五接收子模块接收到来自虚拟机的第一查找请求后,判断生物特征数据库中与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识;

第三设置子模块,用于当第七判断子模块判断为是后,将第一查找结果设置为失败;当第七判断子模块判断为否后,将第一查找结果设置为成功;

第十五发送子模块,用于将第一设置子模块设置的第一查找结果发送给虚拟机。

本实施例中,注册请求中还可以包括录入次数;录入请求中还可以包括录入次数;相应地:虚拟机还可以包括:第八判断子模块;生物认证特征子模块,还可以包括:第九判断子模块;

第八判断子模块,用于当第五判断子模块判断为是后,第一设置子模块将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识之前,判断录入次数是否为预设限制次数;

第一设置子模块,具体用于当第八判断子模块判断为是后,将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识;

第九发送子模块,还用于当第八判断子模块判断为否后,向当前钱包应用返回注册成功;

第九判断子模块,用于当第一对应子模块将第一检测子模块15检测到的生物特征与当前生物特征ID建立对应关系后,判断录入次数是否为预设限制次数;

第一保存子模块,具体用于当第九判断子模块判断为是后,将生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第一预设标识,将当前生物特征ID及与其对应的生物特征保存到生物特征数据库中;

第二设置子模块,还用于当第九判断子模块判断为否后,将录入结果设置为录入成功。

本实施例中提供的硬件钱包中,其虚拟机还可以包括:第十六接收子模块、第五获取子模块、第十判断子模块、第十六发送子模块、第十一判断子模块、第十七发送子模块、第十七接收子模块、第十二判断子模块和第四设置子模块;生物特征认证模块,还可以包括:第十八接收子模块、第一查找子模块、第五设置子模块、第一删除子模块和第十八发送子模块;

第十六接收子模块,用于接收来自当前钱包应用的清空请求;

第五获取子模块,用于当第十六接收子模块接收到来自当前钱包应用的清空请求后,将生物特征注册结果列表中的第一个生物特征ID作为当前生物特征ID;当第十一判断子模块判断为否后,将与当前钱包应用对应的生物特征注册结果列表中的当前生物特征ID的下个生物特征ID作为当前生物特征ID;以及当第四设置子模块将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识后,将与当前钱包应用对应的生物特征注册结果列表中的当前生物特征ID的下个生物特征ID作为当前生物特征ID;

第十判断子模块,用于判断第五获取子模块获取到的当前生物特征ID是否超过预设限制范围;

第十六发送子模块,用于当第十判断子模块判断为是后,向当前钱包应用返回清空成功信息;当第十二判断子模块判断为否后,向当前钱包应用报错;

第十一判断子模块,用于当第十判断子模块判断为否后,判断与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识;

第十七发送子模块,用于当第十一判断子模块判断为是后,向生物特征认证模块发送包括当前生物特征ID的删除请求;

第十七接收子模块,用于接收来自生物特征认证模块的删除结果;

第十二判断子模块,用于根据第十七接收子模块接收到的删除结果判断生物特征认证模块是否已删除与当前生物特征ID对应的生物特征;

第四设置子模块,用于当第十二判断子模块判断为是后,将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识;

第十八接收子模块,用于接收来自虚拟机的包括当前生物特征ID的删除请求;

第一查找子模块,用于在生物特征数据库中查找第十八接收子模块接收到的当前生物特征ID;

第五设置子模块,用于当第一查找子模块在生物特征数据库中查找到第十八发送子模块接收到的当前生物特征ID后,将生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识;当第一删除子模块删除与当前生物特征ID对应的生物特征后,将删除结果设置为删除成功;当第一查找子模块在生物特征数据库中没有查找到第十八发送子模块接收到的当前生物特征ID后,则将删除结果设置为删除失败;

第一删除子模块,用于当第一查找子模块在生物特征数据中查找到第十八发送子模块接收到的当前生物特征ID后,删除与当前生物特征ID对应的生物特征;

第十八发送子模块,用于向虚拟机返回第五设置子模块设置的删除结果。

本实施例中提供的硬件钱包中,其虚拟机还可以包括:第十九接收子模块、第十三判断子模块、第十九发送子模块、第二十发送子模块、第二十接收子模块、第十四判断子模块和第六设置子模块;生物特征认证模块,还可以包括:第十八接收子模块、第一查找子模块、第五设置子模块、第一删除子模块和第十八发送子模块;

第十九接收子模块,用于接收来自当前钱包应用的包括当前生物特征ID的删除请求;

第十三判断子模块,用于判断与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识;

第十九发送子模块,当第十三判断子模块判断为否后,向当前钱包应用报错;当第六设置子模块将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识后,向当前钱包应用返回删除成功信息;当第十四判断子模块判断为否后,向当前钱包应用报错;

第二十发送子模块,用于当第十三判断子模块判断为是后,向生物特征认证模块发送包括当前生物特征ID的删除请求;

第二十接收子模块,用于接收来自生物特征认证模块的删除结果;

第十四判断子模块,用于根据第二十接收子模块接收到的删除结果判断生物特征认证模块是否已删除与当前生物特征ID对应的生物特征;

第六设置子模块,用于当第十四判断子模块判断为是后,将与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识;

第十八接收子模块,用于接收来自虚拟机的包括当前生物特征ID的删除请求;

第一查找子模块,用于在生物特征数据库中查找第十八接收子模块接收到的当前生物特征ID;

第五设置子模块,用于当第一查找子模块在生物特征数据库中查找到第十八发送子模块接收到的当前生物特征ID后,将生物特征数据库中的与当前生物特征ID对应的生物特征录入结果标识设置为第二预设标识;当第一删除子模块删除与当前生物特征ID对应的生物特征后,将删除结果设置为删除成功;当第一查找子模块在生物特征数据库中没有查找到第十八发送子模块接收到的当前生物特征ID后,则将删除结果设置为删除失败;

第一删除子模块,用于当第一查找子模块在生物特征数据库中查找到第十八发送子模块接收到的当前生物特征ID后,删除与当前生物特征ID对应的生物特征;

第十八发送子模块,用于向虚拟机返回第五设置子模块设置的删除结果。

进一步地,虚拟机还包括:第二查找子模块;

第二查找子模块,用于当第十九接收子模块接收来自当前钱包应用的包括当前生物特征ID的删除请求后,第十三判断子模块判断与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识之前,在与当前钱包应用对应的生物特征注册结果列表中查找当前生物特征ID;

第十三判断子模块,具体用于当第二查找子模块在与当前钱包应用对应的生物特征注册结果列表中查找到当前生物特征ID后,判断与当前钱包应用对应的生物特征注册结果列表中的与当前生物特征ID对应的生物特征录入结果标识是否为第一预设标识;

第十九发送子模块,还用于第二查找子模块在与当前钱包应用对应的生物特征注册结果列表中没有查找到当前生物特征ID后,向当前钱包应用报错。

本实施例提供的硬件钱包中,其当前钱包应用还可以包括:第二生成子模块;

第二生成子模块,用于当第一生成子模块05生成交易凭据之前,根据自身的主密钥通过密钥派生算法生成与密钥派生路径对应的公钥和私钥,并根据公钥生成账户地址。

本实施例提供了的一种硬件钱包,其中硬件钱包中包括虚拟机、生物特征认证模块和多个钱包应用,,每个钱包应用中存储私钥,硬件钱包通过虚拟机和生物特征认证模块为每个钱包应用录入用于验证与每个钱包应用对应的硬件钱包持有者身份的生物特征,只有当与当前钱包应用对应的硬件钱包持有者身份验证通过后,才能使用当前钱包应用中的私钥对数字货币进行交易,在提高了数字货币的安全防护机制的同时,实现了多钱包应用的身份认证管理。

以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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