一种防止硬件钱包被恶意配对的方法转让专利

申请号 : CN201910849427.1

文献号 : CN110602676B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆舟于华章

申请人 : 飞天诚信科技股份有限公司

摘要 :

本发明提供了一种防止硬件钱包被恶意配对的方法,包括:硬件钱包等待接收连接请求,当接收到连接请求时,判断发送连接请求的第一终端是否已经配对并连接,如果是,等待接收第一终端的指令,当接收到第一终端发送的转移配对指令时,清空硬件钱包白名单中保存的终端的信息。通过本技术方案,硬件钱包必须通过之前配对的终端授权才能转移配对,增加了硬件钱包的安全性。

权利要求 :

1.一种防止硬件钱包被恶意配对的方法,其特征在于,包括:步骤s1:硬件钱包等待接收连接请求,当接收到所述连接请求时,执行步骤s2;

步骤s2:所述硬件钱包解析所述连接请求获取第一终端的终端信息,所述硬件钱包检查自身保存的白名单,判断所述白名单中是否为空,如果是,允许第一终端连接,将所述第一终端的终端信息加入所述白名单,执行步骤s4;否则,执行步骤s3;

步骤s3:所述硬件钱包判断所述白名单中保存的终端信息是否与所述第一终端的终端信息相同,如果是,允许所述第一终端连接,执行步骤s4;否则,拒绝所述第一终端连接,返回步骤s1;

步骤s4:所述硬件钱包判断是否已与所述第一终端完成配对,如果是,执行步骤s5;否则,所述硬件钱包与所述第一终端进行配对,执行步骤s5;

步骤s5:所述硬件钱包等待接收所述第一终端发送的指令,当接收到所述指令,判断所述指令的类型,如果是转移配对指令,执行步骤s6;如果是其他指令,根据所述指令执行相应操作,结束;

步骤s6:所述硬件钱包删除所述白名单中保存的所述第一终端的终端信息,返回步骤s1;

所述方法还包括:所述第一终端用共享密钥加密第二终端的终端信息得到的第二终端的加密终端信息,使用第一长密钥加密第二终端的加密终端信息得到所述转移配对指令,向所述硬件钱包发送所述转移配对指令;

所述硬件钱包接收到所述配对指令后,还包括:所述硬件钱包用所述第一长密钥和所述共享密钥解密所述转移配对指令得到所述第二终端的终端信息;

所述硬件钱包判断所述第二终端的终端信息是否合法,如果是,将所述第二终端的终端信息保存在所述硬件钱包中;否则,向第二终端返回拒绝连接响应,结束;

所述硬件钱包判断所述第二终端的终端信息是否合法具体为:步骤s01:所述硬件钱包接收第二终端发送的第二连接请求,解析所述第二连接请求获取所述第二终端的终端信息;

步骤s02:所述硬件钱包判断所述解析第二连接请求获取到的第二终端的终端信息是否与解析所述转移配对指令获取到的第二终端的终端信息相同,如果是,所述第二终端的终端信息合法;否则,所述第二终端的终端信息不合法。

2.如权利要求1所述的方法,其特征在于,步骤s1之前还包括:所述硬件钱包开机。

3.如权利要求1所述的方法,其特征在于,步骤s2中所述第一终端的终端信息包括:所述第一终端的名称以及所述第一终端的MAC地址。

4.如权利要求1所述的方法,其特征在于,步骤s4具体包括:步骤s4‑1:所述硬件钱包判断自身保存的配对列表中是否存在所述第一终端的终端信息,如果是,所述硬件钱包已与所述第一终端配对完成,执行步骤s5;否则,执行步骤s4‑2;

步骤s4‑2:所述硬件钱包等待接收所述第一终端发送的第一配对请求,当接收到所述第一配对请求时,与所述第一终端进行配对,执行步骤s5。

5.如权利要求1所述的方法,其特征在于,所述步骤s6中删除所述白名单中保存的第一终端的终端信息之前还包括:

所述硬件钱包解析转移配对指令,获取第二终端的终端信息;

所述删除所述硬件钱包中保存的第一终端的终端信息之后还包括:将所述第二终端的终端信息保存在所述白名单中。

6.如权利要求1所述的方法,其特征在于,所述硬件钱包与所述第二终端进行连接配对之后还包括:

所述硬件钱包将所述第二终端的终端信息保存在所述硬件钱包的配对列表中。

7.一种防止被恶意配对的硬件钱包,其特征在于,包括:第一接收模块,用于等待接收连接请求,当接收到所述连接请求时,触发解析模块;

所述解析模块,用于当所述第一接收模块接收到所述连接请求时,解析所述连接请求获取第一终端的终端信息;

第一判断模块,用于检查自身保存的白名单,判断所述白名单中是否为空;

连接模块,用于当所述第一判断模块判断出所述白名单中为空时,允许所述第一终端连接,并将所述第一终端的终端信息加入所述白名单中;

第二判断模块,用于当所述第一判断模块判断出所述白名单中不为空时,判断所述白名单中保存的终端信息是否与所述第一终端的终端信息相同;

所述连接模块还用于当所述第二判断模块判断出所述白名单中保存的终端信息与所述第一终端的终端信息相同时,允许所述第一终端连接,触发第三判断模块;

拒绝模块,用于当所述第二判断模块判断出所述白名单中保存的终端信息与所述第一终端的终端信息不同时,拒绝所述第一终端连接,触发所述第一接收模块;

所述第三判断模块,用于判断是否已与所述第一终端完成配对;

配对模块,用于当所述第三判断模块判断出未与所述第一终端完成配对时,与所述第一终端进行配对,触发第二接收模块;

所述第二接收模块,用于当所述第三判断模块判断出已与所述第一终端完成配对时,接收所述第一终端发送的指令;

所述第二接收模块还用于当所述配对模块与所述第一终端进行配对之后,接收所述第一终端发送的指令;

第四判断模块,用于当所述第二接收模块接收到所述第一终端发送的指令时,判断所述指令类型,如果是配对转移指令,触发删除模块;如果是其他指令,触发执行模块;

所述删除模块,用于当所述第四判断模块判断出所述指令为配对转移指令时,删除所述白名单中保存的所述第一终端的终端信息,触发第一接收模块;

所述执行模块,用于当所述第四判断模块判断出所述指令为其他指令时,根据所述指令执行相应操作;

所述第一终端包括:

加密模块,用于用共享密钥加密第二终端的终端信息得到第二终端的加密终端信息;

还用于使用第一长密钥加密第二终端的加密终端信息得到所属转移配对指令;

发送模块,用于向所述硬件钱包发送所述转移配对指令;

所述硬件钱包还包括:解密模块,用于当所述第二接收指令接收到所述配对指令后,用所述第一长密钥和所述共享密钥解密所述转移配对指令得到所述第二终端的终端信息;

第五判断模块,用于所述保存模块将所述第二终端的终端信息保存在所述白名单中之前,判断所述第二终端的终端信息是否合法;

所述保存模块具体用于当所述第五判断模块判断出所述第二终端的终端信息合法时,将所述第二终端的终端信息保存在所述白名单中;

返回模块用于,当所述第五判断模块判断出所述第二终端的终端信息不合法时,向所述第二终端返回拒绝连接响应;

所述第五判断模块包括:

接收子模块,用于接收第二终端发送的第二连接请求;

解析子模块,用于解析所述接收子模块接收到的第二终端发送的第二连接请求获取所述第二终端的终端信息;

第二判断子模块,用于判断所述解析连接请求获取到的第二终端的终端信息是否与解析所述转移配对指令获取到的第二终端的终端信息相同。

8.如权利要求7所述的硬件钱包,其特征在于,还包括:开机模块,用于硬件钱包开机。

9.如权利要求7所述的硬件钱包,其特征在于,所述第一终端的终端信息包括:所述第一终端的名称以及所述第一终端的MAC地址。

10.如权利要求7所述的硬件钱包,其特征在于,所述第三判断模块包括:判断子模块,用于判断自身保存的配对列表中是否存在所述第一终端的终端信息;

接收子模块,用于当所述判断子模块判断出所述配对列表中不存在所述第一终端的终端信息接收所述第一终端发送的第一配对请求;

配对子模块,用于当所述接收子模块接收到所述第一终端发送的所述第一配对请求时,与所述第一终端进行配对,触发所述第二接收模块。

11.如权利要求7所述的硬件钱包,其特征在于,还包括:第二解析模块,用于所述删除模块删除所述白名单中保存的所述第一终端的终端信息之前,解析所述转移配对指令,获取第二终端的终端信息;

保存模块,用于所述删除模块删除所述白名单中保存的所述第一终端的终端信息之后,将所述第二终端的终端信息保存在所述白名单中。

12.如权利要求7所述的硬件钱包,其特征在于,所述保存模块还用于,当与所述第二终端连接配对之后,将所述第二终端的终端信息保存在所述硬件钱包的配对列表中。

说明书 :

一种防止硬件钱包被恶意配对的方法

技术领域

[0001] 本发明涉及信息安全领域,尤其涉及一种防止硬件钱包被恶意配对的方法。

背景技术

[0002] 随着互联网行业的快速发展,数字货币在生活中得到越来越广泛的应用,保护数字货币的安全也成了一个亟待解决的问题;硬件钱包将数字资产私钥单独储存在一个芯片
中,与互联网隔离,即连即用,很大程度上保证了货币资产的安全;
[0003] 但是,目前使用蓝牙通讯的硬件钱包可以随意与多个移动终端进行配对,因此硬件钱包如果被窃取,就能够与他人的移动终端连接,一旦连接成功,对方可以随意查看该硬
件钱包中储存的资产数额和交易记录,也有可能破解硬件钱包设备的PIN码,窃取其中的数
字资产,存在安全隐患。

发明内容

[0004] 根据本发明,提供一种防止硬件钱包被恶意配对的方法,包括:
[0005] 步骤s1:硬件钱包等待接收连接请求,当接收到连接请求时,执行步骤s2;
[0006] 步骤s2:硬件钱包解析连接请求获取第一终端的终端信息,硬件钱包检查自身保存的白名单,判断白名单是否为空,如果是,允许第一终端连接,将第一终端的终端信息加
入白名单,执行步骤s4;否则,执行步骤s3;
[0007] 步骤s3:硬件钱包判断白名单中保存的终端信息是否与第一终端的终端信息相同,如果是,允许第一终端连接,执行步骤s4;否则,拒绝第一终端连接,返回步骤s1;
[0008] 步骤s4:硬件钱包判断是否已与第一终端完成配对,如果是,执行步骤s5;否则,硬件钱包与第一终端进行配对,执行步骤s5;
[0009] 步骤s5:硬件钱包等待接收第一终端发送的指令,当接收到指令,判断指令的类型,如果是转移配对指令,执行步骤s6;如果是其他指令,根据指令执行相应操作,结束;
[0010] 步骤s6:硬件钱包删除白名单中保存的第一终端的终端信息,返回步骤s1。
[0011] 可选地,步骤s1之前还包括:硬件钱包开机。
[0012] 可选地,步骤s2中第一终端的终端信息包括:第一终端的名称以及第一终端的MAC地址。
[0013] 可选地,步骤s4具体包括:
[0014] 步骤s4‑1:硬件钱包判断自身保存的配对列表中是否存在第一终端的终端信息,如果是,硬件钱包已与第一终端配对完成,执行步骤s5;否则,执行步骤s4‑2;
[0015] 步骤s4‑2:硬件钱包等待接收第一终端发送的第一配对请求,当接收到第一配对请求时,与第一终端进行配对,执行步骤s5。
[0016] 可选地,步骤s6中删除白名单中保存的第一终端的终端信息之前还包括:
[0017] 硬件钱包解析转移配对指令,获取第二终端的终端信息;
[0018] 删除硬件钱包中保存的第一终端的终端信息之后还包括:将第二终端的终端信息保存在白名单中。
[0019] 可选地,将第二终端的终端信息保存在白名单中之前,还包括:
[0020] 硬件钱包判断第二终端的终端信息是否合法,如果是,将第二终端的终端信息保存在硬件钱包中;否则,向第二终端返回拒绝连接响应,结束。
[0021] 可选地,上述硬件钱包判断第二终端的终端信息是否合法具体为:
[0022] 步骤s01:硬件钱包接收第二终端发送的第二连接请求,解析第二连接请求获取第二终端的终端信息;
[0023] 步骤s02:硬件钱包判断解析第二连接请求获取到的第二终端的终端信息是否与解析转移配对指令获取到的第二终端的终端信息相同,如果是,第二终端的终端信息合法;
否则,第二终端的终端信息不合法。
[0024] 可选地,硬件钱包与第二终端进行连接配对之后还包括:
[0025] 硬件钱包将第二终端的终端信息保存在硬件钱包的配对列表中。
[0026] 根据本发明的另一方面,提供一种防止被恶意配对的硬件钱包,包括:
[0027] 第一接收模块,用于等待接收连接请求,当接收到连接请求时,触发解析模块;
[0028] 解析模块,用于当第一接收模块接收到连接请求时,解析所述连接请求获取第一终端的终端信息;
[0029] 第一判断模块,用于检查自身保存的白名单,判断白名单是否为空;
[0030] 连接模块,用于当第一判断模块判断出白名单为空时,允许第一终端连接,并将第一终端的终端信息加入白名单中;
[0031] 第二判断模块,用于当第一判断模块判断出白名单不为空时,判断白名单中保存的终端信息是否与第一终端的终端信息相同;
[0032] 连接模块还用于当第二判断模块判断出白名单中保存的终端信息与第一终端的终端信息相同时,允许第一终端连接,触发第三判断模块;
[0033] 拒绝模块,用于当第二判断模块判断出白名单中保存的终端信息与第一终端的终端信息不同时,拒绝第一终端连接,触发第一接收模块;
[0034] 第三判断模块,用于判断是否已与第一终端完成配对;
[0035] 配对模块,用于当第三判断模块判断出未与第一终端完成配对时,与第一终端进行配对,触发第二接收模块;
[0036] 第二接收模块,用于当第三判断模块判断出已与第一终端完成配对时,接收第一终端发送的指令;
[0037] 第二接收模块还用于当配对模块与第一终端进行配对之后,接收第一终端发送的指令;
[0038] 第四判断模块,用于当第二接收模块接收到第一终端发送的指令时,判断指令类型,如果是配对转移指令,触发删除模块;如果是其他指令,触发执行模块;
[0039] 删除模块,用于当第四判断模块判断出上述指令为配对转移指令时,删除白名单中保存的第一终端的终端信息,触发第一接收模块;
[0040] 执行模块,用于当第四判断模块判断出上述指令为其他指令时,根据指令执行相应操作。
[0041] 可选地,上述硬件钱包还包括:
[0042] 开机模块,用于硬件钱包开机。
[0043] 可选地,第一终端的终端信息包括:第一终端的名称以及第一终端的MAC地址。
[0044] 可选地,第三判断模块包括:
[0045] 判断子模块,用于判断自身保存的配对列表中是否存在第一终端的终端信息;
[0046] 接收子模块,用于当判断子模块判断出配对列表中不存在第一终端的终端信息接收第一终端发送的第一配对请求;
[0047] 配对子模块,用于当接收子模块接收到第一终端发送的第一配对请求时,与第一终端进行配对,触发第二接收模块。
[0048] 可选地,上述硬件钱包还包括:
[0049] 第二解析模块,用于删除模块删除白名单中保存的第一终端的终端信息之前,解析转移配对指令,获取第二终端的终端信息;
[0050] 保存模块,用于删除模块删除白名单中保存的第一终端的终端信息之后,将第二终端的终端信息保存在白名单中。
[0051] 可选地,上述硬件钱包还包括:
[0052] 第五判断模块,用于保存模块将第二终端的终端信息保存在白名单中之前,判断第二终端的终端信息是否合法;
[0053] 保存模块,具体用于当第五判断模块判断出第二终端的终端信息合法时,将第二终端的终端信息保存在白名单中;
[0054] 返回模块,用于当第五判断模块判断出第二终端的终端信息不合法时,向第二终端返回拒绝连接响应。
[0055] 可选地,第五判断模块包括:
[0056] 接收子模块,用于接收第二终端发送的第二连接请求;
[0057] 解析子模块,用于解析接收子模块接收到的第二终端发送的第二连接请求获取第二终端的终端信息;
[0058] 第二判断子模块,用于判断解析连接请求获取到的第二终端的终端信息与解析转移配对指令获取到的第二终端的终端信息是否相同。
[0059] 可选地,保存模块,还用于当与第二终端连接配对之后,将第二终端的终端信息保存在所述硬件钱包的配对列表中。
[0060] 通过本发明,硬件钱包与用户的一台移动终端进行蓝牙配对之后,如果需要与其他移动终端进行配对,需要之前绑定的移动终端进行授权,因此使得硬件设备的使用更加
安全。

附图说明

[0061] 图1为根据本发明实施例一提供的一种防止硬件钱包被恶意配对的方法流程图;
[0062] 图2为根据本发明实施例二提供的一种防止硬件钱包被恶意配对的方法流程图;
[0063] 图3为根据本发明实施例三提供的一种防止硬件钱包被恶意配对的方法线程图;
[0064] 图4为根据本发明实施例四提供的一种硬件钱包的结构方框图。

具体实施方式

[0065] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
[0066] 实施例一
[0067] 根据本发明实施例一,提供一种防止硬件钱包被恶意配对的方法,如图1所示,包括:
[0068] 步骤s1:硬件钱包等待接收连接请求,当接收到连接请求时,执行步骤s2;
[0069] 步骤s2:硬件钱包解析连接请求,获取第一终端的终端信息,检查自身保存的白名单,判断白名单中是否为空,如果是,允许第一终端连接,将第一终端的终端信息加入白名
单,执行步骤s4;否则,执行步骤s3;
[0070] 步骤s3:硬件钱包判断白名单中保存的终端信息是否与第一终端的终端信息相同,如果是,允许第一终端连接,执行步骤s4;否则,拒绝第一终端连接,返回步骤s1;
[0071] 步骤s4:硬件钱包判断是否已与第一终端完成配对,如果是,执行步骤s5;否则,硬件钱包与第一终端进行配对,执行步骤s5;
[0072] 步骤s5:硬件钱包等待接收第一终端发送的指令,当接收到指令,判断指令的类型,如果是转移配对指令,执行步骤s6;如果是其他指令,根据指令执行相应操作,结束;
[0073] 步骤s6:硬件钱包删除白名单中保存的第一终端的终端信息,返回步骤s1。
[0074] 可选地,步骤s1之前还包括:硬件钱包开机。
[0075] 可选地,步骤s2中第一终端的终端信息包括:第一终端的名称以及第一终端的MAC地址。
[0076] 可选地,步骤s4具体包括:
[0077] 步骤s4‑1:硬件钱包判断自身保存的配对列表中是否存在第一终端的终端信息,如果是,硬件钱包已与第一终端配对完成,执行步骤s5;否则,执行步骤s4‑2;
[0078] 步骤s4‑2:硬件钱包等待接收第一终端发送的第一配对请求,当接收到第一配对请求时,与第一终端进行配对,执行步骤s5。
[0079] 可选地,步骤s6中删除白名单中保存的第一终端的终端信息之前还包括:
[0080] 硬件钱包解析转移配对指令,获取第二终端的终端信息;
[0081] 删除硬件钱包中保存的第一终端的终端信息之后还包括:将第二终端的终端信息保存在白名单中。
[0082] 可选地,将第二终端的终端信息保存在白名单中之前,还包括:
[0083] 硬件钱包判断第二终端的终端信息是否合法,如果是,将第二终端的终端信息保存在硬件钱包中;否则,向第二终端返回拒绝连接响应,结束。
[0084] 可选地,上述硬件钱包判断第二终端的终端信息是否合法具体为:
[0085] 步骤s01:硬件钱包接收第二终端发送的第二连接请求,解析第二连接请求获取第二终端的终端信息;
[0086] 步骤s02:硬件钱包判断解析第二连接请求获取到的第二终端的终端信息是否与解析转移配对指令获取到的第二终端的终端信息相同,如果是,第二终端的终端信息合法;
否则,第二终端的终端信息不合法。
[0087] 可选地,硬件钱包与第二终端进行连接配对之后还包括:
[0088] 硬件钱包将第二终端的终端信息保存在硬件钱包的配对列表中。
[0089] 实施例二
[0090] 根据本发明实施例二提供了一种防止硬件钱包被恶意配对的方法,如图2所示,包括:
[0091] 步骤s201:硬件钱包开机,等待接收指令;
[0092] 步骤s202:当硬件钱包接收到指令时,判断指令类型,当指令为第一连接指令时,执行步骤s203;当指令为其他指令时,执行相应操作;
[0093] 步骤s203:硬件钱包解析第一连接指令获取发送第一连接指令的第一终端的终端信息,判断硬件钱包的白名单中是否存在第一终端的终端信息,如果是,执行步骤s206;否
则,执行步骤s204;
[0094] 步骤s204:硬件钱包判断白名单中保存的终端信息的数量是否达到阈值,如果是,拒绝连接,向第一终端返回连接失败响应,结束;否则,执行步骤s205;
[0095] 可选地,本实施例中,白名单中保存的终端信息的数量阈值为1。
[0096] 步骤s205:硬件钱包将第一终端的终端信息保存在白名单中,设置白名单的终端过滤政策参数为第一参数;
[0097] 可选地,步骤s205中,硬件钱包将第一终端的终端信息保存在白名单之前,还包括:
[0098] 硬件钱包将第一终端的终端信息显示在屏幕上,提示用户是否连接该终端设备,判断是否接收到用户确认连接,如果是,执行步骤s205;否则,拒绝连接,向第一终端返回连
接失败响应;
[0099] 可选地,硬件钱包设置白名单的终端过滤政策参数为第一参数具体为:硬件钱包设置白名单的终端过滤政策参数为0x02,表示允许任何终端扫描,但只允许白名单中的终
端连接;
[0100] 步骤s206:硬件钱包连接第一终端,生成包含硬件钱包信息的第一连接成功响应,向第一终端返回第一连接成功响应;
[0101] 步骤s207:硬件钱包判断自身保存的配对列表中是否存在第一终端的终端信息,如果是,执行步骤s209;否则,执行步骤s208;
[0102] 步骤s208:硬件钱包等待接收第一终端发送的第一配对请求,当接收到第一配对请求时,与第一终端进行配对,将第一终端的终端信息保存在硬件钱包的配对列表中,向第
一终端返回配对成功响应;
[0103] 可选地,当硬件钱包接收到第一配对请求时,根据配对模式标识符使用对应的配对模式与第一终端进行配对;
[0104] 可选地,当硬件钱包接收到第一配对请求,配对模式标识符为LE Legency Pairing Passkey Entry时,硬件钱包与第一终端进行配对具体包括:
[0105] 步骤s208‑1:硬件钱包显示配对码,接收第一终端发送的第一配对确认值、第一随机数以及第一终端的信息;
[0106] 可选地,第一配对确认值具体为第一终端对用户输入的配对码、第一随机数以及第一终端的终端信息进行哈希运算得到的值;
[0107] 步骤s208‑2:硬件钱包根据第一随机数、硬件钱包显示的配对码以及第一终端的终端信息生成第二配对确认值,判断第一配对确认值是否等于第二配对确认值,如果是,执
行步骤s208‑3;否则,报错,结束;
[0108] 步骤s208‑3:硬件钱包生成第二随机数,根据第二随机数、显示的配对码,以及硬件钱包的信息生成第三配对确认值,将第三配对确认值、第二随机数以及硬件钱包的信息
发送给第一终端;
[0109] 步骤s208‑4:硬件钱包等待接收第一终端返回的配对响应,判断接收到的配对响应是否为配对成功响应,如果是,配对成功,将第一终端的终端信息放入硬件钱包的配对列
表中;否则,报错,结束。
[0110] 步骤s209:硬件钱包生成并保存第一长密钥;
[0111] 可选地,步骤s209具体为:硬件钱包根据配对码、第一随机数以及第二随机数生成第一长密钥,保存第一长密钥;
[0112] 步骤s210:硬件钱包等待接收指令,当接收到第一终端发送的转移配对指令时,解析转移配对指令获取转移配对方式参数,判断转移配对方式参数是否包含第二终端的终端
信息,如果未包含,则清空白名单,返回步骤s202;如果包含,则执行步骤s211;
[0113] 步骤s211:硬件钱包获取第二终端的终端信息,判断第二终端的终端信息是否合法,如果是,执行步骤s212;否则,报错,向第一终端返回转移失败响应;
[0114] 可选地,步骤s211中,当硬件钱包接收到其他指令时,根据接收到的指令执行相应操作;
[0115] 可选地,步骤s211之前还包括:硬件钱包和第一终端进行密钥协商得到共享密钥的过程;
[0116] 可选地,步骤s211中,硬件钱包解析转移配对指令获取第二终端的终端信息具体为:
[0117] 硬件钱包分别用第一长密钥和共享密钥解密转移配对指令获取第二终端的终端信息;
[0118] 可选地,硬件钱包判断第二终端的终端信息是否合法可以具体为:硬件钱包显现第二终端的终端信息,提示用户是否确认配对转移,如果是,第二终端的终端信息合法;否
则;第二终端的终端信息不合法。
[0119] 步骤s212:硬件钱包向第一终端返回转移配对响应,用第二终端的终端信息替换白名单中第一终端的终端信息,断开与第一终端的连接,删除配对列表中的第一终端信息,
删除第一长密钥;
[0120] 步骤s213:硬件钱包等待接收指令,当接收第二连接指令时,解析第二连接指令获取终端信息,判断获取到的终端信息是否为第二终端的终端信息,如果是,执行步骤s214;
否则,拒绝连接,返回连接失败响应;
[0121] 可选地,步骤s213中还包括:当硬件钱包接收到其他指令时,根据接收到的指令执行相应操作;
[0122] 步骤s214:硬件钱包与第二终端进行连接,向第二终端返回第二连接成功响应;
[0123] 可选地,第二连接成功响应中包含硬件钱包信息;
[0124] 步骤s215:硬件钱包等待接收第二终端的配对请求,当接收到第二终端的配对请求时,与第二终端进行配对,将第二终端的终端信息保存在硬件钱包的配对列表中,生成并
保存第二长密钥,转移配对完成,结束;
[0125] 可选地,步骤s215还包括:硬件钱包向第二终端返回第二配对成功响应。
[0126] 实施例三
[0127] 根据本发明实施例三,提供了一种防止硬件钱包被恶意配对的方法,如图3所示,包括:
[0128] 步骤s301:硬件钱包开机,等待接收指令;
[0129] 步骤s302:第一终端搜索硬件钱包,判断是否搜索到硬件钱包,如果是,向硬件钱包发送第一连接指令;否则,继续执行步骤s302;
[0130] 步骤s303:当硬件钱包接收到指令时,判断指令类型,如果是第一连接指令,执行步骤s304;如果是其他指令,执行相应操作;
[0131] 步骤s304:硬件钱包从第一连接指令中获取发送第一连接指令的第一终端的终端信息,搜索白名单,判断白名单中是否保存有第一终端的终端信息,如果是,执行步骤s308;
否则,执行步骤s305。
[0132] 步骤s305:硬件钱包判断白名单中保存的终端信息数量是否达到阈值,如果是,拒绝连接,返回连接失败响应,结束;否则,执行步骤s306;
[0133] 可选地,实施例3中,白名单中保存的终端信息的数量的阈值为1;
[0134] 步骤s306:硬件钱包显示第一终端的终端信息,提示用户是否连接,判断是否接收到用户确认,如果是,将第一终端信息保存在白名单中,执行步骤s307;否则,拒绝连接,返
回连接失败响应,结束;
[0135] 步骤s307:硬件钱包设置白名单的终端过滤政策参数为第一参数;
[0136] 可选地,步骤s307具体为:硬件钱包设置白名单的终端过滤政策参数为0x02,表示允许任何终端扫描,但只允许白名单中的终端连接;
[0137] 步骤s308:硬件钱包与第一终端进行连接,生成包含硬件钱包信息的第一连接成功响应,向第一终端返回第一连接成功响应;
[0138] 步骤s309:第一终端接收第一连接成功响应,从第一连接成功响应中获取硬件钱包信息;
[0139] 步骤s310:第一终端检查自身保存的配对列表中是否保存有硬件钱包信息,如果是,执行步骤s314;否则,执行步骤s311;
[0140] 步骤s311:第一终端生成包含特定配对模式标识符的第一配对请求,向硬件钱包发送第一配对请求;
[0141] 可选地,第一配对请求中还包括第一终端的终端信息
[0142] 步骤s312:硬件钱包接收第一配对请求,根据配对模式标识符使用相应配对模式与第一终端进行配对,保存第一终端的终端信息到硬件钱包中的配对列表中,生成并保存
第一长密钥,向第一终端返回第一配对成功响应;
[0143] 可选地,步骤s312具体包括:
[0144] 步骤s312‑1:硬件钱包接收第一配对请求,显示配对码;
[0145] 步骤s312‑2:第一终端接收用户输入的配对码,生成第一随机数,根据第一随机数、配对码以及第一终端的终端信息生成第一配对确认值,向硬件钱包发送第一配对确认
值、第一随机数以及第一终端的信息;
[0146] 可选地,生成第一配对确认值具体为:第一终端对用户输入的配对码、第一随机数以及第一终端的终端信息进行哈希运算的得到第一配对确认值;
[0147] 例如:第一终端的终端信息可以为终端的MAC地址。
[0148] 步骤s312‑3:硬件钱包根据第一随机数、自身生成的配对码以及第一终端的终端信息生成第二配对确认值,判断第一配对确认值与第二配对确认值是否匹配,如果是,执行
步骤s312‑4;否则,配对失败,报错,结束;
[0149] 可选地,步骤s312‑3具体为:硬件钱包对第一随机数、自身生成的配对码以及第一终端的终端信息进行哈希运算得到第二配对确认值,判断第一配对确认值是否等于第二配
对确认值,如果是,执行步骤s305‑3;否则,配对失败,报错,结束;
[0150] 步骤s312‑4:硬件钱包生成第二随机数,根据第二随机数、配对码以及硬件钱包的信息生成第三配对确认值,向第一终端发送第二随机数,硬件钱包信息以及第三配对确认
值;
[0151] 可选地,生成第三配对确认值具体为:硬件钱包对第二随机数、自身生成的配对码以及硬件钱包的信息进行哈希运算得到第三配对确认值;
[0152] 例如:硬件钱包的信息可以为硬件钱包的蓝牙MAC地址。
[0153] 步骤s312‑5:第一终端接收第二随机数、硬件钱包的信息以及第三配对确认值,根据用户输入的配对码、第二随机数以及硬件钱包的信息计算生成第四配对确认值,判断第
三配对确认值和第四配对确认值是否匹配,如果是,配对成功;否则,报错,结束。
[0154] 可选地,步骤s312‑5具体为:第一终端接收第二随机数、硬件钱包的信息以及第三配对确认值,对用户输入的配对码、第二随机数以及硬件钱包的信息进行哈希运算得到第
四配对确认值,判断第三配对确认值是否等于第四配对确认值,如果是,配对成功;否则,配
对失败,报错,结束。
[0155] 步骤s313:第一终端接收第一配对成功响应,根据第一配对成功响应,生成并保存第一长密钥;
[0156] 步骤s314:第一移动终端等待接收指令,当接收到转移配对指令时,获取第二终端的终端信息;
[0157] 可选地,第二终端的终端信息可以是用户手动输入第一终端,也可以是在用户操作下与第二终端进行配对后,从第二终端获取到的;
[0158] 步骤s315:第一终端检查与硬件钱包是否保持连接,如果是,执行步骤s316;否则,返回步骤s302;
[0159] 步骤s316:第一终端生成第一公私密钥对,使用第一长密钥加密第一公私密钥对中的第一公钥得到密钥协商请求,向硬件钱包发送密钥协商请求;
[0160] 步骤s317:硬件钱包接收密钥协商请求,使用第一长密钥解密密钥协商请求获得第一公钥,生成第二公私密钥对,使用第一公钥和第二公私密钥对中的第二私钥相乘得到
共享密钥,使用第一长密钥加密第二公钥得到密钥协商响应,向第一终端返回密钥协商响
应;
[0161] 步骤s318:第一终端使用第一长密钥解密密钥协商响应获取第二公钥,使用第一私钥乘以第二公钥得到共享密钥;
[0162] 步骤s319:第一终端用共享密钥加密第二终端的终端信息得到第二终端的加密终端信息,使用第一长密钥加密第二终端的加密终端信息得到转移配对指令,向硬件钱包发
送转移配对指令;
[0163] 步骤s320:硬件钱包接收转移配对指令,用第一长密钥和共享密钥分别解密转移配对指令得到第二终端的终端信息,显示第二终端的终端信息,提示用户确认是否需要转
移配对,判断是否接收到用户的确认,如果是,生成转移配对响应,向第一终端发送转移配
对响应,断开与第一终端的连接,执行步骤s321;否则,报错,向第一终端返回转移失败响
应,结束;
[0164] 可选地,步骤s320之后,还包括:当第一终端接收到硬件钱包发送的转移配对响应时,断开和硬件钱包的连接,从自身保存的配对表中删除硬件钱包信息,删除硬件钱包对应
的第一长密钥;
[0165] 步骤s321:硬件钱包用第二终端的终端信息替换白名单中的第一终端的终端信息,从配对表中删除第一终端的终端信息,删除第一终端对应的第一长密钥;等待接收连接
指令,当接收到第二连接指令时,从第二连接指令中获取终端信息,判断白名单中是否保存
有该终端信息,如果是,执行步骤s322;否则,拒绝连接,结束;
[0166] 步骤s322:硬件钱包与第二终端进行连接,生成包含硬件钱包信息的第二连接成功响应,向第二终端返回第二连接成功响应;
[0167] 步骤s323:第二终端接收第二连接成功响应,从第二连接成功响应中获取硬件钱包信息;
[0168] 步骤s324:第二终端判断自身保存的配对列表中是否存在获取到的硬件钱包的信息,如果是,转移配对成功,结束;否则,执行步骤s325;
[0169] 步骤s325:第二终端生成第二配对请求,向硬件钱包发送第二配对请求;
[0170] 步骤s326:硬件钱包接收第二配对请求,根据配对模式标识符使用特定的配对方式进行配对,将第二终端的终端信息保存到硬件钱包的配对列表中,生成并保存第二长密
钥,向第二终端返回第二配对成功响应;
[0171] 步骤s327:第二终端接收第二配对成功响应,根据第二配对成功响应生成并保存第二长密钥,转移配对成功,结束。
[0172] 实施例四
[0173] 根据本发明实施例四,提供了一种防止被恶意配对的硬件钱包,包括:
[0174] 第一接收模块401,用于等待接收连接请求,当接收到连接请求时,触发解析模块402;
[0175] 解析模块402,用于当第一接收模块401接收到连接请求时,解析连接请求获取第一终端的终端信息;
[0176] 第一判断模块403,用于检查自身保存的白名单,判断白名单中是否为空;
[0177] 连接模块404,用于当第一判断模块403判断出白名单中为空时,允许第一终端连接,并将第一终端的终端信息加入白名单中;
[0178] 第二判断模块405,用于当第一判断模块403判断出白名单中不为空时,判断白名单中保存的终端信息是否与第一终端的终端信息相同;
[0179] 连接模块404还用于当第二判断模块405判断出白名单中保存的终端信息与第一终端的终端信息相同时,允许第一终端连接,触发第三判断模块407;
[0180] 拒绝模块406,用于当第二判断模块405判断出白名单中保存的终端信息与第一终端的终端信息不同时,拒绝第一终端连接,触发第一接收模块401;
[0181] 第三判断模块407,用于判断是否已与第一终端完成配对;
[0182] 配对模块408,用于当第三判断模块407判断出未与第一终端完成配对时,与第一终端进行配对,触发第二接收模块409;
[0183] 第二接收模块409,用于当第三判断模块407判断出已与第一终端完成配对时,接收第一终端发送的指令;
[0184] 第二接收模块409还用于当配对模块与第一终端进行配对之后,接收第一终端发送的指令;
[0185] 第四判断模块410,用于当第二接收模块409接收到第一终端发送的指令时,判断指令类型,如果是配对转移指令,触发删除模块411;如果是其他指令,触发执行模块412;
[0186] 删除模块411,用于当第四判断模块410判断出指令为配对转移指令时,删除白名单中保存的第一终端的终端信息,触发第一接收模块401;
[0187] 执行模块412,用于当第四判断模块410判断出指令为其他指令时,根据指令执行相应操作。
[0188] 可选地,上述硬件钱包还包括:
[0189] 开机模块,用于硬件钱包开机。
[0190] 可选地,上述硬件钱包中,第一终端的终端信息包括:第一终端的名称以及第一终端的MAC地址。
[0191] 可选地,上述硬件钱包中,第三判断模块包括:
[0192] 判断子模块,用于判断自身保存的配对列表中是否存在第一终端的终端信息;
[0193] 接收子模块,用于当判断子模块判断出配对列表中不存在第一终端的终端信息接收第一终端发送的第一配对请求;
[0194] 配对子模块,用于当接收子模块接收到第一终端发送的第一配对请求时,与第一终端进行配对,触发第二接收模块。
[0195] 可选地,上述硬件钱包还包括:
[0196] 第二解析模块,用于删除模块删除白名单中保存的第一终端的终端信息之前,解析转移配对指令,获取第二终端的终端信息;
[0197] 保存模块,用于删除模块删除白名单中保存的第一终端的终端信息之后,将第二终端的终端信息保存在白名单中。
[0198] 可选地,上述硬件钱包还包括:
[0199] 第五判断模块,用于保存模块将第二终端的终端信息保存在白名单中之前,判断第二终端的终端信息是否合法;
[0200] 保存模块具体用于当第五判断模块判断出第二终端的终端信息合法时,将第二终端的终端信息保存在白名单中;
[0201] 返回模块用于,当第五判断模块判断出第二终端的终端信息不合法时,向第二终端返回拒绝连接响应。
[0202] 可选地,上述硬件钱包中,第五判断模块包括:
[0203] 接收子模块,用于接收第二终端发送的连接请求;
[0204] 解析子模块,用于解析接收子模块接收到的第二终端发送的连接请求获取第二终端的终端信息;
[0205] 第二判断子模块,用于判断解析第二连接请求获取到的第二终端的终端信息是否与解析转移配对指令获取到的第二终端的终端信息相同。
[0206] 可选地,上述硬件钱包中,保存模块还用于,当与第二终端连接配对之后,将第二终端的终端信息保存在硬件钱包的配对列表中。