一种多功能智能密钥设备的工作方法转让专利

申请号 : CN201310236778.8

文献号 : CN103297243B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆舟于华章

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

摘要 :

本发明公开了一种多功能智能密钥设备的工作方法,属于信息安全领域。所述智能密钥设备包括OTP模块和USBkey模块,所述智能密钥设备上电后:OTP模块等待接收用户输入的PIN码,当接收到PIN码时进行验证;USBkey模块等待接收上位机发送的指令,并根据接收到的指令与OTP模块相互通信,将通信结果返回给上位机,继续等待接收指令;所述智能密钥设备脱机时:智能密钥设备单独作为OTP使用。采用本发明所述方案能够实现一次验证自动完成,避免了使用上的麻烦,增加了设备的安全性。

权利要求 :

1.一种多功能智能密钥设备的工作方法,其特征在于,所述智能密钥设备包括智能密钥模块和动态令牌模块,所述方法包括:所述智能密钥设备与上位机连接上电,进行初始化;

当动态令牌模块被唤醒时,执行步骤S1至步骤S2:

步骤S1:动态令牌模块等待接收用户输入的PIN码,判断在预设时间内是否接收到PIN码,如果是,则执行步骤S2,否则动态令牌模块休眠;

步骤S2:动态令牌模块判断接收到的PIN码是否正确,如果是,则将动态令牌模块状态置为已验证PIN码状态,否则显示PIN码错误的信息,返回执行步骤S1;

当智能密钥模块接收到上位机发送的指令时,执行步骤S3至步骤S7:

步骤S3:当智能密钥模块接收到上位机发送的指令时,判断接收到的指令的类型,如果是获取应答值指令,则执行步骤S4,如果是按键签名指令,则执行步骤S6;

步骤S4:智能密钥模块向动态令牌模块发送与所述获取应答值指令对应的第二预设指令,动态令牌模块接收到所述第二预设指令后,获取动态令牌模块状态并判断是否为已验证PIN码状态,如果是,则执行步骤S5,否则动态令牌模块向智能密钥模块返回错误码,智能密钥模块接收到所述错误码后,向上位机返回相应的错误响应,返回执行步骤S3;

步骤S5:动态令牌模块等待接收用户通过智能密钥设备键盘输入的挑战值,动态令牌模块根据接收到的挑战值生成预设字节的应答值,将包含所述应答值的第二状态码返回给智能密钥模块,智能密钥模块根据接收到的第二状态码,生成第二响应,将所述第二响应返回给上位机,返回执行步骤S3;

步骤S6:智能密钥模块向动态令牌模块发送与所述按键签名指令对应的第三预设指令,动态令牌模块收到所述第三预设指令后,获取动态令牌模块状态并判断是否为已验证PIN码状态,如果是,则执行步骤S7,否则动态令牌模块向智能密钥模块返回错误码,智能密钥模块接收到所述错误码后,向上位机返回相应的错误响应,返回执行步骤S3;

步骤S7:动态令牌模块等待接收按键信息,当动态令牌模块接收到按键信息后,将包含所述按键信息的第三状态码返回给智能密钥模块,智能密钥模块接收到所述第三状态码,判断所述第三状态码是否为确认按键信息,如果是,则智能密钥模块执行签名操作,生成签名成功的第三响应并返回给上位机,返回执行步骤S3,否则智能密钥模块取消签名操作,将签名失败的响应返回给上位机,返回执行步骤S3。

2.根据权利要求1所述的方法,其特征在于,所述步骤S1中,所述动态令牌模块休眠之后,还包括:动态令牌模块将动态令牌模块状态置为未验证PIN码状态。

3.根据权利要求2所述的方法,其特征在于,还包括:当智能密钥设备重新与上位机连接或当智能密钥设备接收到开机键按下的触发信息时,动态令牌模块被唤醒,执行步骤S1;

当智能密钥模块向动态令牌模块发送需要获取动态令牌模块状态的指令时,动态令牌模块被唤醒,执行步骤S1,并且动态令牌模块根据动态令牌模块状态执行相应的操作后将结果返回给智能密钥模块。

4.根据权利要求1所述的方法,其特征在于,当所述智能密钥设备重新与上位机连接或当智能密钥设备接收到开机键按下的触发信息时,动态令牌模块被唤醒,将动态令牌模块状态置为未验证PIN码状态,执行步骤S1;

当智能密钥模块向动态令牌模块发送需要获取动态令牌模块状态的指令时,动态令牌模块被唤醒,将动态令牌模块状态置为未验证PIN码状态,执行步骤S1,并且动态令牌模块根据动态令牌模块状态执行相应的操作后将结果返回给智能密钥模块。

5.根据权利要求1所述的方法,其特征在于,所述步骤S2中,所述动态令牌模块判断接收到的PIN码是否正确,具体为:动态令牌模块判断接收到的PIN码是否与动态令牌模块中保存的PIN码匹配,如果是,则表示接收到的PIN码正确,否则表示接收到的PIN码错误。

6.根据权利要求1所述的方法,其特征在于,所述步骤S2具体为:动态令牌模块判断接收到的PIN码是否正确,如果是,则将动态令牌模块状态置为已验证PIN码状态,并将PIN码错误次数和锁定次数清零,否则显示PIN码错误的信息,并将所述PIN码错误次数增加预设值,并判断所述PIN码错误次数是否达到第一预设次数,如果是,则将所述智能密钥设备锁定,否则返回执行步骤S1。

7.根据权利要求6所述的方法,其特征在于,所述返回执行步骤S1之前还包括:判断所述智能密钥设备是否锁定,如果是,则将显示锁定信息,结束,否则返回执行步骤S1。

8.根据权利要求7所述的方法,其特征在于,所述将所述智能密钥设备锁定,还包括:当判断接收到的PIN码错误时,将PIN码错误次数递增,当PIN码错误次数达到第一预设次数时,将锁定次数递增,并将智能密钥设备锁定,当所述智能密钥设备内部时钟超过预定时长后,所述智能密钥设备自行解锁,当再次在第一预设次数内验证PIN码成功时,将PIN码错误次数和锁定次数清零。

9.根据权利要求8所述的方法,其特征在于,还包括:当所述智能密钥设备锁定后,还包括:将锁定次数递增,当所述锁定次数达到第二预设次数时,将所述智能密钥设备锁死,当使用解锁码解锁后,将PIN码错误次数和锁定次数清零。

10.根据权利要求1所述的方法,其特征在于,所述步骤S3与所述步骤S4之间还包括:

步骤A-1:智能密钥模块向动态令牌模块发送预设字节码;

步骤A-2:动态令牌模块接收到所述预设字节码后,向智能密钥模块返回响应码;

步骤A-3:智能密钥模块根据接收到的所述响应码的脉冲宽度,计算得到动态令牌模块的波特率。

11.根据权利要求10所述的方法,其特征在于,所述步骤S3中判断接收到的指令的类型,还包括:如果是获取动态令牌模块状态指令,则执行步骤S3-1至步骤S3-3:步骤S3-1:智能密钥模块以与动态令牌模块相同的波特率,向动态令牌模块发送与所述获取动态令牌模块状态指令对应的经过加密的第一预设指令;

步骤S3-2:动态令牌模块接收到所述第一预设指令后,对所述第一预设指令进行解密,根据解密结果获取动态令牌模块状态,生成含有所述动态令牌模块状态的经过加密的第一状态码,并返回给智能密钥模块;

步骤S3-3:智能密钥模块根据接收到的第一状态码,生成第一响应,将所述第一响应返回给上位机,返回执行步骤S3。

12.根据权利要求10所述的方法,其特征在于,所述步骤S4中,智能密钥模块向动态令牌模块发送与所述获取应答值指令对应的第二预设指令,具体为:所述智能密钥模块以与动态令牌模块相同的波特率,向动态令牌模块发送与所述获取动态令牌模块状态指令对应的第二预设指令;

智能密钥模块向动态令牌模块发送与所述按键签名指令对应的第三预设指令,具体为:所述智能密钥模块以与动态令牌模块相同的波特率,向动态令牌模块发送与所述获取应答值指令对应的第三预设指令。

13.根据权利要求1或12所述的方法,其特征在于,所述第二预设指令和第三预设指令为经过加密后的指令,所述第二状态码和第三状态码为经过加密后的状态码。

14.根据权利要求13所述的方法,其特征在于,在动态令牌模块接收到所述第二预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第二预设指令进行解密,根据解密结果判断所述第二预设指令是否正确,如果是,则继续,否则生成指令错误码,并将其返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,判断重新发送第二预设指令的次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤S3,否则返回执行步骤S4;

在动态令牌模块接收到所述第三预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第三预设指令进行解密,根据解密结果判断所述第三预设指令是否正确,如果是,则执行所述获取动态令牌模块状态操作,否则生成指令错误码,返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,判断重新发送第三预设指令的次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤S3,否则返回执行步骤S6。

15.根据权利要求1所述的方法,其特征在于,所述步骤S4中,在动态令牌模块接收到所述第二预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第二预设指令进行解密,根据解密结果判断所述第二预设指令是否正确,如果是,则继续,否则生成指令错误码,返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,返回给上位机,返回执行步骤S3;

在动态令牌模块接收到所述第三预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第三预设指令进行解密,根据解密结果判断所述第三预设指令是否正确,如果是,则继续,否则生成指令错误码,返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,返回给上位机,返回执行步骤S3。

16.根据权利要求1所述的方法,其特征在于,所述步骤S5中,所述动态令牌模块等待接收用户通过智能密钥设备键盘输入的挑战值,替换为:所述动态令牌模块从与所述获取应答值指令对应的第二预设指令中获取挑战值。

17.根据权利要求1所述的方法,其特征在于,所述步骤S4具体为:

步骤S4’:智能密钥模块向动态令牌模块发送用于获取动态令牌模块状态的第一预设指令,动态令牌模块接收到所述第一预设指令后,获取动态令牌模块状态,生成包含所述动态令牌模块状态的经过加密的第四状态码,并返回给智能密钥模块,智能密钥模块接收第四状态码,并对其解密得到动态令牌模块状态,根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第二预设指令,如果是,则向动态令牌模块发送第二预设指令,动态令牌模块接收到所述第二预设指令后,执行步骤S5,否则重新执行步骤S4’。

18.根据权利要求17所述的方法,其特征在于,所述根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第二预设指令,具体为:如果所述动态令牌模块状态为已验证PIN码状态,则能够向动态令牌模块发送第二预设指令;如果所述动态令牌模块状态为未验证PIN码状态,则判断重新获取动态令牌模块状态的次数是否达到第三预设次数,如果是,则向上位机返回错误信息,返回执行步骤S3,否则重新执行步骤S4’。

19.根据权利要求1所述的方法,其特征在于,所述步骤S6具体为:

步骤S6’:智能密钥模块向动态令牌模块发送用于获取动态令牌模块状态的第一预设指令,动态令牌模块接收到所述第一预设指令后,获取动态令牌模块状态,生成包含所述动态令牌模块状态的经过加密的第五状态码,并返回给智能密钥模块,智能密钥模块接收第五状态码,并对其解密得到动态令牌模块状态,根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第三预设指令,如果是,则向动态令牌模块发送第三预设指令,动态令牌模块接收到所述第三预设指令后,执行步骤S7,否则重新执行步骤S6’。

20.根据权利要求19所述的方法,其特征在于,根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第三预设指令,如果是,则向动态令牌模块发送第三预设指令,动态令牌模块接收到所述第三预设指令后,执行步骤S7,否则重新执行步骤S6’,具体为:判断所述动态令牌模块状态是否为已验证PIN码状态,是则向动态令牌模块发送第三预设指令,动态令牌模块接收到所述第三预设指令后,判断重新获取动态令牌模块状态的次数是否达到第三预设次数,如果是第三预设次数,则向上位机返回错误信息,返回执行步骤S3,如果不是第三预设次数,执行步骤S7,否则重新执行步骤S6’。

21.根据权利要求17或19所述的方法,其特征在于,所述动态令牌模块接收到所述第一预设指令后还包括:如果动态令牌模块休眠,则动态令牌模块被唤醒,并将动态令牌模块状态置为未验证PIN码状态。

22.根据权利要求1所述的方法,其特征在于,所述步骤S6之前还能够包括:

步骤S6-1:智能密钥模块收到所述按键签名指令后,向动态令牌模块发送验证PIN码的第四预设指令,动态令牌模块接收到所述第四预设指令后,在智能密钥设备屏幕上显示输入PIN码窗口;

步骤S6-2:动态令牌模块等待接收用户输入的PIN码,判断在预设时间内是否接收到PIN码,如果是,则执行步骤S6-3,否则向智能密钥模块返回未收到PIN码的响应,智能密钥模块将所述响应返回给上位机,返回执行步骤S3;

步骤S6-3:动态令牌模块判断接收到的PIN码是否正确,如果是,则执行步骤S6,否则判断验证PIN码的次数是否达到第一预设次数,如果是,则向智能密钥模块返回PIN码错误的响应,智能密钥模块将所述响应返回给上位机,返回执行步骤S3,否则在智能密钥设备屏幕上显示输入PIN码窗口,返回执行步骤S6-2。

23.根据权利要求1所述的方法,其特征在于,当所述智能密钥设备脱机时,如果接收到开机键按下,则执行步骤F1至步骤F3:步骤F1:在智能密钥设备屏幕上显示等待输入PIN码的信息,动态令牌模块等待接收用户输入的PIN码;

步骤F2:当动态令牌模块接收到用户通过智能密钥设备的键盘输入的PIN码时,判断接收到的PIN码是否与动态令牌模块保存的PIN码匹配,如果是,则将动态令牌模块状态置为已验证PIN码状态,等待接收按键信息,否则执行步骤F3:步骤F3:动态令牌模块判断重新验证PIN码的次数是否达到第三预设次数,如果是,则动态令牌模块休眠,将动态令牌模块状态置为未验证PIN码状态,否则返回执行步骤F1。

24.根据权利要求23所述的方法,其特征在于,所述步骤F2中,所述等待接收按键信息,包括:等待接收用户输入的挑战值,按下确认键后生成应答值或等待接收用户直接按下确认键后生成时间口令或等待接收用户长按删除键用于修改PIN码。

说明书 :

一种多功能智能密钥设备的工作方法

技术领域

[0001] 本发明涉及信息安全领域,尤其涉及一种多功能智能密钥设备的工作方法。

背景技术

[0002] 随着互联网被越来越广泛的应用,网上银行也称在线银行,已经成为金融机构整体策略中不可或缺的一部分。近年来,网上银行的用户数量剧增,并且保持着稳定的发展势头,在其为广大用户提供便捷服务的同时,也暴露出了不容忽视的安全隐患。
[0003] 针对安全隐患各银行纷纷采取行动,目前多渠道应用中对用户身份认证普遍采用两种方式,一种是使用动态令牌作为登陆网银及完成数据传输的密码生成设备;另外一种,也是应用比较广泛的一种,是采用USB Key作为数字证书的载体,应用于对传输数据进行加密的操作。
[0004] 在现有技术中,动态令牌不需要连接电脑使用,但容易被他人偷窥或者被钓鱼网站利用;USB Key在使用过程中有数字证书参与,虽然具有一定安全性,但是加密数据传输过程还是有可能被黑客篡改,显露用户隐私,存在网上购物支付的安全隐患。

发明内容

[0005] 本发明的目的是解决现有技术中存在的问题,提供了一种多功能智能密钥设备的工作方法。
[0006] 本发明采用的技术方案是:一种多功能智能密钥设备的工作方法,所述智能密钥设备包括智能密钥模块和动态令牌模块,所述方法包括:
[0007] 所述智能密钥设备与上位机连接上电,进行初始化;
[0008] 当动态令牌模块被唤醒时,执行步骤S1至步骤S2:
[0009] 步骤S1:动态令牌模块等待接收用户输入的PIN码,判断在预设时间内是否接收到PIN码,如果是,则执行步骤S2,否则动态令牌模块休眠;
[0010] 步骤S2:动态令牌模块判断接收到的PIN码是否正确,如果是,则将动态令牌模块状态置为已验证PIN码状态,否则显示PIN码错误的信息,返回执行步骤S1;
[0011] 当智能密钥模块接收到上位机发送的指令时,执行步骤S3至步骤S7:
[0012] 步骤S3:当智能密钥模块接收到上位机发送的指令时,判断接收到的指令的类型,如果是获取应答值指令,则执行步骤S4,如果是按键签名指令,则执行步骤S6;
[0013] 步骤S4:智能密钥模块向动态令牌模块发送与所述获取应答值指令对应的第二预设指令,动态令牌模块接收到所述第二预设指令后,获取动态令牌模块状态并判断是否为已验证PIN码状态,如果是,则执行步骤S5,否则动态令牌模块向智能密钥模块返回错误码,智能密钥模块接收到所述错误码后,向上位机返回相应的错误响应,返回执行步骤S3;
[0014] 步骤S5:动态令牌模块等待接收用户通过智能密钥设备键盘输入的挑战值,动态令牌模块根据接收到的挑战值生成预设字节的应答值,将包含所述应答值的第二状态码返回给智能密钥模块,智能密钥模块根据接收到的第二状态码,生成第二响应,将所述第二响应返回给上位机,返回执行步骤S3;
[0015] 步骤S6:智能密钥模块向动态令牌模块发送与所述按键签名指令对应的第三预设指令,动态令牌模块收到所述第三预设指令后,获取动态令牌模块状态并判断是否为已验证PIN码状态,如果是,则执行步骤S7,否则动态令牌模块向智能密钥模块返回错误码,智能密钥接收到所述错误码后,向上位机返回相应的错误响应,返回执行步骤S3;
[0016] 步骤S7:动态令牌模块等待接收按键信息,当动态令牌模块接收到按键信息后,将包含所述按键信息的第三状态码返回给智能密钥模块,智能密钥模块接收到所述第三状态码,判断所述第三状态码是否为确认按键信息,如果是,则USB key模块执行签名操作,生成签名成功的第三响应并返回给上位机,返回执行步骤S3,否则智能密钥模块取消签名操作,将签名失败的响应返回给上位机,返回执行步骤S3。
[0017] 所述步骤S1中,所述动态令牌模块休眠之后,还包括:动态令牌模块将动态令牌模块状态置为未验证PIN码状态。
[0018] 当智能密钥设备重新与上位机连接或当智能密钥设备接收到开机键按下的触发信息时,动态令牌模块被唤醒,执行步骤S1;
[0019] 当智能密钥模块向动态令牌模块发送需要获取动态令牌模块状态的指令时,动态令牌模块被唤醒,执行步骤S1,并且动态令牌根据动态令牌模块状态执行相应的操作后将结果返回给智能密钥模块。
[0020] 当所述智能密钥设备重新与上位机连接或当智能密钥设备接收到开机键按下的触发信息时,动态令牌模块被唤醒,将动态令牌模块状态置为未验证PIN码状态,执行步骤S1;
[0021] 当智能密钥模块向动态令牌模块发送需要获取动态令牌模块状态的指令时,动态令牌模块被唤醒,将动态令牌模块状态置为未验证PIN码状态,执行步骤S1,并且动态令牌根据动态令牌模块状态执行相应的操作后将结果返回给智能密钥模块。
[0022] 所述步骤S2中,所述动态令牌模块判断接收到的PIN码是否正确,具体为:动态令牌模块判断接收到的PIN码是否与动态令牌模块中保存的PIN码匹配,如果是,则表示接收到的PIN码正确,否则表示接收到的PIN码错误。
[0023] 所述步骤S2具体为:动态令牌模块判断接收到的PIN码是否正确,如果是,则将动态令牌模块状态置为已验证PIN码状态,并将PIN码错误次数和锁定次数清零,否则显示PIN码错误的信息,并将所述PIN码错误次数增加预设值,并判断所述PIN码错误次数是否达到第一预设次数,如果是,则将所述智能密钥设备锁定,否则返回执行步骤S1。
[0024] 所述返回执行步骤S1之前还包括:判断所述智能密钥设备是否锁定,如果是,则将显示锁定信息,结束,否则返回执行步骤S1。
[0025] 所述将所述智能密钥设备锁定,还包括:当判断接收到的PIN码错误时,将PIN码错误次数递增,当PIN码错误次数达到第一预设次数时,将锁定次数递增,并将智能密钥设备锁定,当所述智能密钥设备内部时钟超过预定时长后,所述智能密钥设备自行解锁,当再次在第一预设次数内验证PIN码成功时,将PIN码错误次数和锁定次数清零。
[0026] 当所述智能密钥设备锁定后,还包括:将锁定次数递增,当所述锁定次数达到第二预设次数时,将所述智能密钥设备锁死,当使用解锁码解锁后,将PIN码错误次数和锁定次数清零。
[0027] 所述步骤S3与所述步骤S4之间还包括:
[0028] 步骤A-1:智能密钥模块向动态令牌模块发送预设字节码;
[0029] 步骤A-2:动态令牌模块接收到所述预设字节码后,向智能密钥模块返回响应码;
[0030] 步骤A-3:智能密钥模块根据接收到的所述响应码的脉冲宽度,计算得到动态令牌模块的波特率。
[0031] 所述步骤S3中,判断接收到的指令的类型,还包括:如果是获取动态令牌模块状态指令,则执行步骤S3-1至步骤S3-3:
[0032] 步骤S3-1:智能密钥模块以与动态令牌模块相同的波特率,向动态令牌模块发送与所述获取动态令牌模块状态指令对应的经过加密的第一预设指令;
[0033] 步骤S3-2:动态令牌模块接收到所述第一预设指令后,对所述第一预设指令进行解密,根据解密结果获取动态令牌模块状态,生成含有所述动态令牌模块状态的经过加密的第一状态码,并返回给智能密钥模块;
[0034] 步骤S3-3:智能密钥模块根据接收到的第一状态码,生成第一响应,将所述第一响应返回给上位机,返回执行步骤S3。
[0035] 所述步骤S4中,智能密钥模块向动态令牌模块发送与所述获取应答值指令对应的第二预设指令,具体为:所述智能密钥模块以与动态令牌模块相同的波特率,向动态令牌模块发送与所述获取动态令牌模块状态指令对应的第二预设指令;
[0036] 智能密钥模块向动态令牌模块发送与所述按键签名指令对应的第三预设指令,具体为:所述智能密钥模块以与动态令牌模块相同的波特率,向动态令牌模块发送与所述获取应答值指令对应的第三预设指令。
[0037] 所述第二预设指令和第三预设指令为经过加密后的指令,所述第二状态码和第三状态码为经过加密后的状态码。
[0038] 在动态令牌模块接收到所述第二预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第二预设指令进行解密,根据解密结果判断所述第二预设指令是否正确,如果是,则继续,否则生成指令错误码,并将其返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,判断重新发送第二预设指令的次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤S3,否则返回执行步骤S4。
[0039] 在动态令牌模块接收到所述第三预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第三预设指令进行解密,根据解密结果判断所述第三预设指令是否正确,如果是,则执行所述获取动态令牌模块状态操作,否则生成指令错误码,返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,判断重新发送第三预设指令的次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤S3,否则返回执行步骤S6。
[0040] 所述步骤S4中,在动态令牌模块接收到所述第二预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第二预设指令进行解密,根据解密结果判断所述第二预设指令是否正确,如果是,则继续,否则生成指令错误码,返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,返回给上位机,返回执行步骤S3;
[0041] 在动态令牌模块接收到所述第三预设指令与获取动态令牌模块状态之间,还包括:智能密钥模块对接收到的第三预设指令进行解密,根据解密结果判断所述第三预设指令是否正确,如果是,则继续,否则生成指令错误码,返回给智能密钥模块,智能密钥模块接收到所述指令错误码后,返回给上位机,返回执行步骤S3。
[0042] 所述步骤S5中,所述动态令牌模块等待接收用户通过智能密钥设备键盘输入的挑战值,还能够为:所述动态令牌模块从与所述获取应答值指令对应的第二预设指令中获取挑战值。
[0043] 所述步骤S4还能够为:
[0044] 步骤S4’:智能密钥模块向动态令牌模块发送用于获取动态令牌模块状态的第一预设指令,动态令牌模块接收到所述第一预设指令后,获取动态令牌模块状态,生成包含所述动态令牌模块状态的经过加密的第四状态码,并返回给智能密钥模块,智能密钥模块接收第四状态码,并对其解密得到动态令牌模块状态,根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第二预设指令,如果是,则向动态令牌模块发送第二预设指令,动态令牌模块接收到所述第二预设指令后,执行步骤S5,否则重新执行步骤S4’。
[0045] 所述根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第二预设指令,具体为:如果所述动态令牌模块状态为已验证PIN码状态,则能够向动态令牌模块发送第二预设指令;如果所述动态令牌模块状态为未验证PIN码状态,则判断重新获取动态令牌模块状态的次数是否达到第三预设次数,如果是,则向上位机返回错误信息,返回执行步骤S3,否则重新执行步骤S4’。
[0046] 所述步骤S6还能够为:
[0047] 步骤S6’:智能密钥模块向动态令牌模块发送用于获取动态令牌模块状态的第一预设指令,动态令牌模块接收到所述第一预设指令后,获取动态令牌模块状态,生成包含所述动态令牌模块状态的经过加密的第五状态码,并返回给智能密钥模块,智能密钥模块接收第五状态码,并对其解密得到动态令牌模块状态,根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第三预设指令,如果是,则向动态令牌模块发送第三预设指令,动态令牌模块接收到所述第三预设指令后,执行步骤S7,否则重新执行步骤S6’。
[0048] 根据所述动态令牌模块状态判断是否能够向动态令牌模块发送第三预设指令,如果是,则向动态令牌模块发送第三预设指令,动态令牌模块接收到所述第三预设指令后,执行步骤S7,否则重新执行步骤S6’,具体为:判断所述动态令牌模块状态是否为已验证PIN码状态,是则向动态令牌模块发送第三预设指令,动态令牌模块接收到所述第三预设指令后,判断重新获取动态令牌模块状态的次数是否达到第三预设次数,如果是第三预设次数,则向上位机返回错误信息,返回执行步骤S3,如果不是第三预设次数,执行步骤S7,否则重新执行步骤S6’。
[0049] 所述动态令牌模块接收到所述第一预设指令后还包括:如果动态令牌模块休眠,则动态令牌模块被唤醒,并将动态令牌模块状态置为未验证PIN码状态。
[0050] 所述步骤S6之前还能够包括:
[0051] 步骤S6-1:智能密钥模块收到所述按键签名指令后,向动态令牌模块发送验证PIN码的第四预设指令,动态令牌模块接收到所述第四预设指令后,在智能密钥设备屏幕上显示输入PIN码窗口;
[0052] 步骤S6-2:动态令牌模块等待接收用户输入的PIN码,判断在预设时间内是否接收到PIN码,如果是,则执行步骤S6-3,否则向智能密钥模块返回未收到PIN码的响应,智能密钥模块将所述响应返回给上位机,返回执行步骤S3;
[0053] 步骤S6-3:动态令牌模块判断接收到的PIN码是否正确,如果是,则执行步骤S6,否则判断验证PIN码的次数是否达到第一预设次数,如果是,则向智能密钥模块返回PIN码错误的响应,智能密钥模块将所述响应返回给上位机,返回执行步骤S3,否则在智能密钥设备屏幕上显示输入PIN码窗口,返回执行步骤S6-2。
[0054] 当所述智能密钥设备脱机时,如果接收到电源键按下,则执行步骤F1至步骤F3:
[0055] 步骤F1:在智能密钥设备屏幕上显示等待输入PIN码的信息,动态令牌模块等待接收用户输入的PIN码;
[0056] 步骤F2:当动态令牌模块接收到用户通过智能密钥设备的键盘输入的PIN码时,判断接收到的PIN码是否与动态令牌模块保存的PIN码匹配,如果是,则将令牌模块状态置为已验证PIN码状态,等待接收按键信息,否则执行步骤F3:
[0057] 步骤F3:动态令牌模块判断重新验证PIN码的次数是否达到第三预设次数,如果是,则动态令牌模块休眠,将动态令牌模块状态置为未验证PIN码状态,否则返回执行步骤F1。
[0058] 所述步骤F2中,所述等待接收按键信息,包括:等待接收用户输入的挑战值,按下确认键后生成应答值或等待接收用户直接按下确认键后生成时间口令或等待接收用户长按删除键用于修改PIN码。
[0059] 本发明取得的有益效果是:采用本发明的所述方案,一次验证自动完成,避免使用上的麻烦,增加了设备的安全性。

附图说明

[0060] 图1是本发明实施例1提供的当OTP模块被唤醒时的工作方法流程图;
[0061] 图2是本发明实施例1提供的当USBkey模块接收到上位机发送的指令时的工作方法流程图;
[0062] 图3是本发明实施例1中USBkey模块接收到上位机发送的获取OTP模块状态指令的具体细化图;
[0063] 图4是本发明实施例1中USBkey模块接收到上位机发送的获取应答值指令的具体细化图;
[0064] 图5是本发明实施例1中USBkey模块接收到上位机发送的按键签名指令的具体细化图;
[0065] 图6是本发明实施例1中智能密钥设备脱机时的工作方法流程图。

具体实施方式

[0066] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0067] 实施例1:
[0068] 本发明实施例1提供了一种多功能智能密钥设备的工作方法,所述智能密钥设备包括智能密钥模块(USBkey模块)和动态令牌模块(OTP模块),如图1所示,本实施例方法包括:
[0069] 智能密钥设备与上位机连接上电,进行初始化:
[0070] 参见图1,当OTP模块被唤醒时,执行步骤101至步骤103:
[0071] 步骤101:OTP模块等待接收用户输入的PIN码,判断在预设时间内是否接收到PIN码,如果是,则执行步骤102,否则将OTP模块状态置为未验证PIN码状态,OTP模块休眠,等待被唤醒;
[0072] 在本实施例中,当智能密钥设备重新与上位机连接或当智能密钥设备接收到开机键按下的触发信息时,OTP模块被唤醒,执行步骤S1;当USBkey模块向OTP模块发送需要获取OTP模块状态的指令时,OTP模块被唤醒,根据OTP模块状态执行相应的操作后,将操作结果返回给USBkey模块,并且OTP模块执行步骤101;
[0073] 在本实施例中,步骤101还可以为:如果未接收到PIN码,则OTP模块休眠,当智能密钥设备重新与上位机连接或当智能密钥设备接收到开机键按下的触发信号时,OTP模块被唤醒,将OTP模块状态置为未验证PIN码状态,返回执行步骤S1;当USBkey模块向OTP模块发送需要获取OTP模块状态的指令时,OTP模块被唤醒,将OTP模块状态置为未验证PIN码状态,根据OTP模块状态执行相应的操作后,将操作结果返回给USBkey模块,并且OTP模块执行步骤101;
[0074] 步骤102:OTP模块判断接收到的PIN码是否正确,如果是,则将OTP模块状态置为已验证PIN码状态,并将PIN码错误次数和锁定次数清零,并等待接收USBkey模块发送的指令,否则执行步骤103;
[0075] 具体的,智能密钥设备接收到用户输入的PIN码后,与OTP模块中保存的PIN码进行比较,如果相同,则表示接收到的PIN码是正确的,如果不相同,则表示接收到的PIN码不正确;
[0076] 步骤103:OTP模块将PIN码错误次数增加预设值,并判断PIN码错误次数是否达到第一预设次数,如果是,则将锁定次数增加预设值,所述智能密钥设备锁定,否则显示PIN码错误的信息,返回执行步骤101;
[0077] 优选的,第一预设次数为3次;
[0078] 所述返回执行步骤101之前还包括:判断智能密钥设备是否锁定,如果是,则显示锁定信息,结束,否则返回执行步骤101;
[0079] 在本实施例中,当PIN码错误时,将PIN码错误次数增加预设值,当PIN码错误次数达到第一预设次数时,将锁定次数递增,并将智能密钥设备锁定,当所述智能密钥设备内部时钟超过预定时长后,所述智能密钥设备自行解锁,当再次在第一预设次数内验证PIN码成功时,将PIN码错误次数和锁定次数清零;优选的,预定时长可以为24小时;
[0080] 当PIN码错误时,将PIN码错误次数递增,当PIN码错误次数达到第一预设次数时,将锁定次数递增,当所述锁定次数达到第二预设次数时,将所述智能密钥设备锁死,当使用解锁码解锁后,将PIN码错误次数和锁定次数清零;优选的,第二预设次数为6次;
[0081] 参见图2,当USBkey模块接收到上位机发送的指令时,执行步骤104至步骤138:
[0082] 步骤104:当USBkey模块接收到上位机发送的指令时,获取接收到的指令的类型;
[0083] 步骤105:USBkey模块根据接收到的指令的类型执行相应的操作;
[0084] 所述根据接收到的类型执行相应的操作,具体为:
[0085] 如果是获取OTP模块状态指令,则执行步骤106;如果是获取应答值指令,则执行步骤114;如果是按键签名指令,则执行步骤124;如果是其他操作指令,则执行其他操作,生成相应的响应后返回给上位机,返回执行步骤104;
[0086] 优选的,智能密钥设备根据接收到的指令的前三个字节判断指令的类型;如果指令的前三个字节为0x80FC07,则表示所述指令为获取OTP模块状态指令,如果指令的前三个字节为0x80FC08,则表示所述指令为获取应答值指令;如果指令的前三个字节为0x002A9E,则表示所述指令为按键签名指令;如果指令的前三个字节为其他字节码,则接收到的是其他操作指令;
[0087] 参见图3,当USBkey模块接收到上位机发送的指令为获取OTP模块状态指令时,执行以下操作:
[0088] 步骤106:USBkey模块向OTP模块发送预设字节码;
[0089] 优选的,在本实施例中,所述预设字节码为0x00,所述USBkey模块向OTP模块发送预设字节码,用于测试波特率;优选的,在本实施例中,所述USBkey模块是通过UART接口(Universal Asynchronous Receiver/ Transmitter,通用异步接收/发送装置)向OTP模块发送指令或通过UART接口接收OTP模块返回的指令;
[0090] 步骤107:OTP模块接收到预设字节码后,向USBkey模块返回响应码;
[0091] 优选的,所述响应码为0x55;
[0092] 步骤108:USBkey模块根据接收到的所述响应码的脉冲宽度,计算得到OTP模块的波特率;
[0093] 步骤109:USBkey模块以与OTP模块相同的波特率,向OTP模块发送与所述获取OTP模块状态指令对应的第一预设指令;
[0094] USBkey模块收到上位机发送的指令后,从USBkey模块的预设存储区中获取与所述指令对应的第一预设指令;所述预设存储区中存放的是USBkey模块收到的上位机发送的指令和与之对应的USBkey模块向OTP模块发送的指令;
[0095] 优选的,USBkey模块向OTP模块发送的指令和OTP模块向USBkey模块返回的指令,是通过随机数异或加密的形式对指令进行加密的,除此之外,还可以为RSA加密等;
[0096] 例如,USBkey模块接收到上位机发送的获取OTP模块状态指令为80 FC 07 00 00,USBkey模块从预设存储区中找到对应的USBkey模块向OTP模块发送的获取OTP状态的第一预设指令68 12 36 5485221050451202 9564857501240215 E3;
[0097] 其中,所述第一预设指令中,5485221050451202是USBkey模块密钥K1与随机数异或后的结果,9564857501240215是USBkey模块密钥K2与随机数异或后的结果;
[0098] 步骤110:OTP模块对接收到的第一预设指令进行解密,根据解密结果判断所述第一预设指令是否正确,如果是,则执行步骤112,否则OTP模块生成指令错误码,将所述指令错误码返回给USBkey模块,执行步骤111;
[0099] 所述判断指令是否正确,具体为:如果OTP模块使用OTP模块密钥O1对第一预设指令中的5485221050451202异或的结果与O2对指令中的9564857501240215异或的结果相同,则表示指令正确,如果不相同,则指令不正确,生成指令不正确的第二状态码55 02 AC AC,返回给USBkey模块;
[0100] 步骤111:USBkey模块接收到所述指令错误码后,将指令错误次数增加预设值,判断指令错误次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤104,否则返回执行步骤106;
[0101] 所述步骤111还可以为:USBkey模块接收到所述指令错误码后,直接向上位机返回指令错误的响应,返回步骤104,继续等待上位机发送获取OTP模块状态的指令;
[0102] 步骤112:OTP模块获取OTP模块状态,生成包含所述OTP模块状态的加密的第一状态码,并返回给USBkey模块;
[0103] OTP模块获取OTP模块状态,如果为已验证PIN码状态,则生成包含所述已验证PIN码状态的加密的第一状态码,如果为未验证PIN码状态,则生成包含所述未验证PIN码状态的加密的第一状态码,并在智能密钥设备屏幕上显示输入PIN码的信息,等待接收用户输入的PIN码;
[0104] 在本实施例中,当OTP模块状态为已验证PIN码时,生成第一状态码为55 0A 36 02 8545095412853492 98,当OTP模块状态为未验证PIN码时,生成第一状态码55 0A 36 01 
854509541 2853492 9B;
[0105] 步骤113:USBkey模块根据接收到的第一状态码,解密得到OTP模块状态,根据所述OTP模块状态生成第一响应,并返回给上位机,返回执行步骤104;
[0106] 在本实施例中,USBkey模块根据第一状态码生成第一响应,优选的,当第一状态码为55 0A 36 01 8545095412853492 9B时,向上位机返回第一响应9005,当第一状态码为55 0A 36 02 8545095412853492 98时,向上位机返回第一响应9006;
[0107] 参见图4,当USBkey接收到上位机发送的指令为获取应答值指令时,执行以下操作:
[0108] 步骤114:USBkey模块向OTP模块发送预设字节码;
[0109] 优选的,在本实施例中,所述预设字节码为0x00,所述USBkey模块向OTP模块发送预设字节码,用于测试波特率;优选的,在本实施例中,所述USBkey模块是通过UART接口向OTP 模块发送指令或通过UART(Universal Asynchronous Receiver/ Transmitter,通用异步接收/发送装置)接收OTP模块返回的指令;
[0110] 步骤115:OTP模块接收到预设字节码后,向USBkey模块返回响应码;
[0111] 优选的,所述响应码为0x55;
[0112] 步骤116:USBkey模块根据接收到的所述响应码的脉冲宽度,计算得到OTP模块的波特率;
[0113] 步骤117:USBkey模块以与OTP模块相同的波特率,向OTP模块发送与所述获取应答值指令对应的加密的第二预设指令;
[0114] 步骤118:OTP模块接收到所述第二预设指令后,对指令进行解密,根据解密结果判断指令是否正确,如果是,则执行步骤120,否则向USBkey模块返回指令错误码,执行步骤119;
[0115] 步骤119:USBkey模块接收到所述指令错误码后,将指令错误次数增加预设值,判断指令错误次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤104,否则返回执行步骤114;
[0116] 步骤120:OTP模块获取OTP模块状态,并判断OTP模块状态是否为已验证PIN码状态,如果是,则执行步骤122,否则OTP模块向USBkey模块返回错误码,执行步骤121;
[0117] 当OTP模块接收到所述第二预设指令时,如果OTP模块休眠,则OTP模块被唤醒,等待接收用户输入的PIN码,并向USBkey模块返回未验证PIN码的错误码;
[0118] 步骤121:USBkey模块接收到所述错误码后,将指令错误次数增加预设值,判断指令错误次数是否达到第三预设次数,如果是,则向上位机返回错误响应,返回执行步骤104,否则返回执行步骤114;
[0119] 所述步骤121还可以为:USBkey模块接收到所述错误码后,直接向上位机返回错误响应,返回执行步骤104,继续等待接收上位机发送的获取应答值的指令;
[0120] 在本实施例中,步骤117至步骤121还可以替换为:
[0121] 步骤117-1:USBkey模块以与OTP模块相同的比特率,向OTP模块发送第一预设指令;
[0122] 步骤118-1:OTP模块接收到所述第一预设指令后,对指令进行解密,判断解密是否成功,如果是,则执行步骤120-1,否则向USBkey模块返回指令错误码,执行步骤119-1;
[0123] 步骤119-1:USBkey模块接收到指令错误码后,判断重新发送第一预设指令的次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤104,否则返回执行步骤117-1;
[0124] 步骤120-1:OTP模块获取OTP模块状态,生成包含所述OTP模块状态的加密的第四状态码,并返回给USBkey模块;
[0125] 步骤121-1:USBkey模块接收到所述第四状态码后,解密得到OTP模块状态,判断OTP模块状态是否为已验证PIN码状态,如果是,则执行步骤122-1,否则执行步骤123-1;
[0126] 步骤122-1:USBkey模块判断重新发送第一预设指令的次数是否达到第三预设次数,如果是,则向上位机返回错误响应,返回执行步骤104,否则返回执行步骤117-1;
[0127] 步骤123-1:USBkey模块以与OTP模块相同的比特率,向OTP模块发送第二预设指令;
[0128] 步骤124-1:OTP模块对接收到的第二预设指令进行解密,判断指令是否正确,如果是,则执行步骤122,否则OTP模块生成指令错误码,并返回给USBkey模块,执行步骤125-1;
[0129] 步骤125-1:USBkey模块接收到指令错误码后,判断重新发送第二预设指令的次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤104,否则返回执行步骤123-1;
[0130] 步骤122:OTP模块等待接收用户输入挑战值,当OTP模块接收到挑战值时,生成预设长度的应答值,根据所述应答值生成第二状态码,并返回给USBkey模块;
[0131] 在本实施例中,当USBkey模块接收到上位机发送的获取应答值指令后,在上位机上显示用户需要输入的挑战值,OTP模块等待接收用户通过智能密钥设备键盘输入的挑战值;
[0132] 优选的,所述预设字节为6字节或8字节;
[0133] 在本实施例中,步骤122还可以为:OTP模块获取所述指令中包含的挑战值,根据所述挑战值,生成预设字节的应答值,根据所述应答值生成第二状态码,并返回给USBkey模块;
[0134] 步骤123:USBkey模块根据接收到的第二状态码,生成第二响应,并将第二响应返回给上位机,返回执行步骤104;
[0135] 当第二状态码为55 12 37 5685215806851295 8798552136298507 6F时,根据第三状态码获取OTP模块返回的应答值为5685215806851295;
[0136] 参见图5,当USBkey模块接收到上位机发送的指令为按键签名指令时,执行以下操作:
[0137] 智能密钥设备接收到按键签名指令后,在智能密钥设备屏幕上显示输入PIN码窗口;
[0138] 步骤124:OTP模块等待接收用户输入的PIN码,判断在预设时间内是否接收到PIN码,如果是,则执行步骤125,否则返回未收到PIN码的响应,返回执行步骤104;
[0139] 步骤125:智能密钥设备判断收到的PIN码是否正确,如果是,则执行步骤126,否则返回PIN码错误的响应,返回执行步骤124;
[0140] 所述步骤125还包括:当PIN码错误时,返回执行步骤124的次数不得超过第一预设次数,如果达到第一预设次数时PIN码仍然错误,则向USBkey模块返回PIN码错误的响应,USBkey模块将所述响应返回给上位机,返回执行步骤104;
[0141] 步骤126:USBkey模块向OTP模块发送预设字节码;
[0142] 优选的,在本实施例中,所述预设字节码为0x00,所述USBkey模块向OTP模块发送预设字节码,用于测试波特率;优选的,在本实施例中,所述USBkey模块是通过UART接口向OTP 模块发送指令或通过UART(Universal Asynchronous Receiver/ Transmitter,通用异步接收/发送装置)接收OTP模块返回的指令;
[0143] 步骤127:OTP模块接收到预设字节码后,向USBkey模块返回响应码;
[0144] 优选的,所述响应码为0x55;
[0145] 步骤128:USBkey模块根据接收到的响应码的脉冲宽度,计算得到OTP模块的波特率;
[0146] 步骤129:USBkey模块以与OTP模块相同的波特率,向OTP模块发送与所述按键签名指令对应的加密的第三预设指令;
[0147] 步骤130:OTP模块接收到所述第三预设指令后,对指令进行解密,根据解密结果判断指令是否正确,如果是,则执行步骤132,否则向USBkey模块返回指令错误码,执行步骤131;
[0148] 步骤131:USBkey模块接收所述指令错误码,将指令错误次数增加预设值,判断指令错误次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤104,否则返回执行步骤126;
[0149] 步骤132:OTP模块获取OTP模块状态,并判断OTP模块状态是否为已验证PIN码状态,如果是,则执行步骤134,否则OTP模块向USBkey模块返回错误码,执行步骤133;
[0150] 当OTP模块接收到所述第三预设指令时,如果OTP模块休眠,则OTP模块被唤醒,等待接收用户输入的PIN码,并向USBkey模块返回未验证PIN码的错误码;
[0151] 步骤133:USBkey模块接收到所述错误码后,将错误次数增加预设值,判断所述错误次数是否达到第三预设次数,如果是,则向上位机返回错误响应,返回执行步骤104,否则返回执行步骤129;
[0152] 所述步骤133还可以为:USBkey模块接收到所述错误码后,直接向上位机返回错误响应,返回执行步骤104,继续等待接收上位机发送指令;
[0153] 在本实施例中,步骤129至步骤133还可以替换为:
[0154] 步骤129-1:USBkey模块以与OTP模块相同的比特率,向OTP模块发送第一预设指令;
[0155] 步骤130-1:OTP模块接收到所述第一预设指令后,对指令进行解密,判断解密是否成功,如果是,则执行步骤132-1,否则向USBkey模块返回指令错误码,执行步骤131-1;
[0156] 步骤131-1:USBkey模块接收到指令错误码后,判断重新发送第一预设指令的次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤104,否则返回执行步骤129-1;
[0157] 步骤132-1:OTP模块获取OTP模块状态,生成包含所述OTP模块状态的加密的第四状态码,并返回给USBkey模块;
[0158] 步骤133-1:USBkey模块接收到所述第四状态码后,解密得到OTP模块状态,判断OTP模块状态是否为已验证PIN码状态,如果是,则执行步骤135-1,否则执行步骤134-1;
[0159] 在本实施例中,如果解密不成功,则向上位机返回错误的响应,执行步骤104;
[0160] 步骤134-1:USBkey模块判断重新发送第一预设指令的次数是否达到第三预设次数,如果是,则向上位机返回错误响应,返回执行步骤104,否则返回执行步骤129-1;
[0161] 步骤135-1:USBkey模块以与OTP模块相同的比特率,向OTP模块发送第二预设指令;
[0162] 步骤136-1:OTP模块对接收到的第二预设指令进行解密,判断指令是否正确,如果是,则执行步骤134,否则OTP模块生成指令错误码,并返回给USBkey模块,执行步骤137-1;
[0163] 步骤137-1:USBkey模块接收到指令错误码后,将指令错误系数增加预设值,判断指令错误次数是否达到第三预设次数,如果是,则向上位机返回指令错误的响应,返回执行步骤104,否则返回执行步骤129-1;
[0164] 步骤134:OTP模块等待接收按键信息,当OTP模块接收到按键信息后,将包含所述按键信息的加密的第三状态码返回给USBkey模块;
[0165] 步骤135:USBkey模块根据接收到的第三状态码,解密得到第三状态码中的按键信息;
[0166] 在本实施例中,当第三状态码为55 0A AA 5498321585048528 6D时,表示获取的是确认按键信息;当第三状态码为55 0A AB 5498321585048528 6C时,表示获取的是取消按键信息;
[0167] 步骤136:USBkey模块判断所述按键信息是否为确认按键信息,如果是,则执行步骤137,否则取消签名操作,执行步骤138;
[0168] 步骤137:USBkey模块执行签名操作,执行步骤138;
[0169] 步骤138:USBkey模块生成第三响应,返回给上位机,执行步骤104;
[0170] 所述第三响应为执行签名操作成功或失败的响应;
[0171] 参见图6:当所述智能密钥设备脱机时,如果接收到开机键按下,则执行步骤T1至步骤T3:
[0172] 步骤T1:在智能密钥设备显示屏上显示等待输入PIN码的信息,OTP模块等待接收用户输入的PIN码;
[0173] 步骤T2:OTP模块接收到用户通过智能密钥设备键盘输入的PIN码,判断与OTP模块保存的PIN码是否匹配,如果是,则将OTP模块状态置为已验证PIN码状态,等待接收按键信息,当接收到按键信息时执行相应操作,否则执行步骤T3:
[0174] 其中,当接收到按键信息时执行相应操作,包括:接收用户输入的挑战值,在按下确认键后生成应答值;接收用户直接按下确认键,用于生成时间口令;接收用户长按删除键,用于修改PIN码等;
[0175] 步骤T3:OTP模块将PIN码错误次数增加预设值,判断PIN码错误次数是否达到第一预设次数,如果是,则将OTP模块状态置为未验证PIN码状态,OTP模块休眠,否则返回执行步骤T1。