H04L9/32(2006.01)I H04L9/16(2006.01)I
1.一种动态密码认证的方法,其特征在于,包括下列步骤:
预置用户帐号和用户移动终端设备号码的对应关系;
根据用户的请求,随机生成字符串,并发送给用户移动终端设备;
根据用户的认证申请随机生成密码提示信息,并把所述密码提示信息发送 给客户端,所述密码提示信息规定了所述字符串中特定位的字符组合为本次认 证申请的动态密码;
用户根据所述移动终端设备收到的字符串和所述客户端收到的密码提示 信息输入动态密码;
判断用户输入的动态密码的有效性,如果有效,则认证通过。
2.根据权利要求1所述的方法,其特征在于,在生成密码提示信息之前, 还包括:
判断该用户帐号对应的所述随机生成的字符串是否位于有效期内;
如果是,则不再生成新的随机字符串。
3.根据权利要求1、2所述的方法,其特征在于,所述字符串是由数字、 字母、符号或者三者混合组成的。
4.根据权利要求1所述的方法,其特征在于,所述密码提示信息中所规 定的特定位是所述字符串中连续的或者是不连续的位。
5.根据权利要求1所述的方法,其特征在于,所述认证申请还包括静态 密码认证申请,对所述静态密码进行认证,如果认证通过,则继续进行动态密 码的认证,否则,认证失败。
6.一种动态密码认证的服务端系统,其特征在于,通过移动通信网络和 用户移动终端设备连接,并通过互联网络和用户客户端相连,包括以下部件:
第一存储单元,用于存储用户帐号和用户移动终端号码的对应关系;
字符串生成单元,用于随机生成字符串;
第一动态密码生成单元,根据用户的认证申请随机生成密码提示信息,所 述密码提示信息规定了所述字符串中特定位的字符组合为本次认证申请的动 态密码;
接口单元,用于将所述字符串发送给所述移动终端设备,并接收用户客户 端发出的认证申请,以及将所述密码提示信息发送给所述用户移动终端设备, 接收用户输入的动态密码;
动态密码验证单元,用于判断用户输入的动态密码的有效性,如果有效, 则认证通过。
7.根据权利要求6所述的系统,其特征在于,所述字符串生成单元还用 于判断该用户帐号对应的所述随机生成的字符串是否位于有效期内,如果是, 则不再生成新的随机字符串。
8.根据权利要求6所述的系统,其特征在于,所述字符串是由数字、字 母、符号或者三者混合组成的串。
9.根据权利要求6所述的系统,其特征在于,所述密码提示信息中所规 定的特定位是所述字符串中连续的或者是不连续的位。
10.根据权利要求6所述的系统,其特征在于,还包括:
第二存储单元,用于存储用户帐号以及相应的静态密码;
静态密码验证单元,与第二存储单元相连,用于验证用户输入的静态密码。
技术领域
本发明涉及密码认证领域,特别是涉及一种动态密码认证的方法和服务端 系统。
背景技术
在现实生活中,我们个人的身份主要通过各种证件来确认,比如:身份证、 户口本等,而计算机的各种系统资源(如:文件、数据和应用系统等)也需要 认证机制的保护,从而确保这些资源被适格的人使用。
目前各类计算资源主要通过密码认证方式进行保护,一般使用静态密码认 证和动态密码认证两种方式。
静态密码认证方式采用的是“用户名+口令”的认证方式。用户登录时, 应用服务器通过静态密码进行身份认证,确认用户是否为合法的授权用户。这 种认证的缺点在于:由于用户的帐号是固定的明文,密码是静态的,用户在很 长时间内不会更改密码,造成这种密码很容易被窃取;对这种认证方式常用的 有效攻击方式有网络数据流窃听、认证信息截取/重放、字典攻击、穷举尝试、 窥探、社交工程等;由于这种认证方式存在较多的安全漏洞,对客户的身份进 行认证的安全强度已经不能满足现代各类应用系统的要求。
针对静态密码认证的缺点,动态密码认证可以提高认证的安全强度。动态 密码也称一次密码,其动态来源于产生密码的运算因子随时间变化。目前网上 银行用户在登录网上银行的时候,网上银行会向用户地手机上发送一条短信, 告诉用户一个一次性有效的动态密码,用户除了输入客户号、静态密码外,还 要输入这个动态密码才能登录网上银行。这样,除了静态密码认证外,用户又 多了一重安全保障,而且,由于这个动态密码是每次不同,每个密码只能使用 一次,黑客即使窃取了本次的动态密码,也无法再次使用,而且每个动态密码 之间毫无规律的,黑客不能猜测出用户的下一个动态密码。这种方式的缺点在 于需要依赖于移动通信网络,当移动通信网络出现故障或者手机接收短信故障 时,导致用户无法实时接收短信,而动态密码通常会在很短的时间内就失效, 影响了用户的登录。
动态密码认证的另一种方式是采用预先发放的密码口令卡进行认证,如, 目前中国工商银行推出网上银行客户使用的电子银行密码口令卡,网上银行客 户可申请领取该卡。每张网上银行密码口令卡上都以矩阵形式印有若干字符 串。客户通过网上银行进行对外转账、缴费等支付交易时,网上银行系统会随 机给出一组口令卡坐标。客户按坐标在卡片上到正确的口令组合并输入网上 银行系统后,才能进行相关交易。密码口令卡的有效使用次数是1000次,超 过使用次数时需要申领新卡。这种方式的缺点在于:采用实物密码口令卡,不 易保存,容易丢失;使用前,需要客户申请,并去专门场所领取,领用不便; 更换时也必须重新申领新的密码口令卡,更换卡不便;有效使用次数较多,造 成有效时间长,多数密码在有效期内会被重复使用,容易失密。
总之,现有的密码认证方法都存在一些缺陷,导致密码不能及时接收、不 易保存、使用不便和容易失密的问题。
发明内容
本发明所要解决的技术问题是提供一种更方便更安全的动态密码认证的 方法和系统,以解决现有技术中密码不能及时接收、不易保存、使用不便和容 易失密的问题。
为了解决上述技术问题,本发明公开了一种动态密码认证的方法,包括下 列步骤:
预置用户帐号和用户移动终端设备号码的对应关系;
根据用户的请求,随机生成字符串,并发送给用户移动终端设备;
根据用户的认证申请随机生成密码提示信息,并把所述密码提示信息发送 给客户端,所述密码提示信息规定了所述字符串中特定位的字符组合为本次认 证申请的动态密码;
用户根据所述移动终端设备收到的字符串和所述客户端收到的密码提示 信息输入动态密码;
判断用户输入的动态密码的有效性,如果有效,则认证通过。
优选的,在生成密码提示信息之前,所述方法还包括:
判断该用户帐号对应的所述随机生成的字符串是否位于有效期内;
如果是,则不再生成新的随机字符串。
优选的,所述字符串是由数字、字母、符号或者三者混合组成的。
优选的,所述密码提示信息中所规定的特定位是所述字符串中连续的或者 是不连续的位。
优选的,所述认证申请还包括静态密码认证申请,对所述静态密码进行认 证,如果认证通过,则继续进行动态密码的认证,否则,认证失败。
本发明还提供了一种动态密码认证的服务端系统,通过移动通信网络和用 户移动终端设备连接,并通过互联网络和用户客户端相连,包括以下部件:
第一存储单元,用于存储用户帐号和用户移动终端号码的对应关系;
字符串生成单元,用于随机生成字符串;
第一动态密码生成单元,根据用户的认证申请随机生成密码提示信息,所 述密码提示信息规定了所述字符串中特定位的字符组合为本次认证申请的动 态密码;
接口单元,用于将所述字符串发送给所述移动终端设备,并接收用户客户 端发出的认证申请,以及将所述密码提示信息发送给所述用户移动终端设备, 接收用户输入的动态密码;
动态密码验证单元,用于判断用户输入的动态密码的有效性,如果有效, 则认证通过。
优选的,所述字符串生成单元还用于判断该用户帐号对应的所述随机生成 的字符串是否位于有效期内,如果是,则不再生成新的随机字符串。
优选的,所述字符串是由数字、字母、符号或者三者混合组成的串。
优选的,所述密码提示信息中所规定的特定位是所述字符串中连续的或者 是不连续的位。
优选的,所述系统还包括:
第二存储单元,用于存储用户帐号以及相应的静态密码;
静态密码验证单元,与第二存储单元相连,用于验证用户输入的静态密码。
与现有技术相比,本发明具有如下优点:
1、使用移动终端设备短信方式传递和保存用于生成动态密码的字符串, 不使用实物密码卡,字符串易于保存,不易丢失。
2、由服务器端根据用户请求随机生成字符串,并发送到客户的移动终端 设备保存,不需要客户进行申请手续,不需要去专门的场所领用和更换,使用 方便。
3、用于生成动态密码的字符串具有一定的有效期,在有效期内,可以重 复使用,客户不需要实时接收短信,移动通信网络故障或延迟对客户身份认证 影响小。
4、每次使用时,由服务器端随机确定字符串中的某几位为认证密码,下 次使用时,服务器端会再次生成新的认证密码,当某次认证密码失密时,不会 造成字符串失密,不会影响下次认证,攻击者无法使用失密的认证密码通过认 证。
附图说明
图1是本发明的方法流程图;
图2是本发明的方法实施例流程图;
图3是本发明的系统框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和 具体实施方式对本发明作进一步详细的说明。
参照图1,是本发明的方法流程图,具体包括以下步骤:
步骤101,预置用户帐号和用户移动终端设备号码的对应关系。
在服务器端,预先存储用户的信息,其中包括用户帐号、用户移动终端设 备号码等信息,可以要求用户在注册时提供这些信息,或者由其它系统的用户 数据导入得到,也可以是由专门的录入员进行信息录入,用户移动终端设备可 以是用户的手机、掌上电脑等设备,用户移动设备的编号可以是SIM卡(用 户身份识别卡)的号码,为了保证用户移动终端设备能顺利接收下面步骤中发 给用户的信息,可以在建立用户时,向用户移动终端设备发送验证短信,由用 户回填短信中的验证码来确认用户移动终端设备号码正确,这样可以防止信息 失密或者短信骚扰。简而言之,就是在服务器端建立了用户帐号和用户移动终 端设备号码的对应关系,也可以根据系统的实际需要确认是否需要一对多或者 多对一的关系。
步骤102,根据用户的请求,随机生成字符串,并发送给用户移动终端设 备。
所述的字符串将在后续步骤中用于产生用户的认证密码,关于如何产生的 问题将在后文中介绍。所述字符串采用随机生成的方式产生,字符串的位数可 以根据需要任意确定,理论上可以是1到无穷大,字符串的位数越大,可以生 成的动态密码的位数就可以越大,密码认证的安全性就可以越高,考虑传送字 符串和用户查阅字符串方便性,可以将字符串限制在一个合理的长度,字符串 的生成可以采用程序设计语言中的随机函数生成,也可以自行编写函数实现。 生成字符串后,把字符串绑定到用户帐号上,可以用户帐号和字符串对应关系 保存在服务器端,绑定后,把字符串发送给用户移动终端设备,用于用户产生 动态密码之用。
服务器端可以使用短信方式把所述字符串发送给用户移动终端设备。移动 终端设备也可以采用其他方式获取字符串,例如,可以由服务器端发送一个网 址给移动终端设备,移动终端设备按照网址上网到需要的字符串。
用户的请求信息可以是注册申请、重要操作申请或者是要求更新字符串的 申请等,由这些申请来触发服务器端生成字符串。
优选的,所述随机生成的字符串具有一定的有效期,由服务器端判断所述 字符串是否超期,如果超期,重新生成字符串并发送给用户移动终端设备,若 否,不再生成新的字符串,继续使用原字符串。也可以判断是否在以当前时间 倒推一个有效期的时间内是否给用户帐号发送过字符串的,如果发送过,则认 为所发送的字符串仍然有效,如果没有发送过,则认为所述字符串已经失效, 需要重新生成。设置有效期的目的是为了定期更新字符串,从而进一步提高动 态密码的安全性,防止字符串失密。这里也可以设定字符串的使用次数代替有 效期,当字符串使用超过一定次数,例如50次,则认为字符串失效,需要重 新生成字符串。有效期设置的过长,可能会增大失密的危险,设置的过短,字 符串的更新过于频繁,用户需要经常更新保存的字符串,使用上不方便,在实 际使用中,可以根据需要确定一个合适的有效期来兼顾安全性和使用的方便 性。
优选的,所述字符串既可以是由数字组成,也可以是由字母或者符号组成, 还可以是由三者混合组成,这样可以增大由字符串生成的密码空间,进一步增 加安全性。所述字符串的形式可以是一维的,以便于用户移动终端设备接收、 显示和查阅。
步骤103,用户通过客户端发送认证申请。
当用户需要进行身份认证时,可以是用户登录时或者进行某项安全性要求 较高的操作(如网上银行的支付操作)时,用户可以通过客户端向服务器端发 出认证申请,认证申请中可以包含用户的帐号等信息。
步骤104,根据用户的认证申请随机生成密码提示信息,并把所述密码提 示信息发送给客户端,所述密码提示信息规定了所述字符串中特定位的字符组 合为本次认证申请的第一动态密码。
服务器端为每次用户的认证请求随机生成不同的密码提示信息。可以采用 计算机中的随机算法函数或者自己编写的函数实现随机生成密码提示信息,这 样每次生成的密码提示信息都不相同,密码提示信息只能在本次认证请求中使 用,对于新的认证请求,将生成新的密码提示信息。为进一步增加安全性,还 可以在生成的密码提示信息上附加时间戳标记,使其在一定时间后失效。
优选的,所述密码提示信息中所规定的特定位可以是所述字符串中连续的 或者是不连续的位。
例如,服务器端产生了“322h4b432y”的字符串,已经和用户帐号绑定, 并发送给了用户,服务器端通过随机算法确定了“64814”的随机数串,产生 如下的密码提示信息:“顺次提取字符串第6、4、8、1、4位作为认证密码”, 则从“322h4b432y”中顺次提取第6、4、8、1、4位得到的第一动态密码是“bh33h”, 保存在服务端,并把密码提示信息发送给用户。发送的方式可以是通过http 方式,显示在返回给客户端的认证页面上。
步骤105,用户根据所述移动终端设备收到的字符串和所述客户端收到的 密码提示信息输入第二动态密码。
用户接收到服务器端发送的密码提示信息后,操作移动终端设备显示出预 先接收到的字符串,根据密码提示信息从字符串中提取出第二动态密码,作为 认证密码发送给服务器端。发送的方式可以是由用户在客户端的认证页面上输 入,并提交给服务器端。
例如,用户预先收到的字符串是“322h4b432y”,得到的密码提示信息是 “顺次提取字符串第6、4、8、1、4位作为认证密码”,则用户取得的第二动 态秘密是“bh33h”,用户将第二动态密码输入到客户端的认证页面上,提交给 服务器端。
步骤106,对比第一动态密码和第二动态密码,如果一致,则认证通过。
服务器端接收到用户提交的第二动态密码,取出在步骤104中生成的第一 动态密码,进行比对,如果密码一致,则用户认证通过,允许用户进行登录或 者其他操作,如果密码不一致,认证失败,发送提示信息给用户,提示用户认 证失败,不允许用户登录或者其他操作。
优选的,上述步骤还包括,用户通过客户端向服务器端发送的认证申请中 还包括预先设定的静态密码,客户端把静态密码和用户信息发送给服务器端, 经过和预先保存的用户的静态密码比对后,确定用户静态密码是否认证通过, 如果认证通过,则继续进行动态密码的认证,如果认证未通过,提示用户认证 失败。也可以先进行动态密码验证,如果验证通过,再进行静态密码验证。也 可以采用动态密码和静态密码同时验证的方式,当两者验证都通过时认为用户 认证通过,有一项未通过时,认证失败。对于非法获得用户字符串的用户,在 缺少用户帐号、当前动态密码和静态密码其中之一时,无法登录系统,同时, 还可以结合多次错误输入或者增加校验码等技术防止攻击者的穷举式非法扫 描。
在上述方法中,所述用户移动终端设备可以是手机或掌上电脑等设备。
下面以用户在电子商务网站进行支付操作时的身份认证为例进一步进行 介绍。
参照图2,是本发明的方法实施例流程图,具体包括以下步骤:
步骤201,用户登录电子商务网站。
用户可以是预先注册过的电子商务网站用户,并且通过了电子商务网站的 资格认证(如验证了个人信息的真实性、拥有合法的交易资金帐号等),并且 验证过用户手机号码的正确性。
步骤202,如果用户帐号未绑定在有效期内的用于生成动态密码的字符串, 电子商务网站向用户手机,该短信内容为一串数字或一串字符组成的 字符串。
对于未绑定在有效期内的字符串的用户帐号,电子商务网站采用随机算法 生成一个字符串,该字符串可以由数字、字母和符号组成。并根据预先保存的 用户移动终端设备号码通过移动通信网络,短信中包含所述生成的字 符串。
步骤203,用户提交支付请求,电子商务网站生成密码提示信息和第一动 态密码,并在返回给用户的支付操作页面上显示密码提示信息和密码输入框。
步骤204,用户按照密码提示信息从手机接收到的字符串中取得第二动态 密码,输入到电子商务网站的支付操作页面上并提交。
步骤205,电子商务网站对比第一动态密码和第二动态密码,如果一致, 允许用户进行支付操作。
电子商务网站为用户手机接收到的字符串设定一定的有效期,该有效期时 间可以较长,而且只要在有效期内,该字符串并不是一次失效,只要通过电子 商务网站变更密码提示信息,更换输入字符串的位数就可实现该字符串的反复 使用。
参照图3,是本发明的服务端系统框图,具体包括:
移动终端设备301,用于接收和保存服务端系统发送的字符串;
客户端302,用于发送用户的认证申请,接收服务端系统发送的密码提示 信息,以及向服务端系统发送用户输入的第二动态密码;
服务端系统303,通过移动通信网络和移动终端设备301连接,并通过互 联网络和客户端302相连,包括以下部件:
字符串生成单元3031,用于生成随机的字符串;
第一存储单元3032,用于存储用户帐号和用户移动终端号码的对应关系;
第一动态密码生成单元3033,用于根据用户的认证申请随机生成密码提 示信息,并根据密码提示信息生成第一动态,所述密码提示信息规定了所述字 符串中特定位的字符组合为本次认证申请的动态密码;
接口单元3034,用于将所述字符串发送给所述移动终端设备301,并接收 客户端302发出的认证申请,以及将所述密码提示信息发送给所述移动终端设 备301,接收客户端302发送的第二动态密码;
动态密码验证单元3035,用于比对第一密码和第二动态密码,如果一致, 则认证通过。
字符串生成单元3031根据用户请求为用户帐号随机生成一个字符串,字 符串的位数可以根据需要任意确定,理论上可以是1到无穷大,考虑传送字符 串和用户查阅字符串方便性,可以将字符串限制在一个合理的长度,字符串的 生成可以采用程序设计语言中的随机函数生成,也可以自行编写函数实现。生 成字符串后,把字符串绑定到用户帐号上,绑定后,把字符串发送给用户移动 终端设备301。当用户需要进行身份认证时,可以是当用户进行某项安全性要 求较高的操作(如网上银行的支付操作)时,用户可以通过客户端302向服务 端系统303的接口单元3034发出认证申请,认证申请中可以包含用户帐号等 信息。接口单元3034收到用户提交的认证申请后,由第一动态密码生成单元 3033到由字符串生成单元3031生成的和用户帐号绑定的字符串,第一动态 密码生成单元3033根据随机算法生成密码提示信息,密码提示信息描述了从 字符串中提取若干位作为第一动态密码,并根据密码提示信息生成第一动态密 码。接口单元3034把密码提示信息发送给客户端302。用户接收到密码提示 信息后,操作移动终端设备301显示出接收到的字符串,根据密码提示信息从 字符串中提取出第二动态密码,作为认证密码发送给服务端系统303的接口单 元3034。发送的方式可以是由用户在客户端303上显示的认证页面上输入, 并提交。接口单元3034接收到用户提交的第二动态密码,发送给动态密码验 证单元3035,和保存的第一动态密码进行比对,如果密码一致,则用户认证 通过,允许用户进行操作,如果密码不一致,认证失败,发送提示信息给用户, 提示用户认证失败,不允许用户进行操作或者引导用户重新进行认证。
优选的,所述随机生成的字符串具有一定的有效期,由字符串生成单元 3031判断所述字符串是否超期,如果超期,重新生成字符串并发送给用户移 动终端设备,若否,不再生成新的字符串,继续使用原字符串。判断是否超期 也可以采用下面的方法:判断所述字符串是否在有效期内、判断是否在以当前 时间倒推一个有效期的时间内是否给用户帐号发送过字符串的或者所述的字 符串使用次数是否达到一定的数值。
优选的,所述字符串既可以是由数字组成,也可以是由字母或者符号组成, 还可以是由三者混合组成。
优选的,第一动态密码生成单元3033为每次用户的认证请求随机生成不 同的密码提示信息。可以采用计算机中的随机算法函数或者自己编写的函数实 现随机生成密码提示信息,这样每次生成的密码提示信息都不相同,密码提示 信息只能在本次认证请求中使用,对于另一次的认证请求,将生成新的密码提 示信息。为进一步增加安全性,还可以在生成的密码提示信息上附加时间戳标 记,使其在一定时间后失效。
优选的,所述密码提示信息中所规定的特定位可以是所述字符串中连续的 或者是不连续的位。
优选的,服务端系统303还可以包括:
第二存储单元3036,用于存储用户帐号以及相应的静态密码;
静态密码验证单元3037,与第二存储单元相连,用于验证用户输入的静 态密码。
用户通过客户端302向服务端系统303的接口单元3034发送的认证申请 中还包括预先设定的静态密码,客户端302把静态密码和用户信息发送给服务 端系统303的接口单元3034,经过和预先保存在第二存储单元3036的用户的 静态密码比对后,静态密码验证单元3037确定用户静态密码是否认证通过, 如果认证通过,则继续进行动态密码的认证,如果认证未通过,提示用户认证 失败。也可以先进行动态密码验证,如果验证通过,再进行静态密码验证。也 可以采用动态密码和静态密码同时验证的方式,当两者验证都通过时认为用户 认证通过,有一项未通过时,认证失败。
本发明的一种动态密码认证的方法和系统可用于游戏、金融、证券、商业、 政府、学术、企业计算机系统登陆以及企业虚拟专用网。
以上对本发明所提供的一种密码认证的方法和系统,进行了详细介绍,本 文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说 明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技 术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处, 综上所述,本说明书内容不应理解为对本发明的限制。
本文发布于:2023-04-14 17:17:33,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/4/86600.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |