著录项信息
专利名称 | 一种动态口令设备及其工作方法 |
申请号 | CN201310282028.4 | 申请日期 | 2013-07-05 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-09-18 | 公开/公告号 | CN103312519A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/32 | IPC分类号 | H;0;4;L;9;/;3;2;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 飞天诚信科技股份有限公司 | 申请人地址 | 北京市海淀区学清路9号汇智大厦B楼17层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 飞天诚信科技股份有限公司 | 当前权利人 | 飞天诚信科技股份有限公司 |
发明人 | 陆舟;于华章 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公开了一种动态口令设备及其工作方法,该动态口令设备是一种智能卡读写器,拥有数字键盘和液晶显示屏,与智能卡配合使用。具体地,动态口令设备启动,对智能卡进行上电激活,通过与智能卡之间的信令交互以及对自身保存的种子密钥的使用,获取第一应用密文,并基于事件同步、挑战/应答、交易签名等方式生成一次性动态口令,该动态口令可应用于网银、电话银行和手机银行的身份认证操作,在离线和各种复杂支付场合实现随时随地对应用系统的用户进行身份验证,有效地防止了身份盗用、冒用以及身份欺诈,提高了网络系统的安全性。
1.一种动态口令设备的工作方法,其特征在于,包括以下步骤:
S1、动态口令设备启动,对与自身连接的智能卡进行上电激活;
S2、所述动态口令检测到用户触发第一按键时,获取与所述第一按键对应的应用标识,根据所述应用标识生成应用选择命令;
S3、所述动态口令设备将所述应用选择命令发送给所述智能卡,接收所述智能卡返回的第一响应报文;
S4、所述动态口令设备判断所述第一响应报文是否为符合第一预设格式的报文,如果是,则执行步骤S5;否则,显示错误信息,结束流程;所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;
S5、所述动态口令设备从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令,将所述获取处理选项命令发送给所述智能卡,接收所述智能卡返回的第二响应报文;
S6、所述动态口令设备判断所述第二响应报文是否为符合第二预设格式的报文,如果是,则执行步骤S7;否则,显示错误信息,结束流程;所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;
S7、所述动态口令设备从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令,将所述读记录命令发送给所述智能卡,接收所述智能卡返回的第三响应报文;
S8、所述动态口令设备判断所述第三响应报文是否为符合第三预设格式的报文,如果是,则执行步骤S9;否则,显示错误信息,结束流程;所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;
S9、所述动态口令设备从所述第三响应报文中获取第一记录数据,根据自身保存的种子密钥和第一预设数据生成第一挑战码,根据所述第一记录数据和所述第一挑战码生成应用密文生成命令,将所述应用密文生成命令发送给所述智能卡,接收所述智能卡返回的第四响应报文;
S10、所述动态口令设备判断所述第四响应报文是否为符合第四预设格式的报文,如果是,则执行步骤S11;否则,显示错误信息,结束流程;所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;
S11、所述动态口令设备从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。
2.如权利要求1所述的方法,其特征在于,
所述动态口令设备启动,具体为:所述动态口令设备在检测到所述智能卡插入时启动;
所述方法还包括:当所述动态口令设备判断所述智能卡与自身匹配时,所述动态口令设备检测用户是否触发按键;
所述动态口令设备检测用户是否触发按键之前,还包括:
所述动态口令设备判断所述智能卡是否与自身匹配。
3.如权利要求2所述的方法,其特征在于,还包括:
当所述动态口令设备判断所述智能卡与自身不匹配时,所述动态口令设备显示错误信息。
4.如权利要求2所述的方法,其特征在于,所述动态口令设备判断所述智能卡是否与自身匹配,具体为:
所述动态口令设备获取所述智能卡的应用标识符,判断所述智能卡的应用标识符是否包含在自身存储的预设列表中,如果是,则确定所述智能卡与自身匹配;否则,确定所述智能卡与自身不匹配。
5.如权利要求1所述的方法,其特征在于,所述动态口令设备根据自身保存的种子密钥和第一预设数据生成第一挑战码,具体为:
所述动态口令设备使用所述种子密钥对所述第一预设数据进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据作为所述第一挑战码。
6.如权利要求1所述的方法,其特征在于,所述动态口令设备生成动态口令之后,还包括:
S12、客户端获取所述动态口令,根据所述动态口令和智能卡信息生成身份认证请求,并将所述身份认证请求发送给认证服务器;
S13、所述认证服务器从所述身份认证请求中获取所述动态口令和所述智能卡信息,根据所述智能卡信息查询对应的种子密钥;
S14、所述认证服务器判断是否查询到相应的种子密钥,如果是,则执行步骤S15;否则,所述认证服务器向所述客户端发送认证失败消息,结束流程;
S15、所述认证服务器根据查询到的种子密钥和自身存储的第二预设数据生成第三挑战码,根据所述第三挑战码和自身保存的第二记录数据生成第二应用密文,所述第二预设数据与所述第一预设数据的取值相同;
S16、所述认证服务器判断所述第二应用密文,是否与对所述动态口令处理得到的第一应用密文相同,如果是,则所述认证服务器向所述客户端发送认证成功消息;否则,所述认证服务器向所述客户端发送认证失败消息。
7.如权利要求6所述的方法,其特征在于,所述认证服务器从所述身份认证请求中获取所述动态口令之后,还包括:
所述认证服务器对所述动态口令进行格式转换,并对转换得到的数据进行解压缩,得到所述第一应用密文。
8.如权利要求6所述的方法,其特征在于,所述认证服务器根据查询到的种子密钥和自身存储的第二预设数据生成第三挑战码,具体包括:
所述认证服务器使用所述查询到的种子密钥对所述第二预设数据进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据作为所述第三挑战码。
9.如权利要求6所述的方法,其特征在于,所述认证服务器根据所述智能卡信息查询对应的种子密钥,具体为:
所述认证服务器使用所述智能卡信息作为索引,从自身存储的对应关系表中,查找与所述智能卡信息对应的种子密钥,所述对应关系表用于存储种子密钥与智能卡信息之间的对应关系。
10.如权利要求9所述的方法,其特征在于,所述对应关系表通过以下步骤生成:
所述认证服务器接收来自所述客户端的注册请求,从所述注册请求中获取智能卡信息和动态口令设备的序列号,根据所述序列号生成密钥获取请求,将所述密钥获取请求发送给设备服务器;
所述认证服务器接收所述设备服务器返回的种子密钥,建立所述种子密钥与所述智能卡信息之间的对应关系,并根据所述对应关系、所述种子密钥和所述智能卡信息生成所述对应关系表。
11.如权利要求10所述的方法,其特征在于,所述认证服务器将所述密钥获取请求发送给设备服务器之后,还包括:
所述设备服务器从密钥获取请求中获取所述动态口令设备的序列号,根据所述序列号查询对应的种子密钥,将查询到的种子密钥发送给所述认证服务器。
12.如权利要求11所述的方法,其特征在于,还包括:
当所述设备服务器没有查询到对应的种子密钥时,所述设备服务器向认证服务器发送获取密钥失败消息;
所述认证服务器向所述客户端发送注册失败消息。
13.一种生成动态口令的方法,其特征在于,包括以下步骤:
S1、动态口令设备启动,对与自身连接的智能卡进行上电激活;
S2、所述动态口令检测到用户触发第二按键时,获取与所述第二按键对应的应用标识,根据所述应用标识生成应用选择命令;
S3、所述动态口令设备将所述应用选择命令发送给所述智能卡,接收所述智能卡返回的第一响应报文;
S4、所述动态口令设备判断所述第一响应报文是否为符合第一预设格式的报文,如果是,则执行步骤S5;否则,显示错误信息,结束流程;所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;
S5、所述动态口令设备从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令,将所述获取处理选项命令发送给所述智能卡,接收所述智能卡返回的第二响应报文;
S6、所述动态口令设备判断所述第二响应报文是否为符合第二预设格式的报文,如果是,则执行步骤S7;否则,显示错误信息,结束流程;所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;
S7、所述动态口令设备从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令,将所述读记录命令发送给所述智能卡,接收所述智能卡返回的第三响应报文;
S8、所述动态口令设备判断所述第三响应报文是否为符合第三预设格式的报文,如果是,则执行步骤S9;否则,显示错误信息,结束流程;所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;
S9、所述动态口令设备从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第二挑战码进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令,将所述应用密文生成命令发送给所述智能卡,接收所述智能卡返回的第四响应报文;
S10、所述动态口令设备判断所述第四响应报文是否为符合第四预设格式的报文,如果是,则执行步骤S11;否则,显示错误信息,结束流程;所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;
S11、所述动态口令设备从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。
14.如权利要求13所述的方法,其特征在于,
所述动态口令设备启动,具体为:所述动态口令设备在检测到所述智能卡插入时启动;
所述方法还包括:当所述动态口令设备判断所述智能卡与自身匹配时,所述动态口令设备检测用户是否触发按键;
所述动态口令设备检测用户是否触发按键之前,还包括:
所述动态口令设备判断所述智能卡是否与自身匹配。
15.如权利要求14所述的方法,其特征在于,还包括:
当所述动态口令设备判断所述智能卡与自身不匹配时,所述动态口令设备显示错误信息。
16.如权利要求14所述的方法,其特征在于,所述动态口令设备判断所述智能卡是否与自身匹配,具体为:
所述动态口令设备获取所述智能卡的应用标识符,判断所述智能卡的应用标识符是否包含在自身存储的预设列表中,如果是,则确定所述智能卡与自身匹配;否则,确定所述智能卡与自身不匹配。
17.如权利要求13所述的方法,其特征在于,所述动态口令设备使用自身保存的种子密钥对用户输入的第二挑战码进行处理,根据处理结果生成应用密文生成命令,具体包括:
所述动态口令设备使用所述种子密钥对所述第二挑战码进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,根据选择的数据生成所述应用密文生成命令。
18.如权利要求13所述的方法,其特征在于,所述动态口令设备生成动态口令之后,还包括:
S12、客户端获取所述动态口令,根据所述动态口令和智能卡信息生成身份认证请求,并将所述身份认证请求发送给认证服务器;
S13、所述认证服务器从所述身份认证请求中获取所述动态口令和所述智能卡信息,根据所述智能卡信息查询对应的种子密钥;
S14、所述认证服务器判断是否查询到相应的种子密钥,如果是,则执行步骤S15;否则,所述认证服务器向所述客户端发送认证失败消息,结束流程;
S15、所述认证服务器使用查询到的种子密钥对自身生成的第四挑战码进行处理,根据处理结果和自身保存的第二记录数据生成第二应用密文;
S16、所述认证服务器判断所述第二应用密文,是否与对所述动态口令处理得到的第一应用密文相同,如果是,则所述认证服务器向所述客户端发送认证成功消息;否则,所述认证服务器向所述客户端发送认证失败消息。
19.如权利要求18所述的方法,其特征在于,所述认证服务器从所述身份认证请求中获取所述动态口令之后,还包括:
所述认证服务器对所述动态口令进行格式转换,并对转换得到的数据进行解压缩,得到所述第一应用密文。
20.如权利要求18所述的方法,其特征在于,所述认证服务器使用查询到的种子密钥对自身生成的第四挑战码进行处理,根据处理结果和所述智能卡信息生成第二应用密文,具体包括:
所述认证服务器使用所述查询到的种子密钥对所述第四挑战码进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,根据选择的数据和所述智能卡信息生成所述第二应用密文。
21.如权利要求18所述的方法,其特征在于,所述认证服务器根据所述智能卡信息查询对应的种子密钥,具体为:
所述认证服务器使用所述智能卡信息作为索引,从自身存储的对应关系表中,查找与所述智能卡信息对应的种子密钥,所述对应关系表用于存储种子密钥与智能卡信息之间的对应关系。
22.如权利要求21所述的方法,其特征在于,所述对应关系表通过以下步骤生成:
所述认证服务器接收来自所述客户端的注册请求,从所述注册请求中获取智能卡信息和动态口令设备的序列号,根据所述序列号生成密钥获取请求,将所述密钥获取请求发送给设备服务器;
所述认证服务器接收所述设备服务器返回的种子密钥,建立所述种子密钥与所述智能卡信息之间的对应关系,并根据所述对应关系、所述种子密钥和所述智能卡信息生成所述对应关系表。
23.如权利要求22所述的方法,其特征在于,所述认证服务器将所述密钥获取请求发送给设备服务器之后,还包括:
所述设备服务器从密钥获取请求中获取所述动态口令设备的序列号,根据所述序列号查询对应的种子密钥,将查询到的种子密钥发送给所述认证服务器。
24.如权利要求23所述的方法,其特征在于,还包括:
当所述设备服务器没有查询到对应的种子密钥时,所述设备服务器向认证服务器发送获取密钥失败消息;
所述认证服务器向所述客户端发送注册失败消息。
25.一种生成动态口令的方法,其特征在于,包括以下步骤:
S1、动态口令设备启动,对与自身连接的智能卡进行上电激活;
S2、所述动态口令检测到用户触发第三按键时,获取与所述第三按键对应的应用标识,根据所述应用标识生成应用选择命令;
S3、所述动态口令设备将所述应用选择命令发送给所述智能卡,接收所述智能卡返回的第一响应报文;
S4、所述动态口令设备判断所述第一响应报文是否为符合第一预设格式的报文,如果是,则执行步骤S5;否则,显示错误信息,结束流程;所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;
S5、所述动态口令设备从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令,将所述获取处理选项命令发送给所述智能卡,接收所述智能卡返回的第二响应报文;
S6、所述动态口令设备判断所述第二响应报文是否为符合第二预设格式的报文,如果是,则执行步骤S7;否则,显示错误信息,结束流程;所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;
S7、所述动态口令设备从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令,将所述读记录命令发送给所述智能卡,接收所述智能卡返回的第三响应报文;
S8、所述动态口令设备判断所述第三响应报文是否为符合第三预设格式的报文,如果是,则执行步骤S9;否则,显示错误信息,结束流程;所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;
S9、所述动态口令设备从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第一业务数据进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令,将所述应用密文生成命令发送给所述智能卡,接收所述智能卡返回的第四响应报文;
S10、所述动态口令设备判断所述第四响应报文是否为符合第四预设格式的报文,如果是,则执行步骤S11;否则,显示错误信息,结束流程;所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;
S11、所述动态口令设备从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。
26.如权利要求25所述的方法,其特征在于,
所述动态口令设备启动,具体为:所述动态口令设备在检测到所述智能卡插入时启动;
所述方法还包括:当所述动态口令设备判断所述智能卡与自身匹配时,所述动态口令设备检测用户是否触发按键;
所述动态口令设备检测用户是否触发按键之前,还包括:
所述动态口令设备判断所述智能卡是否与自身匹配。
27.如权利要求26所述的方法,其特征在于,还包括:
当所述动态口令设备判断所述智能卡与自身不匹配时,所述动态口令设备显示错误信息。
28.如权利要求26所述的方法,其特征在于,所述动态口令设备判断所述智能卡是否与自身匹配,具体为:
所述动态口令设备获取所述智能卡的应用标识符,判断所述智能卡的应用标识符是否包含在自身存储的预设列表中,如果是,则确定所述智能卡与自身匹配;否则,确定所述智能卡与自身不匹配。
29.如权利要求25所述的方法,其特征在于,所述动态口令设备使用自身保存的种子密钥对用户输入的第一业务数据进行处理,根据处理结果生成应用密文生成命令,具体包括:
所述动态口令设备使用所述种子密钥对所述第一业务数据中的第一个数据段进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,当所述第一业务数据仅包含一个数据段时,根据选择的数据生成所述应用密文生成命令;当所述第一业务数据包含多个数据段时,根据选择的数据以及所述第一业务数据中除所述第一个数据段之外的其他数据生成所述应用密文生成命令。
30.如权利要求25所述的方法,其特征在于,所述动态口令设备生成动态口令之后,还包括:
S12、客户端获取所述动态口令,根据所述动态口令和智能卡信息生成身份认证请求,并将所述身份认证请求发送给认证服务器;
S13、所述认证服务器从所述身份认证请求中获取所述动态口令和所述智能卡信息,根据所述智能卡信息查询对应的种子密钥;
S14、所述认证服务器判断是否查询到相应的种子密钥,如果是,则执行步骤S15;否则,所述认证服务器向所述客户端发送认证失败消息,结束流程;
S15、所述认证服务器使用查询到的种子密钥对用户输入的第二业务数据进行处理,根据处理结果和自身保存的第二记录数据生成第二应用密文;
S16、所述认证服务器判断所述第二应用密文,是否与对所述动态口令处理得到的第一应用密文相同,如果是,则所述认证服务器向所述客户端发送认证成功消息;否则,所述认证服务器向所述客户端发送认证失败消息。
31.如权利要求30所述的方法,其特征在于,所述认证服务器从所述身份认证请求中获取所述动态口令之后,还包括:
所述认证服务器对所述动态口令进行格式转换,并对转换得到的数据进行解压缩,得到所述第一应用密文。
32.如权利要求30所述的方法,其特征在于,所述认证服务器使用查询到的种子密钥对用户输入的第二业务数据进行处理,根据处理结果和所述智能卡信息生成第二应用密文,具体包括:
所述认证服务器使用所述查询到的种子密钥对所述第二业务数据中的第一个数据段进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,当所述第二业务数据仅包含一个数据段时,根据选择的数据和所述智能卡信息生成所述第二应用密文;当第二业务数据包含多个数据段时,根据选择的数据、所述第二业务数据中除所述第一个数据段之外的其他数据以及所述智能卡信息生成所述第二应用密文。
33.如权利要求30所述的方法,其特征在于,所述认证服务器根据所述智能卡信息查询对应的种子密钥,具体为:
所述认证服务器使用所述智能卡信息作为索引,从自身存储的对应关系表中,查找与所述智能卡信息对应的种子密钥,所述对应关系表用于存储种子密钥与智能卡信息之间的对应关系。
34.如权利要求33所述的方法,其特征在于,所述对应关系表通过以下步骤生成:
所述认证服务器接收来自所述客户端的注册请求,从所述注册请求中获取智能卡信息和动态口令设备的序列号,根据所述序列号生成密钥获取请求,将所述密钥获取请求发送给设备服务器;
所述认证服务器接收所述设备服务器返回的种子密钥,建立所述种子密钥与所述智能卡信息之间的对应关系,并根据所述对应关系、所述种子密钥和所述智能卡信息生成所述对应关系表。
35.如权利要求34所述的方法,其特征在于,所述认证服务器将所述密钥获取请求发送给设备服务器之后,还包括:
所述设备服务器从密钥获取请求中获取所述动态口令设备的序列号,根据所述序列号查询对应的种子密钥,将查询到的种子密钥发送给所述认证服务器。
36.如权利要求35所述的方法,其特征在于,还包括:
当所述设备服务器没有查询到对应的种子密钥时,所述设备服务器向认证服务器发送获取密钥失败消息;
所述认证服务器向所述客户端发送注册失败消息。
37.一种动态口令设备,其特征在于,包括:
检测模块,用于检测用户是否触发按键;
第一生成模块,用于在所述检测模块检测到用户触发第一按键时,获取与所述第一按键对应的应用标识,根据所述应用标识生成应用选择命令;
第一发送模块,用于将所述第一生成模块生成的所述应用选择命令发送给智能卡;
第一接收模块,用于接收所述智能卡返回的第一响应报文;
第一判断模块,用于判断所述第一接收模块接收到的第一响应报文是否为符合第一预设格式的报文,所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;
第二生成模块,用于在所述第一判断模块判断所述第一响应报文为符合第一预设格式的报文时,从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令;
第二发送模块,用于将所述第二生成模块生成的所述获取处理选项命令发送给所述智能卡;
第二接收模块,用于接收所述智能卡返回的第二响应报文;
第二判断模块,用于判断所述第二接收模块接收到的第二响应报文是否为符合第二预设格式的报文,所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;
第三生成模块,用于在所述第二判断模块判断所述第二响应报文为符合第二预设格式的报文时,从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令;
第三发送模块,用于将所述第三生成模块生成的所述读记录命令发送给所述智能卡;
第三接收模块,用于接收所述智能卡返回的第三响应报文;
第三判断模块,用于判断所述第三接收模块接收到的第三响应报文是否为符合第三预设格式的报文,所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;
第四生成模块,用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,根据自身保存的种子密钥和第一预设数据生成第一挑战码,根据所述第一记录数据和所述第一挑战码生成应用密文生成命令;
第四发送模块,用于将所述第四生成模块生成的所述应用密文生成命令发送给所述智能卡;
第四接收模块,用于接收所述智能卡返回的第四响应报文;
第四判断模块,用于判断所述第四接收模块接收到的第四响应报文是否为符合第四预设格式的报文,所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;
显示模块,用于在所述第一判断模块判断所述第一响应报文不是符合第一预设格式的报文时,显示错误信息;在所述第二判断模块判断所述第二响应报文不是符合第二预设格式的报文时,显示错误信息;在所述第三判断模块判断所述第三响应报文不是符合第三预设格式的报文时,显示错误信息;在所述第四判断模块判断所述第四响应报文不是符合第四预设格式的报文时,显示错误信息;
第五生成模块,用于在所述第四判断模块判断所述第四响应报文为符合第四预设格式的报文时,从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。
38.如权利要求37所述的动态口令设备,其特征在于,还包括:
第五判断模块,用于判断所述智能卡是否与所述动态口令设备匹配;
所述检测模块,具体用于在所述第五判断模块判断所述智能卡与所述动态口令设备匹配时,检测用户是否触发按键。
39.如权利要求38所述的动态口令设备,其特征在于,
所述显示模块,还用于在所述第五判断模块判断所述智能卡与所述动态口令设备不匹配时,显示错误信息。
40.如权利要求38所述的动态口令设备,其特征在于,
所述第五判断模块,具体用于获取所述智能卡的应用标识符,判断所述智能卡的应用标识符是否包含在所述动态口令设备存储的预设列表中,如果是,则确定所述智能卡与所述动态口令设备匹配;否则,确定所述智能卡与所述动态口令设备不匹配。
41.如权利要求37所述的动态口令设备,其特征在于,
所述第四生成模块,具体用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用所述种子密钥对所述第一预设数据进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据作为所述第一挑战码,根据所述第一记录数据和所述第一挑战码生成所述应用密文生成命令。
42.一种动态口令设备,其特征在于,包括:
检测模块,用于检测用户是否触发按键;
第一生成模块,用于在所述检测模块检测到用户触发第二按键时,获取与所述第二按键对应的应用标识,根据所述应用标识生成应用选择命令;
第一发送模块,用于将所述第一生成模块生成的所述应用选择命令发送给智能卡;
第一接收模块,用于接收所述智能卡返回的第一响应报文;
第一判断模块,用于判断所述第一接收模块接收到的第一响应报文是否为符合第一预设格式的报文,所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;
第二生成模块,用于在所述第一判断模块判断所述第一响应报文为符合第一预设格式的报文时,从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令;
第二发送模块,用于将所述第二生成模块生成的所述获取处理选项命令发送给所述智能卡;
第二接收模块,用于接收所述智能卡返回的第二响应报文;
第二判断模块,用于判断所述第二接收模块接收到的第二响应报文是否为符合第二预设格式的报文,所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;
第三生成模块,用于在所述第二判断模块判断所述第二响应报文为符合第二预设格式的报文时,从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令;
第三发送模块,用于将所述第三生成模块生成的所述读记录命令发送给所述智能卡;
第三接收模块,用于接收所述智能卡返回的第三响应报文;
第三判断模块,用于判断所述第三接收模块接收到的第三响应报文是否为符合第三预设格式的报文,所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;
第四生成模块,用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第二挑战码进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令;
第四发送模块,用于将所述第四生成模块生成的所述应用密文生成命令发送给所述智能卡;
第四接收模块,用于接收所述智能卡返回的第四响应报文;
第四判断模块,用于判断所述第四接收模块接收到的第四响应报文是否为符合第四预设格式的报文,所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;
显示模块,用于在所述第一判断模块判断所述第一响应报文不是符合第一预设格式的报文时,显示错误信息;在所述第二判断模块判断所述第二响应报文不是符合第二预设格式的报文时,显示错误信息;在所述第三判断模块判断所述第三响应报文不是符合第三预设格式的报文时,显示错误信息;在所述第四判断模块判断所述第四响应报文不是符合第四预设格式的报文时,显示错误信息;
第五生成模块,用于在所述第四判断模块判断所述第四响应报文为符合第四预设格式的报文时,从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。
43.如权利要求42所述的动态口令设备,其特征在于,还包括:
第五判断模块,用于判断所述智能卡是否与所述动态口令设备匹配;
所述检测模块,具体用于在所述第五判断模块判断所述智能卡与所述动态口令设备匹配时,检测用户是否触发按键。
44.如权利要求43所述的动态口令设备,其特征在于,
所述显示模块,还用于在所述第五判断模块判断所述智能卡与所述动态口令设备不匹配时,显示错误信息。
45.如权利要求43所述的动态口令设备,其特征在于,
所述第五判断模块,具体用于获取所述智能卡的应用标识符,判断所述智能卡的应用标识符是否包含在所述动态口令设备存储的预设列表中,如果是,则确定所述智能卡与所述动态口令设备匹配;否则,确定所述智能卡与所述动态口令设备不匹配。
46.如权利要求42所述的动态口令设备,其特征在于,
所述第四生成模块,具体用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用所述种子密钥对所述第二挑战码进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,根据选择的数据生成所述应用密文生成命令。
47.一种动态口令设备,其特征在于,包括:
检测模块,用于检测用户是否触发按键;
第一生成模块,用于在所述检测模块检测到用户触发第三按键时,获取与所述第三按键对应的应用标识,根据所述应用标识生成应用选择命令;
第一发送模块,用于将所述第一生成模块生成的所述应用选择命令发送给智能卡;
第一接收模块,用于接收所述智能卡返回的第一响应报文;
第一判断模块,用于判断所述第一接收模块接收到的第一响应报文是否为符合第一预设格式的报文,所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;
第二生成模块,用于在所述第一判断模块判断所述第一响应报文为符合第一预设格式的报文时,从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令;
第二发送模块,用于将所述第二生成模块生成的所述获取处理选项命令发送给所述智能卡;
第二接收模块,用于接收所述智能卡返回的第二响应报文;
第二判断模块,用于判断所述第二接收模块接收到的第二响应报文是否为符合第二预设格式的报文,所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;
第三生成模块,用于在所述第二判断模块判断所述第二响应报文为符合第二预设格式的报文时,从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令;
第三发送模块,用于将所述第三生成模块生成的所述读记录命令发送给所述智能卡;
第三接收模块,用于接收所述智能卡返回的第三响应报文;
第三判断模块,用于判断所述第三接收模块接收到的第三响应报文是否为符合第三预设格式的报文,所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;
第四生成模块,用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第一业务数据进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令;
第四发送模块,用于将所述第四生成模块生成的所述应用密文生成命令发送给所述智能卡;
第四接收模块,用于接收所述智能卡返回的第四响应报文;
第四判断模块,用于判断所述第四接收模块接收到的第四响应报文是否为符合第四预设格式的报文,所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;
显示模块,用于在所述第一判断模块判断所述第一响应报文不是符合第一预设格式的报文时,显示错误信息;在所述第二判断模块判断所述第二响应报文不是符合第二预设格式的报文时,显示错误信息;在所述第三判断模块判断所述第三响应报文不是符合第三预设格式的报文时,显示错误信息;在所述第四判断模块判断所述第四响应报文不是符合第四预设格式的报文时,显示错误信息;
第五生成模块,用于在所述第四判断模块判断所述第四响应报文为符合第四预设格式的报文时,从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。
48.如权利要求47所述的动态口令设备,其特征在于,还包括:
第五判断模块,用于判断所述智能卡是否与所述动态口令设备匹配;
所述检测模块,具体用于在所述第五判断模块判断所述智能卡与所述动态口令设备匹配时,检测用户是否触发按键。
49.如权利要求48所述的动态口令设备,其特征在于,
所述显示模块,还用于在所述第五判断模块判断所述智能卡与所述动态口令设备不匹配时,显示错误信息。
50.如权利要求48所述的动态口令设备,其特征在于,
所述第五判断模块,具体用于获取所述智能卡的应用标识符,判断所述智能卡的应用标识符是否包含在所述动态口令设备存储的预设列表中,如果是,则确定所述智能卡与所述动态口令设备匹配;否则,确定所述智能卡与所述动态口令设备不匹配。
51.如权利要求47所述的动态口令设备,其特征在于,
所述第四生成模块,具体用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用所述种子密钥对所述第一业务数据中的第一个数据段进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,当所述第一业务数据仅包含一个数据段时,根据选择的数据生成所述应用密文生成命令;当所述第一业务数据包含多个数据段时,根据选择的数据以及所述第一业务数据中除所述第一个数据段之外的其他数据生成所述应用密文生成命令。
一种动态口令设备及其工作方法\n技术领域\n[0001] 本发明涉及信息安全领域,特别是涉及一种动态口令设备及其工作方法。\n背景技术\n[0002] 随着网络的发展,网络信息安全的重要性也与日俱增,身份认证技术得到了广泛应用。其中,动态口令认证方法越来越受到用户的青睐。动态口令一般由身份认证系统生成并以短信或者邮件的形式下发给用户,客户在登录或者交易认证时候输入该动态口令,从而确保系统身份认证的安全性,有效地避免由于黑客木马盗窃用户账户密码、假网站的出现所造成的网络安全风险。\n[0003] 发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:\n[0004] 由于短信和邮件易被非法截获,进而导致短信和邮件中包含的动态口令泄露,无法保证网络系统的安全性。\n发明内容\n[0005] 本发明提供了一种动态口令设备及其工作方法,以解决现有技术中的安全性缺陷。\n[0006] 本发明提供了一种动态口令设备的工作方法,包括以下步骤:\n[0007] S1、动态口令设备启动,对与自身连接的智能卡进行上电激活;\n[0008] S2、所述动态口令检测到用户触发第一按键时,获取与所述第一按键对应的应用标识,根据所述应用标识生成应用选择命令;\n[0009] S3、所述动态口令设备将所述应用选择命令发送给所述智能卡,接收所述智能卡返回的第一响应报文;\n[0010] S4、所述动态口令设备判断所述第一响应报文是否为符合第一预设格式的报文,如果是,则执行步骤S5;否则,显示错误信息,结束流程;所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;\n[0011] S5、所述动态口令设备从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令,将所述获取处理选项命令发送给所述智能卡,接收所述智能卡返回的第二响应报文;\n[0012] S6、所述动态口令设备判断所述第二响应报文是否为符合第二预设格式的报文,如果是,则执行步骤S7;否则,显示错误信息,结束流程;所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;\n[0013] S7、所述动态口令设备从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令,将所述读记录命令发送给所述智能卡,接收所述智能卡返回的第三响应报文;\n[0014] S8、所述动态口令设备判断所述第三响应报文是否为符合第三预设格式的报文,如果是,则执行步骤S9;否则,显示错误信息,结束流程;所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;\n[0015] S9、所述动态口令设备从所述第三响应报文中获取第一记录数据,根据自身保存的种子密钥和第一预设数据生成第一挑战码,根据所述第一记录数据和所述第一挑战码生成应用密文生成命令,将所述应用密文生成命令发送给所述智能卡,接收所述智能卡返回的第四响应报文;\n[0016] S10、所述动态口令设备判断所述第四响应报文是否为符合第四预设格式的报文,如果是,则执行步骤S11;否则,显示错误信息,结束流程;所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;\n[0017] S11、所述动态口令设备从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。\n[0018] 本发明还提供了一种生成动态口令的方法,包括以下步骤:\n[0019] S1、动态口令设备启动,对与自身连接的智能卡进行上电激活;\n[0020] S2、所述动态口令检测到用户触发第二按键时,获取与所述第二按键对应的应用标识,根据所述应用标识生成应用选择命令;\n[0021] S3、所述动态口令设备将所述应用选择命令发送给所述智能卡,接收所述智能卡返回的第一响应报文;\n[0022] S4、所述动态口令设备判断所述第一响应报文是否为符合第一预设格式的报文,如果是,则执行步骤S5;否则,显示错误信息,结束流程;所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;\n[0023] S5、所述动态口令设备从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令,将所述获取处理选项命令发送给所述智能卡,接收所述智能卡返回的第二响应报文;\n[0024] S6、所述动态口令设备判断所述第二响应报文是否为符合第二预设格式的报文,如果是,则执行步骤S7;否则,显示错误信息,结束流程;所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;\n[0025] S7、所述动态口令设备从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令,将所述读记录命令发送给所述智能卡,接收所述智能卡返回的第三响应报文;\n[0026] S8、所述动态口令设备判断所述第三响应报文是否为符合第三预设格式的报文,如果是,则执行步骤S9;否则,显示错误信息,结束流程;所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;\n[0027] S9、所述动态口令设备从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第二挑战码进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令,将所述应用密文生成命令发送给所述智能卡,接收所述智能卡返回的第四响应报文;\n[0028] S10、所述动态口令设备判断所述第四响应报文是否为符合第四预设格式的报文,如果是,则执行步骤S11;否则,显示错误信息,结束流程;所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;\n[0029] S11、所述动态口令设备从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。\n[0030] 本发明还提供了一种生成动态口令的方法,包括以下步骤:\n[0031] S1、动态口令设备启动,对与自身连接的智能卡进行上电激活;\n[0032] S2、所述动态口令检测到用户触发第三按键时,获取与所述第三按键对应的应用标识,根据所述应用标识生成应用选择命令;\n[0033] S3、所述动态口令设备将所述生成应用选择命令发送给所述智能卡,接收所述智能卡返回的第一响应报文;\n[0034] S4、所述动态口令设备判断所述第一响应报文是否为符合第一预设格式的报文,如果是,则执行步骤S5;否则,显示错误信息,结束流程;所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;\n[0035] S5、所述动态口令设备从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令,将所述获取处理选项命令发送给所述智能卡,接收所述智能卡返回的第二响应报文;\n[0036] S6、所述动态口令设备判断所述第二响应报文是否为符合第二预设格式的报文,如果是,则执行步骤S7;否则,显示错误信息,结束流程;所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;\n[0037] S7、所述动态口令设备从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令,将所述读记录命令发送给所述智能卡,接收所述智能卡返回的第三响应报文;\n[0038] S8、所述动态口令设备判断所述第三响应报文是否为符合第三预设格式的报文,如果是,则执行步骤S9;否则,显示错误信息,结束流程;所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;\n[0039] S9、所述动态口令设备从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第一业务数据进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令,将所述应用密文生成命令发送给所述智能卡,接收所述智能卡返回的第四响应报文;\n[0040] S10、所述动态口令设备判断所述第四响应报文是否为符合第四预设格式的报文,如果是,则执行步骤S11;否则,显示错误信息,结束流程;所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;\n[0041] S11、所述动态口令设备从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。\n[0042] 本发明还提供了一种动态口令设备,包括:\n[0043] 检测模块,用于检测用户是否触发按键;\n[0044] 第一生成模块,用于在所述检测模块检测到用户触发第一按键时,获取与所述第一按键对应的应用标识,根据所述应用标识生成应用选择命令;\n[0045] 第一发送模块,用于将所述第一生成模块生成的所述应用选择命令发送给所述智能卡;\n[0046] 第一接收模块,用于接收所述智能卡返回的第一响应报文;\n[0047] 第一判断模块,用于判断所述第一接收模块接收到的第一响应报文是否为符合第一预设格式的报文,所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;\n[0048] 第二生成模块,用于在所述第一判断模块判断所述第一响应报文为符合第一预设格式的报文时,从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令;\n[0049] 第二发送模块,用于将所述第二生成模块生成的所述获取处理选项命令发送给所述智能卡;\n[0050] 第二接收模块,用于接收所述智能卡返回的第二响应报文;\n[0051] 第二判断模块,用于判断所述第二接收模块接收到的第二响应报文是否为符合第二预设格式的报文,所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;\n[0052] 第三生成模块,用于在所述第二判断模块判断所述第二响应报文为符合第二预设格式的报文时,从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令;\n[0053] 第三发送模块,用于将所述第三生成模块生成的所述读记录命令发送给所述智能卡;\n[0054] 第三接收模块,用于接收所述智能卡返回的第三响应报文;\n[0055] 第三判断模块,用于判断所述第三接收模块接收到的第三响应报文是否为符合第三预设格式的报文,所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;\n[0056] 第四生成模块,用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,根据自身保存的种子密钥和第一预设数据生成第一挑战码,根据所述第一记录数据和所述第一挑战码生成应用密文生成命令;\n[0057] 第四发送模块,用于将所述第四生成模块生成的所述应用密文生成命令发送给所述智能卡;\n[0058] 第四接收模块,用于接收所述智能卡返回的第四响应报文;\n[0059] 第四判断模块,用于判断所述第四接收模块接收到的第四响应报文是否为符合第四预设格式的报文,所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;\n[0060] 显示模块,用于在所述第一判断模块判断所述第一响应报文不是符合第一预设格式的报文时,显示错误信息;在所述第二判断模块判断所述第二响应报文不是符合第二预设格式的报文时,显示错误信息;在所述第三判断模块判断所述第三响应报文不是符合第三预设格式的报文时,显示错误信息;在所述第四判断模块判断所述第四响应报文不是符合第四预设格式的报文时,显示错误信息;\n[0061] 第五生成模块,用于在所述第四判断模块判断所述第四响应报文为符合第四预设格式的报文时,从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。\n[0062] 本发明还提供了一种动态口令设备,包括:\n[0063] 检测模块,用于检测用户是否触发按键;\n[0064] 第一生成模块,用于在所述检测模块检测到用户触发第二按键时,获取与所述第二按键对应的应用标识,根据所述应用标识生成应用选择命令;\n[0065] 第一发送模块,用于将所述第一生成模块生成的所述应用选择命令发送给所述智能卡;\n[0066] 第一接收模块,用于接收所述智能卡返回的第一响应报文;\n[0067] 第一判断模块,用于判断所述第一接收模块接收到的第一响应报文是否为符合第一预设格式的报文,所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;\n[0068] 第二生成模块,用于在所述第一判断模块判断所述第一响应报文为符合第一预设格式的报文时,从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令;\n[0069] 第二发送模块,用于将所述第二生成模块生成的所述获取处理选项命令发送给所述智能卡;\n[0070] 第二接收模块,用于接收所述智能卡返回的第二响应报文;\n[0071] 第二判断模块,用于判断所述第二接收模块接收到的第二响应报文是否为符合第二预设格式的报文,所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;\n[0072] 第三生成模块,用于在所述第二判断模块判断所述第二响应报文为符合第二预设格式的报文时,从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令;\n[0073] 第三发送模块,用于将所述第三生成模块生成的所述读记录命令发送给所述智能卡;\n[0074] 第三接收模块,用于接收所述智能卡返回的第三响应报文;\n[0075] 第三判断模块,用于判断所述第三接收模块接收到的第三响应报文是否为符合第三预设格式的报文,所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;\n[0076] 第四生成模块,用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第二挑战码进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令;\n[0077] 第四发送模块,用于将所述第四生成模块生成的所述应用密文生成命令发送给所述智能卡;\n[0078] 第四接收模块,用于接收所述智能卡返回的第四响应报文;\n[0079] 第四判断模块,用于判断所述第四接收模块接收到的第四响应报文是否为符合第四预设格式的报文,所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;\n[0080] 显示模块,用于在所述第一判断模块判断所述第一响应报文不是符合第一预设格式的报文时,显示错误信息;在所述第二判断模块判断所述第二响应报文不是符合第二预设格式的报文时,显示错误信息;在所述第三判断模块判断所述第三响应报文不是符合第三预设格式的报文时,显示错误信息;在所述第四判断模块判断所述第四响应报文不是符合第四预设格式的报文时,显示错误信息;\n[0081] 第五生成模块,用于在所述第四判断模块判断所述第四响应报文为符合第四预设格式的报文时,从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。\n[0082] 本发明还提供了一种动态口令设备,包括:\n[0083] 检测模块,用于检测用户是否触发按键;\n[0084] 第一生成模块,用于在所述检测模块检测到用户触发第三按键时,获取与所述第三按键对应的应用标识,根据所述应用标识生成应用选择命令;\n[0085] 第一发送模块,用于将所述第一生成模块生成的所述应用选择命令发送给所述智能卡;\n[0086] 第一接收模块,用于接收所述智能卡返回的第一响应报文;\n[0087] 第一判断模块,用于判断所述第一接收模块接收到的第一响应报文是否为符合第一预设格式的报文,所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;\n[0088] 第二生成模块,用于在所述第一判断模块判断所述第一响应报文为符合第一预设格式的报文时,从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令;\n[0089] 第二发送模块,用于将所述第二生成模块生成的所述获取处理选项命令发送给所述智能卡;\n[0090] 第二接收模块,用于接收所述智能卡返回的第二响应报文;\n[0091] 第二判断模块,用于判断所述第二接收模块接收到的第二响应报文是否为符合第二预设格式的报文,所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;\n[0092] 第三生成模块,用于在所述第二判断模块判断所述第二响应报文为符合第二预设格式的报文时,从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令;\n[0093] 第三发送模块,用于将所述第三生成模块生成的所述读记录命令发送给所述智能卡;\n[0094] 第三接收模块,用于接收所述智能卡返回的第三响应报文;\n[0095] 第三判断模块,用于判断所述第三接收模块接收到的第三响应报文是否为符合第三预设格式的报文,所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;\n[0096] 第四生成模块,用于在所述第三判断模块判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第一业务数据进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令;\n[0097] 第四发送模块,用于将所述第四生成模块生成的所述应用密文生成命令发送给所述智能卡;\n[0098] 第四接收模块,用于接收所述智能卡返回的第四响应报文;\n[0099] 第四判断模块,用于判断所述第四接收模块接收到的第四响应报文是否为符合第四预设格式的报文,所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;\n[0100] 显示模块,用于在所述第一判断模块判断所述第一响应报文不是符合第一预设格式的报文时,显示错误信息;在所述第二判断模块判断所述第二响应报文不是符合第二预设格式的报文时,显示错误信息;在所述第三判断模块判断所述第三响应报文不是符合第三预设格式的报文时,显示错误信息;在所述第四判断模块判断所述第四响应报文不是符合第四预设格式的报文时,显示错误信息;\n[0101] 第五生成模块,用于在所述第四判断模块判断所述第四响应报文为符合第四预设格式的报文时,从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。\n[0102] 本发明提供的技术方案中,动态口令设备可基于事件同步、挑战/应答、交易签名等方式生成一次性动态口令,该动态口令可应用于网银、电话银行和手机银行的身份认证操作,在离线和各种复杂支付场合实现随时随地对应用系统的用户进行身份验证,有效地防止了身份盗用、冒用以及身份欺诈,提高了网络系统的安全性。\n附图说明\n[0103] 图1为本发明实施例中的动态口令设备的注册流程图;\n[0104] 图2为本发明实施例中的动态口令设备生成并发送动态口令的方法流程图;\n[0105] 图3为本发明实施例中动态口令设备生成动态口令的方法流程图;\n[0106] 图4为本发明实施例中的一种对动态口令进行认证的方法流程图;\n[0107] 图5为本发明实施例中的另一种对动态口令进行认证的方法流程图;\n[0108] 图6为本发明实施例中的又一种对动态口令进行认证的方法流程图;\n[0109] 图7为本发明实施例中的一种动态口令设备的结构示意图。\n具体实施方式\n[0110] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0111] 本发明实施例提供了一种身份认证系统,包括智能卡、动态口令设备、客户端、认证服务器和设备服务器,其中,动态口令设备是一种智能卡读写器,拥有数字键盘和液晶显示屏,与智能卡配合使用。在进行身份认证之前,需要通过客户端向服务器端注册,以激活动态口令设备,具体的注册过程如图1所示,包括以下步骤:\n[0112] 步骤101,客户端向认证服务器发送注册请求。\n[0113] 其中,注册请求中包含智能卡信息和动态口令设备的序列号,智能卡信息可以为智能卡的卡号。\n[0114] 步骤102,认证服务器从注册请求中获取智能卡信息和动态口令设备的序列号,根据该序列号生成密钥获取请求。\n[0115] 其中,密钥获取请求中包含动态口令设备的序列号。\n[0116] 步骤103,认证服务器向设备服务器发送密钥获取请求。\n[0117] 步骤104,设备服务器从密钥获取请求中获取动态口令设备的序列号,根据该序列号查询对应的种子密钥。\n[0118] 步骤105,设备服务器判断是否查询到种子密钥,如果查询到,则执行步骤108;否则执行步骤106。\n[0119] 步骤106,设备服务器向认证服务器发送获取密钥失败消息。\n[0120] 步骤107,认证服务器向客户端发送注册失败消息,结束流程。\n[0121] 步骤108,设备服务器向认证服务器发送查询到的种子密钥。\n[0122] 步骤109,认证服务器对接收到的种子密钥进行存储,并建立种子密钥与智能卡信息之间的对应关系。\n[0123] 本实施例中,认证服务器根据动态口令设备的序列号从设备服务器获取的种子密钥,与该动态口令设备中存储的种子密钥相同。动态口令设备中存储有唯一的种子密钥,且不同的动态口令设备分别存储不同的种子密钥,种子密钥与智能卡信息之间可以是一一对应的关系,也可以是一对多的关系。认证服务器中可以根据种子密钥与智能卡信息之间的对应关系生成对应关系表,并存储该对应关系表,如表1所示。\n[0124] 表1 种子密钥与智能卡信息之间的对应关系表\n[0125]\n[0126] 步骤110,认证服务器向客户端发送注册成功消息。\n[0127] 通过上述流程完成注册后,动态口令设备被激活,可与智能卡配合进行身份认证。\n动态口令设备生成并发送动态口令的具体过程如图2所示,包括以下步骤:\n[0128] 步骤201,动态口令设备在检测到有智能卡插入时启动,对该智能卡进行上电激活。\n[0129] 步骤202,动态口令设备判断插入的智能卡是否与自身匹配,如果匹配,则执行步骤204;否则,执行步骤203。\n[0130] 具体地,动态口令设备可以获取智能卡的AID(Application Identifier,应用标识符),判断该智能卡的AID是否包含在自身存储的预设列表中,如果是,则确定该智能卡与自身匹配;否则,则确定该智能卡与自身不匹配。\n[0131] 例如,预设列表可以如表2所示:\n[0132] 表2 与动态口令设备匹配的AID列表\n[0133]\n编号 AID\n1 A0 00 00 00 04 80 02\n2 A0 00 00 00 04 10 10\n3 A0 00 00 00 04 30 60\n4 A0 00 00 00 03 80 02\n5 A0 00 00 00 03 20 10\n6 A0 00 00 00 03 10 10\n7 A0 00 00 04 74 00 00 00 01\n8 A0 00 00 03 33 01 01 01\n[0134] 步骤203,动态口令设备显示错误信息,结束流程。\n[0135] 步骤204,动态口令设备判断在预设时间内是否有按键按下,如果有,则执行步骤\n206;否则,执行步骤205。\n[0136] 步骤205,动态口令设备关闭,结束流程。\n[0137] 步骤206,动态口令设备对获取到的按键信息进行判断,如果是第一按键,则执行步骤207;如果是第二按键,则执行步骤208;如果是第三按键,则执行步骤212。\n[0138] 本实施例中,第一按键可以是“CODE”键,第二按键可以是“C&R”键,第三按键可以是“SIGN”键。\n[0139] 步骤207,动态口令设备根据自身保存的种子密钥和第一预设数据生成第一挑战码,根据该第一挑战码生成应用密文生成命令,将该应用密文生成命令发送给智能卡,并执行步骤216。\n[0140] 步骤208,动态口令设备提示用户输入第二挑战码。\n[0141] 步骤209,动态口令设备判断是否在预设时间内获取到用户输入的第二挑战码,如果是,则执行步骤211;否则,执行步骤210。\n[0142] 步骤210,动态口令设备显示超时信息,结束流程。\n[0143] 步骤211,动态口令设备使用自身保存的种子密钥对用户输入的第二挑战码进行处理,根据处理结果生成应用密文生成命令,将该应用密文生成命令发送给智能卡,并执行步骤216。\n[0144] 步骤212,动态口令设备提示用户输入第一业务数据。\n[0145] 其中,第一业务数据可以为智能卡信息,也可以为与业务相关的其他信息。\n[0146] 步骤213,动态口令设备判断是否在预设时间内获取到用户输入的第一业务数据,如果是,则执行步骤215;否则,执行步骤214。\n[0147] 步骤214,动态口令设备显示超时信息,结束流程。\n[0148] 步骤215,动态口令设备使用自身保存的种子密钥对用户输入的第一业务数据进行处理,根据处理结果生成应用密文生成命令,将该应用密文生成命令发送给智能卡,并执行步骤216。\n[0149] 步骤216,动态口令设备接收智能卡返回的第一应用密文,对包括第一应用密文在内的令牌数据进行压缩,并对压缩得到的数据进行格式转换,得到动态口令。\n[0150] 步骤217,客户端获取动态口令,根据该动态口令和智能卡信息生成身份认证请求,并将该身份认证请求发送给认证服务器。\n[0151] 需要说明的是,上述实施例中动态口令设备生成动态口令的步骤(步骤207和步骤\n216的组合、步骤211和步骤216的组合,以及步骤215和步骤216的组合)可细化为如图3所示的流程图,包括以下步骤:\n[0152] 步骤301,动态口令设备获取与按键信息对应的应用标识,根据该应用标识生成应用选择命令。\n[0153] 具体地,动态口令设备根据按键信息对应的工作模式,从应用选择列表中选择应用标识,根据选择的应用标识生成应用选择命令,该应用选择命令中包含该应用标识。\n[0154] 步骤302,动态口令设备将应用选择命令发送给智能卡。\n[0155] 步骤303,智能卡向动态口令设备返回第一响应报文。\n[0156] 步骤304,动态口令设备判断第一响应报文是否符合第一预设格式,如果符合,则执行步骤305;否则,显示错误信息,结束流程。\n[0157] 具体地,动态口令设备可以判断第一响应报文包含的状态码是否为第一预设值(例如‘,9000’),如果状态码不是第一预设值,则确定第一响应报文不符合第一预设格式。\n如果状态码是第一预设值,则动态口令设备判断第一响应报文中是否包含FCI(File Control Information,文件控制信息),如果不包含FCI,则确定第一响应报文不符合第一预设格式。如果包含FCI,则动态口令设备判断FCI中是否包含PDOL(Processing Options Data Object List,处理选项数据对象列表)和DF(Dedicated File,专用文件)名称,如果不包含,则确定第一响应报文不符合第一预设格式。如果包含,则动态口令设备判断DF名称是否与应用选择命令中的应用标识相同,如果不同,则确定第一响应报文不符合第一预设格式;如果相同,则确定第一响应报文符合第一预设格式。\n[0158] 步骤305,动态口令设备从第一响应报文中获取PDOL,根据PDOL生成获取处理选项命令,向智能卡发送该获取处理选项命令。\n[0159] 具体地,动态口令设备从第一响应报文的数据域中获取FCI,从FCI中获取PDOL,根据PDOL采集相关的PDOL数据,将PDOL数据作为获取处理选项命令的数据域中的内容,生成并发送获取处理选项命令。\n[0160] 步骤306,智能卡向动态口令设备返回第二响应报文。\n[0161] 步骤307,动态口令设备判断第二响应报文是否符合第二预设格式,如果符合,则执行步骤308;否则,显示错误信息,结束流程。\n[0162] 具体地,动态口令设备可以判断第二响应报文包含的状态码是否为第二预设值(例如‘,9000’),如果状态码不是第二预设值,则确定第二响应报文不符合第二预设格式。\n如果状态码是第二预设值,则动态口令设备判断第二响应报文中是否同时包含AIP(Application Interchange Profile,应用交互特征)和AFL(Application File Locator,应用文件定位器),如果不包含AIP或AFL,则确定第二响应报文不符合第二预设格式。如果包含AIP和AFL,则判断AIP的第5字节是否被置位,如果被置位,则确定第二响应报文符合第二预设格式;否则,确定第二响应报文不符合第二预设格式。\n[0163] 步骤308,动态口令设备从第二响应报文中获取AFL,根据该AFL生成读记录命令,向智能卡发送该读记录命令。\n[0164] 具体地,动态口令设备从第二响应报文的数据域中获取AFL,将AFL所包含的记录号作为读记录命令中的预设参数(例如,P1)的值,生成并发送读记录命令。\n[0165] 步骤309,智能卡向动态口令设备返回第三响应报文。\n[0166] 步骤310,动态口令设备判断第三响应报文是否符合第三预设格式,如果符合,则执行步骤311;否则,显示错误信息,结束流程。\n[0167] 具体地,动态口令设备可以判断第三响应报文包含的状态码是否为第三预设值(例如‘,9000’),如果状态码不是第三预设值,则确定第三响应报文不符合第三预设格式;\n如果状态码是第三预设值,则确定第三响应报文符合第三预设格式。\n[0168] 步骤311,动态口令设备根据自身保存的种子密钥生成挑战码,从第三响应报文中获取第一记录数据,根据挑战码和第一记录数据生成应用密文生成命令。\n[0169] 具体地,动态口令设备可以从第三响应报文的数据域中获取第一记录数据,根据该第一记录数据以及自身生成的挑战码生成终端数据,将该终端数据作为应用密文生成命令的数据域中的内容,生成应用密文生成命令。\n[0170] 其中,动态口令设备生成的挑战码可以是动态口令设备根据自身保存的种子密钥和第一预设数据生成的第一挑战码,也可以是动态口令设备使用自身保存的种子密钥对用户输入的第二挑战码处理得到的处理结果,还可以是动态口令设备使用自身保存的种子密钥对用户输入的第一业务数据处理得到的处理结果。\n[0171] 步骤312,动态口令设备将应用密文生成命令发送给智能卡。\n[0172] 步骤313,智能卡向动态口令设备返回第四响应报文。\n[0173] 步骤314,动态口令设备判断第四响应报文是否符合第四预设格式,如果符合,则执行步骤315;否则,显示错误信息,结束流程。\n[0174] 具体地,动态口令设备可以判断第四响应报文包含的状态码是否为第四预设值(例如‘,9000’),如果状态码不是第四预设值,则确定第四响应报文不符合第四预设格式;\n如果状态码是第四预设值,则确定第四响应报文符合第四预设格式。\n[0175] 步骤315,动态口令设备从第四响应报文中获取第一应用密文,根据第一应用密文生成动态口令。\n[0176] 具体地,动态口令设备从第四响应报文的数据域中获取第一应用密文,对第一应用密文进行压缩,并对压缩得到的数据进行格式转换,得到动态口令。\n[0177] 需要说明的是,基于步骤206中动态口令设备对获取到的按键信息的判断结果的不同,上述流程的步骤311中动态口令生成应用密文生成命令的过程也不相同,具体过程包括:\n[0178] 当动态口令设备判断按键信息为第一按键时,动态口令设备根据自身保存的种子密钥和第一预设数据生成第一挑战码,根据该第一挑战码生成应用密文生成命令。具体地,动态口令设备使用种子密钥对第一预设数据进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,将该数据作为第一挑战码,并根据该第一挑战码和第一记录数据生成应用密文生成命令。其中,处理结果中位于第一预设位置的数据可以为处理结果中位置最靠后的4字节的数据,位于第二预设位置的数据为位置最靠后的8位数据。\n[0179] 例如,当第一预设数据为“0xFF FF FF FF FF FF FF FF”,种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”时,动态口令设备使用种子密钥对第一预设数据进行哈希处理后,得到的处理结果为“0x13D4CCFCA084107123C077D007FC6B754F32103A”,从处理结果中选择位置最靠后的4字节的数据,即“0x4F32103A”,将选择的数据转换为对应的十进制数据,得到“1328681018”,从转换得到的数据中选择位置最靠后的8位数据,即“28681018”,使用“28681018”作为第一挑战码,生成应用密文生成命令。\n[0180] 当动态口令设备判断按键信息为第二按键时,动态口令设备根据自身保存的种子密钥和用户输入的第二挑战码,生成应用密文生成命令。具体地,动态口令设备使用种子密钥对用户输入的第二挑战码进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,根据选择的数据和第一记录数据生成应用密文生成命令。其中,处理结果中位于第一预设位置的数据可以为处理结果中位置最靠后的4字节的数据,位于第二预设位置的数据为位置最靠后的8位数据。\n[0181] 例如,种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”,用户输入的第二挑战码为“11347689”时,动态口令设备将该第二挑战码补零至8字节数据“0x0000 0000 1134 \n7689”,并使用种子密钥对补零得到的数据进行哈希处理后,得到的处理结果为“0xBA55 EF3B 1F92 F255 BD96 131A 685A 4F51 2F55 F1D4”,从处理结果中选择位置最靠后的4字节的数据,即“0x2F55 F1D4”,将选择的数据转换为对应的十进制数据,得到“794161620”,从转换得到的数据中选择位置最靠后的8位数据,即“94161620”,使用“94161620”作为挑战码,生成应用密文生成命令。\n[0182] 当动态口令设备判断按键信息为第三按键时,动态口令设备根据自身保存的种子密钥和用户输入的第一业务数据,生成应用密文生成命令。具体地,动态口令设备使用种子密钥对用户输入的第一业务数据中的第一个数据段进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,当用户输入的第一业务数据仅包含一个数据段时,根据选择的数据和第一记录数据生成应用密文生成命令;当用户输入的第一业务数据包含多个数据段时,根据选择的数据、第一业务数据中除第一个数据段之外的其他数据以及第一记录数据,生成应用密文生成命令。其中,处理结果中位于第一预设位置的数据可以为处理结果中位置最靠后的4字节的数据,位于第二预设位置的数据为位置最靠后的8位数据,第一业务数据为用户输入到动态口令设备中的业务数据。\n[0183] 例如,种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”,用户输入的第一业务数据仅包含一个数据段“1234567890”时,动态口令设备将该数据段补零至8字节数据“0x0000 0012 3456 7890”,并使用种子密钥对补零后得到的数据进行哈希处理后,得到的处理结果为“0x96E4 5587 632F 8D36 5429 2C6F F150 310F 688D E125”,从处理结果中选择位置最靠后的4字节的数据,即“0x688D E125”,将选择的数据转换为对应的十进制数据,得到“1754128677”,从转换得到的数据中选择位置最靠后的8位数据,即“54128677”,并使用“54128677”生成应用密文生成命令。\n[0184] 当种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”,用户输入的第一业务数据包含第一个数据段“3344”和第二个数据段“543231”时,动态口令设备将第一个数据段补零至8字节数据“0x0000 0000 0000 3344”,并使用种子密钥对补零后得到的数据进行哈希处理后,得到的处理结果为“0xECD5 09F6 2C7A 846D FD9D 71E1 596C 5191 B5FA 6CF2”,从处理结果中选择位置最靠后的4字节的数据,即“0x B5FA 6CF2”,将选择的数据转换为对应的十进制数据,得到“53087986”,从转换得到的数据中选择位置最靠后的8位数据,即“53087986”,并使用“53087986”和用户输入的第一业务数据中的第二数据段“543231”生成应用密文生成命令。\n[0185] 本实施例中,认证服务器接收到来自客户端的身份认证请求后,对该身份认证请求中的动态口令进行认证,其具体过程如图4所示,包括以下步骤:\n[0186] 步骤401,认证服务器从身份认证请求中获取动态口令和智能卡信息,根据该智能卡信息查询对应的种子密钥。\n[0187] 具体地,认证服务器根据智能卡信息,查询自身预先存储的种子密钥与智能卡信息之间的对应关系表,以确定是否有与该智能卡信息对应的种子密钥。\n[0188] 步骤402,认证服务器判断是否查询到相应的种子密钥,如果是,则执行步骤404;\n否则,执行步骤403。\n[0189] 步骤403,认证服务器向客户端发送认证失败消息,结束流程。\n[0190] 步骤404,认证服务器对动态口令进行格式转换,并对转换得到的数据进行解压缩,得到第一应用密文。\n[0191] 步骤405,认证服务器根据查询到的种子密钥和自身存储的第二预设数据生成第三挑战码,根据第三挑战码和自身保存的第二记录数据生成第二应用密文。\n[0192] 具体地,认证服务器可以使用查询到的种子密钥对第二预设数据进行哈希(Hash)处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据作为第三挑战码,根据该第三挑战码和自身保存的第二记录数据生成第二应用密文。其中,处理结果中位于第一预设位置的数据可以为处理结果中位置最靠后的4字节的数据,位于第二预设位置的数据为位置最靠后的8位数据;其中,第二预设数据的取值可以与第一预设数据的取值相同,第二记录数据的取值可以与第一记录数据的取值相同。\n[0193] 例如,当第二预设数据为“0xFF FF FF FF FF FF FF FF”,查询到的种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”时,认证服务器使用种子密钥对第二预设数据进行哈希处理后,得到的处理结果为“0x13D4CCFCA084107123C077D007FC6B754F32103A”,从处理结果中选择位置最靠后的4字节的数据,即“0x4F32103A”,将选择的数据转换为对应的十进制数据,得到“1328681018”,从转换得到的数据中选择位置最靠后的8位数据作为第三挑战码,即“28681018”,使用“28681018” 和第二记录数据生成第二应用密文。\n[0194] 步骤406,认证服务器判断第二应用密文是否与第一应用密文相同,如果是,则执行步骤407;否则,执行步骤408。\n[0195] 步骤407,认证服务器向客户端发送认证成功消息,结束流程。\n[0196] 步骤408,认证服务器向客户端发送认证失败消息,结束流程。\n[0197] 需要说明的是,在本发明的其他实施方式中,步骤404可以在步骤402之前执行,也可以在步骤405之后执行,也可以与步骤402或步骤405同时执行,同样可以实现本发明的发明目的。\n[0198] 如图5所示,为本发明实施例中的另一种对动态口令进行认证的方法流程图,包括以下步骤:\n[0199] 步骤501,认证服务器从身份认证请求中获取动态口令和智能卡信息,根据该智能卡信息查询对应的种子密钥。\n[0200] 具体地,认证服务器根据智能卡信息,查询自身预先存储的种子密钥与智能卡信息之间的对应关系表,以确定是否有与该智能卡信息对应的种子密钥。\n[0201] 步骤502,认证服务器判断是否查询到相应的种子密钥,如果是,则执行步骤504;\n否则,执行步骤503。\n[0202] 步骤503,认证服务器向客户端发送认证失败消息,结束流程。\n[0203] 步骤504,认证服务器对动态口令进行格式转换,并对转换得到的数据进行解压缩,得到第一应用密文。\n[0204] 步骤505,认证服务器使用查询到的种子密钥对自身生成的第四挑战码进行处理,根据处理结果和自身保存的第二记录数据生成第二应用密文。\n[0205] 具体地,认证服务器可以使用查询到的种子密钥对第四挑战码进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,根据该数据和自身保存的第二记录数据生成第二应用密文。其中,处理结果中位于第一预设位置的数据可以为处理结果中位置最靠后的4字节的数据,位于第二预设位置的数据可以为位置最靠后的8位数据;第二记录数据的取值可以与第一记录数据的取值相同。\n[0206] 例如,种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”,认证服务器生成的第四挑战码为“11347689”时,认证服务器将该第四挑战码补零至8字节数据“0x0000 0000 \n1134 7689”,并使用种子密钥对补零得到的数据进行哈希处理后,得到的处理结果为“0xBA55 EF3B 1F92 F255 BD96 131A 685A 4F51 2F55 F1D4”,从处理结果中选择位置最靠后的4字节的数据,即“0x2F55 F1D4”,将选择的数据转换为对应的十进制数据,得到“794161620”,从转换得到的数据中选择位置最靠后的8位数据,即“94161620”,使用“94161620” 和第二记录数据生成第二应用密文。\n[0207] 步骤506,认证服务器判断第二应用密文是否与第一应用密文相同,如果是,则执行步骤507;否则,执行步骤508。\n[0208] 步骤507,认证服务器向客户端发送认证成功消息,结束流程。\n[0209] 步骤508,认证服务器向客户端发送认证失败消息,结束流程。\n[0210] 如图6所示,为本发明实施例中的又一种对动态口令进行认证的方法流程图,包括以下步骤:\n[0211] 步骤601,认证服务器从身份认证请求中获取动态口令和智能卡信息,根据该智能卡信息查询对应的种子密钥。\n[0212] 具体地,认证服务器根据智能卡信息,查询自身预先存储的种子密钥与智能卡信息之间的对应关系表,以确定是否有与该智能卡信息对应的种子密钥。\n[0213] 步骤602,认证服务器判断是否查询到相应的种子密钥,如果是,则执行步骤604;\n否则,执行步骤603。\n[0214] 步骤603,认证服务器向客户端发送认证失败消息,结束流程。\n[0215] 步骤604,认证服务器对动态口令进行格式转换,并对转换得到的数据进行解压缩,得到第一应用密文。\n[0216] 步骤605,认证服务器使用查询到的种子密钥对用户输入的第二业务数据进行处理,根据处理结果和自身保存的第二记录数据生成第二应用密文。\n[0217] 具体地,认证服务器可以使用查询到的种子密钥对第二业务数据中的第一个数据段进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,当第二业务数据仅包含一个数据段时,根据选择的数据和自身保存的第二记录数据生成第二应用密文;当第二业务数据包含多个数据段时,根据选择的数据、第二业务数据中除第一个数据段之外的其他数据以及第二记录数据生成第二应用密文。其中,处理结果中位于第一预设位置的数据可以为处理结果中位置最靠后的4字节的数据,位于第二预设位置的数据可以为位置最靠后的8位数据,第二业务数据可以为用户通过客户端输入的业务数据;第二记录数据的取值可以与第一记录数据的取值相同。\n[0218] 例如,种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”,用户输入的第二业务数据仅包含一个数据段“1234567890”时,认证服务器将该数据段补零至8字节数据“0x0000 0012 3456 7890”,并使用种子密钥对补零后得到的数据进行哈希处理后,得到的处理结果为“0x96E4 5587 632F 8D36 5429 2C6F F150 310F 688D E125”,从处理结果中选择位置最靠后的4字节的数据,即“0x688D E125”,将选择的数据转换为对应的十进制数据,得到“1754128677”,从转换得到的数据中选择位置最靠后的8位数据,即“54128677”,并使用“54128677”和第二记录数据生成第二应用密文。\n[0219] 当种子密钥为“0x1A1002DC6489E3E345ADF23B321C2A97”,用户输入的第二业务数据包含第一个数据段“3344”和第二个数据段“543231”时,认证服务器将第一个数据段补零至8字节数据“0x0000 0000 0000 3344”,并使用种子密钥对补零后得到的数据进行哈希处理后,得到的处理结果为“0xECD5 09F6 2C7A 846D FD9D 71E1 596C 5191 B5FA 6CF2”,从处理结果中选择位置最靠后的4字节的数据,即“0x B5FA 6CF2” 将选择的数据转换为对应的十进制数据,得到“53087986”,从转换得到的数据中选择位置最靠后的8位数据,即“53087986”,并使用“53087986”、用户输入的第二业务数据中的第二数据段“543231”以及第二记录数据生成第二应用密文。\n[0220] 步骤606,认证服务器判断第二应用密文是否与第一应用密文相同,如果是,则执行步骤607;否则,执行步骤608。\n[0221] 步骤607,认证服务器向客户端发送认证成功消息,结束流程。\n[0222] 步骤608,认证服务器向客户端发送认证失败消息,结束流程。\n[0223] 本发明实施例中,动态口令设备可基于事件同步、挑战/应答、交易签名等方式生成一次性动态口令,该动态口令可应用于网银、电话银行和手机银行的身份认证操作,在离线和各种复杂支付场合实现随时随地对应用系统的用户进行身份验证,有效地防止了身份盗用、冒用以及身份欺诈,提高了网络系统的安全性。\n[0224] 基于上述动态口令设备的工作方法,本发明实施例还提供了一种动态口令设备,如图7所示,包括:\n[0225] 检测模块701,用于检测用户是否触发按键;\n[0226] 第一生成模块702,用于在所述检测模块701检测到用户触发第一按键时,获取与所述第一按键对应的应用标识,根据所述应用标识生成应用选择命令;\n[0227] 第一发送模块703,用于将所述第一生成模块702生成的所述应用选择命令发送给所述智能卡;\n[0228] 第一接收模块704,用于接收所述智能卡返回的第一响应报文;\n[0229] 第一判断模块705,用于判断所述第一接收模块704接收到的第一响应报文是否为符合第一预设格式的报文,所述符合第一预设格式的报文包括第一状态码和第一数据域,所述第一状态码的取值为第一预设值,所述第一数据域中包含文件控制信息,所述文件控制信息中包含处理选项数据对象列表以及与所述应用标识相同的专用文件名称;\n[0230] 第二生成模块706,用于在所述第一判断模块705判断所述第一响应报文为符合第一预设格式的报文时,从所述第一响应报文中获取所述处理选项数据对象列表,根据所述处理选项数据对象列表生成获取处理选项命令;\n[0231] 第二发送模块707,用于将所述第二生成模块706生成的所述获取处理选项命令发送给所述智能卡;\n[0232] 第二接收模块708,用于接收所述智能卡返回的第二响应报文;\n[0233] 第二判断模块709,用于判断所述第二接收模块708接收到的第二响应报文是否为符合第二预设格式的报文,所述符合第二预设格式的报文包括第二状态码和第二数据域,所述第二状态码的取值为第二预设值,所述第二数据域中包含应用文件定位器;\n[0234] 第三生成模块710,用于在所述第二判断模块709判断所述第二响应报文为符合第二预设格式的报文时,从所述第二响应报文中获取应用文件定位器,根据所述应用文件定位器生成读记录命令;\n[0235] 第三发送模块711,用于将所述第三生成模块710生成的所述读记录命令发送给所述智能卡;\n[0236] 第三接收模块712,用于接收所述智能卡返回的第三响应报文;\n[0237] 第三判断模块713,用于判断所述第三接收模块712接收到的第三响应报文是否为符合第三预设格式的报文,所述符合第三预设格式的报文包括第三状态码和第三数据域,所述第三状态码的取值为第三预设值,所述第三数据域中包含第一记录数据;\n[0238] 第四生成模块714,用于在所述第三判断模块713判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,根据自身保存的种子密钥和第一预设数据生成第一挑战码,根据所述第一记录数据和所述第一挑战码生成应用密文生成命令;\n[0239] 或者,在所述第三判断模块713判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第二挑战码进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令;\n[0240] 或者,在所述第三判断模块713判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用自身保存的种子密钥对用户输入的第一业务数据进行处理,根据处理结果和所述第一记录数据生成应用密文生成命令;\n[0241] 具体地,第四生成模块714,具体用于在所述第三判断模块713判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用所述种子密钥对所述第一预设数据进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据作为所述第一挑战码,根据所述第一记录数据和所述第一挑战码生成所述应用密文生成命令;\n[0242] 或者,在所述第三判断模块713判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用所述种子密钥对所述第二挑战码进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,根据选择的数据生成所述应用密文生成命令;\n[0243] 或者,在所述第三判断模块713判断所述第三响应报文为符合第三预设格式的报文时,从所述第三响应报文中获取第一记录数据,使用所述种子密钥对所述第一业务数据中的第一个数据段进行哈希处理,从处理结果中选择位于第一预设位置的数据,将选择的数据转换为对应的十进制数据,从转换得到的数据中选择位于第二预设位置的数据,当所述第一业务数据仅包含一个数据段时,根据选择的数据生成所述应用密文生成命令;当所述第一业务数据包含多个数据段时,根据选择的数据以及所述第一业务数据中除所述第一个数据段之外的其他数据生成所述应用密文生成命令。\n[0244] 第四发送模块715,用于将所述第四生成模块714生成的所述应用密文生成命令发送给所述智能卡;\n[0245] 第四接收模块716,用于接收所述智能卡返回的第四响应报文;\n[0246] 第四判断模块717,用于判断所述第四接收模块716接收到的第四响应报文是否为符合第四预设格式的报文,所述符合第四预设格式的报文包括第四状态码和第四数据域,所述第四状态码的取值为第四预设值,所述第四数据域中包含第一应用密文;\n[0247] 显示模块718,用于在所述第一判断模块705判断所述第一响应报文不是符合第一预设格式的报文时,显示错误信息;在所述第二判断模块709判断所述第二响应报文不是符合第二预设格式的报文时,显示错误信息;在所述第三判断模块713判断所述第三响应报文不是符合第三预设格式的报文时,显示错误信息;在所述第四判断模块717判断所述第四响应报文不是符合第四预设格式的报文时,显示错误信息;\n[0248] 第五生成模块719,用于在所述第四判断模块717判断所述第四响应报文为符合第四预设格式的报文时,从所述第四响应报文中获取第一应用密文,根据所述第一应用密文生成动态口令。\n[0249] 进一步地,上述动态口令设备,还包括:\n[0250] 第五判断模块720,用于判断所述智能卡是否与所述动态口令设备匹配;\n[0251] 具体地,上述第五判断模块720,具体用于获取所述智能卡的应用标识符,判断所述智能卡的应用标识符是否包含在所述动态口令设备存储的预设列表中,如果是,则确定所述智能卡与所述动态口令设备匹配;否则,确定所述智能卡与所述动态口令设备不匹配。\n[0252] 相应地,上述检测模块701,具体用于在所述第五判断模块720判断所述智能卡与所述动态口令设备匹配时,检测用户是否触发按键。\n[0253] 上述显示模块718,还用于在所述第五判断模块720判断所述智能卡与所述动态口令设备不匹配时,显示错误信息。\n[0254] 本发明实施例中,动态口令设备可基于事件同步、挑战/应答、交易签名等方式生成一次性动态口令,该动态口令可应用于网银、电话银行和手机银行的身份认证操作,在离线和各种复杂支付场合实现随时随地对应用系统的用户进行身份验证,有效地防止了身份盗用、冒用以及身份欺诈,提高了网络系统的安全性。\n[0255] 结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。\n[0256] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
法律信息
- 2016-08-24
- 2013-10-23
实质审查的生效
IPC(主分类): H04L 9/32
专利申请号: 201310282028.4
申请日: 2013.07.05
- 2013-09-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-03-14
|
2011-11-07
| | |
2
| |
2007-10-10
|
2007-05-21
| | |
3
| |
2008-04-16
|
2007-11-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |