技术背景
随着网络技术和信息技术的不断发展,网络上的信息交流越来越广泛,电子商务、电子政务已经日益普及。但是,随着网络的日益普及,网络上的不安全因素也在与日俱增,为了保证在网络上传输的数据的安全,在当前的各种网络应用中,大量使用了各种密码技术,以保证网络信息在网络上的完整性、保密性和可信性。
简单的用户名、密码方式已经逐渐不适应安全要求较高的网络应用系统,同时,由于病毒及木马程序的肆意流行,使得使用终端设备存储安全信息变得极不可靠,于是,具有便携性、存储能力甚至计算能力的密码令牌被越来越多的应用系统采用。在应用系统中,密码令牌存储着用户的私密信息和代表用户个人身份的私密密钥。当用户需要执行某些安全操作时,令牌被连接到终端设备上,用户通过操作终端设备与令牌进行通讯,向令牌发送命令,执行如签名、解密等安全操作。
应用系统通过密码令牌以及各种密码技术,在网络上构建了一个相对安全的环境,保证在数据在网络传输过程中的完整性,保密性和可靠性,但因为某些技术的限制,却无法保证数据在终端上的安全性。
密码令牌通过存储安全信息,内部运算防止密钥和安全数据的外泄,一般作为个体身份识别,签名认证等行为的加密设备,在使用过程中一般通过连接到PC或移动终端等终端设备上,通过终端设备上运行的程序与服务器或者网络上的其它个体进行通信。
如图1所示,密码令牌一般操作方式,传统的密码令牌通过输入保护PIN码确认当前的操作终端是可信的,然后即可以进行所有的安全操作,包括给出安全数据,进行交易数据签名或敏感数据签名。
但是在当前病毒和木马程序日益猖獗的情况下,这种令牌使用方式有极大的安全隐患。数字签名和加密解决了数据在公共网络上传输时被修改,仿冒以及被窥视的问题,但不能解决木马程序在终端设备上直接对数据的修改和仿冒,所以这种传统方案存在以下三方面安全漏洞。
1、PIN码很容易被窃取。
PIN码因为要在终端设备与令牌之间进行明文方式的传输,这样,木马很容易通过扫描内存或监视键盘的方式获取用户的PIN码,即使使用某些系统推出的虚拟键盘技术,也无济与事。当木马获取令牌PIN码以后,就可以在任何令牌连接的时候随心所欲地使用令牌,因为使用方式的问题,令牌一般并不能做到仅在使用时才连接。
2、容易受到仿冒攻击。
令牌在校验完PIN码以后,一般不会即刻断开,这时,令牌已经可以接受对交易数据的签名或者其它的安全应用请求,木马可以在这时组织仿冒的数据,在终端应用系统完全不知情的情况下,要求令牌进行处理,再提交到远程,达到仿冒攻击的目的,而远程服务是不可能知道这个数据并非应用系统或用户认可的数据,对于远程服务而言,这实际上是个合法的数据。
3、容易受到本地篡改攻击。
当应用系统提交正常的数据要求令牌签名时,木马将数据截获,进行修改后再交令牌签名,令牌并不知道签名数据被修改了,返回的仅仅是签名值,用户也看不到被签名的数据已被修改,当这个被修改的数据及签名发到服务端时,对于服务端而言,这是一个合法的数据。
以上3个安全漏洞,是密码令牌在本地的最致命漏洞,在以往的研究中,大多采用硬件修改方式进行解决,比如通过在令牌上设置PIN码校验键盘进行校验PIN码,可以防止PIN码被窃取,还有在密码令牌上设置显示屏以及确认按钮,当有签名事件发生时,令牌即显示签名数据的摘要,并要求用户手动确认,才能真正签名,这样就可以防止仿冒攻击和本地篡改攻击。但这样设计出来的令牌成本往往比传统的令牌成本高出数倍,没有大规模应用的经济价值。
发明内容
本发明的目的在于提供一种采用图片干扰的密码令牌安全认证方法,该方法具有既安全又成本低的特点。
本发明提供的采用图片干扰的密码令牌安全认证方法,其步骤包括:
(1)密码令牌设备和终端连接后,密码令牌提示终端用户输入PIN码,并将用户输入的PIN码传送给密码令牌;
(2)密码令牌接收PIN码,产生一个随机密码和一幅随机的干扰图片作为背景,并将动态密码嵌入干扰图片中,发送给终端;
(3)用户接收动态密码验证图片,在终端上输入验证图片上的动态密码,终端将动态密码发送给密码令牌;
(4)密码令牌对动态密码进行校验,如果校验成功,就返回检验结果,进入步骤(5),否则转入步骤(1);
(5)密码令牌效验PIN码,效验成功则返回效验结果,并发送提示信息,让用户输入交易信息,进入步骤(6),否则转入步骤(1);
(6)用户输入交易信息,终端该交易信息传送给密码令牌进行签名,密码令牌返回签名结果。
本发明利用当前智能分析技术在从图片中分析出文字信息上的局限性,在密码令牌内部实现干扰图片的处理功能,并使用干扰图片作载体,在终端上为密码令牌与用户操作者间建立一个安全验证通道,从而使在不安全的终端上进行安全的令牌操作成为可能,使得对密码令牌的所有安全操作都是可控的,都是能被用户操作者知晓和识别的。因为密码令牌进行图片处理时需要相对较大容量的程序代码空间以及数据存储空间,本发明提出将传统密码令牌的代码空间和存储空间扩充到64K以上,甚至可以将现在的大容量存储技术应用于密码令牌,开发出具有密码令牌功能的大容量存储器,既实现安全存储,也实现安全的密码令牌。总之,本发明利用图片干扰技术从不同的方面预防不安全的终端中非法程序对用户与令牌间通信的攻击,使得令牌的每一次安全操作都是用户认可的,也是可识别的,用户可以相信与其通信的是令牌本身,令牌也可以相信当前的操作者是合法的用户,从而拒木马于安全操作之外,达到终端安全。
具体实施方式
受现在网络上流行的验证码图案启示,本发明采用图片干扰进行保护性验证的方法来解决上面提到的安全问题。
安全漏洞实质在于木马可以在用户不知道的情况下对令牌进行操作,从而达到使用令牌,伪装成用户与远程端通信或窃取用户数据。所以,解决此漏洞的关键在于让密码令牌执行安全操作时能够通知用户。而普通用户与令牌通信时必须通过终端,如果终端中驻有木马,那么这个通道将不是安全的,所以以前的解决方案都是将安全操作的确认方式拿到终端外进行,比如直接在令牌上设立密码键盘进行PIN码校验等。如果在不安全的终端中建立一个加密的通道,使用只有用户与令牌能够理解的方式来进行验证通信,则可以解决此问题。鉴于当前智能分析技术对于图形解析方面的局限性,将文字嵌入到不规则的图形中,或将文字进行图片变形来防止文字被木马识别,这种加密方式已经被广泛采用。但由于一直以来,这种方式都被认为是一种影响用户体验的验证方式,而且图片处理对处理器的系统要求较高,所以一直未被引入到密码令牌体系中。现在大规模集成电路技术已经相当发达,完全有能力在一张智能卡中对规格相对较小的图片进行处理,所以可以引入这一机制来完善密码令牌的安全机制。
本发明采用了图片内嵌随机键位盘、带图片干扰功能的动态密码和用户自定义水印图片三种方式,分别应用于安全认证应用中不同阶段,这三种方法的灵活搭配可以在不同程度上解决终端上密码令牌与用户间的安全认证问题。
如图2所示,本发明方法的具体步骤包括:
(1)密码令牌设备和终端连接后,提示终端用户输入PIN码,并将用户PIN码传送给密码令牌;
(2)密码令牌接收PIN码,密码令牌内部调用画图和字符串处理函数产生一个随机密码和一幅随机的干扰图片作为背景,并将动态密码嵌入干扰图片中,发送给终端;
(3)终端用户接收动态密码验证图片,手动输入验证图片上的动态密码,然后返回给密码令牌;
(4)密码令牌对动态密码进行校验,如果校验成功,就返回检验结果,进入步骤(5),否则转入步骤(1);
(5)密码令牌效验PIN码,效验成功则返回效验结果,并发送提示信息,让用户输入交易信息,进入步骤(6),否则转入步骤(1);
(6)终端用户输入交易信息,传送给密码令牌进行签名,密码令牌返回签名结果。
在上述步骤中,在将PIN码传送给密码令牌的过程中,为了防止木马截获和篡改用户信息,或者避免木马直接对密码令牌提出签名请求,考虑到这些不安全的因素,我们加入了终端用户手动确认这一步骤,其中采用带图片干扰功能的动态密码来对用户进行验证,保证PIN码是由用户确认过的真实信息。
如图2所示。这种方法利用现在流行的验证码的概念,在每次令牌接收到进行安全操作的指令时,都产生一个随机的密码,用另外的途径告知用户,要求用户验证。这个密码脱离于其它功能密码之外,一次一密,随机生成,不管验证成功或失败,密码即告失效,从而防止木马程序的自动重复攻击。而本方法的关键在于,当令牌将随机密码即动态密码告知用户时,采用的是用随机图片干扰方式防止密码信息被木马解析出来。密码令牌先生成动态密码和干扰图片,然后将动态密码嵌入到干扰图片中,发送给终端。终端收到图片后,显示给用户,用户识别图片并输入动态密码。终端将动态密码送给令牌进行验证,令牌仅在动态密码验证成功后才进行实际的安全操作并返回操作结果。
这个机制利用木马程序不能自动解析图片的局限性,在用户与令牌间建立了一道动态密码的传送机制,使得木马的仿冒攻击不能在没有人为参与的情况下自动进行。
有关干扰图片的生成方案,可以采用文字变形、干扰线条、矢量图片和模糊背景等。
作为此方法的补充,本发明将在上述方法的基础上,在上述具体步骤中的(1),(6)两部分采用图片内嵌随机键位盘和水印图片,并采取密码令牌和用户之间相互验证的思想,进一步加强此方法的安全性。
在步骤(1)中,为了保护用户的PIN码安全,可以采用图片内嵌随机键位盘的方式输入PIN码。
其具体步骤为:
(1.1)密码令牌内部生成随机图片作为键盘背景。
(1.2)密码令牌将数字信息随机分布在二维坐标标示的区域内,并记下每个数字对应的坐标值,如图3所示。
(1.3)密码令牌将生成的图片内嵌随机键位盘传送给终端,终端用户用鼠标点击或其他方式进行坐标信息的输入,并将坐标信息传送给密码令牌。
(1.4)密码令牌得到用户输入数字对应的坐标信息进行比对,验证终端用户PIN码的真伪。如果通过验证则进行后续交易步骤,否则返回(1.1)。
图片内嵌随机键位盘方式要求密码令牌内部能够生成随机的图片,并在图片上嵌入键盘标识,可以是数字键盘,也可以是字符键盘,键盘上的键位是随机摆布的,只有人能识别键盘上的键位,木马无法解析出各键的位置。密码令牌将生成的图片内嵌随机键位盘传送给终端,终端将其显示给用户,由用户通过直接用鼠标点击图片中的各数字来传送坐标信息给密码令牌,密码令牌再根据位置信息解析出用户实际输入的内容。例如图3中的数字1的坐标为(1,3),并且只有密码令牌知道这种对应关系。在随后的用户通过鼠标点击数字键盘输入PIN码后,在终端和密码令牌之间传递的仅仅是密码令牌才能解析的坐标值,由于木马本身无法解析和识别图片中的键盘键位位置信息,所以即使截获了用户的输入或者令牌的输出,也不能获取用户实际的输入内容,有效的防止了木马程序窃取用户信息。
这种方式相当于令牌生成一次一密的密码本,用木马不可解析的方式传递给用户,从而建立用户到令牌的安全通道,解决用户的输入被木马截获的问题。
使用这种方法,本发明可以实现不同的图片内嵌键盘,例如数字键盘、字符键盘、或者数字和字符的混合键盘,以完成各种不同的安全输入需求。
在步骤(6)中,密码令牌效验PIN码成功后,终端用户即可输入交易信息(交易信息的输入也可以参考采用图片内嵌随机键位盘进行安全性的加强),随后传送给密码令牌,等待密码令牌进行签名,并返回签名结果。在此步骤中,为了防止木马对交易信息的篡改,也将加入上面提到的用户手动确认这一步骤,方法和前面提到的相似。
其具体步骤为:
(6.1)密码令牌接收到待签名的交易信息时产生一个随机密码,然后根据用户事先指定的自定义图片生成一幅水印图片作为背景,将动态密码嵌入水印图片中。
(6.2)在水印图片中加入交易信息的文字摘要,然后将水印图片发送给终端。
(6.3)终端接收到水印图片后,显示给用户,用户识别水印图片中的动态密码,并检查交易信息摘要的正确性,然后输入水印图片中的动态密码,并发送给密码令牌。
(6.4)密码令牌接收终端用户输入的动态密码并进行比对,动态密码效验成功则进行后续步骤,否则返回(2.1)。
如图4所示。在图片干扰的基础上,本发明可以将随机图片的生成方式设置成由用户指定,比如由用户指定一种图片生成算法,或者指定一幅用户熟悉的图片作为随机图片生成源,这样,这种类型的图片就可以作为水印图片,用户就可以通过判断图片是否完整来判断由令牌返回的图片信息是否被修改过,或者图片信息是否是木马病毒的仿冒图片,因为一方面,令牌中事先储存的水印图片内容是由用户随机设置的,且设置的地点并不一定在当前使用的终端上,木马是不可以进行事先猜测的,另一方面,图片中的文字如果被修改了,修改后的文字与先前文字的差异必然导致图片背景的不完整,很容易被用户发现。
这种方法可以解决木马假冒令牌与用户进行通信,以骗取用户的输入信息的问题。
此方法中所指的用户自定义图片可以是多种样式的,可以是用户指定一幅用户比较熟悉的图片、用户指定一个图片生成算法或者用户可以指定一段文字作为水印的生成方式。
以上介绍的几种实施方式仅仅是对于本发明各方面的一个简单应用,在实际的应用系统中,可以在令牌操作的不同阶段,不同操作内容上进行灵活地组合,还可以灵活地组合不同的图片生成、图片干扰、密码样式、水印样式等,以完成不同的应用需求。根据方案实施的复杂度不一样,对令牌的性能可能有不一样的要求,应用系统可以综合平衡复杂成本与安全需要之间的关系,开发灵活多样的安全功能。