一种基于动态算法种子的手机令牌的实现方法技术

技术编号:11319540 阅读:110 留言:0更新日期:2015-04-22 09:02
本发明专利技术提供了一种在IOS和Android手机操作系统上的安装应用程序。使用和服务器时间同步的机制产生一次性动态口令OTP(One Time Password),在一个有效的时间段内(30s/60s)有效,以满足短时间内多因素验证的需求。手机动态口令生成过程不产生通信及费用,具有使用简单、安全性高、低成本、无需携带额外设备、容易获取、无物流等优势。传统硬件令牌的缺点在于密钥和加密算法是固定存储于硬件和服务器端。安全性依赖于加密算法的强度和存储的安全性。本发明专利技术是依据动态变换密钥,使得密钥无论是存放在手机客户端,还是存放在服务器,都是动态变换的,非固定不变,从而防止密钥被盗,提高了手机令牌所生成动态密码的安全性。

【技术实现步骤摘要】

本专利技术涉及手机令牌的算法种子(密钥)的实现方法,尤其是生产动态密码的算法 种子(密钥)的计算、存储、更新方法。
技术介绍
手机令牌是一种手机客户端软件,它是基于时间同步方式,每隔30或60秒产生一 个随机6位动态密码,口令生成过程不产生通信及费用,具有使用简单、安全性高、低成本、 无需携带额外设备、容易获取、无物流等优势,手机令牌是3G&4G时代动态密码身份认证发 展趋势。 传统的手机令牌是参照硬件令牌卡的机制予以实现,即令牌卡的6位动态密码是 依据时间和硬件密钥2个维度,依据在0A系统(通用办公系统)服务器端和手机客户端分别 采用相同的非对称算法,相同的密钥(也称算法种子)、相同的时间点计算出6位动态密码, 动态密码的安全性和强度依赖于算法的复杂性及密钥在服务器端及手机客户端存储的安 全性。 然而在0A系统服务器端复杂的算法也会有被破解的时候,随着手机木马病毒的 泛滥,密钥在手机客户端存储的安全性也收到挑战。存在密钥的泄露,算法被攻破的风险。 以上介绍传统手机令牌及硬件令牌的缺点在于密钥存储是固定不变的,存储于硬 件或手机中,而加密算法也是固定不变,存储于硬件、手机、服务器端。安全性依赖于加密算 法的强度和存储的安全性。
技术实现思路
本专利技术目的是:,基于动态变换密 钥(也称算法种子),使得密钥无论是存放在手机客户端,还是存放在0A系统(通用办公系 统)服务器,都是动态变换的,非固定不变,从而防止算法种子被盗,提高了手机令牌所生成 动态密码的安全性。 本专利技术的技术方案是: 的技术方案,手机令牌系统由手机令牌 服务端程序、手机令牌客户端程序(手机令牌APP)、手机令牌提供第三方应用系统调用的动 态密码验证接口服务等3个部件组成,3个部件的组成关系图参见如图1。 本专利技术的技术实现方法如下: 1.设置手机令牌卡动态密码跳变规则:动态密码根据算法+密钥+时间计算得出,每 30s重新计算一次得出新动态密码,跳变时间为30s。 2?手机令牌卡动态密码算法:遵循RFC6238 "TOTP:Time-BasedOne-Time PasswordAlgorithm"规范,采用HMAC-SHA512散列算法,对当前时间(1970年至今秒数)进 行加密。密钥的生成方式:采用预定义(参考TOTP.java文件中Seed64)+当前时间(1970 年至今秒数/30),共计256Byte。具体算法可参考RFC6238。 3?密钥算法:seed=SHA_N(SHA(UDID)+$+SHA(KEY)+$+SHA(SALT)),其中N与服 务器性能相关为大于1000的任一数值,;UDID为手机安装手机令牌卡时,上传的手机唯一 串号(终端ID),KEY为手机客户端在服务器端注册的唯一应用串号,KEY是根据UDID生成 的,SALT是首次为服务端自动生成的随机数,在算法种子变化后,依据当前密钥重新随机生 成。 4.手机客户端密钥seed获取和变换方式: 4. 1安装app时返回seed,手机唯一串号(终端ID)上传接口响应报文增加seed字段。 4. 2时钟同步时更新seed,时钟同步接口请求和响应报文增加seed字段(校验请 求报文中的原seed,成功则更新seed)。 5.算法种子容错机制 5. 1手机客户端进行时间同步后更新算法种子,动态密码在30s倒计时结束后根据新 算法种子生成动态密码。 5. 2服务端保存当前算法种子和上一次算法种子,保证首次进入手机令牌页面进 行时间同步后动态密码可用。 6?动态密码容错机制 动态密码30s跳变一次,防止用户动态密码输入过程中经历动态密码改变,服务端动 态密码校验过程中检验当前时间动态密码和上一个动态密码。 7.手机端与服务器时钟校准机制 手机令牌在使用中,手机端与服务器时钟难免不一致,而且手机令牌的时间是参与服 务端和手机端动态密码计算的,如果偏差超过60秒,就会导致手机端动态密码与服务端生 成的动态密码不一致。因为本专利技术中专门设计时钟同步接口,在接口中服务端计算手机客 户端与服务端之间的时间差,并且将时间差返回给手机客户端。手机客户端与服务端自动 同步时间差。3)无论是手机客户端还是服务端,都是采用时间差计算动态口令。 该专利技术的特点和主要优势在于: 便利性:有别于传统的手机令牌,在每次打开手机令牌或点击时间同步按钮时,都进行 手机客户端和服务器端时间同步,消除了手机客户端与服务器端的时间偏差。 安全性:由于存放在手机客户端及服务器端的算法种子为动态变换,因此,即使 算法种子被盗被截获,也无法正确计算出下30秒的动态令牌,因为算法种子在手机令牌打 开、时间同步、后台切换到前台等环节计算时发生了变换。【附图说明】 图1是手机令牌系统组成与第三方系统(0A系统)的交互关系图。 图2是手机令牌用户界面图。 图3是手机令牌具体实现活动图。 图4是手机令牌服务端与0A系统的交互流程图。 图5是手机令牌客户端与手机令牌服务器端交互序列图。 图6是手机令牌客户端与服务器端时钟同步通讯接口示意图。【具体实施方式】 ,手机令牌系统由手机令牌服务端 程序、手机令牌客户端程序、手机令牌提供第三方应用系统调用的动态密码验证接口服务 等3个部件组成,3个部件的组成关系,手机令牌系统组成及0A系统(通用办公系统)的交 互关系参见如图1。 1.手机令牌服务端程序 手机令牌服务端程序部署在Tomcat&JBOSS上程序,采用MYSQL&0RALCE数据库作为数 据存储。提供动态密码验证、时间同步、用户与手机令牌绑定关系查询的功能。 2.手机令牌客户端程序 手机令牌为一款基于时间同步的手机令牌软件,需要在每一个用户的安卓&苹果手机 上的安装移动APP软件一手机令牌。手机令牌动态密码跳变规则:动态密码根据算法+密 钥(算法种子)+时间计算得出,每30s重新计算一次得出新动态密码,跳变时间为30s。手机 令牌卡动态密码算法:遵循RFC6238"T0TP:Time-BasedOne-TimePasswordAlgorithm" 规范,采用HMAC-SHA512散列算法,对当前时间(1970年至今秒数)进行加密。密钥(算法种 子)的生成方式:采用预定义(参考T0TP.java文件中Seed64)+当前时间(1970年至今秒 数/30),共计256Byte。具体算法参考可参考RFC6238。 手机令牌显示如图2手机令牌用户界面图。包括有显示6位动态密令的密码显示 区,同步服务器时间的同步按钮以及30秒密令刷新的动态效果三部分组成。 3.手机令牌提供0A系统调用的动态密码验证接口服务 0A系统在登录时,需要二次验证时,需要调用动态密码验证接口如下:【主权项】1. ,其特征是:在手机令牌绑定帐号环 节、在手机令牌客户端与服务端通讯时钟同步环节、在手机打开手机令牌环节、在手机令牌 从手机后台到前台环节,调用手机令牌客户端与服务器端时钟同步通讯接口;在时钟同步 接口中,首先是计算手机端与服务端的时间差,用于保证手机端与服务端的时间偏差不超 过60砂;同时在每一次时钟同步不断变换算法种子和随机数,即使某一算法种子被盗后, 黑客依然无法正确的计算出动态口令。2. 根据权利要求1所述的本文档来自技高网...

【技术保护点】
一种基于动态算法种子的手机令牌的实现方法,其特征是:在手机令牌绑定帐号环节、在手机令牌客户端与服务端通讯时钟同步环节、在手机打开手机令牌环节、在手机令牌从手机后台到前台环节,调用手机令牌客户端与服务器端时钟同步通讯接口;在时钟同步接口中,首先是计算手机端与服务端的时间差,用于保证手机端与服务端的时间偏差不超过60秒;同时在每一次时钟同步不断变换算法种子和随机数,即使某一算法种子被盗后,黑客依然无法正确的计算出动态口令。

【技术特征摘要】

【专利技术属性】
技术研发人员:王晓峻徐欢刘宏骏
申请(专利权)人:南京速帕信息科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1