一种安全设备的解锁方法和系统的制作方法

文档序号:7776211
一种安全设备的解锁方法和系统的制作方法
【专利摘要】本发明公开一种安全设备的解锁方法和系统,认证服务器根据安全设备生成的动态口令生成解锁码,并通过主机将解锁码发送给安全设备;安全设备对接收到的解锁码进行校验,并在校验通过后执行解锁操作,能够有效避免解锁码在传输过程中被篡改或假冒而引起的安全风险,且不需要用户手动输入解锁码,提高了使用的方便性,同时解决了由于用户输入出错而导致解锁失败的问题,提高了解锁的成功率以及解锁的安全性。此外,由于认证服务器生成的解锁码与时间无关,解决了现有技术中由于安全设备和认证服务器之间时间不同步而造成的解锁失败问题,进一步提高了解锁成功率。
【专利说明】一种安全设备的解锁方法和系统
【技术领域】
[0001]本发明涉及信息安全【技术领域】,特别涉及一种安全设备的解锁方法和系统。
【背景技术】
[0002]安全设备是一种用于生成动态口令的设备,广泛应用于网银、电信运营商和电子政务等应用领域。安全设备所生成的动态口令可用于身份认证,能够有效提高身份认证的安全性。安全设备开机后,会提示用户输入开机口令,如果用户输入开机口令的错误次数超过预设次数,安全设备会被锁定,需要使用认证服务器生成的解锁码进行解锁。
[0003]现有技术中,认证服务器通常根据系统时间生成解锁码,用户将该解锁码输入到安全设备中,安全设备根据用户输入的解锁码进行解锁操作。
[0004]发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
[0005]现有技术通过非联机的方式对安全设备进行解锁,需要由用户手工输入解锁码,当用户手工输入出错时,也会造成解锁失败,导致解锁成功率低,安全性差。

【发明内容】

[0006]本发明提供了一种安全设备的解锁方法和系统,以解决现有技术中解锁成功率低以及安全性差的缺陷。
[0007]本发明提供了一种安全设备的解锁方法,应用于包括安全设备、主机和认证服务器的系统中,所述安全设备包括智能密钥模块和动态令牌模块,所述方法包括以下步骤:
[0008]S1、所述智能密钥模块与所述主机建立连接;
[0009]S2、所述智能密钥模块等待接收来自所述主机的指令;
[0010]S3、所述智能密钥模块对接收到的指令进行判断,如果是验PIN指令,则执行步骤S4 ;如果是解锁初始化指令,则执行步骤S6 ;如果是解锁指令,则执行步骤SlO ;
[0011]S4、所述智能密钥模块从所述验PIN指令中获取身份信息,对所述身份信息进行验证,如果验证通过,则执行步骤S5 ;否则,向所述主机发送错误信息,并返回步骤S2 ;
[0012]S5、所述智能密钥模块将验PIN标识置位,并返回步骤S2 ;
[0013]S6、所述智能密钥模块判断所述验PIN标识是否置位,如果是,则执行步骤S7 ;否则,向所述主机发送错误信息,并返回步骤S2 ;
[0014]S7、所述智能密钥模块将所述解锁初始化指令发送给所述动态令牌模块;
[0015]S8、所述动态令牌模块生成随机数,根据所述随机数和自身保存的种子密钥生成动态口令,保存所述随机数和所述动态口令,将初始化标识置位,并将所述随机数和所述动态口令发送给所述智能密钥模块;
[0016]S9、所述智能密钥模块将所述随机数、所述动态口令和所述安全设备的序列号发送给所述主机,并返回步骤S2 ;
[0017]S10、所述智能密钥模块将所述解锁指令发送给所述动态令牌模块;
[0018]S11、所述动态令牌模块判断所述初始化标识是否置位,如果是,则执行步骤S12 ;否则,所述动态令牌模块向所述智能密钥模块发送错误信息,所述智能密钥模块向所述主机发送错误信息,并返回步骤S2 ;
[0019]S12、所述动态令牌模块从所述解锁指令中获取解锁码,根据自身保存的随机数和动态口令,对获取到的解锁码进行校验,如果校验通过,则执行步骤S13 ;否则,所述动态令牌模块向所述智能密钥模块发送错误信息,所述智能密钥模块向所述主机发送错误信息,并返回步骤S2;
[0020]S13、所述动态令牌模块设置开机口令,将自身的状态信息更新为解锁状态,向所述智能密钥模块发送解锁成功信息;
[0021]S14、所述智能密钥模块向所述主机发送解锁成功信息,并返回步骤S2 ;
[0022]其中,所述智能密钥模块与所述主机断开连接之后,还包括:
[0023]所述智能密钥模块将所述验PIN标识复位,所述动态令牌模块将所述初始化标识复位。
[0024]本发明还提供了一种安全设备的解锁系统,包括安全设备、主机和认证服务器,所述安全设备包括智能密钥模块和动态令牌模块,其中,所述智能密钥模块包括:
[0025]连接子模块,用于与所述主机建立连接;
[0026]第一接收子模块,用于接收来自所述主机的指令;接收来自所述动态令牌模块的随机数、动态口令、错误信息和解锁成功消息;
[0027]第一判断子模块,用于对所述第一接收子模块接收到的指令进行判断;
[0028]验证子模块,用于在所述第一判断子模块判断出接收到的指令为验PIN指令时,从所述验PIN指令中获取身份信息,对所述身份信息进行验证;
[0029]置位子模块,用于在所述验证子模块对所述身份信息验证通过时,将验PIN标识置位;
[0030]第二判断子模块,用于在所述第一判断子模块判断出接收到的指令为解锁初始化指令时,判断所述验PIN标识是否置位;
[0031]第一发送子模块,用于在所述第二判断子模块判断所述验PIN标识置位时,将所述解锁初始化指令发送给所述动态令牌模块;将所述第一接收子模块接收到的所述随机数、所述动态口令和所述安全设备的序列号发送给所述主机;在所述第一判断子模块判断出接收到的指令为解锁指令时,将所述解锁指令发送给所述动态令牌模块;在所述第一接收子模块接收到来自所述动态令牌模块的解锁成功消息时,向所述主机发送解锁成功消息;在所述验证子模块对所述身份信息验证未通过时,向所述主机发送错误信息;在所述第二判断子模块判断所述验PIN标识未置位时,向所述主机发送错误信息;在所述第一接收子模块接收到来自所述动态令牌模块的错误信息时,向所述主机发送错误信息;
[0032]第一复位子模块,用于在所述智能密钥模块与所述主机断开连接后,将所述验PIN标识复位;
[0033]所述动态令牌模块包括:
[0034]第二接收子模块,用于接收来自所述智能密钥模块的所述解锁初始化指令和解锁指令;
[0035]生成子模块,用于在所述第二接收子模块接收到所述解锁初始化指令后,生成随机数,根据所述随机数和自身保存的种子密钥生成动态口令,保存所述随机数和所述动态口令,将初始化标识置位;
[0036]第三判断子模块,用于在所述第二接收子模块接收到所述解锁指令后,判断所述初始化标识是否置位;
[0037]校验子模块,用于在所述第三判断子模块判断出所述初始化标识置位时,从所述解锁指令中获取解锁码,根据所述动态令牌模块保存的随机数和动态口令,对获取到的解锁码进行校验;
[0038]设置子模块,用于在所述校验子模块对所述获取到的解锁码校验通过后,开机口令,将自身的状态信息更新为解锁状态,向所述智能密钥模块发送解锁成功信息;
[0039]第二发送子模块,用于将所述生成子模块生成的所述随机数和所述动态口令发送给所述智能密钥模块;在所述第三判断子模块判断出所述初始化标识未置位时,向所述智能密钥模块发送错误信息;在所述校验子模块对所述获取到的解锁码校验未通过后,向所述智能密钥模块发送错误信息;
[0040]第二复位子模块,用于在所述智能密钥模块与所述主机断开连接后,将所述初始化标识复位。
[0041]本发明提供的技术方案中,认证服务器根据安全设备生成的动态口令生成解锁码,并通过主机将解锁码发送给安全设备;安全设备对接收到的解锁码进行校验,并在校验通过后执行解锁操作,能够有效避免解锁码在传输过程中被篡改或假冒而引起的安全风险,且不需要用户手动输入解锁码,提高了使用的方便性,同时解决了由于用户输入出错而导致解锁失败的问题,提高了解锁的成功率以及解锁的安全性。此外,由于认证服务器生成的解锁码与时间无关,解决了现有技术中由于安全设备和认证服务器之间时间不同步而造成的解锁失败问题,进一步提高了解锁成功率。
【专利附图】

【附图说明】
[0042]图1为本发明实施例中的安全设备的解锁系统的结构示意图;
[0043]图2为本发明实施例中的安全设备的解锁方法流程图;
[0044]图3为本发明实施例中的主机和认证服务器的工作流程图;
[0045]图4为本发明实施例中的安全设备的结构示意图;
[0046]图5为本发明实施例中的主机的结构示意图;
[0047]图6为本发明实施例中的认证服务器的结构示意图。
【具体实施方式】
[0048]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]如图1所示,本发明实施例中的安全设备的解锁方法应用于包括安全设备、主机和认证服务器的系统中,安全设备包括智能密钥模块和动态令牌模块,安全设备与主机相连接,连接方式可以是有线连接,例如,USB连接和串口连接等;也可以是无线连接,例如,蓝牙、WIFI和NFC等方式。安全设备被锁定后,用户可使用账号和密码登录主机中的客户端,并通过客户端触发解锁操作。
[0050]如图2所示,为本发明实施例中的一种安全设备的解锁方法流程图,包括以下步骤:
[0051]步骤201,智能密钥模块与主机建立连接。
[0052]步骤202,智能密钥模块等待接收来自主机的指令。
[0053]步骤203,智能密钥模块对接收到的指令进行判断,如果是验PIN指令,则执行步骤204 ;如果是状态查询指令,则执行步骤206 ;如果是解锁初始化指令,则执行步骤210 ;如果是解锁指令,则执行步骤217。
[0054]步骤204,智能密钥模块从验PIN指令中获取身份信息,对身份信息进行验证,如果验证通过,则执行步骤205 ;否则,向主机发送错误信息,并返回步骤202。
[0055]需要说明的是,智能密钥模块向主机发送错误信息后,主机和安全设备显示解锁失败信息,例如 “EKEYERR_OTP_UNLOCKFAILED”。
[0056]步骤205,智能密钥模块将验PIN标识置位,并返回步骤202。
[0057]步骤206,智能密钥模块判断验PIN标识是否置位,如果是,则执行步骤207 ;否则,向主机发送错误信息,并返回步骤202。
[0058]需要说明的是,智能密钥模块向主机发送错误信息后,主机和安全设备显示解锁失败信息,例如 “EKEYERR_OTP_UNLOCKFAILED”。
[0059]步骤207,智能密钥模块将状态查询指令发送给动态令牌模块。
[0060]步骤208,动态令牌模块查询自身的状态信息,将查询到的状态信息发送给智能密钥模块。
[0061]步骤209,智能密钥模块将状态信息发送给主机,并返回步骤202。
[0062]步骤210,智能密钥模块判断验PIN标识是否置位,如果是,则执行步骤211 ;否则,向主机发送错误信息,并返回步骤202。
[0063]需要说明的是,智能密钥模块向主机发送错误信息后,主机和安全设备显示解锁失败信息,例如 “EKEYERR_OTP_UNLOCKFAILED”。
[0064]步骤211,智能密钥模块将解锁初始化指令发送给动态令牌模块。
[0065]其中,解锁初始化指令中可以包含随机数长度和动态口令长度。
[0066]例如,解锁初始化指令中包含随机数长度“4”和动态口令长度“8”。
[0067]步骤212,动态令牌模块对初始化次数进行更新。
[0068]具体地,动态令牌模块可以将初始化次数的取值与预设步长相加,将得到的结果作为更新后的初始化次数;也可以将初始化次数的取值减去预设步长,将得到的结果作为更新后的初始化次数。
[0069]例如,初始化次数为零,预设步长为I时,动态令牌模块将初始化次数加1,将初始化次数更新为I。
[0070]本实施例中,初始化次数用于记录动态令牌模块被触发进行初始化的次数,即,接收到解锁初始化指令的次数。当智能密钥模块与主机断开连接后,动态令牌模块将初始化次数设置为第一预设值,例如,将初始化次数设置为零。
[0071]步骤213,动态令牌模块判断初始化次数是否等于预设阈值,如果是,则动态令牌模块通过智能密钥模块向主机返回错误信息,并返回步骤202 ;否则,执行步骤214。[0072]例如,初始化次数为1,预设阈值为3时,动态令牌模块判断出初始化次数不等于预设阈值。
[0073]需要说明的是,智能密钥模块向主机发送错误信息后,主机和安全设备显示解锁失败信息,例如 “EKEYERR_OTP_UNLOCKFAILED”。
[0074]步骤214,动态令牌模块生成随机数,根据随机数和自身保存的种子密钥生成动态口令,保存随机数和动态口令,将初始化标识置位。
[0075]具体地,动态令牌模块可以根据解锁初始化指令中包含的随机数长度,生成相应长度的随机数,将该随机数作为挑战值,将上述随机数、第二预设值以及自身保存的种子密钥组合成第一消息,并对第一消息进行散列处理,将处理得到的散列值作为动态口令,并保存上述随机数和动态口令,对初始化标识进行置位。
[0076]其中,随机数和动态口令可以为可见的ASCII码数字,初始化标识用于记录解锁初始化是否成功。当智能密钥模块断开与主机的连接后,动态令牌模块可以对初始化标识进行复位。初始化标识置位,表示解锁初始化成功;初始化标识复位,表示解锁初始化失败。
[0077]例如,第二预设值为16进制的8字节全O的数据,S卩,“0x0000000000000000”时,动态令牌模块生成随机数“ 1234”,将该随机数“ 1234”作为挑战值,将第二预设值“0x0000000000000000”作为动态因子,将随机数“1234”、第二预设值“0x0000000000000000”和自身保存的种子密钥组合成第一消息,并对第一消息进行散列处理,将得到的处理结果“41929019”作为动态口令进行保存,并对初始化标识进行置位。
[0078]步骤215,动态令牌模块将随机数和动态口令发送给智能密钥模块。
[0079]例如,动态令牌模块将随机数“ 1234”和动态口令“41929019”发送给智能密钥模块。
[0080]步骤216,智能密钥模块将随机数、动态口令和安全设备的序列号发送给主机,并返回步骤202。
[0081]例如,智能密钥模块将随机数“1234”、动态口令“41929019”和安全设备的序列号“54561”发送给主机。
[0082]步骤217,智能密钥模块将解锁指令发送给动态令牌模块。
[0083]步骤218,动态令牌模块判断初始化标识是否置位,如果是,则执行步骤219 ;否则,动态令牌模块向智能密钥模块发送错误信息,智能密钥模块向主机发送错误信息,并返回步骤202。
[0084]需要说明的是,智能密钥模块向主机发送错误信息后,主机和安全设备显示解锁失败信息,例如 “EKEYERR_OTP_UNLOCKFAILED”。
[0085]步骤219,动态令牌模块从解锁指令中获取解锁码,根据自身保存的随机数和动态口令,对获取到的解锁码进行校验,如果校验通过,则执行步骤220 ;如果校验未通过,则动态令牌模块向智能密钥模块发送错误信息,智能密钥模块向主机发送错误信息,并返回步骤 202。
[0086]具体地,动态令牌模块可以对自身保存的动态口令的长度进行判断,如果保存的动态口令的长度为预设长度,则将保存的随机数、保存的动态口令以及保存的种子密钥组合成第六消息,并对第六消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;
[0087]如果保存的动态口令的长度大于预设长度,则从保存的动态口令中截取长度为预设长度的数据,将保存的随机数、截取得到的数据以及保存的种子密钥组合成第七消息,并对第七消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;
[0088]如果保存的动态口令的长度小于预设长度,则在保存的动态口令的高位端或低位端补零,将保存的随机数、补零得到的数据以及保存的种子密钥组合成第八消息,并对第八消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;其中,预设长度为第二预设值的长度。
[0089]例如,动态令牌模块保存的随机数为“ 1234 ”,保存的动态口令为“ 41929019 ”,获取到的解锁码为“95046765”,预设长度为8字节时,动态令牌模块对保存的动态口令“41929019”进行高位补零,得到8字节的16进制数据“0x0000000041929019”,将补零得到的数据“0x0000000041929019”作为动态因子,将保存的随机数“ 1234”、补零得到的数据“0x0000000041929019”以及保存的种子密钥组合成第八消息,并对第八消息进行散列处理,将处理得到的散列值“95046765”作为生成的解锁码,判断出该解锁码与从解锁指令中获取到的解锁码相同,确定校验通过。
[0090]需要说明的是,智能密钥模块向主机发送错误信息后,主机和安全设备显示解锁失败信息,例如 “EKEYERR_OTP_UNLOCKFAILED”。
[0091]步骤220,动态令牌模块设置开机口令,将自身的状态信息更新为解锁状态,向智能密钥模块发送解锁成功信息。
[0092]具体地,动态令牌模块可以获取并保存用户输入的开机口令,将自身的状态信息更新为解锁状态,向智能密钥模块发送解锁成功信息;也可以将开机指令设置为预设数据,将自身的状态信息更新为解锁状态,向智能密钥模块发送解锁成功信息;还可以通过智能密钥模块接收来自主机的口令设置指令,将口令设置指令中的数据设置为开机口令。
[0093]本实施例中,动态令牌模块可以向智能密钥模块发送校验通过响应,智能密钥模块向主机发送校验通过响应;主机获取用户输入的开机口令,将开机口令发送给智能密钥模块;智能密钥模块将开机口令发送给动态令牌模块,动态令牌模块保存该开机口令将自身的状态信息更新为解锁状态,向智能密钥模块发送解锁成功信息。
[0094]步骤221,智能密钥模块向主机发送解锁成功信息,并返回步骤202。
[0095]需要说明的是,智能密钥模块向主机发送解锁成功信息后,主机和安全设备显示解锁成功信息,例如,“EKEYERR_0TP_UNL0CKED”。
[0096]另外,在本发明的其他实施方式中,动态令牌模块接收到解锁初始化指令之后,还可以判断初始化次数是否等于预设阈值,如果是,则通过智能密钥模块向主机返回错误信息;否则,对初始化次数进行更新,并执行步骤214,同样可以实现本发明的发明目的。
[0097]此外,智能密钥模块将随机数、动态口令和安全设备的序列号发送给主机之后,主机和认证服务器的工作流程,如图3所示,包括以下步骤:
[0098]步骤301,主机将随机数、动态口令和安全设备的序列号发送给认证服务器。
[0099]例如,主机将随机数“1234”、动态口令“41929019”和安全设备的序列号“54561”发送给认证服务器。
[0100]步骤302,认证服务器根据序列号检索与安全设备对应的种子密钥,根据检索到的种子密钥对接收到的随机数和接收到的动态口令进行校验,如果校验通过,则执行步骤305 ;如果校验未通过,则执行步骤303。
[0101]具体地,认证服务器可以根据安全设备的序列号,检索与该序列号对应的种子密钥,将接收到的随机数作为挑战值,将第二预设值作为动态因子,将随机数、第二预设值以及检索到的种子密钥组合成第二消息,并对第二消息进行散列处理,将处理得到的散列值作为生成的动态口令,并判断生成的动态口令与接收到的动态口令是否相同,如果相同,则确定接收到的随机数和动态口令校验通过;否则,确定接收到的随机数和动态口令校验未通过。
[0102]例如,第二预设值为16进制的8字节全O的数据,即,“0x0000000000000000”时,
认证服务器根据接收到的安全设备的序列号“54561”,检索对应的种子密钥,将接收到的随机数“ 1234”作为挑战值,将第二预设值“0x0000000000000000”作为动态因子,将随机数“1234”、第二预设值“0x0000000000000000”和检索到的种子密钥组合成第二消息,并对第二消息进行散列处理,将处理得到的散列值“41929019”作为生成的动态口令,并判断出该动态口令与接收到的动态口令“41929019”相同,进而确定接收到的随机数和动态口令校验通过。
[0103]步骤303,认证服务器向主机返回错误码。
[0104]步骤304,主机向智能密钥模块返回错误码,安全设备和主机显示解锁失败信息。
[0105]步骤305,认证服务器根据接收到的随机数和接收到的动态口令,生成解锁码,并将该解锁码发送给主机。
[0106]具体地,认证服务器可以对接收到的动态口令的长度进行判断,如果接收到的动态口令的长度为预设长度,则将接收到的动态口令作为动态因子,将接收到的随机数、动态口令以及根据安全设备的序列号检索到的种子密钥组合成第三消息,并对第三消息进行散列处理,将处理得到的散列值作为解锁码;如果接收到的动态口令的长度大于预设长度,则从该动态口令中截取长度为预设长度的数据,将截取得到的数据作为动态因子,将接收到的随机数、截取得到的数据以及根据安全设备的序列号检索到的种子密钥组合成第四消息,并对第四消息进行散列处理,将处理得到的散列值作为解锁码;如果接收到的动态口令的长度小于预设长度,则在该动态口令的高位端或低位端补零,将补零得到的、长度为预设长度的数据作为动态因子,将接收到的随机数、补零得到的数据以及根据安全设备的序列号检索到的种子密钥组合成第五消息,并对第五消息进行散列处理,将处理得到的散列值作为解锁码。其中,预设长度为第二预设值的长度。
[0107]例如,当认证服务器接收到的随机数为“1234”,动态口令为“41929019”,预设长度为8字节时,认证服务器对接收到的动态口令“41929019”进行高位补零,得到8字节的16进制数据“0x0000000041929019”,将补零得到的数据“0x0000000041929019”作为动态因子,将接收到的随机数“1234”、补零得到的数据“0x0000000041929019”以及根据安全设备的序列号检索到的种子密钥组合成第五消息,并对第五消息进行散列处理,将处理得到的散列值“95046765”作为解锁码,并将解锁码“95046765”发送给主机。
[0108]步骤306,主机根据解锁码生成解锁指令,将解锁指令发送给智能密钥模块。[0109]本发明实施例中,认证服务器根据安全设备生成的动态口令生成解锁码,并通过主机将解锁码发送给安全设备;安全设备对接收到的解锁码进行校验,并在校验通过后执行解锁操作,能够有效避免解锁码在传输过程中被篡改或假冒而引起的安全风险,且不需要用户手动输入解锁码,提高了使用的方便性,同时解决了由于用户输入出错而导致解锁失败的问题,提高了解锁的成功率以及解锁的安全性。此外,由于认证服务器生成的解锁码与时间无关,解决了现有技术中由于安全设备和认证服务器之间时间不同步而造成的解锁失败问题,进一步提高了解锁成功率。
[0110]本发明实施例还提供了一种安全设备的解锁系统,包括安全设备、主机和认证服务器,如图4所示,安全设备包括智能密钥模块410和动态令牌模块450,其中,智能密钥模块410包括:
[0111]连接子模块411,用于与主机建立连接;
[0112]第一接收子模块412,用于接收来自主机的指令;接收来自动态令牌模块450的随机数、动态口令、错误信息和解锁成功消息;
[0113]第一判断子模块413,用于对第一接收子模块412接收到的指令进行判断;
[0114]验证子模块414,用于在第一判断子模块413判断出接收到的指令为验PIN指令时,从验PIN指令中获取身份信息,对身份信息进行验证;
[0115]置位子模块415,用于在验证子模块414对身份信息验证通过时,将验PIN标识置位;
[0116]第二判断子模块416,用于在第一判断子模块413判断出接收到的指令为解锁初始化指令时,判断验PIN标识是否置位;
[0117]第一发送子模块417,用于在第二判断子模块416判断验PIN标识置位时,将解锁初始化指令发送给动态令牌模块450 ;将第一接收子模块412接收到的随机数、动态口令和安全设备的序列号发送给主机;在第一判断子模块413判断出接收到的指令为解锁指令时,将解锁指令发送给动态令牌模块450 ;在第一接收子模块412接收到来自动态令牌模块450的解锁成功消息时,向主机发送解锁成功消息;在验证子模块414对身份信息验证未通过时,向主机发送错误信息;在第二判断子模块416判断验PIN标识未置位时,向主机发送错误信息;在第一接收子模块412接收到来自动态令牌模块450的错误信息时,向主机发送错误信息;
[0118]第一复位子模块418,用于在智能密钥模块410与主机断开连接后,将验PIN标识复位;
[0119]动态令牌模块450包括:
[0120]第二接收子模块451,用于接收来自智能密钥模块410的解锁初始化指令和解锁指令;
[0121]生成子模块452,用于在第二接收子模块451接收到解锁初始化指令后,生成随机数,根据随机数和自身保存的种子密钥生成动态口令,保存随机数和动态口令,将初始化标识置位;
[0122]第三判断子模块453,用于在第二接收子模块451接收到解锁指令后,判断初始化标识是否置位;
[0123]校验子模块454,用于在第三判断子模块453判断出初始化标识置位时,从解锁指令中获取解锁码,根据动态令牌模块450保存的随机数和动态口令,对获取到的解锁码进行校验;
[0124]设置子模块455,用于在校验子模块454对获取到的解锁码校验通过后,开机口令,将自身的状态信息更新为解锁状态,向智能密钥模块410发送解锁成功信息;
[0125]具体地,上述设置子模块455,具体用于获取并保存用户输入的开机口令;
[0126]或者,将开机指令设置为预设数据;
[0127]或者,通过智能密钥模块410接收来自主机的口令设置指令,将口令设置指令中的数据设置为开机口令。
[0128]第二发送子模块456,用于将生成子模块452生成的随机数和动态口令发送给智能密钥模块410 ;在第三判断子模块453判断出初始化标识未置位时,向智能密钥模块410发送错误信息;在校验子模块454对获取到的解锁码校验未通过后,向智能密钥模块410发送错误信息;
[0129]第二复位子模块457,用于在智能密钥模块410与主机断开连接后,将初始化标识复位。
[0130]优选地,智能密钥模块410中的第一接收子模块412,还用于接收来自主机的状态查询指令,接收来自动态令牌模块450的状态信息;
[0131]相应地,智能密钥模块410,还包括:
[0132]第四判断子模块419,用于在第一接收子模块412接收到状态查询指令后,判断验PIN标识是否置位;
[0133]第一发送子模块417,还用于在第四判断子模块419判断出验PIN标识置位时,将状态查询指令发送给动态令牌模块450 ;在第四判断子模块419判断出验PIN标识未置位时,向主机发送错误信息;将第一接收子模块412接收到的状态信息发送给主机;
[0134]动态令牌模块450,还包括:
[0135]查询子模块458,用于查询动态令牌模块450的状态信息;
[0136]第二发送子模块456,还用于将查询子模块458查询到的状态信息发送给智能密钥模块410。
[0137]优选地,动态令牌模块450中的设置子模块455,还用于在智能密钥模块410与主机断开连接后,将初始化次数设置为第一预设值;
[0138]相应地,动态令牌模块450,还包括:更新子模块459和第五判断子模块460 ;
[0139]其中,更新子模块459,用于在第二接收子模块451接收到解锁初始化指令后,对初始化次数进行更新;第五判断子模块460,用于判断初始化次数是否等于预设阈值;
[0140]相应地,第二发送子模块456,还用于在第五判断子模块460判断出初始化次数等于预设阈值时,向智能密钥模块410返回错误信息;生成子模块452,具体用于在第五判断子模块460判断出初始化次数不等于预设阈值时,生成随机数,根据随机数和自身保存的种子密钥生成动态口令,保存随机数和动态口令,将初始化标识置位。
[0141]或者,
[0142]第五判断子模块460,用于在第二接收子模块451接收到解锁初始化指令后,判断初始化次数是否等于预设阈值;更新子模块459,用于在第五判断子模块460判断出初始化次数不等于预设阈值时,对初始化次数进行更新,并触发生成子模块452生成随机数和动态口令;
[0143]相应地,第二发送子模块456,还用于在第五判断子模块460判断出初始化次数等于预设阈值时,向智能密钥模块410返回错误信息。
[0144]其中,更新子模块459,具体用于动态令牌模块450对初始化次数进行更新,具体为:
[0145]将初始化次数的取值与预设步长相加,将得到的结果作为更新后的初始化次数;
[0146]或者,
[0147]将初始化次数的取值减去预设步长,将得到的结果作为更新后的初始化次数。
[0148]如图5所示,主机,包括:
[0149]第一接收模块510,用于接收来自智能密钥模块410的随机数、动态口令和安全设备的序列号;接收认证服务器返回的解锁码和错误码;
[0150]第一生成模块520,用于根据第一接收模块510接收到的解锁码,生成解锁指令;
[0151]第一发送模块530,用于将第一接收模块510接收到的随机数、动态口令和安全设备的序列号发送给认证服务器;将第一生成模块520生成的解锁指令发送给智能密钥模块410 ;在第一接收模块510接收到来自认证服务器的错误码时,向智能密钥模块410返回错误码;
[0152]优选地,动态令牌模块450中的第二发送子模块456,还用于在校验子模块454对获取到的解锁码校验通过后,向智能密钥模块410发送校验通过响应;
[0153]相应地,智能密钥模块410中的第一接收子模块412,还用于接收来自动态令牌模块450的校验通过响应;接收来自主机的开机口令;
[0154]智能密钥模块410中的第一发送子模块417,还用于在第一接收子模块412接收到来自动态令牌模块450的校验通过响应后,向主机发送校验通过响应;将第一接收子模块412接收到的开机口令发送给动态令牌模块450 ;
[0155]主机,还包括:
[0156]获取模块540,用于获取用户输入的开机口令;
[0157]第一发送模块530,还用于将获取模块540获取的开机口令发送给智能密钥模块410。
[0158]如图6所示,认证服务器,包括:
[0159]第二接收模块610,用于接收来自主机的随机数、动态口令和安全设备的序列号;
[0160]校验模块620,用于根据第二接收模块610接收到的序列号,检索与安全设备对应的种子密钥,根据检索到的种子密钥对接收到的随机数和接收到的动态口令进行校验;
[0161]第二生成模块630,用于在校验模块620对接收到的随机数和接收到的动态口令校验通过时,根据接收到的随机数和接收到的动态口令,生成解锁码;
[0162]具体地,第二生成模块630,具体用于在校验模块620对接收到的随机数和接收到的动态口令校验通过时,对接收到的动态口令的长度进行判断;
[0163]如果接收到的动态口令的长度为预设长度,则将接收到的随机数、接收到的动态口令以及检索到的种子密钥组合成第三消息,并对第三消息进行散列处理,将处理得到的散列值作为解锁码;
[0164]如果接收到的动态口令的长度大于预设长度,则从接收到的动态口令中截取长度为预设长度的数据,将接收到的随机数、截取得到的数据以及检索到的种子密钥组合成第四消息,并对第四消息进行散列处理,将处理得到的散列值作为解锁码;
[0165]如果接收到的动态口令的长度小于预设长度,则在接收到的动态口令的高位端或低位端补零,将接收到的随机数、补零得到的数据以及检索到的种子密钥组合成第五消息,并对第五消息进行散列处理,将处理得到的散列值作为解锁码;
[0166]相应地,动态令牌模块450中的校验子模块454,用于在第三判断子模块453判断出初始化标识置位时,从解锁指令中获取解锁码,对动态令牌模块450保存的动态口令的长度进行判断;
[0167]如果保存的动态口令的长度为预设长度,则将保存的随机数、保存的动态口令以及保存的种子密钥组合成第六消息,并对第六消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;
[0168]如果保存的动态口令的长度大于预设长度,则从保存的动态口令中截取长度为预设长度的数据,将保存的随机数、截取得到的数据以及保存的种子密钥组合成第七消息,并对第七消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;
[0169]如果保存的动态口令的长度小于预设长度,则在保存的动态口令的高位端或低位端补零,将保存的随机数、补零得到的数据以及保存的种子密钥组合成第八消息,并对第八消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;其中,预设长度为第二预设值的长度。
[0170]第二发送模块640,用于将第二生成模块630生成的解锁码返回给主机;在校验模块620对接收到的随机数和接收到的动态口令校验通过时,向主机返回错误码。
[0171]优选地,动态令牌模块450中的生成子模块452,具体用于在第二接收子模块451接收到解锁初始化指令后,生成随机数,将随机数、第二预设值以及自身保存的种子密钥组合成第一消息,并对第一消息进行散列处理,将处理得到的散列值作为动态口令,保存随机数和动态口令,将初始化标识置位;
[0172]相应地,校验模块620,具体用于根据第二接收模块610接收到的序列号,检索与安全设备对应的种子密钥,将接收到的随机数、第二预设值以及与检索到的种子密钥组合成第二消息,并对第二消息进行散列处理,将处理得到的散列值作为生成的动态口令,判断生成的动态口令与接收到的动态口令是否相同,如果相同,则确定接收到的随机数和接收到的动态口令校验通过;否则,确定接收到的随机数和接收到的动态口令校验未通过。
[0173]本发明实施例中,认证服务器根据安全设备生成的动态口令生成解锁码,并通过主机将解锁码发送给安全设备;安全设备对接收到的解锁码进行校验,并在校验通过后执行解锁操作,能够有效避免解锁码在传输过程中被篡改或假冒而引起的安全风险,且不需要用户手动输入解锁码,提高了使用的方便性,同时解决了由于用户输入出错而导致解锁失败的问题,提高了解锁的成功率以及解锁的安全性。此外,由于认证服务器生成的解锁码与时间无关,解决了现有技术中由于安全设备和认证服务器之间时间不同步而造成的解锁失败问题,进一步提高了解锁成功率。[0174]结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0175]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种安全设备的解锁方法,其特征在于,应用于包括安全设备、主机和认证服务器的系统中,所述安全设备包括智能密钥模块和动态令牌模块,所述方法包括以下步骤:51、所述智能密钥模块与所述主机建立连接;52、所述智能密钥模块等待接收来自所述主机的指令;53、所述智能密钥模块对接收到的指令进行判断,如果是验PIN指令,则执行步骤S4;如果是解锁初始化指令,则执行步骤S6 ;如果是解锁指令,则执行步骤SlO ;54、所述智能密钥模块从所述验PIN指令中获取身份信息,对所述身份信息进行验证,如果验证通过,则执行步骤S5 ;否则,向所述主机发送错误信息,并返回步骤S2 ;55、所述智能密钥模块将验PIN标识置位,并返回步骤S2;56、所述智能密钥模块判断所述验PIN标识是否置位,如果是,则执行步骤S7;否则,向所述主机发送错误信息,并返回步骤S2 ;57、所述智能密钥模块将所述解锁初始化指令发送给所述动态令牌模块;58、所述动态令牌模块生成随机数,根据所述随机数和自身保存的种子密钥生成动态口令,保存所述随机数和所述动态口令,将初始化标识置位,并将所述随机数和所述动态口令发送给所述智能密钥模块;59、所述智能密钥模块将所述随机数、所述动态口令和所述安全设备的序列号发送给所述主机,并返回步骤S2;510、所述智 能密钥模块将所述解锁指令发送给所述动态令牌模块;511、所述动态令牌模块判断所述初始化标识是否置位,如果是,则执行步骤S12;否则,所述动态令牌模块向所述智能密钥模块发送错误信息,所述智能密钥模块向所述主机发送错误信息,并返回步骤S2;512、所述动态令牌模块从所述解锁指令中获取解锁码,根据自身保存的所述随机数和所述动态口令,对获取到的解锁码进行校验,如果校验通过,则执行步骤S13 ;否则,所述动态令牌模块向所述智能密钥模块发送错误信息,所述智能密钥模块向所述主机发送错误信息,并返回步骤S2 ;513、所述动态令牌模块设置开机口令,将自身的状态信息更新为解锁状态,向所述智能密钥模块发送解锁成功信息;514、所述智能密钥模块向所述主机发送解锁成功信息,并返回步骤S2;其中,所述智能密钥模块与所述主机断开连接之后,还包括:所述智能密钥模块将所述验PIN标识复位,所述动态令牌模块将所述初始化标识复位。
2.如权利要求1所述的方法,其特征在于,所述步骤S9之后,还包括:Al、所述主机将所述随机数、所述动态口令和所述安全设备的序列号发送给所述认证服务器;A2、所述认证服务器根据所述序列号检索与所述安全设备对应的种子密钥,根据检索到的种子密钥对接收到的随机数和接收到的动态口令进行校验,如果校验通过,则执行步骤A4;否则,执行步骤A3;A3、所述认证服务器向所述主机返回错误码,所述主机向所述智能密钥模块返回错误码;A4、所述认证服务器根据所述接收到的随机数和所述接收到的动态口令,生成解锁码,并将所述解锁码返回给所述主机;A5、所述主机根据所述解锁码生成解锁指令,将所述解锁指令发送给所述智能密钥模块。
3.如权利要求1所述的方法,其特征在于,所述智能密钥模块接收到状态查询指令之后,还包括:B1、所述智能密钥模块判断所述验PIN标识是否置位,如果是,则执行步骤B2 ;否则,向所述主机发送错误信息,并返回步骤S2 ;B2、所述智能密钥模块将所述状态查询指令发送给所述动态令牌模块;B3、所述动态令牌模块查询自身的状态信息,将查询到的状态信息发送给所述智能密钥模块;B4、所述智能密钥模块将所述状态信息发送给所述主机,并返回步骤S2。
4.如权利要求1所述的方法,其特征在于,还包括:所述智能密钥模块与所述主机断开连接之后,还包括:所述动态令牌模块将初始化次数设置为第一预设值;所述动态令牌模块接收到所述解锁初始化指令之后,还包括:所述动态令牌模块对所述`初始化次数进行更新;所述动态令牌模块判断所述初始化次数是否等于预设阈值,如果是,则通过所述智能密钥模块向所述主机返回错误信息;否则,执行步骤S8。
5.如权利要求1所述的方法,其特征在于,还包括:所述智能密钥模块与所述主机断开连接之后,还包括:所述动态令牌模块将初始化次数设置为第一预设值;所述动态令牌模块接收到所述解锁初始化指令之后,还包括:所述动态令牌模块判断所述初始化次数是否等于预设阈值,如果是,则通过所述智能密钥模块向所述主机返回错误信息;否则,对所述初始化次数进行更新,并执行步骤S8。
6.如权利要求4或5所述的方法,其特征在于,所述动态令牌模块对所述初始化次数进行更新,具体为:所述动态令牌模块将所述初始化次数的取值与预设步长相加,将得到的结果作为更新后的初始化次数;或者,所述动态令牌模块将所述初始化次数的取值减去预设步长,将得到的结果作为更新后的初始化次数。
7.如权利要求2所述的方法,其特征在于,所述动态令牌模块根据所述随机数和自身保存的种子密钥生成动态口令,具体为:所述动态令牌模块将所述随机数、第二预设值以及自身保存的种子密钥组合成第一消息,并对所述第一消息进行散列处理,将处理得到的散列值作为所述动态口令;所述认证服务器根据检索到的种子密钥对接收到的随机数和接收到的动态口令进行校验,具体为:所述认证服务器将所述接收到的随机数、所述第二预设值以及与所述检索到的种子密钥组合成第二消息,并对所述第二消息进行散列处理,将处理得到的散列值作为生成的动态口令,判断所述生成的动态口令与所述接收到的动态口令是否相同,如果相同,则确定所述接收到的随机数和所述接收到的动态口令校验通过;否则,确定所述接收到的随机数和所述接收到的动态口令校验未通过。
8.如权利要求7所述的方法,其特征在于,所述认证服务器根据所述接收到的随机数和所述接收到的动态口令,生成解锁码,具体包括:所述认证服务器对所述接收到的动态口令的长度进行判断;如果所述接收到的动态口令的长度为预设长度,则将所述接收到的随机数、所述接收到的动态口令以及所述检索到的种子密钥组合成第三消息,并对所述第三消息进行散列处理,将处理得到的散列值作为所述解锁码;如果所述接收到的动态口令的长度大于所述预设长度,则从所述接收到的动态口令中截取长度为所述预设长度的数据,将所述接收到的随机数、截取得到的数据以及所述检索到的种子密钥组合成第四消息,并对所述第四消息进行散列处理,将处理得到的散列值作为所述解锁码;如果所述接收到的动态口令的长度小于所述预设长度,则在所述接收到的动态口令的高位端或低位端补零,将所述接收到的随机数、补零得到的数据以及所述检索到的种子密钥组合成第五消息,并对所述第五消息进行散列处理,将处理得到的散列值作为所述解锁码;所述动态令牌模块根据自身保存的所述随机数和所述动态口令,对获取到的解锁码进行校验,具体包括:所述动态令牌模块对自身保存的所述动态口令的长度进行判断;如果保存的所述动态口令的长度为所述预设长度,则将保存的所述随机数、保存的所述动态口令以及保存的所述种子密钥组合成第六消息,并对所述第六消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断所述生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;如果保存的所述动态口令的长度大于所述预设长度,则从保存的所述动态口令中截取长度为所述预设长度的数据,将保存的所述随机数、截取得到的数据以及保存的所述种子密钥组合成第七消息,并对所述第七消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断所述生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;如果保存的所述动态口令的长度小于所述预设长度,则在保存的所述动态口令的高位端或低位端补零,将保存的所述随机数、补零得到的数据以及所述保存的所述种子密钥组合成第八消息,并对所述第八消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断所述生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;其中,所 述预设长度为所述第二预设值的长度。
9.如权利要求1所述的方法,其特征在于,所述动态令牌模块设置开机口令,具体为:所述动态令牌模块获取并保存用户输入的开机口令;或者,所述动态令牌模块将开机指令设置为预设数据;或者,所述动态令牌模块通过所述智能密钥模块接收来自所述主机的口令设置指令,将所述口令设置指令中的数据设置为开机口令。
10.如权利要求9所述的方法,其特征在于,所述动态令牌模块获取用户输入的开机口令,具体为:所述动态令牌模块向所述智能密钥模块发送校验通过响应;所述智能密钥模块向所述主机发送校验通过响应;所述主机获取用户输入的开机口令,将所述开机口令发送给所述智能密钥模块;所述智能密钥模块将所述开机口令发送给所述动态令牌模块。
11.一种安全设备的解锁系统,其特征在于,包括安全设备、主机和认证服务器,所述安全设备包括智能密钥模块和动态令牌模块,其中,所述智能密钥模块包括:连接子模块,用于与所述主机建立连接;第一接收子模块,用于接收来自所述主机的指令;接收来自所述动态令牌模块的随机数、动态口令、错误信息和解锁成功消息;第一判断子模块,用于对所述第一接收子模块接收到的指令进行判断;验证子模块,用于在所述第一判断子模块判断出接收到的指令为验PIN指令时,从所述验PIN指令中获取身份信息,对所述身份信息进行验证;置位子模块,用于在所述验证子模块对所述身份信息验证通过时,将验PIN标识置位;第二判断子模块,用于在所述第一判断子模块判断出接收到的指令为解锁初始化指令时,判断所述验PIN标识是否置位;第一发送子模块,用于在所述`第二判断子模块判断所述验PIN标识置位时,将所述解锁初始化指令发送给所述动态令牌模块;将所述第一接收子模块接收到的所述随机数、所述动态口令和所述安全设备的序列号发送给所述主机;在所述第一判断子模块判断出接收到的指令为解锁指令时,将所述解锁指令发送给所述动态令牌模块;在所述第一接收子模块接收到来自所述动态令牌模块的解锁成功消息时,向所述主机发送解锁成功消息;在所述验证子模块对所述身份信息验证未通过时,向所述主机发送错误信息;在所述第二判断子模块判断所述验PIN标识未置位时,向所述主机发送错误信息;在所述第一接收子模块接收到来自所述动态令牌模块的错误信息时,向所述主机发送错误信息;第一复位子模块,用于在所述智能密钥模块与所述主机断开连接后,将所述验PIN标识复位;所述动态令牌模块包括:第二接收子模块,用于接收来自所述智能密钥模块的所述解锁初始化指令和解锁指令;生成子模块,用于在所述第二接收子模块接收到所述解锁初始化指令后,生成随机数,根据所述随机数和自身保存的种子密钥生成动态口令,保存所述随机数和所述动态口令,将初始化标识置位;第三判断子模块,用于在所述第二接收子模块接收到所述解锁指令后,判断所述初始化标识是否置位;校验子模块,用于在所述第三判断子模块判断出所述初始化标识置位时,从所述解锁指令中获取解锁码,根据所述动态令牌模块保存的随机数和动态口令,对获取到的解锁码进行校验;设置子模块,用于在所述校验子模块对所述获取到的解锁码校验通过后,开机口令,将自身的状态信息更新为解锁状态,向所述智能密钥模块发送解锁成功信息;第二发送子模块,用于将所述生成子模块生成的所述随机数和所述动态口令发送给所述智能密钥模块;在所述第三判断子模块判断出所述初始化标识未置位时,向所述智能密钥模块发送错误信息;在所述校验子模块对所述获取到的解锁码校验未通过后,向所述智能密钥模块发送错误信息;第二复位子模块,用于在所述智能密钥模块与所述主机断开连接后,将所述初始化标识复位。
12.如权利要求11所述的系统,其特征在于,所述主机,包括:第一接收模块,用于接收来自所述智能密钥模块的所述随机数、所述动态口令和所述安全设备的序列号;接收所述认证服务器返回的解锁码和错误码;第一生成模块,用于根据所述第一接收模块接收到的所述解锁码,生成解锁指令;第一发送模块,用于将所述第一接收模块接收到的所述随机数、所述动态口令和所述安全设备的序列号发送给所述认证服务器;将所述第一生成模块生成的所述解锁指令发送给所述智能密钥模块;在所述第一接收模块接收到来自所述认证服务器的错误码时,向所述智能密钥模块返回错误码;所述认证服务器,包括:第二接收模块,用于接收来自所述主机的所述随机数、所述动态口令和所述安全设备的序列号校验模块,用于根据所述第二接收模块接收到的所述序列号,检索与所述安全设备对应的种子密钥,根据检索到的种子密钥对接收到的随机数和接收到的动态口令进行校验;第二生成模块,用于在所述校验模块对所述接收到的随机数和所述接收到的动态口令校验通过时,根据所 述接收到的随机数和所述接收到的动态口令,生成解锁码;第二发送模块,用于将所述第二生成模块生成的解锁码返回给所述主机;在所述校验模块对所述接收到的随机数和所述接收到的动态口令校验通过时,向所述主机返回错误码。
13.如权利要求11所述的系统,其特征在于,所述第一接收子模块,还用于接收来自所述主机的状态查询指令,接收来自所述动态令牌模块的状态信息;所述智能密钥模块,还包括:第四判断子模块,用于在所述第一接收子模块接收到状态查询指令后,判断所述验PIN标识是否置位;所述第一发送子模块,还用于在所述第四判断子模块判断出所述验PIN标识置位时,将所述状态查询指令发送给所述动态令牌模块;在所述第四判断子模块判断出所述验PIN标识未置位时,向所述主机发送错误信息;将所述第一接收子模块接收到的所述状态信息发送给所述主机;所述动态令牌模块,还包括:查询子模块,用于查询所述动态令牌模块的状态信息;所述第二发送子模块,还用于将所述查询子模块查询到的状态信息发送给所述智能密钥模块。
14.如权利要求11所述的系统,其特征在于,所述设置子模块,还用于在所述智能密钥模块与所述主机断开连接后,将初始化次数设置为第一预设值;所述动态令牌模块,还包括:更新子模块,用于在所述第二接收子模块接收到所述解锁初始化指令后,对所述初始化次数进行更新;第五判断子模块,用于判断所述初始化次数是否等于预设阈值;所述第二发送子模块,还用于在所述第五判断子模块判断出所述初始化次数等于预设阈值时,向所述智能密钥模块返回错误信息;所述生成子模块,具体用于在所述第五判断子模块判断出所述初始化次数不等于预设阈值时,生成随机数,根据所述随机数和自身保存的种子密钥生成动态口令,保存所述随机数和所述动态口令,将初始化标识置位。
15.如权利要求11所述的系统,其特征在于,所述设置子模块,还用于在所述智能密钥模块与所述主机断开连接后,将初始化次数设置为第一预设值;所述动态令牌模块,还包括:第五判断子模块,用于在所述第二接收子模块接收到所述解锁初始化指令后,判断所述初始化次数是否等于预设阈值;更新子模块,用于在所述第五判断子模块判断出所述初始化次数不等于预设阈值时,对所述初始化次数进行更新,并触发所述生成子模块生成所述随机数和所述动态口令;所述第二发送子模块,还用于在所述第五判断子模块判断出所述初始化次数等于预设阈值时,向所述智能密钥模块返回错误信息。
16.如权利要求14或15所述的系统,其特征在于,所述更新子模块,具体用于动态令牌模块对所述初始化次数进行更新,具体为:将所述初始化次数的取值与预设步长相加,将得到的结果作为更新后的初始化次数;或者,将所述初始化次数的取值减去预设步长,将得到的结果作为更新后的初始化次数。
17.如权利要求12所述的系统,其特征在于,所述生成子模块,具体用于在所述第二接收子模块接收到所述解锁初始化指令后,生成随机数,将所述随机数、第二预设值以及自身保存的种子密钥组合成第一消息,并对所述第一消息进行散列处理,将处理得到的散列值作为所述动态口令,保存所述随机数和所述动态口令,将初始化标识置位;所述校验模块,具体用于根据所述第二接收模块接收到的所述序列号,检索与所述安全设备对应的种子密钥,将所述接收到的随机数、所述第二预设值以及与所述检索到的种子密钥组合成第二消息,并对所述第二消息进行散列处理,将处理得到的散列值作为生成的动态口令,判断所述生成的动态口令与所述接收到的动态口令是否相同,如果相同,则确定所述接收到的随机数和所述接收到的动态口令校验通过;否则确定所述接收到的随机数和所述接收到的动态口令校验未通过。
18.如权利要求17所述的系统,其特征在于,所述第二生成模块,具体用于在所述校验模块对所述接收到的随机数和所述接收到的动态口令校验通过时,对所述接收到的动态口令的长度进行判断;如果所述接收到的动态口令的长度为预设长度,则将所述接收到的随机数、所述接收到的动态口令以及所述检索到的种子密钥组合成第三消息,并对所述第三消息进行散列处理,将处理得到的散列值作为所述解锁码;如果所述接收到的动态口令的长度大于所述预设长度,则从所述接收到的动态口令中截取长度为所述预设长度的数据,将所述接收到的随机数、截取得到的数据以及所述检索到的种子密钥组合成第四消息,并对所述第四消息进行散列处理,将处理得到的散列值作为所述解锁码;如果所述接收到的动态口令的长度小于所述预设长度,则在所述接收到的动态口令的高位端或低位端补零,将所述接收到的随机数、补零得到的数据以及所述检索到的种子密钥组合成第五消息,并对所述第五消息进行散列处理,将处理得到的散列值作为所述解锁码;所述校验子模块,用于在所述第三判断子模块判断出所述初始化标识置位时,从所述解锁指令中获取解锁码,对所述动态令牌模块保存的动态口令的长度进行判断;如果所述保存的动态口令的长度为所述预设长度,则将所述保存的随机数、所述保存的动态口令以及所述保存的种子密钥组合成第六消息,并对所述第六消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断所述生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;如果所述保存的动态口令的长度大于所述预设长度,则从所述保存的动态口令中截取长度为所述预设长度的数据,将所述保存的随机数、截取得到的数据以及所述保存的种子密钥组合成第七消息,并对所述第七消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断所述生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;如果所述保存的动态口令的长度小于所述预设长度,则在所述保存的动态口令的高位端或低位端补零,将所述保存的随机数、补零得到的数据以及所述保存的种子密钥组合成第八消息,并对所述第八消息进行散列处理,将处理得到的散列值作为生成的解锁码,判断所述生成的解锁码是否与获取到的解锁码相同,如果相同,则确定校验通过;否则,确定校验未通过;其中,所述预设长度为所述第二预设值的长度。
19.如权利要求11所述的系统,其特征在于,所述设置子模块,具体用于获取并保存用户输入的开机口令;或者,将开机指令设置为预设数据;或者,通过所述智能密钥模块接收来自所述主机的口令设置指令,将所述口令设置指令中的数据设置为开机口令。
20.如权利要求19所述的系统,其特征在于,所述第二发送子模块,还用于在所述校验子模块对所述获取到的解锁码校验通过后,向所述智能密钥模块发送校验通过响应;所述第一接收子模块,还用于接收来自所述动态令牌模块的校验通过响应;接收来自所述主机的开机口令;所述第一发送子模块,还用于在所述第一接收子模块接收到来自所述动态令牌模块的校验通过响应后,向所述主机发送校验通过响应;将所述第一接收子模块接收到的开机口令发送给所述动态令牌模块;所述主机, 还包括:获取模块,用于获取用户输入的开机口令;所述第一发送模块,还用于将所述获取模块获取的所述开机口令发送给所述智能密钥模块。
【文档编号】H04L9/32GK103607281SQ201310560096
【公开日】2014年2月26日 申请日期:2013年11月12日 优先权日:2013年11月12日
【发明者】陆舟, 于华章 申请人:飞天诚信科技股份有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1