CN106506529A - 一种双向认证方法及系统 - Google Patents
一种双向认证方法及系统 Download PDFInfo
- Publication number
- CN106506529A CN106506529A CN201611106444.9A CN201611106444A CN106506529A CN 106506529 A CN106506529 A CN 106506529A CN 201611106444 A CN201611106444 A CN 201611106444A CN 106506529 A CN106506529 A CN 106506529A
- Authority
- CN
- China
- Prior art keywords
- client
- module
- service end
- password set
- password
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0846—Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种双向认证方法,包括:客户端获取用户信息,据当前时间、及预设的至少一个时间变化值,采用用户信息的算法,生成第一动态认证口令组,并将第一动态认证口令组及用户信息发送给服务端;服务端接收后,根据用户信息查找到相应的算法,再据当前时间,及预设的至少一个时间变化值,采用查找到的相应算法,获取第一动态验证口令组;服务端验证第一动态认证口令组中的口令是否与第一动态验证口令组中的口令一致,若是,则客户端认证通过;当所述客户端通过认证后,再通过同样的认证方法,对服务端进行认证。本发明利用动态口令技术在客户端和服务端端进行双向身份认证,操作简易,管理和使用方便,安全性高。
Description
技术领域
本发明属于信息安全技术领域,特别涉及一种双向认证方法及系统。
背景技术
随着电子商务的发展,客户的帐户安全已成为一个重要问题,单一依靠静态密码进行交易的身份确认方式,存在严重的被破取、猜测破解等问题,采用动态密码令牌方式可以解决上述问题,但目前在认证模式上存在一定缺陷,多数密码产品采用单向认证模式,即由动态密码令牌传统的挑战应答模式在给与客户端挑战码时只给于随机数字来进行动态口令的运算,在安全性以及防护钓鱼攻击、中间人攻击时表现上有所欠缺。
而现有的双向认证技术,采用SSL证书在客户端和服务器端进行双向身份认证,证书的发布、管理具有很高的费用,且现有技术很多客户端都是使用软证书,容易丢失被盗用,有一定的身份认证风险。
发明内容
本发明提供一种双向认证方法及系统,解决了上述现有技术的问题,本发明采用动态口令实现双向认证,生成动态口令的装置(客户端)操作简单;管理和使用方面方便;安全性方面比软证书更安全;操作简易。
本发明包括一种双向认证方法,包括步骤:
S100所述客户端获取用户信息,根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,并将所述第一动态认证口令组及用户信息发送给服务端;
S200所述服务端接收所述用户信息及第一动态认证口令组后,根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
S300所述服务端验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则所述客户端认证通过,进入后续步骤;
S400所述服务端根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
S500所述客户端接收所述第二动态认证口令组后,根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
S600所述客户端验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则所述服务端认证通过。
本方案在基于时间同步的双向认证方法上,认证方通过生成至少两个或以上的动态口令,验证方收到后亦采用同样的方法来进行验证。由于动态口令的生成是基于时间同步的,也就是是动态口令是随时间变化的,如果口令变化周期是1分钟,那也就是说这一分钟内的口令和下一分钟的口令都是不同的。而且为了防止口令被第三方碰撞篡改,还采用了生产至少两个或以上的口令,组成口令组的方法,两个或以上的口令被同时碰撞成功的可能性微乎其微,那么安全性也是更为增强。此外,比起数字证书的操作复杂,发布和管理费用高,有易盗用的风险来看,本发明操作简单、管理和使用方便,安全性也比软证书更安全。
进一步的,所述步骤S100包括步骤:
S110所述客户端根据自身生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
所述步骤S200包括步骤:
S210所述服务端接收所述用户信息、所述挑战码及所述第一动态认证口令组后,根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组。
进一步的,所述步骤S400包括步骤:
S410所述服务端根据所述挑战码、当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
所述步骤S500包括步骤:
S510所述客户端接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组。
在基于时间同步生成动态口令的基础上,加入了挑战因素,客户端发起挑战,随机生成一随机数作为挑战因子,结合时间因子,生成动态口令。由于挑战具有随意性,无法获知下一次的挑战是什么,加上基于时间同步的方法,故而,安全系数更高。
进一步的,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。
由于口令的生成中含有时间因子,口令在一个口令周期内不会变化,例如60S的口令变化周期,那么只有在下一个60S到来时才会变化,而时间变化值也需要在当前时间上推迟或推前至少1个口令变化周期,才会生成与当前时间不同的动态口令。
进一步的,在完成双向认证之前,还包括:
S010所述客户端获取所述用户信息,同时将所述用户信息发送至所述服务端;
S020所述服务端获取所述用户信息,并根据所述用户信息生成与所述用户信息唯一关联的密钥参数,同时将所述密钥参数进行存储;
S030所述服务端结合所述密钥参数和所述算法重构机制将所述服务端内部存储的第一算法进行重构生成第二算法;
S040所述服务端将所述第二算法发送至所述客户端进行存储。
通过算法重构,使得不同的用户有不同的算法,算法与用户信息唯一相关,因此,安全性大大增强。
进一步的,所述步骤S030至少包括以下一步步骤:
根据所述密钥参数,确定所述第二算法的运算顺序;
根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序;
根据所述密钥参数,确定所述第二算法中的固定参数。
另一方面,本发明还提供了一种双向认证系统,包括客户端和服务端,其特征在于,所述客户端包括获取模块、第一口令生成模块、第一信息收发模块、验证模块;所述第一口令生成模块相连分别与所述获取模块、第一信息收发模块、验证模块相连,且所述验证模块与所述第一信息收发模块相连;所述服务端包括:第二信息收发模块、第二口令生成模块、认证模块,所述第二口令生成模块分别与所述第二信息收发模块、认证模块相连,且所述认证模块与所述第二信息收发模块相连,其中:
服务端认证客户端包括:
所述客户端的获取模块获取用户信息,所述第一口令生成模块根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,所述第一信息收发模块将所述第一动态认证口令组及用户信息发送给服务端的所述第二信息收发模块;
所述服务端的第二信息收发模块接收所述用户信息及第一动态认证口令组后,所述第二口令生成模块根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
所述服务端的认证模块验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端认证通过,进而所述客户端对所述服务端进行认证;
客户端认证服务端包括:
所述服务端的第二口令生成模块根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块将所述第二动态认证口令组发送给所述客户端的第一信息收发模块;
所述客户端的第一信息收发模块接收所述第二动态认证口令组后,所述第一口令生成模块根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
所述客户端的验证模块验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端认证通过。
本系统中,作为动态口令生成装置的客户端,操作简单,管理和使用方便。作为服务器的服务端也同样如此。通过客户端和服务端的双向认证,阻止了假冒网站和中间人共计,安全而方便。
进一步的,所述客户端还包括与所述第一信息收发模块、第一口令生成模块相连的随机数生成模块;其中:
所述服务端验证所述客户端包括:
所述客户端的第一口令生成模块根据所述随机数生成模块生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并通过所述第一信息收发模块将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
所述服务端的第二信息收发模块接收所述用户信息、所述挑战码及所述第一动态认证口令组后,所述第二口令生成模块根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组;
所述服务端的认证模块验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端认证通过,进而所述客户端对所述服务端进行认证。
挑战码+时间同步,双重因子,使得动态口令不怕被窥视或泄露,安全性高。
进一步的,所述客户端认证所述服务端包括:
所述服务端的认证模块根据所述第二信息收发模块接收的所述挑战码、并根据当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块将所述第二动态认证口令组发送给所述客户端的第一信息收发模块;
所述客户端的第一信息收发模块接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组;
所述客户端的验证模块验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端认证通过。
用户注册时,获取用户信息后,服务端便可根据用户信息进行算法的重构。每一个用户有一个专属于自己的算法,独特而安全。
进一步的,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。
本发明采用动态口令实现双向认证,相比于现有技术的数字证书双向认证,操作简单,管理和使用方面方便;安全性方面比软证书更安全,能够更好的防护钓鱼网站和中间人攻击。阻止了假冒网站对于动态口令安全使用的威胁,可广泛使用于金融、证券、网络游戏、电子商务、电信、国家电子政务、国防工业系统、军队等机要企事业单位的网络信息安全。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种双向认证方法实施例一流程图;
图2为本发明一种双向认证方法另一实施例流程图;
图3为本发明一种双向认证方法中算法重构方法流程图;
图4为本发明一种双向认证方法另一实施例流程图;
图5为本发明一种双向认证系统实施例框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供的一种双向认证方法,实施例一如图1所示,包括步骤:
S100所述客户端获取用户信息,根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,并将所述第一动态认证口令组及用户信息发送给服务端;
S200所述服务端接收所述用户信息及第一动态认证口令组后,根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
S300所述服务端验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则所述客户端认证通过,进入后续步骤;
S400所述服务端根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
S500所述客户端接收所述第二动态认证口令组后,根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
S600所述客户端验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则所述服务端认证通过。
本实施例基于时间同步的动态认证口令认证,具体的,比如:客户端获取到用户A的信息后,会根据用户信息找到该用户A的对应算法a,根据当前时间,带入算法a得到了动态认证口令1,假如只预设了一个时间变化值X,将这个时间变化值代入同样的算法a得到了动态认证口令2,那么动态认证口令1和动态认证口令2就组成了第一动态认证口令组。然后客户端将用户A的信息及动态认证口令1和动态认证口令2发给服务端。服务端收到后,根据用户A的信息查找到该用户对应的算法a,然后根据当前时间、预设的同样的时间变化值X、分别采用算法a获得相应的动态验证口令1和动态验证口令2;然后比较动态认证口令1与动态验证口令1是否相同,动态认证口令2和动态验证口令2是否相同。如果均相同的话,那么客户端的认证就算是通过了。
现有的认证中,一般只对客户端进行了认证,而没有对服务端来进行认证,而不法分子在截获了客户端发送的信息后,也可能冒充服务端,从而存在安全隐患。而本方案在客户端认证通过后,我们还需要对服务端进行认证,通过双向的认证提高安全性。
同样的,客户端对服务端的认证,也采用当前时间,及预存的时间变化值Y来生成口令组。这里的预存的时间变化值Y,可以是之前客户端认证的时间变化值X一样,当然也可以不一样。但要注意的是,如果不一样,那么,在客户端收到服务端的认证口令组后,也要采用当前时间及预存的时间变化值Y来获得验证口令组。
在双向认证方面,现有技术采用的是SSL证书来进行双向认证,证书的发布、管理具有很高的费用,且现有技术的很多客户端都是使用软证书,容易丢失被盗用,有一定的身份认证风险。本实施例在认证过程中,至少生成了2个或以上的认证口令,由于1个口令可能存在被偶然碰撞的风险,而采用了2个或以上的认证口令的话,偶然*偶然基本等于不可能了。因此,在安全性上,更是大大得以提高。
本实施例基于时间同步,比如动态认证口令1的生成是以当前时间作为随机因素,这种方式对双方的时间准确度要求较高,口令变化的周期一般是1分钟或者60S,口令的生成与传输过程耗时非常短,一般采取以分钟为时间单位的折中办法。
此外,由于基于时间同步的口令生成对时间要求比较高,客户端和服务端时间可能产生时间偏移,我们可采用现有的各种时间校准的方法活解决时间偏移问题的方法,对其进行校准。
较佳的,所述时间变化值,指在当前时间上延迟/或推前至少1个口令变化周期。比如,当前时间为12:10、预设的时间变化值1为在当前时间上延迟1个口令变化周期,预设的时间变化值2为在当前时间上推前2个口令变化周期,1个口令变化周期是1分钟,那么:时间变化值1为12:11;时间变化值2为12:08。
本发明方法的另一实施例,在上述实施例的基础上,所述步骤S100包括步骤:
S110所述客户端根据自身生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
所述步骤S200包括步骤:
S210所述服务端接收所述用户信息、所述挑战码及所述第一动态认证口令组后,根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组。
在服务端认证客户端的过程中,采用了基于挑战码+时间同步的方法来进行认证。客户端发起挑战后生成一个随机数作为挑战码,然后将挑战码和当前时间带入算法生成一个认证口令,将挑战码和预设的一个时间变化值代入算法生成另一认证口令。客户端在发送生成的所有认证口令给服务端时,也把用户信息和挑战码发给服务端。服务端收到后,根据用户信息找到了相应的算法,然后,同样,根据挑战码、当前时间生成一个验证口令,根据挑战码、预设的一个时间变化值生成另一验证口令。最后将认证口令和验证口令进行比对,全能匹配上的话则认证通过。再进行后续的客户端认证服务端的流程。
本实施例采用了挑战码+时间同步的方法作为认证手段,挑战是随机生成的,其意义在于下一个挑战口令更无法预测,而且防止被窥探,安全性更高。
本发明方法的另一个实施例,如图2所示,包括步骤:
S110所述客户端根据自身生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
S210所述服务端接收所述用户信息、所述挑战码及所述第一动态认证口令组后,根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组;
S300所述服务端验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则所述客户端认证通过,进入后续步骤;
S410所述服务端根据所述挑战码、当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
S510所述客户端接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组;
S600所述客户端验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则所述服务端认证通过。
双向认证均采用挑战码+时间同步的方案,操作简单、管理和使用方便,安全性更高。
较佳的,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。
本发明的另一实施例,在上述任一实施例的基础上,增加了算法重构,每一个用户都有一个算法,不同的用户算法也不一样,从而安全性大大得以增强,具体的,算法重构流程如图3所示,包括:
S010所述客户端获取所述用户信息,同时将所述用户信息发送至所述服务端;
S020所述服务端获取所述用户信息,并根据所述用户信息生成与所述用户信息唯一关联的密钥参数,同时将所述密钥参数进行存储;
S030所述服务端结合所述密钥参数和所述算法重构机制将所述服务端内部存储的第一算法进行重构生成第二算法;
S040所述服务端将所述第二算法发送至所述客户端进行存储。
上述实施例中第一算法,为预先存储在服务端中的算法,包括目前应用比较广泛的加密算法,SM3等,在本发明中,为了进一步提高口令在认证过程中的安全性能,在动态口令的生成过程中,不再使用传统的,加密算法,而是利用预先存储在服务端中的算法重构机制结合密钥参数对上述第一算法和第三算法。特别的,本发明对第一算法的具体内容不作限定,只要其是目前能够想到的,或者在可预见的未来能够想到的加密算法,都包括在本发明的内容中。
较佳的,所述步骤S030至少包括以下一步步骤:
根据所述密钥参数,确定所述第二算法的运算顺序;
根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序;
根据所述密钥参数,确定所述第二算法中的固定参数。
具体的,在本发明中,算法重构机制主要通过以下三种方式来实现:改变第一算法的运算顺序、分组数据块结构和顺序以及第一算法中包括的固定参数,且为了进一步保障重构后的算法的唯一性和不可预见性,在本发明中,算法重构机制结合随机生成模块生成的密钥参数对算法进行重构。
本发明方法的最后一个实施例,采用基于挑战型动态口令实现,动态口令装置操作简单;管理和使用方面方便;安全性方面比软证书更安全;操作简易。动态口令是根据专门的算法生成一个不可预测的随机数字组合,每个口令只能使用一次。挑战型动态令牌指本实施例使用到的动态口令发生装置。
认证过程,如图4所示,包括:
(1)服务端验证客户端合法性
a、客户端发送挑战码及挑战码对应的挑战口令1和挑战口令2到服务端;
b、服务端根据接收到的挑战码计算对应的挑战口令1和挑战口令2;并与接收到客户端发来的挑战口令1和挑战口令2做比对。
c、比对成功,客户端认证通过。
(2)客户端验证服务端合法性
d、服务端验证成功客户端后计算挑战口令3和挑战口令4。
e、服务端发送挑战口令3和挑战口令4给客户端。
f、客户端对服务端发来的挑战口令3和挑战口令4比对,比对成功服务端认证通过。
上述实施例中,因为口令是一个6位或者8位的数字,有偶然碰撞的可能。所以需要使用2个连续的口令。偶然*偶然等于基本上不可能。挑战口令1、挑战口令2是连续的2个。挑战口令3、挑战口令4是连续的2个。连续的意思是连续的2个口令变化周期,比如14:29一个口令,14:30一个口令,这2个口令是连续的。口令变化的周期是60秒,或者说1分钟。
本实施例,管理简单,操作方便,成本造价低,占用资源少,降低使用门槛,增强安全性和易用性。
基于同样的发明思想,本发明还提供了一种双向认证系统,执行上述双向认证的方法进行双向认证,本发明系统如图5所示,包括客户端10和服务端20,其特征在于,所述客户端10包括获取模块11、第一口令生成模块12、第一信息收发模块13、验证模块14;所述第一口令生成模块12相连分别与所述获取模块11、第一信息收发模块13、验证模块14相连,且所述验证模块14与所述第一信息收发模块13相连;所述服务端20包括:第二信息收发模块21、第二口令生成模块22、认证模块23,所述第二口令生成模块22分别与所述第二信息收发模块21、认证模块23相连,且所述认证模块23与所述第二信息收发模块21相连,其中:
服务端20认证客户端10包括:
所述客户端10的获取模块11获取用户信息,所述第一口令生成模块12根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,所述第一信息收发模块13将所述第一动态认证口令组及用户信息发送给服务端20的所述第二信息收发模块21;
所述服务端20的第二信息收发模块21接收所述用户信息及第一动态认证口令组后,所述第二口令生成模块22根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
所述服务端20的认证模块23验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端10认证通过,进而进入所述客户端10对所述服务端20进行认证阶段;
客户端10认证服务端20包括:
所述服务端20的第二口令生成模块22根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块21将所述第二动态认证口令组发送给所述客户端10的第一信息收发模块13;
所述客户端10的第一信息收发模块13接收所述第二动态认证口令组后,所述第一口令生成模块12根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
所述客户端10的验证模块14验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端20认证通过。
本实施例的系统,具体的,客户端10,例如动态口令牌,在用户登录后,获得了用户信息,从而得到该用户相应的算法,然后再基于时间同步的方法,利用当前时间和预设的变化时间值,获得相应的动态认证口令组,再将用户信息和这个动态认证口令组发给服务器(即服务端),服务器收到后根据用户信息,查找到该用户对应的算法,然后同样,采取当前时间,同样的预设的时间变化值,通过该算法获得相应的动态验证口令组,然后将接收到的动态认证口令组中的口令和生成的动态验证口令组中的口令来比对,从而判断客户端10是否通过认证。只有在客户端10认证通过后,才会进行后续的对服务端20进行认证。本实施例的双向认证系统管理简单,操作方便,成本造价低,占用资源少,降低使用门槛,增强安全性和易用性。
本发明系统的另一实施例,在上述实施例的基础上,所述客户端10还包括与所述第一信息收发模块13、第一口令生成模块12相连的随机数生成模块15;其中:
所述服务端20验证所述客户端10包括:
所述客户端10的第一口令生成模块12根据所述随机数生成模块15生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并通过所述第一信息收发模块13将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端20;
所述服务端20的第二信息收发模块21接收所述用户信息、所述挑战码及所述第一动态认证口令组后,所述第二口令生成模块22根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组;
所述服务端20的认证模块23验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端10认证通过,进而所述客户端10对所述服务端20进行认证。
较佳的,在上述实施例的基础上,所述客户端10认证所述服务端20包括:
所述服务端20的认证模块23根据所述第二信息收发模块21接收的所述挑战码、并根据当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块21将所述第二动态认证口令组发送给所述客户端10的第一信息收发模块13;
所述客户端10的第一信息收发模块13接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组;
所述客户端10的验证模块14验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端20认证通过。
通过采用挑战码+时间同步的认证方案,安全性大大增强。
较佳的,上述任一实施例中,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。
较佳的,本发明系统还可进行算法的重构,根据每个不同的用户,重构出不同的算法,使得一个用户一个算法,大大增强了数据的安全性能。具体的,所述服务端还包括密钥生成模块、存储模块及算法重构模块,所述密钥生成模块分别与所述第二信息收发模块、存储模块及算法重构模块相连,所述算法重构模块还与所述第二信息收发模块相连,所述存储模块与所述第二口令生成模块相连,所述客户端也包括与所述第一信息收发模块及第一口令生成模块相连的存储模块;其中:
所述客户端的获取模块获取到用户信息后,通过所述第一信息收发模块将所述用户信息发送至所述服务端的第二信息收发模块;
所述服务端的第二信息收发模块接收到所述用户信息后,通过所述密钥生成模块根据所述用户信息生成与所述用户信息唯一关联的密钥参数;再通过所述存储模块将所述密钥参数进行存储;
所述服务端的算法重构模块结合所述密钥参数将所述存储模块预存的第一算法进行重构生成第二算法,并通过所述存储模块将所述第二算法进行存储;
所述服务端的第二信息收发模块将所述第二算法发送至所述客户端的第一信息收发模块,所述客户端的存储模块将所述第一信息收发模块接收的所述第二算法进行存储。
较佳的,算法重构模块根据所述密钥参数进行算法重构至少包括以下一个步骤:
所述算法重构模块根据所述密钥参数,确定所述第二算法的运算顺序;
所述算法重构模块根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序;
所述算法重构模块根据所述密钥参数,确定所述第二算法中的固定参数。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种双向认证方法,其特征在于,包括步骤:
S100所述客户端获取用户信息,根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,并将所述第一动态认证口令组及用户信息发送给服务端;
S200所述服务端接收所述用户信息及第一动态认证口令组后,根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
S300所述服务端验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则所述客户端认证通过,进入后续步骤;
S400所述服务端根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
S500所述客户端接收所述第二动态认证口令组后,根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
S600所述客户端验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则所述服务端认证通过。
2.根据权利要求1所述的一种双向认证方法,其特征在于,所述步骤S100包括步骤:
S110所述客户端根据自身生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
所述步骤S200包括步骤:
S210所述服务端接收所述用户信息、所述挑战码及所述第一动态认证口令组后,根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组。
3.根据权利要求2所述的一种双向认证方法,其特征在于,
所述步骤S400包括步骤:
S410所述服务端根据所述挑战码、当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
所述步骤S500包括步骤:
S510所述客户端接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组。
4.根据权利要求1-3任一项所述的一种双向认证方法,其特征在于,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。
5.根据权利要求1-3任一项所述的一种双向认证方法,其特征在于,在完成双向认证之前,还包括:
S010所述客户端获取所述用户信息,同时将所述用户信息发送至所述服务端;
S020所述服务端获取所述用户信息,并根据所述用户信息生成与所述用户信息唯一关联的密钥参数,同时将所述密钥参数进行存储;
S030所述服务端结合所述密钥参数和所述算法重构机制将所述服务端内部存储的第一算法进行重构生成第二算法;
S040所述服务端将所述第二算法发送至所述客户端进行存储。
6.根据权利要求5所述的一种双向认证方法,其特征在于,所述步骤S030至少包括以下一步步骤:
根据所述密钥参数,确定所述第二算法的运算顺序;
根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序;
根据所述密钥参数,确定所述第二算法中的固定参数。
7.一种双向认证系统,包括客户端和服务端,其特征在于,所述客户端包括获取模块、第一口令生成模块、第一信息收发模块、验证模块;所述第一口令生成模块相连分别与所述获取模块、第一信息收发模块、验证模块相连,且所述验证模块与所述第一信息收发模块相连;所述服务端包括:第二信息收发模块、第二口令生成模块、认证模块,所述第二口令生成模块分别与所述第二信息收发模块、认证模块相连,且所述认证模块与所述第二信息收发模块相连,其中:
所述服务端认证所述客户端包括:
所述客户端的获取模块获取用户信息,所述第一口令生成模块根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,所述第一信息收发模块将所述第一动态认证口令组及用户信息发送给服务端的所述第二信息收发模块;
所述服务端的第二信息收发模块接收所述用户信息及第一动态认证口令组后,所述第二口令生成模块根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
所述服务端的认证模块验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端认证通过,进而所述客户端对所述服务端进行认证;
所述客户端认证所述服务端包括:
所述服务端的第二口令生成模块根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块将所述第二动态认证口令组发送给所述客户端的第一信息收发模块;
所述客户端的第一信息收发模块接收所述第二动态认证口令组后,所述第一口令生成模块根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
所述客户端的验证模块验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端认证通过。
8.根据权利要求7所述的一种双向认证系统,其特征在于,所述客户端还包括与所述第一信息收发模块、第一口令生成模块相连的随机数生成模块;其中:
所述服务端验证所述客户端包括:
所述客户端的第一口令生成模块根据所述随机数生成模块生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并通过所述第一信息收发模块将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
所述服务端的第二信息收发模块接收所述用户信息、所述挑战码及所述第一动态认证口令组后,所述第二口令生成模块根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组;
所述服务端的认证模块验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端认证通过,进而所述客户端对所述服务端进行认证。
9.根据权利要求8所述的一种双向认证系统,其特征在于,所述客户端认证所述服务端包括:
所述服务端的认证模块根据所述第二信息收发模块接收的所述挑战码、并根据当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块将所述第二动态认证口令组发送给所述客户端的第一信息收发模块;
所述客户端的第一信息收发模块接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组;
所述客户端的验证模块验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端认证通过。
10.根据权利要求1-9任一项所述的一种双向认证系统,其特征在于,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611106444.9A CN106506529A (zh) | 2016-12-06 | 2016-12-06 | 一种双向认证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611106444.9A CN106506529A (zh) | 2016-12-06 | 2016-12-06 | 一种双向认证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106506529A true CN106506529A (zh) | 2017-03-15 |
Family
ID=58329479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611106444.9A Pending CN106506529A (zh) | 2016-12-06 | 2016-12-06 | 一种双向认证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106506529A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395654A (zh) * | 2017-09-14 | 2017-11-24 | 浪潮软件股份有限公司 | 一种安全认证方法、客户端、服务端及系统 |
CN108040030A (zh) * | 2017-10-24 | 2018-05-15 | 武汉米风通信技术有限公司 | 定位报文双向认证方法 |
CN111130781A (zh) * | 2020-03-17 | 2020-05-08 | 中科天御(苏州)科技有限公司 | 一种车联网通信控制主动安全防御方法及装置 |
CN112087438A (zh) * | 2020-08-28 | 2020-12-15 | 上海军睿信息技术有限公司 | 一种基于otp算法的防重放攻击的鉴别方法 |
CN112242993A (zh) * | 2020-09-02 | 2021-01-19 | 海量安全技术有限公司 | 双向认证方法及系统 |
CN114070568A (zh) * | 2021-11-04 | 2022-02-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7246235B2 (en) * | 2001-06-28 | 2007-07-17 | Intel Corporation | Time varying presentation of items based on a key hash |
CN101777983A (zh) * | 2010-01-13 | 2010-07-14 | 北京飞天诚信科技有限公司 | 交易签名方法、认证服务器及系统 |
CN102377569A (zh) * | 2011-10-18 | 2012-03-14 | 上海众人网络安全技术有限公司 | 一种动态令牌解锁方法及系统 |
CN104023030A (zh) * | 2014-06-20 | 2014-09-03 | 上海动联信息技术股份有限公司 | 一种令牌口令的同步方法 |
CN104243493A (zh) * | 2014-10-11 | 2014-12-24 | 上海众人科技有限公司 | 一种网络身份认证方法及系统 |
CN104378204A (zh) * | 2014-04-21 | 2015-02-25 | 无锡北斗星通信息科技有限公司 | 基于组合模式的动态口令生成方法 |
CN104410498A (zh) * | 2014-12-03 | 2015-03-11 | 上海众人科技有限公司 | 一种动态口令认证方法及其系统 |
CN105069619A (zh) * | 2015-07-17 | 2015-11-18 | 上海众人网络安全技术有限公司 | 一种在线快捷支付系统及其支付方法 |
-
2016
- 2016-12-06 CN CN201611106444.9A patent/CN106506529A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7246235B2 (en) * | 2001-06-28 | 2007-07-17 | Intel Corporation | Time varying presentation of items based on a key hash |
CN101777983A (zh) * | 2010-01-13 | 2010-07-14 | 北京飞天诚信科技有限公司 | 交易签名方法、认证服务器及系统 |
CN102377569A (zh) * | 2011-10-18 | 2012-03-14 | 上海众人网络安全技术有限公司 | 一种动态令牌解锁方法及系统 |
CN104378204A (zh) * | 2014-04-21 | 2015-02-25 | 无锡北斗星通信息科技有限公司 | 基于组合模式的动态口令生成方法 |
CN104023030A (zh) * | 2014-06-20 | 2014-09-03 | 上海动联信息技术股份有限公司 | 一种令牌口令的同步方法 |
CN104243493A (zh) * | 2014-10-11 | 2014-12-24 | 上海众人科技有限公司 | 一种网络身份认证方法及系统 |
CN104410498A (zh) * | 2014-12-03 | 2015-03-11 | 上海众人科技有限公司 | 一种动态口令认证方法及其系统 |
CN105069619A (zh) * | 2015-07-17 | 2015-11-18 | 上海众人网络安全技术有限公司 | 一种在线快捷支付系统及其支付方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395654A (zh) * | 2017-09-14 | 2017-11-24 | 浪潮软件股份有限公司 | 一种安全认证方法、客户端、服务端及系统 |
CN108040030A (zh) * | 2017-10-24 | 2018-05-15 | 武汉米风通信技术有限公司 | 定位报文双向认证方法 |
CN111130781A (zh) * | 2020-03-17 | 2020-05-08 | 中科天御(苏州)科技有限公司 | 一种车联网通信控制主动安全防御方法及装置 |
CN112087438A (zh) * | 2020-08-28 | 2020-12-15 | 上海军睿信息技术有限公司 | 一种基于otp算法的防重放攻击的鉴别方法 |
CN112242993A (zh) * | 2020-09-02 | 2021-01-19 | 海量安全技术有限公司 | 双向认证方法及系统 |
CN114070568A (zh) * | 2021-11-04 | 2022-02-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106506529A (zh) | 一种双向认证方法及系统 | |
CN105516195B (zh) | 一种基于应用平台登录的安全认证系统及其认证方法 | |
CN105553648B (zh) | 量子密钥分发、隐私放大及数据传输方法、装置及系统 | |
KR101351012B1 (ko) | 다자간 양자 통신에서의 사용자 인증 방법 및 장치 | |
CN102026195B (zh) | 基于一次性口令的移动终端身份认证方法和系统 | |
CN101697540B (zh) | 一种p2p服务请求用户身份认证方法 | |
CN108199845B (zh) | 一种基于puf的轻量级认证设备及认证方法 | |
CN103338201B (zh) | 一种多服务器环境下注册中心参与的远程身份认证方法 | |
Azrour et al. | New efficient and secured authentication protocol for remote healthcare systems in cloud‐IoT | |
CN112989426B (zh) | 授权认证方法及装置、资源访问令牌的获取方法 | |
Ren et al. | A novel dynamic user authentication scheme | |
CN105164689A (zh) | 用户认证 | |
CN103338202B (zh) | 一种基于智能卡的远程用户密码双重验证方法 | |
CN105187382B (zh) | 防止撞库攻击的多因子身份认证方法 | |
Mirsaraei et al. | A secure three-factor authentication scheme for IoT environments | |
CN104601602B (zh) | 一种终端设备网络安全增强接入与认证方法 | |
CN103347018A (zh) | 一种基于智能卡的多服务环境下远程身份认证方法 | |
CN110378152B (zh) | 一种基于pkica认证及区块链技术的合同签订管理系统及方法 | |
CN103024706A (zh) | 基于手机短信的多因子双向动态身份认证装置和方法 | |
CN103595696B (zh) | 一种文件所有权证明的方法及装置 | |
CN104468099A (zh) | 基于cpk的动态口令生成和验证方法及装置 | |
CN106789032A (zh) | 服务器与移动设备间秘密共享的单一口令三方认证方法 | |
CN106059764B (zh) | 基于终止密钥导出函数的口令及指纹三方认证方法 | |
CN111294796A (zh) | 一种基于零知识证明的智能手机登录管理系统 | |
CN106789069A (zh) | 一种零知识身份认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |
|
RJ01 | Rejection of invention patent application after publication |