一种手机令牌动态口令生成方法、客户端、服务器以及系统的制作方法

文档序号:8003294阅读:518来源:国知局
专利名称:一种手机令牌动态口令生成方法、客户端、服务器以及系统的制作方法
技术领域
本发明属于互联网信息安全领域,特别是动态口令和身份认证技术。
背景技术
动态口令(DynamicPassword)也称一次性口令(One-timePassword),是一种随时间或事件变化而产生的在一定时间间隔内有效的且不可预测的口令,一般会通过动态口令的生成载体显示出来,如刮刮卡、手机令牌等。在Internet高速发展的今天,动态口令技术结合身份认证技术已经广泛应用于网上购物、电子交易、网上炒股等业务,为用户提供安全身份认证功能。例如,在网上银行环境中,在登陆网上银行交易系统时,网上银行系统会要求用户输入动态口令载体生成的动态口令,然后传输到动态口令验证服务器进行验证。由于每次生成的口令是随机变化的,每个口令只能使用一次,彻底防止了各种窃听、重放、假冒、猜测等攻击方式。而用户也省去了记忆各种口令的苦恼。但是,随着移动互联网的发展,手机病毒也日益增多。对于手机令牌动态口令系统,其种子信息一般是保存在手机内存的某个文件夹内,因此,存在容易被手机病毒盗取并传播到其它手机上的可能。这样,其它手机用户就可以利用该种子信息以及动态口令客户端软件生成动态口令,假冒合法用户进行身份认证,给手机令牌动态口令的应用带来了一定的安全隐患。

发明内容
鉴于以上,本发明提出一种手机令牌动态口令生成方法、客户端、服务器以及系统。本发明提出的一种生成手机令牌的动态口令客户端,包括:随机码单元,用于生成并保存随机码;信息码单元,用于根据手机终端本身信息生成信息码;动态口令生成单元,用于根据随机码、信息码以及当前时间参数,通过动态口令生成算法即时生成动态口令;发送单元,用于将随机码、信息码以及动态口令上传到动态口令服务器。进一步,所述生成手机令牌的动态口令客户端,其中:所述信息码单元根据手机终端本身信息,包括IME1、手机厂商标识码、手机屏幕分辨率以及手机操作系统版本号产生信息码。进一步,所述生成手机令牌的动态口令客户端,其中:所述信息码单元计算IME1、手机厂商标识码、手机分辨率以及手机操作系统版本号连接所得字符串的哈希值,将哈希值转换成6个有效数字的整数,将所述整数转换成32进制表示,即可得长度为4个字符串的信息码。进一步,所述生成手机令牌的动态口令客户端,其中:
所述动态口令生成单元生成动态口令使用HMAC-SHA1算法,计算hash =HMAC-SHAI (key, data),其中:key = shal (随机码 + 信息码),data = funl (随机码 + 信息码,时间参数)。本发明提出的一种手机终端,安装有上述任一所述生成手机令牌的动态口令客户端。本发明提出的一种验证手机令牌的动态口令服务器,包括:接收单元,用于接收并保存动态口令客户端上传的、信息码以及动态口令;验证码生成单元,用于根据随机码、信息码以及当前时间参数,通过与动态口令客户端相同的动态口令生成算法生成验证码;比对单元,比对动态口令客户端上传的动态口令与生成的验证码是否一致,如果一致,则验证通过。本发明提出的一种生成手机令牌动态口令的系统,包括:上述所述手机终端以及上述所述动态口令服务器。本发明提出的一种验证手机令牌动态口令的方法,包括:动态口令客户端初始化时生成随机码和信息码,将其发送给动态口令服务器并保存;动态口令客户端读取保存在手机本地的随机码,并结合即时产生的信息码以及当前时间参数,根据动态口令算法生成动态口令,上传到动态口令服务器;动态口令服务器每次验证动态口令客户端生成的动态口令时,读取保存在服务器内的该动态口令客户端名下的随机码和信息码,根据当前时间值,采用与动态口令客户端相同的动态口令算法计算设定时间内的动态口令验证码;判断输入的动态口令与设定时间内的计算的任一动态口令验证码是否相同,如果相同则认为是通过了验证,否则未通过验证。进一步,所述验证手机令牌动态口令的方法,生成信息码,包括以下步骤:计算IME1、手机厂商标识码、手机分辨率以及手机操作系统版本号连接所得字符串的哈希值,将哈希值转换成6个有效数字的整数,将所述整数转换成32进制表示,即可得长度为4个字符串的信息码。进一步,所述验证手机令牌动态口令的方法,读取保存在手机本地的随机码,并结合即时产生的信息码以及当前时间参数,根据动态口令算法生成动态口令,包括以下步骤:生成动态口令使用 HMAC-SHA1 算法,计算 hash = HMAC-SHA1 (key, data),其中:key = shal (随机码+信息码),data = funl (随机码+信息码,时间参数)。本发明通过在手机令牌动态口令系统中设计一种安全的种子生成和保护方法,SP使手机上保存的密钥信息泄漏和加密算法被公开破解,盗用者也无法生成相应的动态口令,从而达到手机令牌动态口令系统安全应用的目的。本发明用于各种需要安全业务认证的应用。


图1所示为本发明的一种手机令牌动态口令生成系统。
图2所示为本发明中动态口令客户端的结构示意图。图3所示为本发明中验证手机令牌的动态口令服务器的示意图。图4所示为本发明的一种手机令牌动态口令生成方法。图5为本发明手机令牌动态口令生成方法中动态口令客户端初始化流程。图6为本发明手机令牌动态口令使用方法的一个实施例的流程图。
具体实施例方式如图1所示,本发明提出了一种手机令牌动态口令生成系统,包括动态口令客户端、短信网关及动态口令服务器,该系统还可以包括第三方应用系统等,第三方应用系统是指采用动态口令实现安全业务认证的应用系统,如网上银行、网络游戏等。动态口令客户端用于生成动态口令种子信息,种子信息包括随机码和信息码,以及采用动态口令生成算法即时生成动态口令并显示,并将动态口令种子信息上传到动态口令服务器。动态口令服务器用于使用动态口令进行安全业务认证的应用管理、采用与动态口令客户端相同的算法进行动态口令验证等功能。其中,动态口令客户端与动态口令服务器之间的信息交互均通过短信方式实现,通过短信网关在动态口令客户端与动态口令服务器之间进行短信转发。如图2所示,为本发明中动态口令客户端的结构示意图。所述客户端安装在手机终端中。随机码单元,用于生成并保存随机码;信息码单元,用于根据手机终端本身信息生成信息码;动态口令生成单元,用于根据随机码、信息码以及当前时间参数,通过动态口令生成算法即时生成动态口令;发送单元,用于将随机码、信息码以及动态口令上传到动态口令服务器。如图3所示,为本发明中验证手机令牌的动态口令服务器的结构示意图。接收单元,用于接收并保存动态口令客户端上传的、信息码以及动态口令;验证码生成单元,用于根据随机码、信息码以及当前时间参数,通过与动态口令客户端相同的动态口令生成算法生成验证码;比对单元,比对动态口令客户端上传的动态口令与生成的验证码是否一致,如果一致,则验证通过。如图4所示,为本发明提出的一种手机令牌动态口令生成方法,包括以下步骤:在步骤401,动态口令客户端初始化时产生生成动态口令种子信息,种子信息包括随机码和信息码,随机码由动态口令客户端在初始化时随机产生,并保证不重复。信息码根据手机本身的软硬件信息产生,例如,根据ME1、手机厂商标识码、手机屏幕分辨率以及手机操作系统版本号产生,所述信息码可以是4个字符。在本发明的一个实施例中,信息码的生成算法为:计算IME1、手机厂商标识码、手机分辨率以及手机操作系统版本号等信息连接所得字符串的哈希值,把该哈希值转换成6个有效数字的整数,然后再把该整数转换成32进制表示,即可得长度为4的字符串的信息码。
在步骤402,动态口令客户端产生随机码后,将随机码信息保存在手机本地的某个文件夹内,该随机码可以为可读不可写属性。在步骤403,动态口令客户端产生信息码后,通过短信方式将信息码和随机码一起发送给动态口令服务器。动态口令客户端并不保存信息码。本发明中,动态口令客户端将生成动态口令的种子信息分成随机码和信息码两部分,通过信息码可实现动态口令客户端身份的唯一标识。只将随机码保存在动态口令客户端本地文件夹内,而将随机码和信息码发送至动态口令服务器进行保存。在步骤404,动态口令服务器接收到随机码和信息码后,将随机码和信息码保存在相应动态口令客户端名下。在步骤405,动态口令客户端每次根据需要生成动态口令。动态口令客户端读取保存在手机本地的随机码,并结合即时产生的信息码以及当前时间参数,根据动态口令算法生成动态口令并显示出来。生成动态口令的实例可以如下:动态口令的生成使用HMAC-SHA1算法。计算hash = HMAC-SHAI (key, data),其中:key = shal (随机码+信息码)data = funl (随机码+信息码,时间参数)字符串转换采用UTF8编码。时间参数是当前时间的字符串表示,精确到分钟,其格式为:yyyyMMddHHmm+sec。如果当前时间的秒钟值(second)是O <= second < = 29,则sec为1,否则sec为2。例如当前时间是2010年5月25日8点10分12秒,则时间参数为 2010052508101。生成8个数字的动态口令:offset = Low4Bit (hash[17]) ; //取 hash[17]的低 4 位作为偏移量hash [offset] = fun2 (offset) //把偏移量所在首字节最高位置0取digit为hash数组中从offset开始的连续4个字节组成的整数,动态口令=digit% 100000000 ; //取一亿模得8个数字 在步骤406,动态口令服务器每次验证动态口令客户端生成的动态口令时,读取保存在服务器内的该动态口令客户端名下的随机码和信息码,根据当前时间值,采用与动态口令客户端相同的动态口令算法计算设定时间内的动态口令验证码。如果用户输入的动态口令与服务器设定时间内的计算的任一动态口令验证码相等,则认为是通过了验证,否则未通过验证。设定时间例如是当前时间值正负2分钟内。一个动态口令只要通过了验证,则在设定时间内该动态口令不可以重复验证。本发明即使手机上保存的种子信息泄漏和生成动态口令的算法被公开破解,盗用者也无法生成相应的动态口令,从而达到手机令牌动态口令系统安全应用的目的。下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。图5为本发明所述的手机令牌动态口令生成方法中动态口令客户端初始化流程。该实施例包括以下步骤:将动态口令客户端软件安装到手机,客户端预置有动态口令生成算法K1。启动动态口令服务器正常工作,配置有与动态口令客户端相同的动态口令生成算法Kl。动态口令客户端初始化,产生动态口令种子所需的随机码Codel,并保存在本地文件夹内,获取产生信息码所需的MEI,手机厂商标识码,手机屏幕分辨率以及手机操作系统版本号信息,并产生信息码Code2。动态口令客户端以短信方式发送随机码Codel和信息码Code2给动态口令服务器。短信网关将动态口令客户端发送的短信信息转换后发送给动态口令服务器。动态口令服务器接收到客户端发送过来的随机码Codel和信息码Code2,将它们保存在本地。动态口令服务器发送动态口令种子同步确认信息给动态口令客户端。短信网关转发动态口令种子同步确认短信给动态口令客户端。动态口令客户设直初始化标志位,结束初始化工作。图6为本发明所述的手机令牌动态口令使用方法的一个实施例的流程图,以189邮箱动态口令应用为例。该实施例包括以下流程:用户登录189邮箱系统,申请绑定动态口令应用服务。189邮箱系统将申请绑定的用户账号信息同步给动态口令服务器。动态口令服务器验证用户绑定信息,建立用户、189邮箱账号与189邮箱动态口令应用之间的绑定关系,向189邮箱系统发送确认绑定的信息。189邮箱系统保存用户189邮箱账号与189邮箱动态口令应用服务的绑定关系,向用户发送绑定动态口令应用服务成功的信息。用户使用189邮箱业务,进入安全业务认证页面。189邮箱系统提示用户输入动态口令。用户启动手机上的动态口令客户端软件,动态口令客户端此前已经完成初始化。用户点击客户端中触发生成动态口令的功能项。动态口令客户端读取MEI,手机厂商标识码,手机屏幕分辨率以及手机操作系统版本号等软硬件信息,产生生成动态口令所需的信息码。动态口令客户端读取保存在本地的随机码,并根据随机码、信息码和当前时间参数生成动态口令,显示在手机屏幕上。用户在189邮箱安全认证页面输入客户端生成的动态口令,并提交。189邮箱系统将用户189邮箱账号和动态口令信息同步给动态口令服务器。动态口令服务器根据保存在本地的动态口令客户端的随机码、信息码以及当前时间参数,生成动态口令验证码,并与189邮箱系统提交的动态口令进行比较。经比较,验证码与动态口令一致,动态口令服务器向189邮箱系统返回验证通过信息。189邮箱系统提示用户安全认证通过。正常使用189邮箱业务。
权利要求
1.一种生成手机令牌的动态口令客户端,包括: 随机码单元,用于生成并保存随机码; 信息码单元,用于根据手机终端本身信息生成信息码; 动态口令生成单元,用于根据随机码、信息码以及当前时间参数,通过动态口令生成算法即时生成动态口令; 发送单元,用于将随机码、信息码以及动态口令上传到动态口令服务器。
2.根据权利要求1所述生成手机令牌的动态口令客户端,其中: 所述信息码单元根据手机终端本身信息,包括ME1、手机厂商标识码、手机屏幕分辨率以及手机操作系统版本号产生信息码。
3.根据权利要求2所述生成手机令牌的动态口令客户端,其中: 所述信息码单元计算ME1、手机厂商标识码、手机分辨率以及手机操作系统版本号连接所得字符串的哈希值,将哈希值转换成6个有效数字的整数,将所述整数转换成32进制表示,即可得长度为4个字符串的信息码。
4.根据权利要求1或2或3所述生成手机令牌的动态口令客户端,其中: 所述动态口令生成单元生成动态口令使用HMAC-SHA1算法,计算hash =HMAC-SHAI (key, data),其中:key = shal (随机码 + 信息码),data = funl (随机码 + 信息码,时间参数)。
5.一种手机终端,安装有如权利要求1至4中任一所述生成手机令牌的动态口令客户端。
6.一种验证手机令牌的动态口令服务器,包括: 接收单元,用于接收并保存动态口令客户端上传的、信息码以及动态口令; 验证码生成单元,用于根据随机码、信息码以及当前时间参数,通过与动态口令客户端相同的动态口令生成算法生成验证码; 比对单元,比对动态口令客户端上传的动态口令与生成的验证码是否一致,如果一致,则验证通过。
7.—种生成手机令牌动态口令的系统,包括:如权利要求5所述手机终端以及如权利要求6所述动态口令服务器。
8.—种验证手机令牌动态口令的方法,包括: 动态口令客户端初始化时生成随机码和信息码,将其发送给动态口令服务器并保存;动态口令客户端读取保存在手机本地的随机码,并结合即时产生的信息码以及当前时间参数,根据动态口令算法生成动态口令,上传到动态口令服务器; 动态口令服务器每次验证动态口令客户端生成的动态口令时,读取保存在服务器内的该动态口令客户端名下的随机码和信息码,根据当前时间值,采用与动态口令客户端相同的动态口令算法计算设定时间内的动态口令验证码; 判断输入的动态口令与设定时间内的计算的任一动态口令验证码是否相同,如果相同则认为是通过了验证,否则未通过验证。
9.根据权利要求8所述验证手机令牌动态口令的方法,生成信息码,包括以下步骤: 计算IME1、手机厂商标识码、手机分辨率以及手机操作系统版本号连接所得字符串的哈希值, 将哈希值转换成6个有效数字的整数,将所述整数转换成32进制表示,即可得长度为4个字符串的信息码。
10.根据权利要求8或9所述验证手机令牌动态口令的方法,读取保存在手机本地的随机码,并结合即时产生的信息码以及当前时间参数,根据动态口令算法生成动态口令,包括以下步骤: 生成动态口令使用 HMAC-SHA1 算法,计算 hash = HMAC-SHAI (key, data),其中:key =shal (随机码+彳目 息码),data = funl (随机码+ /[目息码,时间参数)。
全文摘要
本发明提出一种手机令牌动态口令生成方法、客户端、服务器以及系统。动态口令客户端初始化时生成随机码和信息码,根据随机码,并结合即时产生的信息码以及当前时间参数,根据动态口令算法生成动态口令,上传到动态口令服务器;动态口令服务器每次验证动态口令客户端生成的动态口令时,读取保存在服务器内的该动态口令客户端名下的随机码和信息码,根据当前时间值,采用与动态口令客户端相同的动态口令算法计算设定时间内的动态口令验证码;当动态口令与设定时间内的计算的任一动态口令验证码相同时,通过验证。从而达到手机令牌动态口令系统安全应用的目的。
文档编号H04L9/32GK103152172SQ20111040261
公开日2013年6月12日 申请日期2011年12月7日 优先权日2011年12月7日
发明者郭建昌, 郭茂文, 黎艳, 杨敏维 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1