专利名称:一种安全的基于手机的动态密码验证方法
技术领域:
本发明属于信息安全领域,为需要安全保护的网上银行系统和 电子商务系统等提供了一种安全、方便、可随身携带的动态密码生成 方法。
背景技术:
随着社会的进步和技术的发展,目前人们己经接受和适应利用电 子手段完成各种交易,主要包括
1) 利用专用计算机网络完成的交易,如银行柜台、电信柜台、公
用事业柜台等等;
2) 利用POS、 ATM、电话、自助终端等电子机具完成的交易;
3) 利用互联网完成的交易,如银行的网上银行,电子商务网站等 等;
4) 其他利用电子手段完成的交易。
利用电子手段完成交易,给服务提供者和消费者都带来了很大方 便性,也提高了社会效率。在上述电子交易中,为保护消费者利益, 首先需要用户输入帐号和与帐号对应的密码。表面上看,已经很完备 了,但对消费者来说,危险四伏
1) 密码被偷窥,盗用;或者被猜测、尝试破解;
2) 伪造的电子机具终端对消费者密码的盗用(如非法改造的POS、ATM、密码键盘等);
3) 互联网上各种黑客程序,如钓鱼网站,木马病毒等,对消费者 密码的盗用;
4) 服务提供者内部人员对消费者密码的盗用等。
在这种情况下,为了进一步保证电子交易的安全,动态密码认证 技术被广泛的采用。
动态密码(Dynamic Password)也称 一 次性口令(OTP , One-time Password)。动态密码是变动的口令,由于每次用户所输入的密码不 同,使得非法用户无法利用盗用的密码进行电子交易,从而保护了合 法用户的利益。动态密码口令的变动来源于产生口令的运算因子的变 动。动态密码的产生因子一般都采用双运算因子(two factor):其一, 为用户的私有密钥。它是代表用户身份的识别码,是固定不变的。其 二,为变动因子。正是变动因子的不断变化,才产生了不断变动的动 态密码。现阶段,存在以下几种基于动态密码的认证技术。 口令序列
口令序列是把口令组的序列顺序(或坐标)作为变动因子。口 令为一个单向的前后相关的序列,系统只用记录第N个口令。用户
用第N—l个口令登录时,系统用单向算法算出第N个口令与自己保 存的第N个口令匹配,以判断用户的合法性。由于N是有限的,用 户登录N次后必须重新初始化口令序列。
口令序列的使用次数有限,当到达使用次数N时,用户需要重 新获取新的口令序列,且其安全性能较低。时间同步认证技术
参见附图1,基于时间同步认证技术是把时间作为变动因子,一
般以60秒作为变化单位。所谓"同步"是指用户口令令牌(或用户口 令卡)和认证服务器所产生的口令在时间上必须同步。首先,用户通 过用户口令令牌基于当前时刻产生一个口令(或动态密码),并将该 口令输入到与认证服务器网络连接的客户访问端中,请求认证,认证 服务器从数据库中获取上述时刻该用户的口令,比较从客户访问端接 收到的口令与数据库中的口令是否一致,如果一致,则认证通过。
时间同步认证技术简单、易用,占用网络时间资源少,同时因为 不需要宿主机相连,对防范"木马病毒"的效果明显,但其也存在以 下不足
1) "钓鱼网站"(或其他虚假电子交易通道)通过欺骗用户获取用 户动态密码,并在该密码的有效期内(一般为一分钟)对用户的 安全信息实施攻击;
2) 令牌算法和软件程序不能够轻易的更新,以此来适应系统的改 变;
3) 用户令牌的购买、保存和更换成本高;
4) 不能实现电子签名功能。 事件同步认证技术
基于事件同步认证技术是把变动的数字序列(事件序列)作为口令 产生器的一个运算因子,与用户的私有密钥共同产生动态密码。这里 的同步是指每次认证时,认证服务器与口令卡保持相同的事件序列。如果用户使用时,因操作失误多产生了儿组口令出现不同步,服务器 会自动同步到目前使用的口令, 一但一个口令被使用过后,在口令序 歹l)中所有这个口令之前的口令都会失效。其认证过程与时间同步认证 相同。
事件同步认证技术容易产生不同步问题,从而导致用户认证失 败,且口令相对固定,又无"有效期"控制,易被窃取和被"钓鱼网 站"攻击。
手机明文短信"动态密码"认证技术
随着手机的普及,以及人们对手机的依赖程度的加剧,产生了一 种基于手机的明文"动态密码"认证技术。与上述技术不同,该技术 中的"动态密码"在认证服务器端产生,并以明文短信的方式传递给 手机,用户从明文短信中直接获取该动态密码,并将其输入到正在请 求访问的客户访问端中,传输到服务器端完成认证。
由于该认证技术中动态密码由认证服务器端产生,而不依赖用户 的任何数据,认证服务器端的工作人员很容易盗用用户的动态密码,
造成用户的损失;而且明文短信也很容易造成信息的不安全。
由此可见,现有的动态密码技术都存在安全隐患,有必要提供 一种更加安全、可靠。便捷的动态密码认证技术。
发明内容
本发明公开了一种基于手机进行动态密码(OTP)认证的方法, 主要解决了当前网上银行系统和电子商务系统的安全问题,不但防止了木马程序的威胁,也防止了 "钓鱼网站"的欺骗,同时避免了目前 手机短信动态密码的明文的可泄漏和无法追溯的问题,另外,本发明 ,还提出了一种基于手机的电子签名方法。
核心方法是利用手机的输入功能或通讯功能输入用于生成动态 密码的挑战值,由手机加密模块(包括手机上运行的软件,手机扩展 卡上软硬件,SIM卡及通过SIM卡座接入的其他硬件)在本地运行 相应的算法生成被保护系统(包括网上银行,电子商务,实体商户交 易系统等)的动态密码或交易的电子签名;手机将生成的动态密码或
电子签名传送给被保护系统的认证服务器进行认证。
一种基于手机的安全认证方法,包括如下步骤 步骤一用户通过客户访问端向网络管理服务器发送接入请求; 步骤二网络管理服务器根据接收到的接入请求生成挑战值,其中 所述挑战值为一串随机数;
步骤三网络管理服务器将生成的所述挑战值传输给与所述用户的 支付账户绑定的手机;
步骤四所述手机中的加密模块根据所述挑战值,运行动态密码生成 '算法生成动态密码;
步骤五手机将生成的动态密码传输给网络管理服务器; 步骤六网络管理服务器完成对该动态密码的认证过程。
其中所述步骤三至步骤五具体可以为-步骤三网络管理服务器通过加密短信的方式,将所述挑战值直接发 送到手机的加密模块中,而不再需要用户手工输入;步骤四所述手机的加密模块根据自动获取的所述挑战值,运行动态 密码生成算法,生成动态密码;
步骤五手机将生成的动态密码以密文方式直接发送给网络管理服务 器。
其中所述步骤三至步骤五具体可以为-步骤三网络管理服务器通过普通短信、客户访问端的显示界面、电 话或者传真的方式将挑战值传输给用户,用户将该挑战值人工输入到 手机的加密模块中;
步骤四所述手机的加密模块根据手工输入的所述挑战值,运行动态 密码生成算法,生成动态密码;
',骤五手机将生成的动态密码手工输入到客户访问端中,并由客户 访问端发送给网络管理服务器。
其中,在步骤六认证成功之后还包括 步骤七用户通过客户访问端向网络管理服务器发送包含交易要素的 交易信息,其中交易要素为交易流水号、交易对象、交易额或交易时 间;
步骤八网络管理服务器将接收到的交易信息以加密短信的方式直接 '鴻送给与所述用户的支付账户绑定的手机;
步骤九用户在确认所述交易信息后,操作手机根据所述交易信息, 运行电子签名算法生成电子签名;
步骤十手机以密文方式将生成的电子签名直接发送给网络管理服务 器,网络管理服务器对该电子签名进行认证。其中在启动所述动态密码生成算法或所述电子签名算法之前,要
求用户输入个人密码PIN,且所述动态密码生成算法或电子签名算法
由以下方式之一实现手机上运行的软件,手机扩展卡上软/硬件,
SIM卡,以及通过SIM卡座接入的其他硬件。
其中网络管理服务器和手机中包含多种动态密码生成算法和多 种电子签名算法,每一种算法对应一个标识符ID,通过传送该标识 符ID来确保网络管理服务器和手机所使用的动态密码生成算法和电 子签名算法相一致。
一种基于手机的电子签名方法,包括如下步骤 步骤一用户通过客户访问端向网络管理服务器发送包含交易要素的 交易信息,其中交易要素包括交易流水号、交易对象、交易额或交易 时间;
步骤二网络管理服务器将接收到的交易信息以加密短信的方式直接 发送给与所述用户的支付账户绑定的手机;
步骤三用户在确认所述交易信息后,所述手机根据所述交易信息, 运行电子签名算法生成电子签名;
步骤四手机以密文方式将生成的电子签名直接发送给网络管理服务 器°
步骤五网络管理服务器对该电子签名进行认证。
其中在启动所述电子签名算法之前,要求用户输入个人密码 PIN,且所述电子签名算法由以下方式之一实现手机上运行的软件, 手机扩展卡上软/硬件,SIM卡,以及通过SIM卡座接入的其他硬件。其中网络管理服务器和手机中包含多种电子签名算法,每一种算 法对应一个标识符ID,通过传送该标识符ID来确保网络管理服务器 和手机所使用的电子签名算法相一致。
附图1:目前市场上基于时间同步的动态密码生成技术的流程图; 附图2:实施例1的流程图; 附图3:实施例2的流程图。
具体实施例方式
实施例1:本实施例的动态密码认证系统包含一个客户访问端、 一个与用户的帐号绑定的手机、以及一个网络管理服务器;其中所述
客户访问端通过网络与网络管理服务器相连接,该客户访问端可以为 用户当前进行网上交易的个人计算机、手机、或者与银行进行交易的
ATM终端等,该手机中包含一个加密模块,加密模块中存储有用户 OTP私钥、至少一种动态密码生成算法;该网络管理服务器中也配置 有用户公钥、以及与手机端相应的至少一个动态密码生成算法,该网 络管理服务器可以为银行后台系统,服务提供商系统等。
参见附图2,通过上述系统所进行的用户身份认证方法具体为 步骤1,用户在进行电子交易前,操作客户访问端,向网络管理 服务器发送一个接入请求;
步骤2,网络管理服务器接收用户发送来的接入请求后,随机生成挑战值,该挑战值为网络侧随机生成的一个随机数;随后,网络管 理服务器根据该挑战值和所存储的用户公钥运行动态密码生成算法, 如HMAC-SHA-1算法,生成一个网络侧动态密码;
步骤3,网络管理服务器将该生成的挑战值直接发送给客户访问
,
辆;
步骤4,客户从客户访问端上直接得到明文挑战值;若客户访问
端是计算机终端、ATM等带显示器终端时,该挑战值被直接显示或 打印;若客户访问端是电话等语音终端时,该挑战值也可被语音朗诵, 并提示客户记录;该挑战值还可以采用明文短信发送给与用户帐号绑 定的手机;
步骤5,客户访问手机的加密模块,进入动态密码生成菜单;为 了保证安全,手机上的加密模块一般采用硬件保护,客户进入菜单时, 必须输入个人密码(PIN);
步骤6,客户在手机的加密模块中,按照提示输入已获取的挑战
值;
步骤7,手机的加密模块根据挑战值生成手机端的动态密码 (OTP):用户手机内有客户私有的OTP私钥,根据输入的挑战值, 采用与网络管理服务器相同的动态密码生成算法,如HMAC-SHA-1 算法,用密钥和挑战值计算散列值,根据散列值的某位数据,在散列 值中动态取出6位或者8为数字,得出一个动态密码。
步骤8,客户将手机生成的动态密码在客户访问端上输入;
步骤9,客户访问端将该动态密码传送到网络管理服务器,并请求验证;
步骤10,网络管理服务器将接收到的手机侧的动态密码与先前生 成的网络侧动态密码进行比较,如果一致,则认证成功,否则,则认 证失败。
步骤11,网络管理服务器接受或拒绝客户访问端发起的连接请求。
优选的,为了进一步增强认证的安全性,可以在网络管理服务器
端和手机端中预先设置多种动态密码生成算法,如MD5、 SHA-1、 SHA-256、 RSA、 ECC、 DES、 AES等,其中每一种算法与一个算法 标识符ID相对应。在网络管理服务器端随机选择一种动态密码生成 算法,并将该算法对应的算法标识符ID与挑战值一起传输给客户的 手机,客户根据该算法标识符ID来选择相应的动态密码生成算法, 以确保网络端和客户端所使用的算法一致。
现阶段中,不同的银行后台系统和服务提供商系统所采用的认证 算法可能不同,而通过在网络管理服务器和手机中预先设置多种算 法,可以在不改变系统结构的前提下方便的实现多业务、多平台间的 应用,为用户的使用提供了方便。同时,还可以通过OTA (空中下 载)技术方便的实现密码体系的更新,从而进一步提高系统的安全性。 实施例2:本实施例的动态密码认证系统包含一个客户访问端、 一个 与用户的帐号绑定的手机、以及一个网络管理服务器;其中所述客户 访问端通过网络与网络管理服务器相连接,该客户访问端可以为用户 当前进行网上交易的个人计算机、手机、或者与银行进行交易的ATM终端等,该手机中包含一个加密模块,加密模块中存储有用户OTP 私钥,至少一种动态密码生成算法以及至少一种电子签名算法;该网 络管理服务器中也配置有用户公钥、手机端相应的至少一个动态密码 生成算法和至少一个电子签名算法,该网络管理服务器可以为银行后 台系统,服务提供商系统等。
参见附图3,通过上述系统所进行的用户身份认证方法和交易电子签
名的具体步骤为-
步骤l,用户操作客户访问端,向网络管理服务器发送连接请求; 步骤2,网络管理服务器接收用户发送来的连接请求后,随机生
成挑战值,该挑战值可以为网络侧随机生成的一个随机数;随后,网
络管理服务器从动态密码生成算法中随机选择其中一种,如
HMAC-SHA-1算法,记录该算法对应的算法标识符ID,并根据挑战 值与所存储的用户公钥运行该算法,生成一个网络侧动态密码;
步骤3,网络管理服务器将该生成的挑战值和所选择的动态密码 生成算法标识符ID通过加密短信直接发送给手机;
步骤4,包含挑战值的加密短信被手机的加密模块收到后,以手 机铃声或震动等方式提醒客户,等待客户输入个人密码(PIN)启动 加密模块;
步骤5,手机根据挑战值生成动态密码(OTP):用户手机内有自 己的OTP私钥,根据输入挑战值,选择与算法标识符ID相对应的动 态密码生成算法,如HMAC-SHA-1算法,用密钥和挑战值计算散列 值,根据散列值的某位数据,在散列值中动态取出6位或者8为数字,作为一个动态密码。
步骤6,手机将生成的动态密码,通过手机的无线通讯功能,以
密文方式发送给网络管理服务器,发起验证请求;
步骤7,网络管理服务器比较接收到的手机侧的动态密码与先前 生成的网络侧动态密码,如果一致,则认证成功,否则,则认证失败。
步骤8,网络管理服务器向客户访问端返回认证结果。
步骤9,客户访问端通过动态密码认证后,继续交易,输入包含
交易要素的交易信息,其中交易要素包括交易流水号、交易对象、交
竭额或交易时间等信息;
步骤10,客户访问端把打包的交易信息传输给网络管理服务器;
步骤11,网络管理服务器通过加密短信把交易信息直接传输给客
户手机的加密模块;
步骤12,包含交易信息的加密短信被手机的加密模块收到后,以 手机铃声或震动等方式提醒客户,等待客户输入个人密码(PIN)后 进入,在手机屏幕上显示交易信息,并等待客户确认(可要求客户输 入交易密码以提高安全性);
步骤13,手机根据交易信息生成电子签名用户手机内有自己的 电子签名私钥,根据交易信息,采用RSA、 ECC、 DES、 AES等算 法,对交易数据或交易确认数据签名。
步骤14,手机将生成的包含交易信息和电子签名的数据包,通过 手机的无线通讯功能,以密文方式发送给网络管理服务器;
步骤15,网络管理服务器中对收到的交易电子签名进行认证,若认证成功,向客户访问端发送确认信息,并联动业务系统完成交易。
步骤16、 17,若认证成功,客户访问端会收到确认信息,然后继
续工作。
通过本发明所进行的认证方法具备如下优点
1) 低成本地实现了最安全的动态密码理论模式现有技术中往 往需要为用户单独设置一个口令令牌(或口令卡),增加了用 户的成本,而本发明利用手机的普及以及其良好的显示和输 入功能,降低了成本和操作复杂度;
2) 通过手机与认证服务器的交互认证,有效防止了 "钓鱼网站" 的攻击;
3) 现阶段进行安全认证时,用户输入的动态密码往往为数据, 而本发明中使用用户手机的键盘和屏幕,可输入各种信息(包 括ASCII码,甚至中文等,而不仅限于数字键),增强了密码 的可靠性;
4) 本发明中用于生成动态密码和电子签名的算法均受到PIN码 保护,有效防范其他人的窃取和盗用;
5) 本发明的手机中可设置多种密码体系,允许支持不同服务提 供商、银行后台系统或其他电子商务系统的多种应用;
6) 利用手机的无线通信功能,可支持OTA (空中下载)更新, 可定期更换密码体系,进一步提高系统的安全性;
7) 携带更方便;服务更随身。
以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等, 均应包含在本发明的包含范围之内。
权利要求
1、一种基于手机的安全认证方法,包括如下步骤步骤一用户通过客户访问端向网络管理服务器发送接入请求;步骤二网络管理服务器根据接收到的接入请求生成挑战值,其中所述挑战值为一串随机数;步骤三网络管理服务器将生成的所述挑战值传输给与所述用户账户绑定的手机;步骤四所述手机中的加密模块根据所述挑战值,运行动态密码生成算法生成动态密码;步骤五手机将生成的动态密码传输给网络管理服务器;步骤六网络管理服务器完成对该动态密码的认证过程。
2、 如权利要求l所述的方法,其中所述步骤三至步骤五具体为 步骤三网络管理服务器通过加密短信的方式,将所述挑战值直接发 送到手机的加密模块中,而不再需要用户手工输入;步骤四所述手机的加密模块根据自动获取的所述挑战值,运行动态 密码生成算法,生成动态密码;步骤五手机将生成的动态密码以密文方式直接发送给网络管理服务 器。
3、 如权利要求l所述的方法,其中所述步骤三至步骤五具体为 步骤三网络管理服务器通过普通短信、客户访问端的显示界面、电 话或者传真的方式将挑战值传输给用户,用户将该挑战值人工输入到手机的加密模块中;步骤四所述手机的加密模块根据手工输入的所述挑战值,运行动态密码生成算法,生成动态密码;步骤五手机将生成的动态密码手工输入到客户访问端中,并由客户 访问端发送给网络管理服务器。
4、 如权利要求2或3所述的方法,在步骤六认证成功之后还包括-,步骤七用户通过客户访问端向网络管理服务器发送包含交易要素的 交易信息,其中交易要素为交易流水号、交易对象、交易额或交易时间;步骤八网络管理服务器将接收到的交易信息以加密短信的方式直接 发送给与所述用户的支付账户绑定的手机;步骤九用户在确认所述交易信息后,操作手机根据所述交易信息, 运行电子签名算法生成电子签名;,步骤十手机以密文方式将生成的电子签名直接发送给网络管理服务器,网络管理服务器对该电子签名进行认证。
5、 如权利要求4所述的方法,其中在启动所述动态密码生成算法或 所述电子签名算法之前,要求用户输入个人密码PIN,且所述动态密 码生成算法或电子签名算法由以下方式之一实现手机上运行的软 件,手机扩展卡上软/硬件,SIM卡,以及通过SIM卡座接入的其他硬件。
6、如权利要求4所述的方法,其中网络管理服务器和手机中包含多种动态密码生成算法和多种电子签名算法,每一种算法对应一个标识符ID,通过传送该标识符ID来确保网络管理服务器和手机所使用的 动态密码生成算法和电子签名算法相一致。
7、 如权利要求4所述的方法,其中所述手机通过空中下载OTA技术更新动态密码算法和电子签名算法。
8、 一种基于手机的电子签名方法,包括如下步骤步骤一用户通过客户访问端向网络管理服务器发送包含交易要 素的交易信息,其中交易要素包括交易流水号、交易对象、交易额或 交易时间;步骤二网络管理服务器将接收到的交易信息以加密短信的方式 直接发送给与所述用户的支付账户绑定的手机;步骤三用户在确认所述交易信息后,所述手机根据所述交易信 息,运行电子签名算法生成电子签名;步骤四手机以密文方式将生成的电子签名直接发送给网络管理 服务器;步骤五网络管理服务器对该电子签名进行认证。
9、 如权利要求7所述的方法,其中在启动所述电子签名算法之前, 要求用户输入个人密码PIN,且所述电子签名算法由以下方式之一实 现手机上运行的软件,手机扩展卡上软/硬件,SIM卡,以及通过 SIM卡座接入的其他硬件。
10、 如权利要求7所述的方法,其中网络管理服务器和手机中包含多 种电子签名算法,每一种算法对应一个标识符ID,通过传送该标识 符ID来确保网络管理服务器和手机所使用的电子签名算法相一致。
全文摘要
本发明公开了一种利用手机生成动态密码(OTP)的方法,主要解决了当前网上银行系统和电子商务系统的安全问题,不但防止了木马程序的威胁,也防止了“钓鱼网站”的欺骗,同时避免了目前手机短信动态密码的明文的可泄漏和无法追溯的问题。
文档编号H04W12/08GK101577917SQ20091015000
公开日2009年11月11日 申请日期2009年6月16日 优先权日2009年6月16日
发明者刚 王 申请人:深圳市星龙基电子技术有限公司