背景技术
身份认证是任何信息系统安全的基础,其职责是赋予合法用户访问的权限,同时将非法用户拒绝访问。如果身份认证出现安全问题,那么其他的安全措施将形同虚设。
密码认证是通过密码正确与否来进行身份认证,是身份认证的一个最常见的方式,密码认证可以分为静态密码认证和动态密码认证。
静态密码存在很多的安全隐患,如重复使用、易受木马攻击等,其安全性受到了普遍质疑。越来越多的重要的信息系统转向了包括动态密码认证在内的其他认证方式。
动态密码是一种一次性密码,每个密码只能使用一次。动态密码可以随时间、次数和挑战信息而变化。动态密码具有良好的安全性,广泛适用于各类信息系统。
硬件动态令牌是一种小巧的密码设备,内置电池、芯片和显示屏,用于产生并显示动态密码。软件令牌是软件形式的动态令牌,其功能与硬件令牌相同。
动态令牌内置一个各不相同的种子密钥seed,每次计算动态密码时都会引用种子密钥。每次动态密码计算,除了引用种子密钥和其他的静态因素外,还需要引用至少一个动态因素V,如时间、计数或挑战信息的一种或多种,用于生产动态密码。由于动态因素V是动态变化的,因此每次得到的动态密码都不相同。
动态密码认证系统负责动态密码的认证。在认证系统中,包括每个动态令牌的种子密钥和其他静态因素,并对动态令牌的动态因素如时间和计数进行跟踪,或者从外部接口中得到挑战信息,采用相同的密码算法进行动态密码计算,来验证动态令牌上动态密码的正确性。
从上述的基本工作原理来看,种子密钥是动态密码的安全根本,如果种子密钥外泄,将极大地影响动态密码的安全性。
在实际的动态令牌应用中,绝大部分的情况是由令牌的制造商生产种子密钥,并注入到令牌中。同时,需要令牌制造商提供种子文件给客户,用于导入动态密码认证系统,以便可以完成动态密码认证。在少量情况下,种子密钥由客户产生,然后提供给令牌厂商用于生产。不管是在那种情况下,令牌的种子必然会有令牌厂商掌握。
在上述情况下,种子密钥的保密成为一个关键问题。如何提高种子密钥的安全性,以及提高整个信息系统的安全性是本领域亟需解决的问题。
尤其是令牌用量特大的金融、电子商务类客户,对种子密钥的安全非常敏感,非常担心种子密钥外泄。一旦种子密钥外泄,将导致灾难性后果,必须通过技术手段进行保障在种子密钥的安全性和整个信息系统的安全性。
发明内容
本发明针对现有信息安全系统在安全性方面所存在的问题,而提供一种动态令牌、动态密码认证系统以及实现方法。本发明基于种子密钥的自动变形,有效解决因种子密钥泄露给整个信息系统所带来的安全问题。
为了达到上述目的,本发明采用如下的技术方案:
具备种子密钥自动变形的动态令牌,所述动态令牌包括
通讯模块:主要完成在令牌生成过程中的通讯功能,完成生产种子密钥和种子密钥变形策略的注入;
自动变形触发模块:根据种子密钥变形策略,触发种子密钥自动变形;
变形参数产生模块:用于产生种子密钥变形计算的变形参数;
种子密钥变形模块:将生产种子密钥和变形参数进行计算变形得到工作种子密钥;
密钥存储模块:用于存储生产种子密钥和工作种子密钥;
种子密钥管理模块:控制通讯模块管理生产种子密钥和种子密钥变形策略的注入,并根据自动变形触发模块的触发控制变形参数产生模块计算产生变形参数,再控制种子密钥变形模块进行种子密钥变形计算,并将得到的生产种子密钥和工作种子密钥存储在密钥存储模块中。
作为本发明第二目的,本发明提供与上述动态令牌相配合的具备种子密钥自动变形的动态密码认证系统,其包括:
种子密钥导入模块:用于种子密钥的导入,完成种子密钥和动态令牌其他参数在认证系统导入;
接口模块:提供对外的通讯接口,用于用户输入动态密码;
变形参数计算模块:根据认证系统中种子密钥,对可能的变形参数进行遍历计算得到与动态令牌中种子密钥变形相对应的变形参数。
系统种子密钥变形模块:依据种子密钥变形算法,根据生产种子密钥和变形参数,进行变形运算得到工作种子密钥;
种子密钥存储模块:用于生产种子密钥和变形后的工作种子密钥的存储;
系统种子密钥管理模块:控制种子密钥导入模块完成种子密钥和动态令牌其他参数,根据接口模块输入的动态密码控制变形参数计算模块遍历计算变形参数,再控制系统种子密钥变形模块进行种子密钥变形计算,并将计算得到的工作种子密钥和生产种子密钥存储在种子密钥存储模块中。
基于上述动态令牌和认证系统,本发明提供种子密钥自动变形的方法,该方法包括如下步骤:
(1)在令牌生产前由专用的种子密钥生成工具产生室生产种子密钥;
(2)动态令牌在生产时将生产种子密钥和相应的种子密钥变形策略注入动态令牌;
(3)动态令牌在注入完成后,按照注入自动变形策略,自动触发变形;
(4)动态令牌内的变形参数产生模块根据触发,自动产生变形参数;
(5)动态令牌内的种子密钥变形模块将生产种子密钥和变形参数进行计算变形得到工作种子密钥;
(6)动态令牌存储工作种子密钥,并据此计算显示动态密码;
(7)在动态密码认证系统中,首先导入动态令牌生产时的生产种子密钥;
(8)在进行动态密码认证时,将动态令牌根据工作种子密钥产生动态密码输入动态密码认证系统中;
(9)动态密码认证系统根据认证系统中的种子密钥,遍历所有可能的变形参数,并进行种子密钥变形计算得到所有对应的工作种子密钥,以及利用变形后工作种子密钥计算得到动态密码;
(10)动态密码认证系统将遍历计算得到的动态密码与输入的由动态令牌计算产生的动态密码进行比较,将与输入的由动态令牌计算产生的动态密码相同的动态密码所对应的变形参数确定为动态密码认证系统中种子密钥变形所需的变形参数;
(11)动态密码认证系统利用确认后的变形参数进行种子密钥变形计算,得到与动态令牌中相同的工作种子密钥。
进一步的,所述步骤(10)中若遍历计算得到的动态密码中有多个动态密码与与输入的由动态令牌计算产生的动态密码相同,则输入由动态令牌计算产生的下一个动态密码,再次进行遍历计算和比较,直到确认唯一的变形参数。
根据上述方案得到的本实用新型在动态令牌和认证系统中的进行种子密钥的变形,大大提高了令牌中种子密钥的保密和信息系统的安全性。
由于令牌厂商只有第一次种子密钥注入的那部分种子密钥SeedFactory,而不是令牌今后工作的全部密钥SeedWork,即便SeedFactory泄露,黑客也不能计算动态密码,从而消除了厂商种子密钥外泄造成的安全风险,极大的提高了动态密码的安全性和整个信息系统的安全性。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
参见图1,本发明中涉及的种子密钥主要其所示的密钥产生系统产生,该系统包括:
生产种子密钥产生模块11:用于产生动态令牌生产时注入的生产种子密钥SeedFactory。
种子文件组装模块12:利用生产种子密钥产生模块产生的生产种子密钥SeedFactory和序列号,以及其他令牌信息,组装种子文件,在组装的同时也可以加密等处理。
该系统的功能是产生包含SeedFactory的种子文件,种子文件的作用包括:第一,用于令牌的生产,经SeedFactory注入令牌;第二,导入认证系统,经SeedFactory导入到认证系统中。为了确保种子文件的安全,一般会在组装的同时进行加密处理。
参见图2,本发明提供的具备种子密钥自动变形的动态令牌,其除了作为动态令牌所必须的部件和功能外,其还包括:通讯模块21、自动变形触发模块22、种子密钥管理模块23、变形参数产生模块24、种子密钥变形模块25以及密钥存储模块26。
其中通讯模块21:主要完成在令牌生成过程中的通讯功能,完成生产种子密钥和种子密钥变形策略的注入(SeedFactory的写入)。
自动变形触发模块22:根据种子密钥变形策略,触发种子密钥自动变形;可以单次触发,也可以多次触发。
变形参数产生模块24:用于产生变形参数R,可以根据随机因素参数,也可以根据算法产生;
种子密钥变形模块25:按照种子密钥变形算法,根据生产种子密钥SeedFactory和变形参数R,计算得到工作种子密钥SeedWork,算法可以采用多种方式。
密钥存储模块26:用于存储生产种子密钥SeedFactory和工作种子密钥SeedWork。
种子密钥管理模块23:控制连接通讯模块21、自动变形触发模块22、变形参数产生模块24、种子密钥变形模块25以及密钥存储模块26,以实现对种子密钥的注入和整个变形过程的控制管理,其接受自动变形触发模块的触发,控制各个模块工作,完成种子密钥的自动变形。
上述动态令牌的生成过程中,由令牌厂商通过通讯模块写入生产种子密钥SeedFactory,完成生产种子密钥注入,同时写入的还有种子密钥变形策略。
之后,令牌中的自动变形出发模块根据种子密钥变形策略,自动触发种子密钥的变形。种子密钥管理模块控制变形参数产生模块根据随机因素或者算法得到变形参数R,同时控制种子密钥变形模块将生产种子密钥SeedFactory和变形产生R进行变形运算,得到工作种子密钥SeedWork,并送到种子密钥存储模块中进行存放。
为上述动态令牌相配合,该实例中提供一种具备种子密钥自动变形的动态密码认证系统,如图3所示,该认证系统除了作为动态密码认证系统所必须的部件和功能外,其还包括:种子文件导入模块31、接口模块32、系统种子密钥管理模块33、变形参数计算模块34、系统种子密钥变形模块35以及种子密钥存储模块36。
种子文件导入模块31:用于种子文件的导入,完成生产种子密钥SeedFactory和令牌其他参数在认证系统导入。
接口模块32:提供对外的通讯接口,得到用户输入的动态密码TokenCode。
变形参数计算模块34:负责根据生产种子密钥SeedFactory,对可能的变形参数R进行遍历计算得到相应的变形后的工作种子密钥SeedWork,根据变形后的工作种子密钥SeedWork进行动态密码运算。并将计算得到动态密码与用户输入的动态密码TokenCode进行比较,并确定相同的动态密码所对应的变形参数R为认证系统此次种子密钥变形所对应的变形参数。
如果变形参数R超过1个,则提醒用户输入下一个动态密码NextTokenCode,并再次进行遍历计算,参考多次计算的结果,直到得到唯一可能的变形产生R。
系统种子密钥变形模块35:负责依据种子密钥变形算法,根据生产种子密钥SeedFactory和变形参数R,进行运算,得到工作种子密钥SeedWork。
种子密钥存储模块36:用于种子密钥(包括SeedFactory和SeedWork)的存储。
系统种子密钥管理模块33:控制连接种子文件导入模块31、接口模块32、变形参数计算模块34、系统种子密钥变形模块35以及种子密钥存储模块36,以实现种子密钥的注入和变形过程控制和管理。
上述认证系统首先通过种子文件导入模块接受种子文件导入,完成SeedFactory的导入。在令牌发放的同时或之后,根据用户通过接口模块输入的动态密码。系统种子密钥管理模块控制变形参数计算模块根据种子密钥SeedFactory,进行遍历计算确定系统种子密钥的变形参数R;当可能的R不止一个时,提醒用户输入下一个动态密码,根据再次计算的结果,缩小可能R的数量,直至得到唯一的R。得到唯一的R后,系统种子密钥变形模块根据种子密钥SeedFactory和变形参数R进行变形计算,得到工作种子密钥SeedWork,并存储在种子密钥存储模块中。
经过动态令牌和动态密码认证系统的协调工作,在动态令牌和动态密码认证系统上均实现种子密钥的自动变形,由于种子密钥变形算法相同以及变形参数相同,所以动态令牌和动态密码认证系统中变形得到的工作种子密钥相同,从而能够确保认证功能正常进行。
基于上述方案中形成的动态令牌和动态密码认证系统,本发明提供的种子密钥自动变形的过程如下(参见图4):
整个实施过程涉及到3个系统:
第一个系统是种子生产系统,用来生产每个令牌SeedFactory;
第二个系统是动态令牌,完成令牌端的种子密钥的自动变形;
第三个系统是动态口令认证系统,完成认证系统端的种子密钥的变形。
种子生产系统部分
(1)在种子生产系统中,产生SeedFactory;
(2)在种子生产系统中,生成若干条包括SeedFactory在内的种子记录,并进行加密等处理,形成种子文件。
动态令牌部分
(3)令牌厂商在生产线上,将生产种子密钥SeedFactory和变形策略等写入令牌;
(4)令牌根据注入的变形策略,自动触发种子密钥变形;
(5)令牌中的变形参数产生模块根据随机因素或算法产生变形产生R,产生的方式可以有多种选择;
(6)令牌中的种子密钥变形模块根据SeedFactory和变形产生R,进行运算,得到工作种子密钥SeedWork,具体的变形算法有多种方式;
(7)令牌对工作种子密钥SeedWork进行存储;
(8)令牌根据工作种子密钥SeedWork计算并显示动态密码TokenCode;
动态密码认证系统部分
(9)导入种子文件,完成SeedFactory的导入;
(10)用户输入动态密码;
(11)认证系统根据相关条件,判断需要变形处理,如果不需要进行变形处理,直接转移其他功能部分;如果需要进行变形的,将进行同步因子变形。
(12)认证系统遍历所有可能的变形参数R(其与相应的变形策略相对应),对种子密钥SeedFactory进行变形计算得到对应的所有可能的工作种子密钥,并利用这些变形后的工作种子密钥计算得到相应的动态密码,再将计算得到的动态密码与输入的动态密码TokenCode进行比较,将相同的动态密码所对应的变形参数R确定为认证系统种子密钥变形所需的变形参数。
(13)判断所确定的变形参数R是否唯一,若不唯一,跳转到步骤10,要求输入下一个由动态令牌计算产生的动态密码NextTokenCode,并再次进行上述的遍历计算,并确定变形参数,直到得出唯一的变数参数R。
(14)认证系统根据SeedFactory和变形参数R进行运算(变形算法与令牌完全相同),得到变形后的工作种子密钥SeedWork,并进行存储。
由上可知,利用本发明即便SeedFactory泄露,黑客也不能计算动态密码,从而消除了厂商种子密钥外泄造成的安全风险。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。