一种基于标识的动态口令系统的制作方法

文档序号:8365473阅读:364来源:国知局
一种基于标识的动态口令系统的制作方法
【技术领域】
[0001]本发明属于信息安全技术领域,是一种基于标识的动态口令系统,特别是一种无需为每个用户集中保存种子密钥、同应用系统帐户集成方便、并能自动更新种子密钥的动态口令系统。
【背景技术】
[0002]动态口令又称为一次口令(One Time Password,OTP),具有操作使用方便、安全性高的特点,在一些安全要求较高的应用中被广泛采用。
[0003]动态口令系统通常包括两部分,动态口令服务器和动态口令令牌(OTP Token),其中,动态口令令牌是用户端的一个用于生成动态口令的装置,用户使用它生成动态口令。每个用户的动态口令令牌中的有一个私密的种子密钥,用于动态口令的生成;动态口令服务器用于为不同的用户的动态口令令牌生成种子密钥,以及进行在线动态口令验证。动态口令服务器维护有每个动态口令用户的动态口令服务帐户并同时保存每个用户的动态口令令牌的种子密钥(因此,种子密钥也称为动态口令令牌同动态口令服务器之间的共享密钥,shared key)。当用户访问采用动态口令的应用系统时,应用系统会要求用户提交口令进行登录鉴别(身份鉴别);用户使用动态口令令牌生成动态口令并提交到应用系统;应用系统将用户提交的动态口令提交到动态口令服务器进行验证;动态口令服务器根据用户在动态口令服务器的服务帐户和在动态口令服务器端保存的用户动态口令令牌的种子密钥验证用户提交的由动态口令令牌生成的动态口令,从而完成用户的身份鉴别。
[0004]目前最常用的动态口令生成方式是基于时间的动态口令生成方式和基于挑战码(challenge phrase)的动态口令生成方式。所谓基于时间的动态口令生成方式,即当用户操作动态口令令牌生成动态口令时,动态口令令牌根据当前时间结合种子密钥采用一定的口令生成算法生成动态口令;而动态口令服务器根据当前时间以及保存的用户动态口令令牌的种子密钥采用同样的口令生成算法生成动态口令,从而验证用户提交的动态口令是否正确。所谓基于挑战码的动态口令生成方式(挑战-响应式动态口令),即用户登录应用系统时系统会返回一个随机字串(挑战码),用户将此随机字串输入到动态口令令牌,动态口令令牌根据用户输入的随机字串结合种子密钥采用一定的口令生成算法生成动态口令,然后提交到应用程序(响应);而动态口令服务器根据同样的随机字串以及保存的用户动态口令令牌的种子密钥采用同样的口令生成算法生成动态口令,从而验证用户提交的动态口令是否正确。
[0005]所述基于时间的动态口令生成方式中的时间通常是一个时间段(区间),比如,通常是每分钟、30秒、15秒对应一个动态口令,即在这个时间段内生成的动态口令是相同的(当然,还得考虑用户端动态口令令牌的时间与动态口令服务器的时间不可能完全同步的问题)。
[0006]目前的动态口令系统也存在如下问题:
[0007]I)用户动态口令种子密钥管理麻烦、安全要求高动态口令的每个用户都对应有一个种子密钥(秘密信息),在用户端这个种子密钥用于动态口令生成;在服务器端,这个种子密钥用于用户端生成的动态口令的验证。用户动态口令令牌的种子密钥是在动态口令系统服务端产生,并保存在服务端用于动态口令的验证,因此,为了维护和管理用户的种子密钥,动态口令系统服务端要为每个动态口令用户创建一个服务帐户,并存储每个用户的动态口令令牌的种子密钥。由于种子密钥的重要性,因此,动态口令系统服务端必须采用极高的安全防护措施保护用户动态口令令牌的种子密钥,特别是存储种子密钥的数据库系统的安全保护极其重要,一旦数据库系统被入侵或非法访问,用户的种子密钥将不安全,整个动态口令系统将不安全。
[0008]2)与应用系统集成存在帐户方面的限制
[0009]采用动态口令的应用系统在验证用户提交的动态口令时,需要将用户的动态口令以及用户在动态口令系统中的帐户名提交到动态口令系统的服务端,这就要求应用系统知道用户在动态口令系统的帐户名,对此,常用的方案如下:
[0010]—是让用户在应用系统中的帐户名同用户在动态口令系统中的帐户名相同,这就对应用系统采用动态口令造成了限制,对于已存在的应用系统这种方案不合适。
[0011]二是将用户在应用系统中的帐户同用户在动态口令系统中的帐户绑定,或者在应用系统绑定,或者在动态口令系统(的服务端)绑定,无论在哪绑定都是一件麻烦的事。
[0012]3)不能自动更新种子密钥
[0013]目前的动态口令系统没有用户种子密钥自动更新的功能(需手工更新)。

【发明内容】

[0014]本发明的目的是提出一种无需为每个用户集中保存种子密钥、同应用系统帐户集成方便,并能自动更新种子密钥的基于标识的动态口令系统。
[0015]为了实现上述目的,本发明所采用的技术方案是:
[0016]一种基于标识的动态口令系统,所述系统包括动态口令服务器以及动态口令生成器,其中:
[0017]动态口令服务器:一个为用户的动态口令生成器生成终端种子密钥以及验证动态口令生成器生成的动态口令的有效性的系统或模块(软件或软硬相结合的系统或模块);动态口令服务器维护有一个系统种子密钥;所述系统种子密钥是动态口令服务器为(不同)用户的动态口令生成器生成终端种子密钥时所用的一个随机字节串或随机数;所述终端种子密钥是动态口令生成器为用户生成动态口令时所用的一个字节串或多字节数;所述动态口令服务器使用系统种子密钥和用户的身份标识(用户身份标识,简称身份标识,如电子邮箱地址、手机号码等能唯一标识用户的字串)采用终端种子密钥生成算法为用户的动态口令生成器生成终端种子密钥;所述终端种子密钥生成算法具有不可逆的特性,即根据计算得到的终端种子密钥、计算终端种子密钥时所用的用户身份标识以及终端种子密钥生成算法无法推算出系统种子密钥;动态口令服务器为用户的动态口令生成器生成终端种子密钥时所用的用户身份标识是一个受序号限定的用户身份标识(即一个受序号限定的扩展身份标识);所述用于限定用户身份标识的序号是一个标识顺序的编号(如0、1、2...);所述受序号限定的用户身份标识称为受限定的身份标识;为用户的动态口令生成器生成终端种子密钥时所用的受限定的身份标识称为所生成的终端种子密钥所对应的受限定的身份标识;所述动态口令服务器(在数据库中)保存有每个动态口令用户的用于生成终端种子密钥的用户身份标识,以及使用用户的身份标识为用户的动态口令生成器最近一次生成终端种子密钥时所用的用于限定身份标识的序号;所述动态口令服务器为用户的口令生成器初次生成终端种子密钥时使用一个初始序号(如O)作为身份标识的限定序号,之后,每次为用户的口令生成器的生成或更新终端种子密钥时,使用更新的序号(通常是下一个序号)作为身份标识的限定序号;所述动态口令服务器在为用户的口令生成器生成或更新终端种子密钥时,利用(在数据库中)保存的用户身份标识和限定用户身份标识的限定序号鉴别用户的身份;
[0018]动态口令生成器:运行在用户计算装置(如移动手机)中使用终端种子密钥为用户生成动态口令的程序或动态库;动态口令生成器所用的终端种子密钥保存在用户计算装置中或保存在计算装置的外接装置中(如一个硬件USB Key中);动态口令生成器同时在计算装置中或者在计算装置的外接装置中保存有从动态口令服务器获得终端种子密钥时的时间以及终端种子密钥所对应的用户身份标识(即生成终端种子密钥的用户身份标识);动态口令生成器使用终端种子密钥和口令生成参数采用动态口令生成算法生成动态口令;所述动态口令生成算法具有不可逆的特性,即根据生成的动态口令、动态口令生成算法以及口令生成参数无法推算出动态口令计算时所用的终端种子密钥;所述口令生成参数包括时间数据或随机字串;所述时间数据对应动态口令的(有效)生成与验证时间;所述口令生成与验证时间是包含起始时刻和截至时刻构成的时间段;
[0019]采用所述动态口令系统对用户进行登录鉴别的应用系统的用户帐户数据库中保存的用户鉴别数据是用户的身份标识;用户帐户数据库中保存的作为用户鉴别数据的身份标识被应用系统数字签名;所述数字签名包括基于非对称密钥密码算法的数字签名或基于对称密钥的数字签名(如HMAC签名)。
[0020]若所述口令生成参数是时间数据而所述动态口令生成器是一个独立运行的程序,则当用户使用应用系统客户端登录应用系统时,若应用系统要求对用户进行登录鉴别,则用户操作动态口令生成器生成动态口令,而动态口令生成器使用终端种子密钥和由当前时刻确定的时间数据为用户生成动态口令,之后由用户将生成的动态口令输入到应用系统客户端并通过应用系统客户端提交到应
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1