首页 / 专利库 / 资料储存系统 / 自动识别与数据采集技术 / 条形码 / 二维条码 / 一种基于标识的动态口令系统

一种基于标识的动态口令系统

阅读:624发布:2022-04-22

专利汇可以提供一种基于标识的动态口令系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于标识的动态口令系统,包括动态口令 服务器 以及动态口令生成器,其中,动态口令服务器用一个系统 种子 密钥和用户的一个受序号限定的身份标识为用户的动态口令生成器生成终端种子密钥,当用户登录采用动态口令的应用系统,动态口令生成器利用终端种子密钥和口令生成参数为用户生成动态口令,由用户提交到应用系统并由应用系统提交到动态口令服务器进行验证;当终端种子密钥超过预定的使用期限后,动态口令生成器自动连接动态口令服务器,通过证明拥有更新有效的终端种子密钥获取更新的终端种子密钥,所述更新有效的终端种子密钥是到了使用期限但仍能用于终端种子密钥更新的终端种子密钥,所述更新的终端种子密钥对应一个新的限定序号。,下面是一种基于标识的动态口令系统专利的具体信息内容。

1.一种基于标识的动态口令系统,其特征是:所述系统包括动态口令服务器以及动态口令生成器,其中:
动态口令服务器:一个为用户的动态口令生成器生成终端种子密钥以及验证动态口令生成器生成的动态口令的有效性的系统或模;动态口令服务器维护有一个系统种子密钥;所述系统种子密钥是动态口令服务器为用户的动态口令生成器生成终端种子密钥时所用的一个随机字节串或随机数;所述终端种子密钥是动态口令生成器为用户生成动态口令时所用的一个字节串或多字节数;所述动态口令服务器使用系统种子密钥和用户的身份标识采用终端种子密钥生成算法为用户的动态口令生成器生成终端种子密钥;所述终端种子密钥生成算法具有不可逆的特性,即根据计算得到的终端种子密钥、计算终端种子密钥时所用的用户身份标识以及终端种子密钥生成算法无法推算出系统种子密钥;动态口令服务器为用户的动态口令生成器生成终端种子密钥时所用的用户身份标识是一个受序号限定的用户身份标识;所述用于限定用户身份标识的序号是一个标识顺序的编号;所述受序号限定的用户身份标识称为受限定的身份标识;为用户的动态口令生成器生成终端种子密钥时所用的受限定的身份标识称为所生成的终端种子密钥所对应的受限定的身份标识;所述动态口令服务器保存有每个动态口令用户的用于生成终端种子密钥的用户身份标识,以及使用用户的身份标识为用户的动态口令生成器最近一次生成终端种子密钥时所用的用于限定身份标识的序号;所述动态口令服务器为用户的口令生成器初次生成终端种子密钥时使用一个初始序号作为身份标识的限定序号,之后,每次为用户的口令生成器的生成或更新终端种子密钥时,使用更新的序号作为身份标识的限定序号;所述动态口令服务器在为用户的口令生成器生成或更新终端种子密钥时,利用保存的用户身份标识和限定用户身份标识的限定序号鉴别用户的身份;
动态口令生成器:运行在用户计算装置中使用终端种子密钥为用户生成动态口令的程序或动态库;动态口令生成器所用的终端种子密钥保存在用户计算装置中或保存在计算装置的外接装置中;动态口令生成器同时在计算装置中或者在计算装置的外接装置中保存有从动态口令服务器获得终端种子密钥时的时间以及终端种子密钥所对应的用户身份标识;
动态口令生成器使用终端种子密钥和口令生成参数采用动态口令生成算法生成动态口令;
所述动态口令生成算法具有不可逆的特性,即根据生成的动态口令、动态口令生成算法以及口令生成参数无法推算出动态口令计算时所用的终端种子密钥;所述口令生成参数包括时间数据或随机字串;所述时间数据对应动态口令的生成与验证时间;所述口令生成与验证时间是包含起始时刻和截至时刻构成的时间段;
采用所述动态口令系统对用户进行登录鉴别的应用系统的用户帐户数据库中保存的用户鉴别数据是用户的身份标识;用户帐户数据库中保存的作为用户鉴别数据的身份标识被应用系统数字签名;所述数字签名包括基于非对称密钥密码算法的数字签名或基于对称密钥的数字签名。
2.根据权利要求1所述的基于标识的动态口令系统,其特征是:
若所述口令生成参数是时间数据而所述动态口令生成器是一个独立运行的程序,则当用户使用应用系统客户端登录应用系统时,若应用系统要求对用户进行登录鉴别,则用户操作动态口令生成器生成动态口令,而动态口令生成器使用终端种子密钥和由当前时刻确定的时间数据为用户生成动态口令,之后由用户将生成的动态口令输入到应用系统客户端并通过应用系统客户端提交到应用系统;应用系统接收到用户通过应用系统客户端提交的动态口令后,将接收到的动态口令以及从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录;
若所述口令生成参数是时间数据而所述动态口令生成器是一个动态库,则当用户使用应用系统客户端登录应用系统需要进行登录鉴别时,应用系统客户端调用动态口令生成器生成动态口令,而动态口令生成器使用终端种子密钥和由当前时刻确定的时间数据为用户生成动态口令,之后将生成的动态口令返回到应用系统客户端,并由应用系统客户端将生成的动态口令提交到应用系统;应用系统接收到用户通过应用系统客户端提交的动态口令后,将动态口令及从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录。
3.根据权利要求2所述的基于标识的动态口令系统,其特征是:
所述动态口令服务器接收到应用系统提交的口令验证请求后,根据请求中的用户身份标识和待验证的动态口令按如下方式验证动态口令的有效性:
第一步:根据请求中的用户身份标识获取最近一次针对请求中的用户身份标识生成终端种子密钥时所用的身份标识的限定序号并生成用户的受限定的身份标识;
第二步:利用系统种子密钥和生成的用户的受限定的身份标识采用终端种子密钥生成算法生成终端种子密钥;
第三步:根据动态口令服务器的计算机系统的当前时刻确定生成动态口令的时间数据;
第四步:利用生成的终端种子密钥和时间数据采用动态口令生成算法生成动态口令;
第五步:比较生成的动态口令和应用系统提交的验证请求中的待验证的动态口令是否一致,若一致,则返回验证成功的结果,否则,转入下一步;
第六步:根据动态口令服务器的计算机系统的当前时间确定当前时刻是否位于口令生成与验证时间的临界偏差范围内,即口令生成与验证时间所对应的时间段的起始或截至时刻同当前时刻之间的时间差是否在预定的、允许的偏差范围内;若不是,则返回验证失败的结果;否则,转入下一步;
第七步:根据动态口令服务器的计算机系统的当前时间确定备选口令生成时间数据,然后利用备选时间数据和第二步生成的终端种子密钥采用动态口令生成算法生成新的动态口令;
第八步:比较新生成的动态口令和应用系统提交的验证请求中的待验证的动态口令是否一致,若一致,则返回验证成功的结果,否则,返回验证失败的结果;
所述备选口令生成时间数据所对应的口令生成与验证时间是指与根据动态口令服务器的当前时刻确定的口令生成与验证时间相邻的两个口令生成与验证时间中的同当前时刻的时间距离更小的口令生成与验证时间;所述口令生成与验证时间同当前时刻的距离是指当前时刻分别与口令生成与验证时间的时间段的起始时刻和截至时刻之差的绝对值中较小的一个。
4.根据权利要求1所述的基于标识的动态口令系统,其特征是:
若所述口令生成参数是随机字串而所述动态口令生成器是一个独立运行的程序,则当用户使用应用系统客户端登录应用系统而应用系统要求对用户进行登录鉴别时,应用系统返回一个随机字串到应用系统客户端,用户将应用系统返回的随机字串输入到动态口令生成器,而动态口令生成器使用终端种子密钥和用户输入的随机字串为用户生成动态口令,之后用户将生成的动态口令输入到应用系统客户端并通过应用系统客户端提交到应用系统;应用系统接收到用户通过应用系统客户端提交的动态口令后,将动态口令、之前返回到应用系统客户端的随机字串以及从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录;
若所述口令生成参数是随机字串而所述动态口令生成器是一个动态库,则当用户使用应用系统客户端登录应用系统而应用系统要求对用户进行登录鉴别时,应用系统返回一个随机字串到应用系统客户端,应用系统客户端调用动态口令生成器并将应用系统返回的随机字串提交到动态口令生成器,动态口令生成器使用终端种子密钥和随机字串为用户生成动态口令,之后将生成的动态口令返回到应用系统客户端,并由应用系统客户端将生成的动态口令提交到应用系统;应用系统接收到用户通过应用系统客户端提交的动态口令后,将动态口令、之前返回到应用系统客户端的随机字串以及从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录。
5.根据权利要求4所述的基于标识的动态口令系统,其特征是:
所述动态口令服务器接收到应用系统提交的口令验证请求后,根据请求中的用户身份标识、待验证的动态口令和随机字串按如下方式验证动态口令的有效性:
步骤一:根据请求中的用户身份标识获取最近一次针对请求中的用户身份标识生成终端种子密钥时所用的身份标识限定序号并生成用户的受限定的身份标识;
步骤二:利用系统种子密钥和生成的用户的受限定的身份标识采用终端种子密钥生成算法生成终端种子密钥;
步骤三:利用生成的终端种子密钥和验证请求中的随机字串参数采用动态口令生成算法生成动态口令;
步骤四:比较生成的动态口令和应用系统提交的验证请求中的待验证的动态口令是否一致,若一致,则返回验证成功的结果,否则,返回验证失败的结果。
6.根据权利要求1所述的基于标识的动态口令系统,其特征是:
若所述动态口令生成器在每次生成动态口令后或通过定时扫描发现当前使用的用户终端种子密钥已达到了预定的使用时间期限且当前使用的终端种子密钥是更新有效的终端种子密钥,则动态口令生成器自动连接动态口令服务器,向动态口令服务器证明拥有更新有效的终端种子密钥后,获取由动态口令服务器生成的更新的终端种子密钥;
所述更新有效的终端种子密钥指已达到了预定的使用时间期限但仍被允许用于终端种子密钥更新的终端种子密钥;所述更新的终端种子密钥是指由更新有效的终端种子密钥所对应的受限定的身份标识的限定序号之后的限定序号所限定的身份标识所生成的终端种子密钥;
所述动态口令服务器按如下方式生成更新的终端种子密钥:
动态口令生成器在向动态口令服务器证明拥有更新有效的终端种子密钥的过程中将保存的用户身份标识提交到动态口令服务器;动态口令服务器根据动态口令生成器证明拥有更新有效的终端种子密钥的过程中提交的用户身份标识获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,更新用户身份标识的限定序号,利用用户的身份标识及更新的限定序号生成更新的终端种子密钥。
7.根据权利要求6所述的基于标识的动态口令系统,其特征是:
所述动态口令生成器向动态口令服务器证明拥有更新有效的终端种子密钥的方法包括:使用更新有效的终端种子密钥生成动态口令;或者,使用更新有效的终端种子密钥进行对称密钥签名;或者,使用更新有效的终端种子密钥进行对称密钥数据加密。
8.根据权利要求7所述的基于标识的动态口令系统,其特征是:
所述动态口令生成器使用更新有效的终端种子密钥进行对称密钥签名向动态口令服务器证明拥有更新有效的终端种子密钥的具体方法如下:
动态口令服务器返回一个随机字串;动态口令生成器使用作为对称密钥的更新有效的终端种子密钥或者使用从更新有效的终端种子密钥导出的对称密钥对返回的随机字串进行对称密钥签名,然后获取保存的终端种子密钥所对应的用户身份标识,并将签名后的随机字串数据及用户身份标识提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后根据接收到的用户身份标识获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识及获得的限定序号生成更新有效的终端种子密钥,并以此生成的更新有效的终端种子密钥作为对称密钥或者以此生成的终端种子密钥导出的对称密钥对动态口令生成器提交的签名后的随机字串数据进行签名验证,若验证通过则证明动态口令生成器拥有更新有效的终端种子密钥。
9.根据权利要求7所述的基于标识的动态口令系统,其特征是:
所述动态口令生成器使用更新有效的终端种子密钥进行对称密钥数据加密向动态口令服务器证明拥有更新有效的终端种子密钥的具体方法如下:
动态口令服务器返回一个随机字串;动态口令生成器使用作为对称密钥的更新有效的终端种子密钥或使用从更新有效的终端种子密钥导出的对称密钥对返回的随机字串进行数据加密,然后获取保存的终端种子密钥所对应的用户身份标识,并将加密后的随机字串数据及用户身份标识提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后根据接收到的用户身份标识获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识和获得的身份标识的限定序号生成更新有效的终端种子密钥,并以此生成的更新有效的终端种子密钥作为对称密钥或者以此终端种子密钥导出的对称密钥对动态口令生成器提交的加密后的随机字串数据进行解密,若解密得到随机字串与之前返回给动态口令生成器的随机字串相同,则证明动态口令生成器拥有更新有效的终端种子密钥;
或者,动态口令生成器获取保存的终端种子密钥所对应的用户身份标识,然后提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后生成一个随机字串,根据接收到的用户身份标识获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识和获得的身份标识的限定序号生成更新有效的终端种子密钥,并以此生成的更新有效的终端种子密钥作为对称密钥或者以此生成的更新有效的终端种子密钥导出的对称密钥对生成的随机字串动进行加密,然后将加密后的随机字串返回给动态口令生成器;动态口令生成器使用作为对称密钥的更新有效的终端种子密钥或使用从更新有效的终端种子密钥导出的对称密钥对返回的加密的随机字串进行解密,然后将解密后的随机字串提交动态口令服务器,动态口令服务器接收到动态口令生成器提交的随机字串后,检查接收到随机字串,若提交的随机字串与之前返回的随机字串相同,则证明动态口令生成器拥有更新有效的终端种子密钥;
或者,动态口令生成器获取保存的终端种子密钥所对应的用户身份标识,然后提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后根据接收到的用户身份标识获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识和获得的身份标识的限定序号生成更新有效的终端种子密钥,然后以生成的更新有效的终端种子密钥作为对称密钥或者以此生成的更新有效的终端种子密钥导出的对称密钥对更新的终端种子密钥进行加密,之后将加密的更新的终端种子密钥返回到动态口令生成器,若动态口令生成器能够通过更新有效的终端种子密钥解密返回的更新的终端种子密钥,则证明动态口令生成器拥有更新有效的终端种子密钥。
10.根据权利要求4所述的基于标识的动态口令系统,其特征是:
若所述口令生成参数是随机字串而所述动态口令生成器是一个在移动计算设备中独立运行的程序,而应用系统以图形方式包括一维或二维条码将随机字串返回到应用系统客户端,则用户利用移动计算设备提供的图形扫描功能将随机字串输入到动态口令生成器。

说明书全文

一种基于标识的动态口令系统

技术领域

[0001] 本发明属于信息安全技术领域,是一种基于标识的动态口令系统,特别是一种无需为每个用户集中保存种子密钥、同应用系统帐户集成方便、并能自动更新种子密钥的动态口令系统。

背景技术

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

发明内容

[0014] 本发明的目的是提出一种无需为每个用户集中保存种子密钥、同应用系统帐户集成方便,并能自动更新种子密钥的基于标识的动态口令系统。
[0015] 为了实现上述目的,本发明所采用的技术方案是:
[0016] 一种基于标识的动态口令系统,所述系统包括动态口令服务器以及动态口令生成器,其中:
[0017] 动态口令服务器:一个为用户的动态口令生成器生成终端种子密钥以及验证动态口令生成器生成的动态口令的有效性的系统或模(软件或软硬相结合的系统或模块);动态口令服务器维护有一个系统种子密钥;所述系统种子密钥是动态口令服务器为(不同)用户的动态口令生成器生成终端种子密钥时所用的一个随机字节串或随机数;所述终端种子密钥是动态口令生成器为用户生成动态口令时所用的一个字节串或多字节数;所述动态口令服务器使用系统种子密钥和用户的身份标识(用户身份标识,简称身份标识,如电子邮箱地址、手机号码等能唯一标识用户的字串)采用终端种子密钥生成算法为用户的动态口令生成器生成终端种子密钥;所述终端种子密钥生成算法具有不可逆的特性,即根据计算得到的终端种子密钥、计算终端种子密钥时所用的用户身份标识以及终端种子密钥生成算法无法推算出系统种子密钥;动态口令服务器为用户的动态口令生成器生成终端种子密钥时所用的用户身份标识是一个受序号限定的用户身份标识(即一个受序号限定的扩展身份标识);所述用于限定用户身份标识的序号是一个标识顺序的编号(如0、1、2…);
所述受序号限定的用户身份标识称为受限定的身份标识;为用户的动态口令生成器生成终端种子密钥时所用的受限定的身份标识称为所生成的终端种子密钥所对应的受限定的身份标识;所述动态口令服务器(在数据库中)保存有每个动态口令用户的用于生成终端种子密钥的用户身份标识,以及使用用户的身份标识为用户的动态口令生成器最近一次生成终端种子密钥时所用的用于限定身份标识的序号;所述动态口令服务器为用户的口令生成器初次生成终端种子密钥时使用一个初始序号(如0)作为身份标识的限定序号,之后,每次为用户的口令生成器的生成或更新终端种子密钥时,使用更新的序号(通常是下一个序号)作为身份标识的限定序号;所述动态口令服务器在为用户的口令生成器生成或更新终端种子密钥时,利用(在数据库中)保存的用户身份标识和限定用户身份标识的限定序号鉴别用户的身份;
[0018] 动态口令生成器:运行在用户计算装置(如移动手机)中使用终端种子密钥为用户生成动态口令的程序或动态库;动态口令生成器所用的终端种子密钥保存在用户计算装置中或保存在计算装置的外接装置中(如一个硬件USB Key中);动态口令生成器同时在计算装置中或者在计算装置的外接装置中保存有从动态口令服务器获得终端种子密钥时的时间以及终端种子密钥所对应的用户身份标识(即生成终端种子密钥的用户身份标识);动态口令生成器使用终端种子密钥和口令生成参数采用动态口令生成算法生成动态口令;
所述动态口令生成算法具有不可逆的特性,即根据生成的动态口令、动态口令生成算法以及口令生成参数无法推算出动态口令计算时所用的终端种子密钥;所述口令生成参数包括时间数据或随机字串;所述时间数据对应动态口令的(有效)生成与验证时间;所述口令生成与验证时间是包含起始时刻和截至时刻构成的时间段;
[0019] 采用所述动态口令系统对用户进行登录鉴别的应用系统的用户帐户数据库中保存的用户鉴别数据是用户的身份标识;用户帐户数据库中保存的作为用户鉴别数据的身份标识被应用系统数字签名;所述数字签名包括基于非对称密钥密码算法的数字签名或基于对称密钥的数字签名(如HMAC签名)。
[0020] 若所述口令生成参数是时间数据而所述动态口令生成器是一个独立运行的程序,则当用户使用应用系统客户端登录应用系统时,若应用系统要求对用户进行登录鉴别,则用户操作动态口令生成器生成动态口令,而动态口令生成器使用终端种子密钥和由当前时刻确定的时间数据为用户生成动态口令,之后由用户将生成的动态口令输入到应用系统客户端并通过应用系统客户端提交到应用系统(之前或同时用户通过应用系统客户端输入在应用系统的帐户名并将帐户名提交到应用系统);应用系统接收到用户通过应用系统客户端提交的动态口令后,将接收到的动态口令以及(根据用户帐户名)从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录;
[0021] 若所述口令生成参数是时间数据而所述动态口令生成器是一个动态库,则当用户使用应用系统客户端登录应用系统需要进行登录鉴别时,应用系统客户端调用动态口令生成器生成动态口令,而动态口令生成器使用终端种子密钥和由当前时刻确定的时间数据为用户生成动态口令,之后将生成的动态口令返回到应用系统客户端,并由应用系统客户端将生成的动态口令提交到应用系统(之前或同时用户通过应用系统客户端输入在应用系统的帐户名并将帐户名提交到应用系统);应用系统接收到用户通过应用系统客户端提交的动态口令后,将动态口令及(根据用户帐户名)从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录。
[0022] 若所述口令生成参数是时间数据,则无论所述动态口令生成器是一个独立运行的程序,还是一个动态库,所述动态口令服务器接收到应用系统提交的口令验证请求后,根据请求中的用户身份标识和待验证的动态口令按如下方式验证动态口令的有效性:
[0023] 第一步:根据请求中的用户身份标识(从数据库中)获取最近一次针对请求中的用户身份标识生成终端种子密钥时所用的身份标识的限定序号并生成用户的受限定的身份标识;
[0024] 第二步:利用系统种子密钥和生成的用户的受限定的身份标识采用终端种子密钥生成算法生成终端种子密钥;
[0025] 第三步:根据动态口令服务器的计算机系统的当前时刻(当前时间)确定生成动态口令的时间数据;
[0026] 第四步:利用生成的终端种子密钥和时间数据采用动态口令生成算法生成动态口令;
[0027] 第五步:比较生成的动态口令和应用系统提交的验证请求中的待验证的动态口令是否一致,若一致,则返回验证成功的结果,否则,转入下一步;
[0028] 第六步:根据动态口令服务器的计算机系统的当前时间确定当前时刻是否位于口令生成与验证时间的临界偏差范围内,即口令生成与验证时间所对应的时间段的起始或截至时刻同当前时刻之间的时间差是否在预定的、允许的偏差范围内;若不是,则返回验证失败的结果;否则,转入下一步;
[0029] 第七步:根据动态口令服务器的计算机系统的当前时间确定备选口令生成时间数据,然后利用备选时间数据和第二步生成的终端种子密钥采用动态口令生成算法生成新的动态口令;
[0030] 第八步:比较新生成的动态口令和应用系统提交的验证请求中的待验证的动态口令是否一致,若一致,则返回验证成功的结果,否则,返回验证失败的结果;
[0031] 所述备选口令生成时间数据所对应的口令生成与验证时间是指与根据动态口令服务器的当前时刻确定的口令生成与验证时间(时间段)相邻的两个口令生成与验证时间(时间段)中的同当前时刻的时间距离更小的口令生成与验证时间(即更近的时间段);所述口令生成与验证时间同当前时刻的距离是指当前时刻分别与口令生成与验证时间的时间段的起始时刻和截至时刻之差的绝对值中较小的一个。
[0032] 若所述口令生成参数是随机字串而所述动态口令生成器是一个独立运行的程序,则当用户使用应用系统客户端登录应用系统而应用系统要求对用户进行登录鉴别时,应用系统返回一个随机字串到应用系统客户端,用户将应用系统返回的随机字串输入到动态口令生成器,而动态口令生成器使用终端种子密钥和用户输入的随机字串为用户生成动态口令,之后用户将生成的动态口令输入到应用系统客户端并通过应用系统客户端提交到应用系统(之前或同时用户通过应用系统客户端输入在应用系统的帐户名并将帐户名提交到应用系统);应用系统接收到用户通过应用系统客户端提交的动态口令后,将动态口令、之前返回到应用系统客户端的随机字串以及(根据用户帐户名)从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录;
[0033] 若所述口令生成参数是随机字串而所述动态口令生成器是一个动态库,则当用户使用应用系统客户端登录应用系统而应用系统要求对用户进行登录鉴别时,应用系统返回一个随机字串到应用系统客户端,应用系统客户端调用动态口令生成器并将应用系统返回的随机字串提交到动态口令生成器,动态口令生成器使用终端种子密钥和随机字串为用户生成动态口令,之后将生成的动态口令返回到应用系统客户端,并由应用系统客户端将生成的动态口令提交到应用系统(之前或同时用户通过应用系统客户端输入在应用系统的帐户名并将帐户名提交到应用系统);应用系统接收到用户通过应用系统客户端提交的动态口令后,将动态口令、之前返回到应用系统客户端的随机字串以及(根据用户帐户名)从应用系统的用户帐户数据库中的用户鉴别数据中获得的用户身份标识提交到动态口令服务器请求进行口令验证,口令验证通过才允许用户登录。
[0034] 若所述口令生成参数是随机字串,则无论所述动态口令生成器是一个独立运行的程序,还是一个动态库,所述动态口令服务器接收到应用系统提交的口令验证请求后,根据请求中的用户身份标识、待验证的动态口令和随机字串按如下方式验证动态口令的有效性:
[0035] 步骤一:根据请求中的用户身份标识(从数据库中)获取最近一次针对请求中的用户身份标识生成终端种子密钥时所用的身份标识限定序号并生成用户的受限定的身份标识;
[0036] 步骤二:利用系统种子密钥和生成的用户的受限定的身份标识采用终端种子密钥生成算法生成终端种子密钥;
[0037] 步骤三:利用生成的终端种子密钥和验证请求中的随机字串参数采用动态口令生成算法生成动态口令;
[0038] 步骤四:比较生成的动态口令和应用系统提交的验证请求中的待验证的动态口令是否一致,若一致,则返回验证成功的结果,否则,返回验证失败的结果。
[0039] 所述动态口令生成器按如下方式更新终端种子密钥:
[0040] 若所述动态口令生成器在每次生成动态口令后或通过定时扫描发现当前使用的用户终端种子密钥已达到了预定的使用时间期限且当前使用的终端种子密钥是更新有效的终端种子密钥,则动态口令生成器自动连接动态口令服务器,向动态口令服务器证明拥有更新有效的终端种子密钥后,获取由动态口令服务器生成的更新的终端种子密钥;
[0041] 所述更新有效的终端种子密钥指已达到了预定的使用时间期限但仍被允许用于终端种子密钥更新的终端种子密钥;所述更新的终端种子密钥是指由更新有效的终端种子密钥所对应的受限定的身份标识的限定序号之后的限定序号所限定的身份标识所生成的终端种子密钥(若当前使用的终端种子密钥已达到了预定的使用时间期限,而当前使用的终端种子密钥不是更新有效的终端种子密钥,则不能进行终端种子密钥的自动更新操作,需要用户通过手工方式更新);
[0042] 所述动态口令服务器按如下方式生成更新的终端种子密钥:
[0043] 动态口令生成器在向动态口令服务器证明拥有更新有效的终端种子密钥的过程中将保存的用户身份标识提交到动态口令服务器;动态口令服务器根据动态口令生成器证明拥有更新有效的终端种子密钥的过程中提交的用户身份标识(从数据库中)获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,更新用户身份标识的(最近一次生成终端种子密钥时所用)限定序号(即更新为下一个序号),利用用户的身份标识及更新的限定序号生成更新的终端种子密钥。
[0044] 在进行终端种子密钥更新过程中,所述动态口令生成器向动态口令服务器证明拥有更新有效的终端种子密钥的方法包括:使用更新有效的终端种子密钥生成动态口令(按前述动态口令生成和验证办法);或者,使用更新有效的终端种子密钥进行对称密钥签名(HMAC签名,Hashed Message Authentication Code,或Hash-based Message Authentication Code);或者,使用更新有效的终端种子密钥进行对称密钥数据加密。
[0045] 所述动态口令生成器使用更新有效的终端种子密钥进行对称密钥签名(HMAC签名)向动态口令服务器证明拥有更新有效的终端种子密钥的具体方法如下:
[0046] 动态口令服务器返回一个随机字串;动态口令生成器使用作为对称密钥的更新有效的终端种子密钥或者使用从更新有效的终端种子密钥导出的对称密钥对返回的随机字串进行对称密钥签名,然后获取保存的终端种子密钥所对应的用户身份标识,并将签名后的随机字串数据及用户身份标识提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后根据接收到的用户身份标识(从数据库中)获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识及获得的(最近一次生成终端种子密钥时所用的身份标识的)限定序号生成更新有效的终端种子密钥,并以此生成的更新有效的终端种子密钥作为对称密钥或者以此生成的终端种子密钥导出的对称密钥对动态口令生成器提交的签名后的随机字串数据进行签名验证,若验证通过则证明动态口令生成器拥有更新有效的终端种子密钥。
[0047] 所述动态口令生成器使用更新有效的终端种子密钥进行对称密钥数据加密向动态口令服务器证明拥有更新有效的终端种子密钥的具体方法如下:
[0048] 动态口令服务器返回一个随机字串;动态口令生成器使用作为对称密钥的更新有效的终端种子密钥或使用从更新有效的终端种子密钥导出的对称密钥对返回的随机字串进行数据加密,然后获取保存的终端种子密钥所对应的用户身份标识,并将加密后的随机字串数据及用户身份标识提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后根据接收到的用户身份标识(从数据库中)获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识和获得的身份标识的(最近一次生成终端种子密钥时所用的身份标识的)限定序号生成更新有效的终端种子密钥,并以此生成的更新有效的终端种子密钥作为对称密钥或者以此终端种子密钥导出的对称密钥对动态口令生成器提交的加密后的随机字串数据进行解密,若解密得到随机字串与之前返回给动态口令生成器的随机字串相同,则证明动态口令生成器拥有更新有效的终端种子密钥;
[0049] 或者,动态口令生成器获取保存的终端种子密钥所对应的用户身份标识,然后提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后生成一个随机字串,根据接收到的用户身份标识(从数据库中)获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识和获得的身份标识的(最近一次生成终端种子密钥时所用的身份标识的)限定序号生成更新有效的终端种子密钥,并以此生成的更新有效的终端种子密钥作为对称密钥或者以此生成的更新有效的终端种子密钥导出的对称密钥对生成的随机字串动进行加密,然后将加密后的随机字串返回给动态口令生成器;动态口令生成器使用作为对称密钥的更新有效的终端种子密钥或使用从更新有效的终端种子密钥导出的对称密钥对返回的加密的随机字串进行解密,然后将解密后的随机字串提交动态口令服务器,动态口令服务器接收到动态口令生成器提交的随机字串后,检查接收到随机字串,若提交的随机字串与之前返回的随机字串相同,则证明动态口令生成器拥有更新有效的终端种子密钥;
[0050] 或者,动态口令生成器获取保存的终端种子密钥所对应的用户身份标识,然后提交到动态口令服务器;动态口令服务器先检查确认接收到的用户身份标识是一个合法有效的身份标识,即是动态口令服务器所服务的一个用户的有效的身份标识,然后根据接收到的用户身份标识(从数据库中)获得使用身份标识最近一次生成终端种子密钥时所用的身份标识的限定序号,然后利用用户的身份标识和获得的身份标识的(最近一次生成终端种子密钥时所用的身份标识的)限定序号生成更新有效的终端种子密钥,然后以生成的更新有效的终端种子密钥作为对称密钥或者以此生成的更新有效的终端种子密钥导出的对称密钥对更新的终端种子密钥进行加密,之后将加密的更新的终端种子密钥返回到动态口令生成器,若动态口令生成器能够通过更新有效的终端种子密钥解密返回的更新的终端种子密钥,则证明动态口令生成器拥有更新有效的终端种子密钥(并同时获得更新的终端种子密钥)。
[0051] 进一步地,若动态口令生成器是一个运行在移动计算设备(如手机、平板电脑)中的程序,口令生成参数是随机字串,而应用系统以图形方式包括一维或二维条码将随机字串返回到应用系统客户端,则用户利用移动计算设备提供的图形扫描功能将随机字串输入到动态口令生成器。
[0052] 本发明的动态口令系统具有如下优点:
[0053] 1)用户动态口令(令牌)的种子密钥管理简单
[0054] 由于动态口令服务器无需集中存储用户动态口令生成器(相当于传统的动态口令令牌装置)的终端种子密钥,这就省去了集中保存和管理用户动态口令(令牌)的种子密钥的复杂性和安全要求。当然,动态口令服务器需要安全保存和使用系统种子密钥,这可以通过将系统种子密钥存放在专的密码硬件中使用实现。
[0055] 2)与应用系统集成不存在帐户方面的特别要求和限制
[0056] 本发明的系统与应用系统集成时,只需将应用系统原来保存的帐户口令改为存放用户的身份标识,对应用系统的帐户没有特别的限制,应用系统可以使用自身原有的帐户管理系统,或者使用统一的帐户,没有特别的要求和限制。
[0057] 3)能够自动更新种子密钥
[0058] 用户动态口令种子密钥(即终端种子密钥)使用一定的期限后能自动进行更新。
[0059] 4)提高动态口令种子密钥获取的安全性
[0060] 若用户的身份标识是电子邮箱地址、手机号码等电子通信标识,则在用户获取动态口令生成器的终端种子密钥时可以通过发送电子邮件、手机短信的方式,进一步提高动态口令种子密钥获取的安全性。附图说明
[0061] 图1为本发明的结构示意图。

具体实施方式

[0062] 下面结合附图和实施例对本发明作进一步的描述。
[0063] 用户身份标识可以是任何唯一标识用户身份的字符串,如身份证号、电子邮箱地址、手机号等。限定用户身份标识的序号可以采用从0或开始的数字序号(或其他序号),用户身份标识同限定序号通过字节(字符)合并构成受限定的身份标识,即:身份标识||限定序号,其中“||”表示字节合并(具体实施中还可以根据需要附加其他信息)。
[0064] 终端种子密钥的生成算法、动态口令生成算法可以采用散列算法(HASH,也称为哈希、杂凑算法),如SHA-1、SHA-2等。
[0065] 对于终端种子密钥的生成,可以采用系统种子密钥与用户受限定的身份标识别进行字节合并后求散列值(具体实施中还可以根据需要附加其他信息),以生成的散列值作为终端种子密钥;或者,先将系统种子密钥与用户受限定的身份标识分别求散列值,然后将它们的散列值字节合并后再求散列值,以二次散列运算生成的散列值作为终端种子密钥。
[0066] 动态口令的生成,可以采用将终端种子密钥与口令生成参数字节合并后求散列值,以生成的散列值作为动态口令;或者,先将终端种子密钥与口令生成参数分别求散列值,然后将它们的散列值字节合并后再求散列值,以二次散列运算生成的散列值作为动态口令。若动态口令的口令生成参数是时间数据,则本发明实施中的用于生成动态口令的时间数据与通常的基于时间生成动态口令的方案中的时间数据是一样的。口令生成参数是时间数据时的实施,可参考:“TOTP:Time-Based One-Time Password Algorithm”,RFC6238。若动态口令的口令生成参数是随机字串(挑战码),则其实施可参考“HOTP:An HMAC-Based One-Time Password Algorithm”(RFC4226)。
[0067] 若动态口令服务器是一个单独的系统,则动态口令服务器可以采用任何一种信息系统开发技术包括数据库技术进行开发,如C#.NET、J2EE开发技术及MySQL、SQL Server、Oracle等数据库。若动态口令服务器是一个软件模块,则可以采用它的宿主系统的开发技术开发。若动态口令服务器是一个单独的系统,则动态口令服务器需要为每个动态口令用户维护一个服务帐户,并将用户的服务帐户同用户的身份标识绑定,其中一种简单的绑定方式是将用户的服务帐户名设定为用户的身份标识;若动态口令服务器是一个软件模块,则动态口令服务器使用其宿主系统的用户帐户作为动态口令用户的服务帐户,并将用户的身份标识保存到用户的帐户数据中。为了保证系统种子密钥的安全存储和使用,可以将系统种子密钥存储在一个密码硬件中并在密码硬件中使用,比如,开发一个密码硬件卡(如PCIE卡),将系统种子密钥存储在一个密码硬件卡中并在密码硬件卡中使用。
[0068] 若动态口令生成器是一个单独的程序,这可以将它开发为一个运行在移动计算设备中的程序,比如运行在手机、平板电脑中的程序,此时,动态口令生成器可用移动终端设备提供的开发工具、环境开发,如J2ME等。进一步地,若动态口令生成器是一个运行在移动计算设备(如手机、平板电脑)中的程序,口令生成参数是随机字串,而应用系统以图形方式包括一维或二维条码将随机字串返回到应用系统客户端,则用户利用移动计算设备提供的图形扫描功能将随机字串输入到动态口令生成器。
[0069] 若动态口令生成器是一个动态库,则可以采用它的宿主程序的开发技术开发。
[0070] 若动态口令生成器获取更新的终端种子密钥时证明拥有更新有效的终端种子密钥所采用的方法是采用对称密钥签名,即HMAC签名,则可以采用基于SHA-1或SHA-2的HMAC签名,此时可以用更新有效的终端种子密钥作为计算HMAC的密钥,或者用更新有效的终端种子密钥的散列值作为计算HMAC的密钥。
[0071] 若动态口令生成器获取更新的终端种子密钥时证明拥有更新有效的终端种子密钥所采用的方法是采用对称密钥加密,则此时可以用更新有效的终端种子密钥作为进行数据加密加密的对称密钥,或者用更新有效的终端种子密钥的散列值作为进行数据加密的对称密钥。
[0072] 其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈