一种带口令保护的智能卡及数据验证方法

文档序号:6430207阅读:297来源:国知局
专利名称:一种带口令保护的智能卡及数据验证方法
技术领域
本发明涉及智能卡技术,主要是实现一种带口令密码键的USB智能卡的方法。
背景技术
智能卡技术是保证网上银行交易的重要手段,智能卡计算过程在卡内进行,密钥不进入主机系统,具有较高的安全性,采用非对称加密算法对交易数据进行签名保护,数据具有不可伪造和不可否认等特征。目前,市场上已经有多家银行推出USB智能卡(又称U 盾),这些为数众多的智能卡都采用USB接口,通过在主机中安装管理USB智能卡的驱动程序进行控制,对智能卡操作者的验证也都是通过在主机界面中输入口令密码,将口令密码发送到智能卡进行验证,验证通过后,由智能卡进行签名,将签名数据传回主机,以完成交易确认。在这种情况下,这种设计存在着不安全因素,这不能抵抗以下情形的攻击当电脑被非法攻击者控制(这种现象在当前的网络环境中非常普遍),用户在一次交易中输入口令密码,该口令密码被非法程序获取,当用户完成交易后,只要用户的智能卡与电脑连接,攻击都有可能使用获取的口令密码对智能卡进行盗用,实现非法交易。另一种情况是,当用户不慎丢失了智能卡,而智能卡口令密码在某次交易中被黑客获取,用户帐户安全也将存在重大风险。已有的攻击案例证明其必须得到改进。

发明内容
本发明针对上述技术缺陷,提出一种带口令保护的智能卡及数据验证方法。为了解决上述技术问题,本发明的技术方案如下 一种带口令保护的智能卡数据验证方法,包括如下步骤,
1)将智能卡与客户端连接,所述客户端向所述智能卡提出签名请求;
2)所述智能卡接受所述请求,提示用户输入口令密码;
3)所述智能卡验证所述口令密码,如通过,则对所述客户端传输的数据进行数字签名,并将数字签名后的预备消息传输给所述客户端进行确认,如通过确认,则通过所述智能卡进行二次确认,如二次确认通过,所述智能卡将数字签名后的数据传输至所述客户端;
所述智能卡设有密码输入键盘,所述步骤2)中输入口令密码在所述密码输入键盘输入。作为可选方案,所述步骤3)中数字签名包括如下步骤,
21)对所述客户端传输的数据计算得到消息摘要;
22)调用随机数据发生模块产生随机数序列;
23)对所述消息摘要和随机数序列进行数字签名;
所述步骤21)中采用SHAl和MD5算法进行计算分别得到消息摘要,所述步骤23)采用 RSA算法进行数字签名。作为可选方案,所述步骤2)中用户输入口令密码包括如下步骤 31)所述智能卡接受所述请求后将内置的错误次数计数器清零;32)通过第一指示灯提示用户输入口令密码,如正确则通过第三指示灯提示用户并进入步骤3),如错误,则通过第二指示灯提示用户,判断所述错误次数计数器变量是否小于设定次数,如小于则将所述错误次数计数器变量增1后提示用户再次输入;如大于则锁定所述智能卡。—种带口令保护的智能卡,所述智能卡设有密码输入键盘、第一指示灯、第二指示灯和第三指示灯,所述智能卡接受客户端签名请求后通过所述密码输入键盘进行口令密码输入,所述第一指示灯用于提示用户输入口令密码,所述第二指示灯用于提示用户输入口令密码错误,所述第三指示灯用于指示用户输入口令密码正确。作为可选方案,所述智能卡还设有计数器,所述计数器用于计算用户错误口令密码输入次数。本发明的有益效果在于本发明可增强智能卡的安全性,可以避免主机受控下智能卡丢失带来的风险,采用混合消息摘要算法,增强加密强度,采用三个不同颜色的提示灯,方便使用者了解智能卡状态,采用Java智能卡标准,可以方便应用及的扩展。


图1为本发明方法的步骤流程图2为本发明方法过程中口令密码验证的流程图; 图3为本发明方法过程中签名算法的流程图。
具体实施例方式下面将结合附图和具体实施例对本发明做进一步的说明。一种带口令保护的智能卡,在智能卡中加入数字键盘和指示灯,将输入口令密码的操作转移到智能卡端,口令密码不经过电脑主机,从而保证口令密码安全。通过使用USB 接口供电和传送数据,在智能卡上面设置一个口令密码输入确认按钮,一个交易确认按钮, 10个数字键,设计三个信号指示灯,分别表示输入口令密码提示、口令密码错误提示、正常待机三个状态。该智能卡遵循Java智能卡相关规范,可执行Java Applet,支持RSA算法进行数字签名和身份认证,具体功能流程描述如图1所示,当客户端进行交易,进入支付阶段时,将智能卡插入USB接口,由智能卡驱动程序接管相关通信,客户端应用程序可检测到智能卡的存在,并可选择智能卡的证书作为待签名证书。此绿色指示灯亮,表示智能卡处于正常待机状态,将形成的交易数据送入智能卡,智能卡启动口令密码验证模块,验证成功后对数据进行数字签名,此时并不发送数字签名结果,而是发送一个要求确认的信号,在客户端提示用户进行卡片数字签名确认,当客户点按智能卡上的确认键后,数字签名数据被返回给客户端,客户端将数字签名数据提交给服务商,完成交易。如果验证口令密码过程中口令密码不成功次数达到限制次数,则智能卡拒绝数字签名,返回错误信息给客户端,此过程未在图中显示。图2所示口令密码验正模块的流程,智能卡收到签名请求后,首先将内置的错误次数计数器变量清零,然后点亮蓝色指示灯,提示用户使用智能卡上的数字键输入口令密码,用户输入口令密码并按确认键后,蓝灯开如闪烁,智能卡对输入的口令密码与内置的数据进行比较,若口令密码不正确,点亮红灯,计数器增1,蓝灯熄灭,计数器变量值增1,若此时计数器大于等于6,则锁定卡片,由发卡部门解锁,计数小于6,则点亮蓝灯,重新输入口令密码。若口令密码输入正确,则点亮绿灯,熄灭蓝灯,进入签名模块。图3所示智能卡的内部签名过程。分为5步1)首先用SHAl算法计算明文摘要信息,得到20字节数据(记为Hl) ;2)用MD5算法计算明文摘要信息,得到16字节数据,记为H2 ;3)产生随机数序列,长度为20字节,记为R ;4)最后使用RSA非对称算法对(H1,H2, R)共56字节使用RSA算法进行加密;5)将4)得到的结果发给客户端,完成签名过程。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
权利要求
1.一种带口令保护的智能卡数据验证方法,其特征在于,包括如下步骤,1)将智能卡与客户端连接,所述客户端向所述智能卡提出签名请求;2)所述智能卡接受所述请求,提示用户输入口令密码;3)所述智能卡验证所述口令密码,如通过,则对所述客户端传输的数据进行数字签名, 并将数字签名后的预备消息传输给所述客户端进行确认,如通过确认,则通过所述智能卡进行二次确认,如二次确认通过,所述智能卡将数字签名后的数据传输至所述客户端;所述智能卡设有密码输入键盘,所述步骤2)中输入口令密码在所述密码输入键盘输入。
2.根据权利要求1所述的一种带口令保护的智能卡数据验证方法,其特征在于,所述步骤3)中数字签名包括如下步骤,21)对所述客户端传输的数据计算得到消息摘要;22)调用随机数据发生模块产生随机数序列;23)对所述消息摘要和随机数序列进行数字签名;所述步骤21)中采用SHAl和MD5算法进行计算分别得到消息摘要,所述步骤23)采用 RSA算法进行数字签名。
3.根据权利要求1所述的一种带口令保护的智能卡数据验证方法,其特征在于,所述步骤2)中用户输入口令密码包括如下步骤31)所述智能卡接受所述请求后将内置的错误次数计数器清零;32)通过第一指示灯提示用户输入口令密码,如正确则通过第三指示灯提示用户并进入步骤3),如错误,则通过第二指示灯提示用户,判断所述错误次数计数器变量是否小于设定次数,如小于则将所述错误次数计数器变量增1后提示用户再次输入;如大于则锁定所述智能卡。
4.一种带口令保护的智能卡,其特征在于,所述智能卡设有密码输入键盘、第一指示灯、第二指示灯和第三指示灯,所述智能卡接受客户端签名请求后通过所述密码输入键盘进行口令密码输入,所述第一指示灯用于提示用户输入口令密码,所述第二指示灯用于提示用户输入口令密码错误,所述第三指示灯用于指示用户输入口令密码正确。
5.根据权利要求4所述的一种带口令保护的智能卡,其特征在于,所述智能卡还设有计数器,所述计数器用于计算用户错误口令密码输入次数。
全文摘要
本发明公开了一种带口令保护的智能卡及数据验证方法,包括如下步骤,1)将智能卡与客户端连接,所述客户端向所述智能卡提出签名请求;2)所述智能卡接受所述请求,提示用户输入口令密码;3) 所述智能卡验证所述口令密码,如通过,则对所述客户端传输的数据进行数字签名,并将数字签名后的预备消息传输给所述客户端进行确认,如通过确认,则通过所述智能卡进行二次确认,如二次确认通过,所述智能卡将数字签名后的数据传输至所述客户端;所述智能卡设有密码输入键盘,所述步骤2)中输入口令密码在所述密码输入键盘输入,本发明可增强智能卡的安全性,可以避免主机受控下智能卡丢失带来的风险,采用混合消息摘要算法,增强加密强度,采用三个不同颜色的提示灯,方便使用者了解智能卡状态,采用Java智能卡标准,可以方便应用及的扩展。
文档编号G06K19/07GK102291400SQ201110225459
公开日2011年12月21日 申请日期2011年8月8日 优先权日2011年8月8日
发明者吴健, 吴朝晖, 尹建伟, 李莹, 殷中科, 邓水光 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1