发明内容
本发明要解决的技术问题是:提供一种基于硬件数字证书载体的动态密码验证方法,该方法可以有效地提高用户使用硬件数字证书载体的信息安全性。
本发明要解决的另一技术问题是:提供一种基于硬件数字证书载体的动态密码验证系统,该系统有效地保障了用户使用硬件数字证书载体的信息安全性。
为了解决上述技术问题,本发明所采用的技术方案是:
一种基于硬件数字证书载体的动态密码验证方法,该方法包括以下步骤:
硬件数字证书载体接收来自客户端的服务请求;
硬件数字证书载体向客户端传送包含有二进制序列的PIN码输入信息;
硬件数字证书载体接收来自客户端的PIN码数据;
硬件数字证书载体将来自客户端的PIN码数据与内部运算得到的动态PIN码数据进行匹配,若匹配则激活硬件数字证书载体提供服务响应。
进一步作为优选的实施方式,所述二进制序列是由硬件数字证书载体随机产生的数据,该二进制序列的位数与硬件数字证书载体原始PIN码的位数相同。
进一步作为优选的实施方式,硬件数字证书载体接收来自客户端的服务请求之后并在向客户端传送包含有二进制序列的PIN码输入信息之前还包括:
对服务请求的指令完整性进行判断,若服务请求的指令完整并需要提升权限,则硬件数字证书载体向客户端传送包含有二进制序列的PIN码输入信息。
进一步作为优选的实施方式,所述硬件数字证书载体随机产生的二进制序列存储在缓冲存储模块,该缓冲存储模块内数据的存储时间可以设置,并且在二进制序列刷新时被新生成的二进制序列覆盖。
进一步作为优选的实施方式,所述硬件数字证书载体随机产生的二进制序列的刷新次数可以设置,当超过预定义的刷新次数后,硬件数字证书载体将进入锁定状态。
一种基于硬件数字证书载体的动态密码验证系统,该系统包括:
数据接收模块,用于接收来自客户端的数据,包括服务请求和用户通过客户端输入的PIN码数据;
安全服务模块,用于生成包含有二进制序列的PIN码输入信息;
数据发送模块,用于将包含有二进制序列的PIN码输入信息传送给客户端;
比较模块,用于根据硬件数字证书载体的原始PIN码和二进制序列计算得到动态PIN码数据,并比较计算得到的动态PIN码数据与来自客户端的PIN码数据,若匹配则激活硬件数字证书载体提供服务响应。
进一步作为优选的实施方式,所述二进制序列是由安全服务模块随机产生的数据,该二进制序列的位数与硬件数字证书载体原始PIN码的位数相同。
进一步作为优选的实施方式,该系统还包括一指令处理模块,用于对服务请求的指令完整性进行判断,若服务请求的指令完整并需要提升权限,则安全服务模块生成包含有二进制序列的PIN码输入信息。
进一步作为优选的实施方式,该系统还包括一缓冲存储模块,用于存储安全服务模块随机产生的二进制序列,该缓冲存储模块内数据的存储时间可以设置,并且在二进制序列刷新时被新生成的二进制序列覆盖。
进一步作为优选的实施方式,该系统还包括一刷新计数模块,用于对安全服务模块刷新二进制序列的次数进行计数,所述二进制序列的刷新次数可以设置,当超过预定义的刷新次数后,硬件数字证书载体将进入锁定状态。
本发明的有益效果是:本发明基于硬件数字证书载体的动态密码验证方法及系统,在用户获取硬件数字证书载体的使用权限进行PIN码认证时,一改传统的直接输入全部PIN码的做法,而是通过与动态生成的二进制序列结合,要求用户输入动态的PIN码,从而使得即使系统被非法入侵时,入侵者也无法获取完整的PIN码,提高了硬件数字证书载体密码的安全性,保障了用户的合法利益。
具体实施方式
现有的硬件数字证书载体的PIN码验证需要用户输入完整的PIN码,本发明采用输入动态的PIN码的方式以提高硬件数字证书载体PIN码的安全性。
参照图1,本发明基于硬件数字证书载体的动态密码验证方法实施例一的步骤流程如下:
步骤S10:硬件数字证书载体接收来自客户端的服务请求;
步骤S20:硬件数字证书载体向客户端传送包含有二进制序列的PIN码输入信息;
步骤S30:硬件数字证书载体接收来自客户端的PIN码数据;
步骤S40:硬件数字证书载体将来自客户端的PIN码数据与内部运算得到的动态PIN码数据进行匹配,若匹配则激活硬件数字证书载体提供服务响应。
下面列举一个实际应用的例子,硬件数字证书载体以USB Key为例,假设该USB Key的PIN码为123321123。
现有技术的USB Key的PIN码认证流程如下:
A:用户申请使用USB Key服务响应,通过客户端向USB Key服务请求;
B:USB Key接收服务请求后,向客户端返回PIN码认证请求,客户端弹出PIN码认证输入框;
C:用户通过客户端输入PIN码123321123;
D: USB Key为用户提供服务响应。
在本发明中USB Key的PIN码认证流程如下:
A:用户申请使用USB Key服务响应,通过客户端向USB Key服务请求;
B:USB Key接收服务请求后,向客户端返回PIN码认证请求,客户端弹出PIN码认证输入框,客户端同时显示随PIN码认证请求接收的二进制序列,例如提示OOXXOXOOO(二进制序列由USB Key随机产生的,理论上每次得到的二进制序列无法预知,此序列的位数与USB Key的PIN码长度相等,O表示其对应的PIN码相同位置的数字需要输入,X表示不用输入);
C:用户通过客户端输入PIN码122123;
D: USB Key将用户输入的动态PIN码与内部计算获得PIN码进行匹配,若匹配为用户提供服务响应。
作为本发明基于硬件数字证书载体的动态密码验证方法的进一步改进,所述二进制序列是由硬件数字证书载体随机产生的数据,该二进制序列的位数与硬件数字证书载体原始PIN码的位数相同。
在上述实施例的基础之上,参照图2,作为本发明基于硬件数字证书载体的动态密码验证方法的进一步改进,本发明动态密码验证方法实施例二在步骤S10和步骤S20之间还设有步骤S11,步骤S11为对对服务请求的指令完整性进行判断,若服务请求的指令完整并需要提升权限,则硬件数字证书载体向客户端传送包含有二进制序列的PIN码输入信息。
进一步,所述硬件数字证书载体随机产生的二进制序列存储在缓冲存储模块,该缓冲存储模块内数据的存储时间可以设置,并且在二进制序列刷新时被新生成的二进制序列覆盖。
进一步,所述硬件数字证书载体随机产生的二进制序列的刷新次数可以设置,当超过预定义的刷新次数后,硬件数字证书载体将进入锁定状态。例如设定刷新次数为3次,这样用户仅有三次输入动态PIN码通过认证的机会,避免了非法入侵者在获取部分PIN码的基础上通过多次刷新进行攻击。
参照图3,在本发明基于硬件数字证书载体的动态密码验证系统实施例一中,该系统包括:
数据接收模块10,用于接收来自客户端的数据,包括服务请求和用户通过客户端输入的PIN码数据;
安全服务模块20,用于生成包含有二进制序列的PIN码输入信息;
数据发送模块30,用于将包含有二进制序列的PIN码输入信息传送给客户端;
比较模块40,用于根据硬件数字证书载体的原始PIN码和二进制序列计算得到动态PIN码数据,并比较计算得到的动态PIN码数据与来自客户端的PIN码数据,若匹配则激活硬件数字证书载体提供服务响应。
进一步作为优选的实施方式,所述二进制序列是由安全服务模块随机产生的数据,该二进制序列的位数与硬件数字证书载体原始PIN码的位数相同。
参照图4,在本发明动态密码验证系统的实际工作中,数据的具体流向如下:
1、用户向应用程序提交使用硬件数字证书载体的服务响应的请求;
2、应用程序通过操作系统调用CSP(Cryptographic service provider),即windows平台最底层加密接口,通过CSP向硬件数字证书载体的COS(Chip Operating System,片上操作系统)发送服务请求;
3、COS通过指令解析后,将随机生成的二进制序列和输入PIN码请求打包成PIN码输入信息,通过CSP传送给应用程序;
4、应用程序显示PIN码输入框,并显示PIN码“输入提示”(即OXOOXXOOO此类序列,此时它的表现形式应当还只是一个二进制数,如101100111);
5、用户在客户端根据PIN码“输入提示”输入动态PIN码,应用程序经CSP将用户输入的动态PIN码转交给COS。
6、COS经过对动态PIN码的验证,决定是否为用户提供服务响应。
参照图5,作为对本发明动态密码验证系统实施例一的进一步改进,在实施例二中该系统还包括一指令处理模块50,用于对服务请求的指令完整性进行判断,若服务请求的指令完整并需要提升权限,则安全服务模块20生成包含有二进制序列的PIN码输入信息。
参照图6,作为对本发明动态验证系统实施例二的进一步改进,在实施例三中该系统还包括一缓冲存储模块60,用于存储安全服务模块20随机产生的二进制序列,该缓冲存储模块60内数据的存储时间可以设置,并且在二进制序列刷新时被新生成的二进制序列覆盖。
进一步,该系统还包括一刷新计数模块70,用于对安全服务模块20刷新二进制序列的次数进行计数,所述二进制序列的刷新次数可以设置,当超过预定义的刷新次数后,硬件数字证书载体将进入锁定状态。假定在实际应用中,预定义二进制序列的刷新次数为三次,用户每刷新一次二进制序列,则缓冲存储模块60内的二进制序列被安全服务模块20新生成的二进制序列覆盖,同时刷新计数模块70的计数器进行减1操作,当用户在三次内未通过动态PIN码验证,则硬件数字证书载体进入锁定模式,用户将无法进行操作,需要将硬件数字证书载体拔出后重新插入客户端方能使用。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。