CN1731722A - 动态密码生成和验证的方法 - Google Patents
动态密码生成和验证的方法 Download PDFInfo
- Publication number
- CN1731722A CN1731722A CN 200410009913 CN200410009913A CN1731722A CN 1731722 A CN1731722 A CN 1731722A CN 200410009913 CN200410009913 CN 200410009913 CN 200410009913 A CN200410009913 A CN 200410009913A CN 1731722 A CN1731722 A CN 1731722A
- Authority
- CN
- China
- Prior art keywords
- password
- client
- key
- service end
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种动态密码生成和验证的方法,应用于包括服务端及客户端的动态密码生成和验证系统,其特征在于,包括以下步骤:客户端使用移动设备生成随机的动态密码,并输入此密码登录服务端;服务端得到客户端输入的密码后,在自己系统内计算客户端的动态密码;服务端判断客户端输入的密码是否符合自己计算的密码,若是,则允许该用户登录;否则,用户登录失败。本发明与现行的密码系统相比,具有安全性高,易于升级维护和最终用户零花费等优点。此方法可以广泛应用于各种基于互联网的应用行业。
Description
【技术领域】
本发明涉及一种密码生成和验证的方法,特别是涉及动态密码生成和验证的方法。
【背景技术】
动态密码的概念在20世纪80年代由美国数学家Leslie Lamport最先提出。著名的RSA SecurID身份验证系统则是这方面的商业化代表产品。动态密码的最大优势就在于密码不重复使用,每次使用的密码都只是一次有效,密码可以根据某种算法预先设定,也可以完全随机生成(需要一定的同步机制)。由于密码仅一次可用的特性,即使攻击者通过网络监听等手段得到了用户的若干密码也无法登录系统。所以动态密码系统比传统的密码系统有了很大的改进,可以更好的保护计算机系统的安全。
专利号为02100841.8的申请文件公开了一种动态密码生成系统,该系统包括GSM网络、短信息处理平台、动态密码生成服务器、商家身份验证处理系统和系统维护管理系统;彼此间通过GSM网关、短信息处理平台进行数据传输;所述动态密码生成服务器可随机生成用于身份验证的一次性动态密码:该密码生成服务器包括接收装置、密码生成装置和传输装置;所述接收装置:接收用户用于申请动态密码的手机号码;所述密码生成装置:对用户手机号码进行身份判断、验证,自动随机产生一组数据作为一次性动态密码;所述传输装置:将密码生成装置产生的一次性动态密码通过GSM网关、短信息处理平台向用户手机和身份验证系统发送该动态密码。
由上述现有技术的方案可以看出,用户要想得到动态密码,必须先向服务端申请,而服务端验证用户身份后生成动态密码,并将此密码通过GSM网关、短信息处理平台发送给用户后,用户才可以使用。如果移动电话网络出现故障时,用户则不能收到该密码,而且在通信过程中,仍然存在密码被窃取的安全隐患。
本发明的目的在于克服上述用户必须通过GSM网关、短信息处理平台才能够得到动态密码的弊端,而提供一种动态密码生成的方法,该方法能够实现客户端利用已有的移动设备生成动态密码。
【发明内容】
为了实现上述目的,本发明提供的动态密码生成和验证的方法采用以下技术方案:
该方法应用于包括服务端及客户端的动态密码生成和验证系统。该方法的特征在于包括以下步骤:A、客户端使用移动设备生成随机的动态密码,并输入此密码登录服务端;B、服务端得到客户端输入的密码后,在自己系统内计算客户端的动态密码;C、服务端判断客户端输入的密码是否符合自己计算的密码,若是,则允许该用户登录;否则,用户登录失败。
该方法的特征还在于,在所述步骤C中还包括以下步骤:C1、服务端首先判断用户输入的密码与自己第一次计算的密码是否一致,若一致,则允许用户登录;否则,服务端计算包括一定时间误差范围内的密码。
该方法的特征在于,在所述计算一定范围内的密码的过程之后还包括以下步骤:C2、服务端判断用户输入的密码是否在自己第二次计算的密码范围内,若是,则允许该用户登录,否则,服务端计算包括一定时间误差和时间漂移值范围内的密码。
该方法的特征在于,在所述步骤A之前还包括随机生成密钥的过程。
该方法的特征还在于,在步骤A中所述客户端随机生成动态密码的过程具体包括:A1)、取密钥和系统时间作为散列函数的输入;A2)、计算所得的散列函数的输出为一定长度的随机字符串;A3)、对随机字符串进行编码,取其结果的一部分作为动态密码。
该方法的特征还在于,在步骤B中所述服务端计算客户端的动态密码的过程具体包括:B1)、读取密钥和系统时间;B2)、取密钥和系统时间作为散列函数的输入;B3)、计算所得的散列函数的输出为一定长度的随机字符串;B4)、对随机字符串进行编码,取其结果的一部分作为动态密码。
该方法的特征还在于,所述服务端计算包括一定时间误差范围内的密码的过程具体包括:C11)、读取密钥和包含时间误差的数个时间值;C12)、取密钥和上述数个时间值作为散列函数的输入;C13)、计算所得的数个散列函数的输出为一定长度的随机字符串;C14)、对随机字符串进行编码,取其结果的一部分作为动态密码。
该方法的特征还在于,所述服务端计算包括一定时间误差和时间漂移值范围内的密码的过程具体包括:C21)、读取密钥、包含时间漂移值和时间误差的数个时间值;C22)、取密钥、包含时间漂移值和时间误差的数个时间值作为散列函数的输入;C23)、计算,得数个散列函数的输出为一定长度的随机字符串;C24)、对随机字符串进行编码,取其结果的一部分作为动态密码。
该方法的特征还在于,所述随机生成密钥的过程具体包括:客户端随机设定密钥,并将该密钥添加到服务端。
该方法的特征还在于,所述随机生成密钥的过程具体包括:服务端随机设定密钥,并将该密钥添加到客户端。
本发明由于客户端能够自己生成动态密码,并输入此密码登录服务端进行验证,所以该方法能够实现客户端利用已有的移动设备生成动态密码,而且动态密码不需要通过移动通信网络(如GSM、CDMA等)、短信息处理平台发送,避免了密码被窃取的安全隐患。
【附图的简要说明】。
图1是按照本发明的动态密码生成和验证过程的流程图。
【具体实施方式】
本发明公开一种动态密码生成和验证的方法,应用于包括服务端及客户端的动态密码生成和验证系统,该动态密码系统的安装需要两步。第一步为系统服务端安装验证模块,随后在服务端设置客户端的个人目录,将每个客户端的密钥、时间漂移值等数据存储于该客户端的个人目录之下,当客户端达到一定数量时,需要采用一套独立的数据库进行存储和管理。第二步是最终客户端根据其个人移动设备的类型和具体型号,选择合适的移动客户端模块下载到其个人移动设备。下载的方式可以由客户端根据需要自行决定,例如可以使用红外线、蓝牙或数据线的方式,也可以采用移动电话网络的GPRS等方式。客户端进行一些初始化的设置之后,就可以开始使用了。例如,一用户希望在一台FTP服务器中使用MOTP(MobileOne-Time Passwords移动式动态密码),假定用户使用的是Linux系统,其自己的个人移动设备(如手机、PDA等)支持Java技术。第一步,该客户端需要在服务端安装好MOTP的基于PAM(行业标准验证框架Pluggable Authentication Modules)的验证模块(如果是Windows系统,则安装针对具体应用程序的插件),然后用户需要在数据库中添加该用户的密钥和时间漂移值(默认值为0),例如,用户名为john,设定的密钥为toF+FpEHbH8DM91X。第二步,用户需要下载移动客户端模块到自己的个人移动设备里,例如其使用的是Nokia3100,则下载适用于Nokia3100的移动客户端。然后运行这个程序,在“密钥管理”菜单中添加这个密钥toF+FpEHbH8DM91X。至此,安装工作就完成了。
在使用中,用户使用任一FTP的客户端软件连接到这台FTP服务端,在系统提示输入密码时,用户运行自己手机上的移动客户端程序,在“密码生成”菜单中得到了一个密码,例如8beo h3J7,用户输入这个密码,顺利的进入了系统。由于密码是动态变化的,通常将其设定为60秒变化一次,于是60秒后,客户端再次登录时,用户的个人移动设备上就会显示出一个新的密码。
本发明所述方法的具体实施过程将参照图1进行描述。首先执行步骤S101,即生成密钥。密钥的长度至少为128位,也可以根据具体应用的需要进行设置。密钥的生成是完全随机的,密钥的设定可以由客户端输入,也可以在客户端使用GPRS下载之前由服务端完成设定再传送给客户端。密钥的管理可以由应用程序完成,也可以使用一个独立的数据库,服务器端验证系统从这个数据库里检索和提取客户端的密钥。
接着执行步骤S102,即客户端使用移动设备生成随机的动态密码,并输入此密码登录服务端;也就是客户端首先使用一台计算设备,个人台式机或者笔记本,启动上述系统安装的某个应用程序,例如某个在线游戏的客户端程序,然后运行其个人移动设备上的移动客户端程序,生成并显示出一个动态密码,密码的具体长度可以根据具体应用的安全等级需要而设定,对于一般的应用程序,6~8个字符即可。移动客户端采用如下密码计算规则:读取密钥(key)和系统时间(time),然后将密钥和系统时间作为散列函数(例如SHA256)的输入值进行计算,即p=h(key,time)。散列函数的输出p为一定长度(SHA256的输出为256bit)的随机字符串,然后使用一定的编码规则(例如Base64)对这个随机字符串进行编码,最后取其结果的一部分(例如64bit)作为动态密码使用。按照上述生成动态密码后,用户输入客户端用户名和这个动态密码登录服务端。
其次,执行步骤S103,即服务端得到客户端输入的密码后,在自己系统内计算客户端的动态密码;服务端采用如下密码计算规则:读取密钥(key)和系统时间(time),然后将密钥和系统时间作为散列函数(例如SHA256)的输入值进行计算,即p=h(key,time)。散列函数的输出p为一定长度(SHA256的输出为256bit)的随机字符串,然后使用一定的编码规则(例如Base64)对这个随机字符串进行编码,最后取其结果的一部分(例如64bit)作为动态密码使用。
接着执行步骤S104,即服务端判断客户端输入的密码与自己计算的密码是否一致,若一致,则表明用户为合法用户,第一轮验证通过,转入执行步骤S110,即允许客户端登录。客户端的时间漂移值为0,记录到数据库,登录成功。
如果不一致,则进行第二轮验证,即执行步骤S105,即计算包含一定时间误差的密码。以5分钟为例,散列函数的第一项输入仍为密钥(key),第二项输入则依次为time+delta,其中delta取-5~+5,这里的time代表系统时间,delta为时间误差变化量。这样,服务端就依次计算出了10个不同的密码。接着执行步骤S106,即判断客户端输入的密码是否在自己计算的密码范围内,判断的具体方案为:服务端逐一比较客户端的密码是否与上述计算出的10个密码中的某一个相同,如果有任何一个符合,比如当delta=3时符合了,则表明用户为合法用户,第二轮验证通过,转入执行步骤S110,即允许该用户登录,delta作为更新的时间漂移值被记录到数据库,登录成功。
如果均不一致,则进行第三轮验证,即执行步骤S107,即服务端计算包含时间漂移值和一定时间误差的密码。仍以5分钟为例,但与第二次验证不同的是,第二项输入依次为time+drift+delta,其中delta取-5~+5,这里的time代表系统时间,drift代表从数据库读取的时间漂移值,delta为时间误差变化量。这样,也得到了10个不同的密码。接着执行步骤S108,即判断客户端输入的密码是否在自己计算的密码范围内,判断的具体方案为:服务器端逐一比较,如果有任何一个符合所计算的10个密码中的一个,比如当delta=3符合时,则第三轮验证通过,转入执行步骤S110,即允许该用户登录;drift+delta作为更新的时间漂移值被记录到数据库。
否则,执行步骤S109,即服务器端认定用户为非法用户,拒绝客户端登录,客户端登录失败。服务端提醒客户端登录失败的可能原因为时间漂移误差过大,客户端可以尝试校准个人移动设备上的时钟,然后重新尝试登录。
总之,本发明与现行的密码系统相比,具有安全性高,易于升级维护和最终用户零花费等优点。此方法可以广泛应用于各种基于互联网的应用行业。
以上为本发明的最佳实施方式,依据本发明公开的内容,本领域的普通技术人员能够显而易见的想到一些雷同、替代的方案,均应落入本发明保护的范围。
Claims (10)
1、一种动态密码生成和验证的方法,应用于包括服务端及客户端的动态密码生成和验证系统,其特征在于,包括以下步骤:
A、客户端使用移动设备生成随机的动态密码,并输入此密码登录服务端;
B、服务端得到客户端输入的密码后,在自己系统内计算客户端的动态密码;
C、服务端判断客户端输入的密码是否符合自己计算的密码,若是,则允许该用户登录;否则,用户登录失败。
2、按照权利要求1所述的方法,其特征在于,在所述步骤C中还包括以下步骤:
C1、服务端首先判断用户输入的密码与自己第一次计算的密码是否一致,若一致,则允许用户登录;否则,服务端计算包括一定时间误差范围内的密码。
3、按照权利要求2所述的方法,其特征在于,在所述计算一定范围内的密码的过程之后还包括以下步骤:
C2、服务端判断用户输入的密码是否在自己第二次计算的密码范围内,若是,则允许该用户登录,否则,服务端计算包括一定时间误差和时间漂移值范围内的密码。
4、按照权利要求3所述的方法,其特征在于,在所述步骤A之前还包括随机生成密钥的过程。
5、按照权利要求4所述的方法,其特征在于,在步骤A中所述客户端移动设备生成动态密码的过程具体包括:
A1)、取密钥和系统时间作为散列函数的输入;
A2)、计算,所得的散列函数的输出为一定长度的随机字符串;
A3)、对随机字符串进行编码,取其结果的一部分作为动态密码。
6、按照权利要求5所述的方法,其特征在于,在步骤B中所述服务端计算客户端的动态密码的过程具体包括:
B1)、读取密钥和系统时间;
B2)、取密钥和系统时间作为散列函数的输入;
B3)、计算,所得的散列函数的输出为一定长度的随机字符串;
B4)、对随机字符串进行编码,取其结果的一部分作为动态密码。
7、按照权利要求6所述的方法,其特征在于,所述服务端计算包括一定时间误差范围内的密码的过程具体包括:
C11)、读取密钥和包含时间误差的数个时间值;
C12)、取密钥和上述数个时间值作为散列函数的输入;
C13)、计算,所得的数个散列函数的输出为一定长度的随机字符串;
C14)、对随机字符串进行编码,取其结果的一部分作为动态密码。
8、按照权利要求7所述的方法,其特征在于,所述服务端计算包括一定时间误差和时间漂移值范围内的密码的过程具体包括:
C21)、读取密钥、包含时间漂移值和时间误差的数个时间值;
C22)、取密钥、包含时间漂移值和时间误差的数个时间值作为散列函数的输入;
C23)、计算,所得数个散列函数的输出为一定长度的随机字符串;
C24)、对随机字符串进行编码,取其结果的一部分作为动态密码。
9、按照权利要求4所述的方法,其特征在于,所述随机生成密钥的过程具体包括:客户端随机设定密钥,并将该密钥添加到服务端。
10、按照权利要求4所述的方法,其特征在于,所述随机生成密钥的过程具体包括:服务端随机设定密钥,并将该密钥添加到客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410009913 CN1731722A (zh) | 2004-11-30 | 2004-11-30 | 动态密码生成和验证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410009913 CN1731722A (zh) | 2004-11-30 | 2004-11-30 | 动态密码生成和验证的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1731722A true CN1731722A (zh) | 2006-02-08 |
Family
ID=35964031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410009913 Pending CN1731722A (zh) | 2004-11-30 | 2004-11-30 | 动态密码生成和验证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1731722A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101051908B (zh) * | 2007-05-21 | 2011-05-18 | 北京飞天诚信科技有限公司 | 动态密码认证系统及方法 |
CN101432980B (zh) * | 2006-05-01 | 2012-08-08 | 未来科技株式会社 | 用于移动电话的时间同步型一次性密码生成装置和方法 |
CN102750486A (zh) * | 2012-06-29 | 2012-10-24 | 奇智软件(北京)有限公司 | 一种登录控件更新登录信息的方法和装置 |
CN108830977A (zh) * | 2018-05-04 | 2018-11-16 | 西安石油大学 | 一种动态密码门禁锁及操作方法 |
CN110519060A (zh) * | 2019-08-23 | 2019-11-29 | 湖南财政经济学院 | 一种密码生成及验证方法 |
CN110890958A (zh) * | 2019-10-16 | 2020-03-17 | 蔚复来(浙江)科技股份有限公司 | 一种离线远程临时密码的生成方法和验证方法 |
CN111182010A (zh) * | 2018-11-09 | 2020-05-19 | 杭州海康威视数字技术股份有限公司 | 一种本地服务提供方法及装置 |
CN111327629A (zh) * | 2020-03-04 | 2020-06-23 | 广州柏视医疗科技有限公司 | 身份验证方法、客户端和服务端 |
-
2004
- 2004-11-30 CN CN 200410009913 patent/CN1731722A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101432980B (zh) * | 2006-05-01 | 2012-08-08 | 未来科技株式会社 | 用于移动电话的时间同步型一次性密码生成装置和方法 |
CN101051908B (zh) * | 2007-05-21 | 2011-05-18 | 北京飞天诚信科技有限公司 | 动态密码认证系统及方法 |
CN102750486A (zh) * | 2012-06-29 | 2012-10-24 | 奇智软件(北京)有限公司 | 一种登录控件更新登录信息的方法和装置 |
CN102750486B (zh) * | 2012-06-29 | 2015-06-03 | 北京奇虎科技有限公司 | 一种登录控件更新登录信息的方法和装置 |
CN108830977A (zh) * | 2018-05-04 | 2018-11-16 | 西安石油大学 | 一种动态密码门禁锁及操作方法 |
CN111182010A (zh) * | 2018-11-09 | 2020-05-19 | 杭州海康威视数字技术股份有限公司 | 一种本地服务提供方法及装置 |
CN111182010B (zh) * | 2018-11-09 | 2023-04-07 | 杭州海康威视数字技术股份有限公司 | 一种本地服务提供方法及装置 |
CN110519060B (zh) * | 2019-08-23 | 2022-03-29 | 湖南财政经济学院 | 一种密码生成及验证方法 |
CN110519060A (zh) * | 2019-08-23 | 2019-11-29 | 湖南财政经济学院 | 一种密码生成及验证方法 |
CN110890958A (zh) * | 2019-10-16 | 2020-03-17 | 蔚复来(浙江)科技股份有限公司 | 一种离线远程临时密码的生成方法和验证方法 |
CN110890958B (zh) * | 2019-10-16 | 2023-09-12 | 蔚复来(浙江)科技股份有限公司 | 一种离线远程临时密码的生成方法和验证方法 |
CN111327629B (zh) * | 2020-03-04 | 2021-07-27 | 广州柏视医疗科技有限公司 | 身份验证方法、客户端和服务端 |
CN111327629A (zh) * | 2020-03-04 | 2020-06-23 | 广州柏视医疗科技有限公司 | 身份验证方法、客户端和服务端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2003262473B2 (en) | Methods and systems for authentication of a user for sub-locations of a network location | |
CN101527633B (zh) | 智能密钥设备获取数字证书的方法 | |
CN105323253B (zh) | 一种身份验证方法及装置 | |
CN101389133A (zh) | 身份验证系统及方法 | |
CN1832401A (zh) | 一种保护帐号密码安全的方法 | |
CN103888255A (zh) | 一种身份认证方法、装置及系统 | |
US20060026421A1 (en) | System and method for making accessible a set of services to users | |
CN111818088A (zh) | 授权模式管理方法、装置、计算机设备及可读存储介质 | |
CN114070583B (zh) | 信息访问控制方法、装置、计算机设备及介质 | |
CN112165448B (zh) | 业务处理方法、装置、系统、计算机设备和存储介质 | |
WO2010098789A1 (en) | Multifactor authentication system and methodology | |
CN111404859A (zh) | 一种客户端认证方法、装置和计算机可读存储介质 | |
CN115022047B (zh) | 基于多云网关的账户登录方法、装置、计算机设备及介质 | |
CN113055185A (zh) | 一种基于token的认证方法及装置、存储介质、电子装置 | |
CN113360868A (zh) | 应用程序登录方法、装置、计算机设备和存储介质 | |
CN114301617A (zh) | 多云应用网关的身份认证方法、装置、计算机设备及介质 | |
CN1731722A (zh) | 动态密码生成和验证的方法 | |
CN1786864A (zh) | 一种计算机安全认证方法 | |
CN109587180B (zh) | 一种建立连接的方法、客户端及服务器 | |
WO2009012334A2 (en) | Systems and methods for first and second party authentication | |
CN108965335B (zh) | 防止恶意访问登录接口的方法、电子设备及计算机介质 | |
WO2004079483A2 (en) | Method and apparatus for authorizing execution for applications in a data processing system | |
CN116707758A (zh) | 可信计算设备的认证方法、设备和服务器 | |
CN111198895A (zh) | 一种区块链更新方法 | |
CN111063061A (zh) | 一种智能门锁使用临时密码的方法、设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060208 |