CN115150176B - 防重放攻击方法、装置、电子设备及存储介质 - Google Patents
防重放攻击方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115150176B CN115150176B CN202210796309.0A CN202210796309A CN115150176B CN 115150176 B CN115150176 B CN 115150176B CN 202210796309 A CN202210796309 A CN 202210796309A CN 115150176 B CN115150176 B CN 115150176B
- Authority
- CN
- China
- Prior art keywords
- authentication
- credential
- time
- request
- authentication request
- 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.)
- Active
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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开关于一种防重放攻击方法、装置、电子设备及存储介质。其中,防重放攻击方法包括:接收客户端发送的第一认证请求,第一认证请求携带有认证凭据;在第一认证请求中包括前置凭证的情况下,获取认证凭据的第一认证时刻,前置凭证由服务端基于认证凭据的历史认证成功时刻生成并发送至客户端,第一认证时刻为存储的认证凭据最近一次认证成功时刻;在历史认证成功时刻与第一认证时刻不相同的情况下,拦截第一认证请求。采用本公开实施例提供的方法不仅可以有效减少缓存资源的消耗,降低防重放攻击的成本,还可以减少防重放攻击耗时,提高防重放攻击效率。
Description
技术领域
本公开涉及网络通信技术领域,尤其涉及一种防重放攻击方法、装置、电子设备及存储介质。
背景技术
相关技术中,重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,重放攻击主要可以用在身份认证过程,破坏认证的正确性。现阶段,通常通过在认证请求中增加Nonce(Number used once)的方式防止重放攻击,其中,Nonce是一个只被使用一次的任意或非重复的随机数值。但是,增加Nonce的方式需要额外保存使用过的随机数值,若记录的时间段较长,则需要耗费大量缓存资源缓存Nonce,导致Nonce的保存和查询开销较大,从而导致防重放攻击的成本较高。
发明内容
本公开提供一种防重放攻击方法、装置、电子设备及存储介质,以至少解决相关技术中需要耗费大量缓存资源缓存Nonce,Nonce的保存和查询开销较大,防重放攻击的成本较高的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种防重放攻击方法,应用于服务端,所述方法包括:
接收客户端发送的第一认证请求;其中,所述第一认证请求携带有认证凭据;
在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端;所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;
在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述方法还包括:
在所述第一认证请求中不包括前置凭证的情况下,获取所述第一认证时刻;
加密所述第一认证时刻,得到所述前置凭证;
将所述前置凭证发送至所述客户端;
接收所述客户端发送的第二认证请求;其中,所述第二认证请求携带有所述前置凭证和所述认证凭据;
解密所述前置凭证得到第二认证时刻;
在所述第二认证时刻与所述第一认证时刻不同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述方法还包括:
在所述历史认证成功时刻与所述第一认证时刻相同的情况下,校验所述认证凭据;
在所述认证凭据校验通过的情况下,确定所述第一认证请求认证成功;
在所述认证凭据校验不通过的情况下,确定所述第一认证请求认证失败。
在一种可能的实施方式中,所述在所述认证凭据校验通过的情况下,确定所述第一认证请求认证成功之后,还包括:
基于所述第一认证请求认证成功的时刻更新所述认证凭据的最近一次认证成功时刻。
在一种可能的实施方式中,所述认证凭据包括账号信息和账号密码;
所述校验所述认证凭据,包括:
获取所述账号信息对应的第一密码,以及从所述认证凭据中获取所述账号密码;
确定所述第一密码是否与所述认证凭据中的所述账号密码相同;
在所述第一密码与所述认证凭据中的所述账号密码相同的情况下,确定所述认证凭据校验通过;
在所述第一密码与所述认证凭据中的所述账号密码不相同的情况下,确定所述认证凭据校验不通过。
在一种可能的实施方式中,所述方法还包括如下中的一项:
生成第一提示信息,将所述第一提示信息发送至所述客户端;所述第一提示信息用于指示所述第一认证请求认证成功;
或,
生成第二提示信息,将所述第二提示信息发送至所述客户端;所述第二提示信息用于指示所述第一认证请求认证失败。
根据本公开实施例的第二方面,提供一种防重放攻击方法,应用于客户端,所述方法包括:
接收输入指令;其中,所述输入指令携带有认证凭据;
基于所述认证凭据生成第一认证请求;
将所述第一认证请求发送至服务端,使所述服务端在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端,所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;以及在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述方法还包括:
接收所述服务端发送的前置凭证;
基于所述前置凭证和所述认证凭据生成第二认证请求;
将所述第二认证请求发送至所述服务端,使所述服务端解密所述前置凭证得到第二认证时刻;以及在所述第二认证时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
根据本公开实施例的第三方面,提供一种防重放攻击装置,应用于服务端,所述装置包括:
第一接收模块,被配置为接收客户端发送的第一认证请求;其中,所述第一认证请求携带有认证凭据;
第一获取模块,被配置为在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端;所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;
第一拦截模块,被配置为在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述装置还包括:
第二获取模块,被配置为在所述第一认证请求中不包括前置凭证的情况下,获取所述第一认证时刻;
加密模块,被配置为加密所述第一认证时刻,得到所述前置凭证;
发送模块,被配置为将所述前置凭证发送至所述客户端;
第二接收模块,被配置为接收所述客户端发送的第二认证请求;其中,所述第二认证请求携带有所述前置凭证和所述认证凭据;
解密模块,被配置为解密所述前置凭证得到第二认证时刻;
第二拦截模块,被配置为在所述第二认证时刻与所述第一认证时刻不同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述装置还包括:
校验模块,被配置为在所述历史认证成功时刻与所述第一认证时刻相同的情况下,校验所述认证凭据;
第一确定模块,被配置为在所述认证凭据校验通过的情况下,确定所述第一认证请求认证成功;
第二确定模块,被配置为在所述认证凭据校验不通过的情况下,确定所述第一认证请求认证失败。
在一种可能的实施方式中,所述装置还包括:
更新模块,被配置为基于所述第一认证请求认证成功的时刻更新所述认证凭据的最近一次认证成功时刻。
在一种可能的实施方式中,所述认证凭据包括账号信息和账号密码;
所述校验模块,包括:
获取单元,被配置为获取所述账号信息对应的第一密码,以及从所述认证凭据中获取所述账号密码;
第一确定单元,被配置为确定所述第一密码是否与所述认证凭据中的所述账号密码相同;
第二确定单元,被配置为在所述第一密码与所述认证凭据中的所述账号密码相同的情况下,确定所述认证凭据校验通过;
第三确定单元,被配置为在所述第一密码与所述认证凭据中的所述账号密码不相同的情况下,确定所述认证凭据校验不通过。
在一种可能的实施方式中,所述装置还包括信息输出模块,被配置为:
生成第一提示信息,将所述第一提示信息发送至所述客户端;所述第一提示信息用于指示所述第一认证请求认证成功;
或,
生成第二提示信息,将所述第二提示信息发送至所述客户端;所述第二提示信息用于指示所述第一认证请求认证失败。
根据本公开实施例的第四方面,提供一种防重放攻击装置,应用于客户端,所述装置包括:
指令接收模块,被配置为接收输入指令;其中,所述输入指令携带有认证凭据;
第一请求生成模块,被配置为基于所述认证凭据生成第一认证请求;
第一请求发送模块,被配置为将所述第一认证请求发送至服务端,使所述服务端在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端,所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;以及在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述装置还包括:
凭证接收模块,被配置为接收所述服务端发送的前置凭证;
第二请求生成模块,被配置为基于所述前置凭证和所述认证凭据生成第二认证请求;
第二请求发送模块,被配置为将所述第二认证请求发送至所述服务端,使所述服务端解密所述前置凭证得到第二认证时刻;以及在所述第二认证时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
根据本公开实施例的第五方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面或第二方面中任一项所述的防重放攻击方法。
根据本公开实施例的第六方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面或第二方面中任一项所述的防重放攻击方法。
根据本公开实施例的第七方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面或第二方面中任一项所述的防重放攻击方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
在本公开的实施例中,通过接收客户端发送的携带有认证凭据的第一认证请求;在认证请求中包括基于认证凭据的历史认证成功时刻生成的前置凭证的情况下,获取存储的认证凭据最近一次认证成功的第一认证时刻,并可以在历史认证成功时刻与第一认证时刻不相同的情况下,拦截第一认证请求。这样,服务端可以在第一认证请求中的历史认证成功时刻与系统存储的第一认证时刻不同的情况下,拦截第一认证请求。也就是说,本公开实施例提供的防重放攻击方法,无需缓存Nonce,无需进行Nonce的保存和查询,即可实现认证请求的拦截,实现防重放攻击。如此,一方面,可以有效减少缓存资源的消耗,降低防重放攻击的成本;另一方面,无需进行Nonce的保存和查询过程,还可以有效减少防重放攻击耗时,提高防重放攻击效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是相关技术中的一种基于Nonce的防重放攻击方法的交互示意图。
图2是相关技术中的一种基于timestamp的防重放攻击方法的交互示意图。
图3是本公开实施例提供的一种防重放攻击方法的交互示意图。
图4是本公开实施例提供的一种应用于服务端的防重放攻击方法的流程示意图。
图5是本公开实施例提供的一种应用于客户端的防重放攻击方法的流程示意图。
图6是本公开实施例提供的一种应用于服务端的防重放攻击装置的框图。
图7是本公开实施例提供的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
相关技术中,重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方,重放攻击在任何网络通信过程中都可能发生,且其主要可以用在身份认证过程中,破坏认证的正确性。重放攻击可以由认证过程的发起者,或者拦截并重发认证凭据的攻击者进行。在重放攻击中,攻击者可以利用网络监听或者其他方式盗取认证凭据,再把它重新发给认证服务器。很多时候,网络上传输的数据是加密过的,此时窃听者无法得到数据的准确意义。但如果窃听者知道这些数据的作用,就可以在不知道数据内容的情况下通过再次发送这些数据达到愚弄接收端的目的,并可能可以获得该数据的一些相关信息。例如,有的系统会将鉴别信息进行简单加密后进行传输,这时攻击者虽然无法窃听密码,但他们却可以首先截取加密后的口令然后将其重放,利用这种方式进行有效的重放攻击。
相关技术中,通常通过在认证请求中增加Nonce的方式防重放攻击。具体的,参照图1,图1示出了相关技术中的一种基于Nonce的防重放攻击方法的交互示意图,如图1所示,客户端每次发起认证请求之前,可以先在本地生成随机数值Nonce,向服务端发送携带该Nonce和认证凭据的认证请求。服务端接收到认证请求之后,可以在认证请求中获取该Nonce,并校验缓存中是否已经存在该Nonce。如果缓存中已经存在该Nonce,则说明该认证请求属于重放攻击请求,可以直接拦截该认证请求,并可以向客户端返回认证失败的认证结果;如果缓存中不存在该Nonce,则可以将该Nonce存入缓存中(相当于失效该Nonce),然后,正常校验认证请求中的认证凭据,若认证凭据校验通过,则可以向客户端返回认证成功的认证结果,反之,向客户端返回认证失败的认证结果。
这种基于Nonce防重放攻击方法需要额外保存使用过的Nonce,当认证请求量较大时,需要耗费大量缓存资源缓存Nonce,这不仅会导致防重放攻击的成本较高,还会导致Nonce的保存和查询开销较大,耗时较长,防重放攻击效率较低。
基于此,相关技术中,还提出了一种基于ts(timestamp,时间戳)的防重放攻击方法。具体的,参照图2,图2示出了相关技术中的一种基于timestamp的防重放攻击方法的交互示意图,如图2所示,客户端每次发起认证请求之前,可以先获取当前时间戳ts,向服务端发送携带该ts和认证凭据的认证请求。服务端接收到认证请求之后,可以在认证请求中获取该ts,并校验ts与本机时间戳的间隔时长是否超过阈值。如果ts与本机时间戳的间隔时长超过阈值,则说明该认证请求属于重放攻击请求,可以直接拦截该认证请求,并可以向客户端返回认证失败的认证结果;如果ts与本机时间戳的间隔时长未超过阈值,则可以正常校验认证请求中的认证凭据,若认证凭据校验通过,则可以向客户端返回认证成功的认证结果,反之,向客户端返回认证失败的认证结果。
这种基于ts的防重放攻击方法虽然不需要耗费缓存资源缓存Nonce,但是需要认证双方实现准确的时间同步,同步越好,受攻击的可能性就越小。但当认证系统较庞大、跨越的区域较广时,要做到准确的时间同步较为困难。故而,该方法无法拦截时间阈值范围内的即时重放攻击,存在漏洞。基于此,相关技术中还提供了一种基于Nonce和ts的防重放攻击方法,这种方法在服务端需要经过Nonce和ts两重校验,只需要存储与认证请求中携带的ts的间隔时长在阈值范围内的Nonce,这可以降低缓存资源的消耗,且可以拦截即时重放攻击。这种基于Nonce和ts的防重放攻击方法虽然综合两种方案的优势,但是,也同时引入了两种方案的成本。
基于上述问题,本公开实施例提供了一种防重放攻击方法、装置、电子设备及存储介质,无需缓存Nonce,也无需进行Nonce的保存和查询,即可实现认证请求的拦截,实现防重放攻击。如此,不仅可以有效减少缓存资源的消耗,降低防重放攻击的成本;还可以有效减少防重放攻击耗时,提高防重放攻击效率。
下面结合附图对本公开实施例提供的防重放攻击方法、装置、电子设备及存储介质进行详细说明。
图3是本公开实施例提供的一种防重放攻击方法的交互示意图,如图3所示,客户端可以接收输入指令,基于输入指令中的认证凭据生成第一认证请求,并将第一认证请求发送至服务端;服务端可以在第一认证请求中包括前置凭证的情况下,获取第一认证凭据的第一认证时刻;在历史认证成功时刻与第一认证时刻不相同的情况下,服务端可以拦截第一认证请求,反之,服务端可以校验认证凭据;服务端还可以在第一认证请求中不包括前置凭证的情况下,获取第一认证时刻,加密第一认证时刻得到前置凭证,并将前置凭证发送至客户端;客户端可以基于前置凭证和认证凭据生成第二认证请求,将第二认证请求发送至服务端;服务端可以解密第二认证请求中的前置凭证,得到第二认证时刻,确定第二认证时刻与第一认证时刻是否相同;服务端可以在第二认证时刻与第一认证时刻不相同的情况下,拦截第二认证请求,反之,校验认证凭据;服务端可以在认证凭据校验通过的情况下,向客户端返回认证成功的认证结果;服务端可以在认证凭据校验不通过的情况下,向客户端返回认证失败的认证结果。
图4是本公开实施例提供的一种应用于服务端的防重放攻击方法的流程示意图。如图4所示,应用于服务端的防重放攻击方法可以包括以下步骤:
在步骤S401中,接收客户端发送的第一认证请求。
其中,第一认证请求可以携带有认证凭据。
在本公开实施例中,客户端可以向服务端发送携带有认证凭据的认证请求,即第一认证请求。这样,服务端可以接收到客户端发送的第一认证请求。可以理解的,认证凭据可以是用户输入的,且认证凭据具体可以包括账号、密码等信息。
在步骤S402中,在第一认证请求中包括前置凭证的情况下,获取认证凭据的第一认证时刻。
其中,前置凭证可以由服务端基于认证凭据的历史认证成功时刻生成并发送至客户端。第一认证时刻可以为存储的认证凭据最近一次认证成功的时刻,该时刻实际上可以是时间戳。
在本公开实施例中,服务端在接收到客户端发送的第一认证请求之后,可以确定第一认证请求中是否包括前置凭证。如果第一认证请求中包括前置凭证,则可以从第一认证请求获取该前置凭证。可以理解的,第一认证请求中的前置凭证可能是服务端实时发送至客户端的,此时,前置凭证则是基于认证凭据最近一次认证成功时刻生成的;或者,第一认证请求中的前置凭证也可能是服务端之前发送至客户端的,此时,前置凭证则是基于认证凭据除最近一次认证成功时刻之外的历史认证成功时刻生成的。示例性的,若第一认证请求是攻击者拦截并重新向服务端发送的,则第一认证请求中的前置请求通常是基于认证凭据除最近一次认证成功时刻之外的历史认证成功时刻生成的,而非最近一次认证成功时刻。以认证凭据的历史认证成功时刻分别为10:20、11:00为例,则认证凭据最近一次认证成功时刻为11:00,假设第一认证请求是重放攻击请求,即该请求通常是攻击者拦截的客户端上一次向服务端发送过的认证请求,该认证请求的前置凭证可能是基于历史认证成功时刻10:20生成的;反之,第一认证请求的前置凭证则是基于最近一次认证成功时刻11:00生成的。
在第一认证请求中包括前置凭证的情况下,可以获取第一认证请求携带的认证凭据的最近一次认证成功的历史时刻,即第一认证时刻。示例性的,服务端可以在系统中存储认证凭据的最近一次认证成功的时刻,即认证凭据的最近一次认证成功时刻,以为防重放攻击方法提供数据基础。
在步骤S403中,在历史认证成功时刻与第一认证时刻不同的情况下,拦截第一认证请求。
在本公开的实施例中,服务端在获取到认证凭据的第一认证时刻之后,可以将第一认证请求的前置凭证中的历史认证成功时刻与第一认证时刻进行比对,确定前述历史认证成功时刻与第一认证时刻是否相同,以确定是否拦截第一认证请求。可以理解的,历史认证成功时刻可以通过解析前置凭证得到,或者,若前置凭证是加密过的,则可以解密前置凭证得到该历史认证成功时刻。
由于客户端向服务端发起认证请求时,服务端都会实时基于认证凭据的最近一次认证成功时刻生成前置凭据发送至客户端,以使客户端可以基于该前置凭据生成第一认证请求向服务端进行认证。故而,若第一认证请求的前置凭证中的历史认证成功时刻与第一认证时刻相同,则可以认为第一认证请求中的前置凭证是服务端实时下发的,该第一认证请求为客户端发起的正常的认证请求而非重放请求;反之,若第一认证请求的前置凭证中的历史认证成功时刻与第一认证时刻不相同,则可以认为第一认证请求中的前置凭证不是服务端实时下发的,可能是服务端之前下发过的,该第一认证请求可能为攻击者发起的重放请求。基于此,服务端在确定历史认证成功时刻与第一认证时刻是否相同之后,可以在历史认证成功时刻与第一认证时刻不相同的情况下,确认第一认证请求可能为重放请求,拦截第一认证请求。
在本公开的实施例中,通过接收客户端发送的携带有认证凭据的第一认证请求;在认证请求中包括基于认证凭据的历史认证成功时刻生成的前置凭证的情况下,获取存储的认证凭据最近一次认证成功的第一认证时刻,并可以在历史认证成功时刻与第一认证时刻不同的情况下,拦截第一认证请求。这样,服务端可以在第一认证请求中的历史认证成功时刻与系统存储的第一认证时刻不同的情况下,拦截第一认证请求。也就是说,本公开实施例提供的防重放攻击方法,无需缓存Nonce,无需进行Nonce的保存和查询,即可实现认证请求的拦截,实现防重放攻击。如此,一方面,可以有效减少缓存资源的消耗,降低防重放攻击的成本;另一方面,无需进行Nonce的保存和查询过程,还可以有效减少防重放攻击耗时,提高防重放攻击效率。而且,本公开实施例提供的防重放攻击方法中前置凭证均由服务端下发,由服务端校验,无需在客户端和服务端端各服务实例之间做时间同步,还可以避免基于ts的防重放攻击方案中由于时间阈值导致的即时重放攻击漏洞。
在一种可能的实施方式中,服务端还可以在第一认证请求中不包括前置凭证情况下,执行如下处理:
在第一认证请求中不包括前置凭证的情况下,获取第一认证时刻;
加密第一认证时刻,得到前置凭证;
将前置凭证发送至客户端;
接收客户端发送的第二认证请求;其中,第二认证请求携带有前置凭证和认证凭据;
解密前置凭证得到第二认证时刻;
在第二认证时刻与第一认证时刻不同的情况下,拦截第一认证请求。
在本公开的实施例中,如果第一认证请求中不存在前置凭证,服务端则可以获取第一认证时刻,即可以在系统中获取存储的认证凭据的最近一次认证成功时刻作为第一认证时刻。然后,可以加密该第一认证时刻,得到前置凭证,再将该前置凭证发送至客户端。这样,客户端可以接收到服务端发送的前述前置凭证,基于该前置凭证和认证凭据生成一个新的认证请求,即第二认证请求,并可以将第二认证请求发送至服务端。服务端在接收到客户端发送的第二认证请求之后,可以在第二认证请求中获取前置请求,并解密该前置请求得到前置请求中携带的认证凭据的认证成功时刻,即第二认证成功时刻。之后,服务端可以将第二认证时刻与第一认证时刻进行比对,确定第二认证时刻与第一认证时刻是否相同。在第二认证时刻与第一认证时刻不同的情况下,可以认为第二认证请求可能是重放请求,则拦截该第二认证请求。反之,如果第二认证时刻与第一认证时刻相同,可以认为该请求为正常认证请求,可以正常进行认证凭据的认证过程。这样,前置凭证均由服务端进行生成、下发、校验,无需在客户端和服务端之间做时间同步,如此,可以避免由于时间差导致的即时重放攻击漏洞,从而可以进一步提高防重放攻击的效率和准确性。
在进一步可能的实施方式中,服务端还可以执行如下处理:
在历史认证成功时刻与第一认证时刻相同的情况下,校验认证凭据;
在认证凭据校验通过的情况下,确定第一认证请求认证成功;
在认证凭据校验不通过的情况下,确定第一认证请求认证失败。
在本公开的实施例中,在历史认证成功时刻与第一认证时刻相同的情况下,服务端可以认为该第一认证请求为正常的认证请求而非重放请求。此时,服务端可以对第一认证请求中的认证凭据进行校验,例如,可以校验认证凭据中的账号和密码是否正确。如果认证凭据校验通过,服务端则可以确定第一认证请求认证成功;反之,如果认证凭据校验失败,服务端则可以确定第一认证请求认证失败。这样,仅在历史认证成功时刻与第一认证时刻相同,且第一认证请求中的认证凭据校验通过的情况下,才确定第一认证请求中的认证成功,如此,避免由于认证凭据错误导致认证失败的情况,从而可以提高防重放攻击的效率和准确性。
在一些可能的实施方式中,在认证凭据校验通过的情况下,确定第一认证请求认证成功之后,还可以执行如下处理:
基于第一认证请求认证成功的时刻更新认证凭据的最近一次认证成功时刻。
在本公开的实施例中,服务端在认证凭据校验通过的情况下,确定第一认证请求认证成功之后,还可以更新系统中存储的该认证凭据的最近一次认证成功时刻。示例性的,可以获取第一认证请求本次认证成功的时刻,用该第一认证请求本次认证成功的时刻更新系统中已经存储的第一认证时刻,例如,可以删除第一认证时刻并将第一认证请求本次认证成功的时刻确定为认证凭据最近一次认证成功时刻。这样,最近一次认证成功时刻的更新,一方面,可以使得之前下发的前置凭证失效,保证防重放攻击方法的准确性;另一方面,认证凭据的最近一次认证成功时刻的更新还可以为后续前置凭据的生成提供更准确的数据基础,从而可以进一步提高防重放攻击方法的准确率,提高防重放攻击方法的效率。
在一些可能的实施方式中,认证凭据可以包括账号信息和账号密码,相应的,此时,上述校验认证凭据的具体实现方式可以如下:
获取账号信息对应的第一密码,以及从认证凭据中获取账号密码;
确定第一密码是否与认证凭据中的账号密码相同;
在第一密码与认证凭据中的账号密码相同的情况下,确定认证凭据校验通过;
在第一密码与认证凭据中的账号密码不相同的情况下,确定认证凭据校验不通过。
在本公开的实施例中,第一认证请求携带的认证凭据可以包括要认证的账号信息和账号密码,此时,在校验认证凭据时,可以先获取预先存储的前述账号信息对应的密码,即第一密码。示例性的,可以预先设置一个用于存储认证凭据的集合,用于预先存储包括前述账号信息在内的至少一个账号信息,以及每个账号信息对应的正确的密码(即正确的账号密码),在校验认证凭据时,可以从前述集合中获取与账号信息对应的密码,即第一密码。然后,可以将第一密码与认证凭据中的账号密码进行比对,以确定第一密码是否与认证凭据中的账号密码相同。如果第一密码与认证凭据中的账号密码相同,则可以认为认证凭据中的账号密码即为认证凭据中的账号信息对应的正确密码,此时,可以确定认证凭据校验通过,第一认证请求认证成功。反之,如果第一密码与认证凭据中的账号密码不相同,则可以认为认证凭据中的账号密码不是认证凭据中的账号信息对应的正确密码,此时,可以确定认证凭据校验不通过,第一认证请求认证失败。这样,仅在历史认证成功时刻与第一认证时刻相同,且认证凭据中的账号密码与预先存储的第一密码相同的情况下,才确认认证凭据校验通过,认证请求认证成功,如此,可以确保客户端认证结果的准确性,进而可以进一步提高防重放攻击的准确性。
在一些可能的实施方式中,防重放攻击方法还可以包括如下处理中的一项:
生成第一提示信息,将第一提示信息发送至客户端;
或,
生成第二提示信息,将第二提示信息发送至客户端。
其中,第一提示信息可以用于指示第一认证请求认证成功;第二提示信息可以用于指示第一认证请求认证失败。可以理解的,在服务端接收到的认证请求是第二认证请求的情况下,第一提示信息也可以用于指示第二认证请求认证成功,第二提示信息也可以用于指示第二认证请求认证失败。
在本公开的实施例中,为了使用户能够清楚的了解到本次认证的结果,服务端在每次认证后,可以根据认证结果向客户端发送相应的提示信息。示例性的,在历史认证成功时刻与第一认证时刻相同,且第一认证请求中的认证凭据校验通过的情况下,也即在第一认证请求认证成功的情况下,可以生成一个用于指示第一认证请求认证成功的提示信息,即第一提示信息,并将第一提示信息发送至客户端。或者,在历史认证成功时刻与第一认证时刻相同,但第一认证请求中的认证凭据校验不通过的情况下,也即在第一认证请求认证失败的情况下,可以生成一个用于指示第一认证请求认证失败的提示信息,即第二提示信息,并将第二提示信息发送至客户端。这样,不仅可以使得用户能够及时在用户端查看到认证请求对应的认证结果,而且认证结果的反馈也可以为用户的下一步操作提供数据依据,如此,可以有效提高用户体验。
图5是本公开实施例提供的一种应用于客户端的防重放攻击方法的流程示意图。如图5所示,应用于客户端的防重放攻击方法可以包括以下步骤:
在步骤S501中,接收输入指令;其中,输入指令携带有认证凭据。
在步骤S502中,基于认证凭据生成第一认证请求。
在步骤S503中,将第一认证请求发送至服务端,使服务端在第一认证请求中包括前置凭证的情况下,获取认证凭据的第一认证时刻;其中,前置凭证由服务端基于认证凭据的历史认证成功时刻生成并发送至客户端,第一认证时刻为存储的认证凭据最近一次认证成功时刻;以及在历史认证成功时刻与第一认证时刻不相同的情况下,拦截第一认证请求。
在进一步可能的实施方式中,应用于客户端的防重放攻击方法还可以包括如下处理:
接收服务端发送的前置凭证;
基于前置凭证和认证凭据生成第二认证请求;
将第二认证请求发送至服务端,使服务端解密前置凭证得到第二认证时刻;以及在第二认证时刻与第一认证时刻不相同的情况下,拦截第一认证请求。
本实施例提供应用于客户端的防重放攻击方法的实现原理和技术效果与上述实施例类似,为简洁起见,在此不再赘述。
图6是本公开实施例提供的一种应用于服务端的防重放攻击装置的框图。参照图6,该应用于服务端的防重放攻击装置600可以包括:
第一接收模块610,可以被配置为接收客户端发送的第一认证请求;其中,所述第一认证请求携带有认证凭据;
第一获取模块620,可以被配置为在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端;所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;
第一拦截模块630,可以被配置为在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述防重放攻击装置600还可以包括:
第二获取模块,可以被配置为在所述第一认证请求中不存在前置凭证的情况下,获取所述第一认证时刻;
加密模块,可以被配置为加密所述第一认证时刻,得到所述前置凭证;
发送模块,可以被配置为将所述前置凭证发送至所述客户端;
第二接收模块,可以被配置为接收所述客户端发送的第二认证请求;其中,所述第二认证请求携带有所述前置凭证和所述认证凭据;
解密模块,可以被配置为解密所述前置凭证得到第二认证时刻;
第二拦截模块,可以被配置为在所述第二认证时刻与所述第一认证时刻不同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述防重放攻击装置600还可以包括:
校验模块,可以被配置为在所述历史认证成功时刻与所述第一认证时刻相同的情况下,校验所述认证凭据;
第一确定模块,可以被配置为在所述认证凭据校验通过的情况下,确定所述第一认证请求认证成功;
第二确定模块,可以被配置为在所述认证凭据校验不通过的情况下,确定所述第一认证请求认证失败。
在一种可能的实施方式中,所述防重放攻击装置600还可以包括:
更新模块,可以被配置为基于所述第一认证请求认证成功的时刻更新所述认证凭据的最近一次认证成功时刻。
在一种可能的实施方式中,所述认证凭据包括账号信息和账号密码;
所述校验模块,可以包括:
获取单元,可以被配置为获取所述账号信息对应的第一密码,以及从所述认证凭据中获取所述账号密码;
第一确定单元,可以被配置为确定所述第一密码是否与所述认证凭据中的所述账号密码相同;
第二确定单元,可以被配置为在所述第一密码与所述认证凭据中的所述账号密码相同的情况下,确定所述认证凭据校验通过;
第三确定单元,可以被配置为在所述第一密码与所述认证凭据中的所述账号密码不相同的情况下,确定所述认证凭据校验不通过。
在一种可能的实施方式中,所述装置600还包括信息输出模块,可以被配置为:
生成第一提示信息,将所述第一提示信息发送至所述客户端;所述第一提示信息用于指示所述第一认证请求认证成功;
或,
生成第二提示信息,将所述第二提示信息发送至所述客户端;所述第二提示信息用于指示所述第一认证请求认证失败。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例还提供了一种应用于客户端的防重放攻击装置,所述装置可以包括:
指令接收模块,可以被配置为接收输入指令;其中,所述输入指令携带有认证凭据;
第一请求生成模块,可以被配置为基于所述认证凭据生成第一认证请求;
第一请求发送模块,可以被配置为将所述第一认证请求发送至服务端,使所述服务端在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端,所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;以及在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
在一种可能的实施方式中,所述装置还可以包括:
凭证接收模块,可以被配置为接收所述服务端发送的前置凭证;
第二请求生成模块,可以被配置为基于所述前置凭证和所述认证凭据生成第二认证请求;
第二请求发送模块,可以被配置为将所述第二认证请求发送至所述服务端,使所述服务端解密所述前置凭证得到第二认证时刻;以及在所述第二认证时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开的实施例,本公开还提供了一种电子设备、一种计算机可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备700旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
电子设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如应用于服务端或客户端的防重放攻击方法。例如,在一些实施例中,应用于服务端或客户端的防重放攻击方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序加载到RAM703并由计算单元701执行时,可以执行上文描述的应用于服务端或客户端的防重放攻击方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用于服务端或客户端的防重放攻击方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的计算机程序产品的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读存储介质可以是机器可读信号介质或机器可读储存介质。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种防重放攻击方法,其特征在于,应用于服务端,所述方法包括:
接收客户端发送的第一认证请求;其中,所述第一认证请求携带有认证凭据;
在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端;所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;
在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一认证请求中不包括前置凭证的情况下,获取所述第一认证时刻;
加密所述第一认证时刻,得到所述前置凭证;
将所述前置凭证发送至所述客户端;
接收所述客户端发送的第二认证请求;其中,所述第二认证请求携带有所述前置凭证和所述认证凭据;
解密所述前置凭证得到第二认证时刻;
在所述第二认证时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述历史认证成功时刻与所述第一认证时刻相同的情况下,校验所述认证凭据;
在所述认证凭据校验通过的情况下,确定所述第一认证请求认证成功;
在所述认证凭据校验不通过的情况下,确定所述第一认证请求认证失败。
4.根据权利要求3所述的方法,其特征在于,所述在所述认证凭据校验通过的情况下,确定所述第一认证请求认证成功之后,还包括:
基于所述第一认证请求认证成功的时刻更新所述认证凭据的最近一次认证成功时刻。
5.根据权利要求3所述的方法,其特征在于,所述认证凭据包括账号信息和账号密码;
所述校验所述认证凭据,包括:
获取所述账号信息对应的第一密码,以及从所述认证凭据中获取所述账号密码;
确定所述第一密码是否与所述认证凭据中的所述账号密码相同;
在所述第一密码与所述认证凭据中的所述账号密码相同的情况下,确定所述认证凭据校验通过;
在所述第一密码与所述认证凭据中的所述账号密码不相同的情况下,确定所述认证凭据校验不通过。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括如下中的一项:
生成第一提示信息,将所述第一提示信息发送至所述客户端;所述第一提示信息用于指示所述第一认证请求认证成功;
或,
生成第二提示信息,将所述第二提示信息发送至所述客户端;所述第二提示信息用于指示所述第一认证请求认证失败。
7.一种防重放攻击方法,其特征在于,应用于客户端,所述方法包括:
接收输入指令;其中,所述输入指令携带有认证凭据;
基于所述认证凭据生成第一认证请求;
将所述第一认证请求发送至服务端,使所述服务端在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端,所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;以及在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述服务端发送的前置凭证;
基于所述前置凭证和所述认证凭据生成第二认证请求;
将所述第二认证请求发送至所述服务端,使所述服务端解密所述前置凭证得到第二认证时刻;以及在所述第二认证时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
9.一种防重放攻击装置,其特征在于,应用于服务端,所述装置包括:
第一接收模块,被配置为接收客户端发送的第一认证请求;其中,所述第一认证请求携带有认证凭据;
第一获取模块,被配置为在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端;所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;
第一拦截模块,被配置为在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取模块,被配置为在所述第一认证请求中不包括前置凭证的情况下,获取所述第一认证时刻;
加密模块,被配置为加密所述第一认证时刻,得到所述前置凭证;
发送模块,被配置为将所述前置凭证发送至所述客户端;
第二接收模块,被配置为接收所述客户端发送的第二认证请求;其中,所述第二认证请求携带有所述前置凭证和所述认证凭据;
解密模块,被配置为解密所述前置凭证得到第二认证时刻;
第二拦截模块,被配置为在所述第二认证时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
校验模块,被配置为在所述历史认证成功时刻与所述第一认证时刻相同的情况下,校验所述认证凭据;
第一确定模块,被配置为在所述认证凭据校验通过的情况下,确定所述第一认证请求认证成功;
第二确定模块,被配置为在所述认证凭据校验不通过的情况下,确定所述第一认证请求认证失败。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
更新模块,被配置为基于所述第一认证请求认证成功的时刻更新所述认证凭据的最近一次认证成功时刻。
13.根据权利要求11所述的装置,其特征在于,所述认证凭据包括账号信息和账号密码;
所述校验模块,包括:
获取单元,被配置为获取所述账号信息对应的第一密码,以及从所述认证凭据中获取所述账号密码;
第一确定单元,被配置为确定所述第一密码是否与所述认证凭据中的所述账号密码相同;
第二确定单元,被配置为在所述第一密码与所述认证凭据中的所述账号密码相同的情况下,确定所述认证凭据校验通过;
第三确定单元,被配置为在所述第一密码与所述认证凭据中的所述账号密码不相同的情况下,确定所述认证凭据校验不通过。
14.根据权利要求11所述的装置,其特征在于,所述装置还包括信息输出模块,被配置为:
生成第一提示信息,将所述第一提示信息发送至所述客户端;所述第一提示信息用于指示所述第一认证请求认证成功;
或,
生成第二提示信息,将所述第二提示信息发送至所述客户端;所述第二提示信息用于指示所述第一认证请求认证失败。
15.一种防重放攻击装置,其特征在于,应用于客户端,所述装置包括:
指令接收模块,被配置为接收输入指令;其中,所述输入指令携带有认证凭据;
第一请求生成模块,被配置为基于所述认证凭据生成第一认证请求;
第一请求发送模块,被配置为将所述第一认证请求发送至服务端,使所述服务端在所述第一认证请求中包括前置凭证的情况下,获取所述认证凭据的第一认证时刻;其中,所述前置凭证由所述服务端基于所述认证凭据的历史认证成功时刻生成并发送至所述客户端,所述第一认证时刻为存储的所述认证凭据最近一次认证成功时刻;以及在所述历史认证成功时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
凭证接收模块,被配置为接收所述服务端发送的前置凭证;
第二请求生成模块,被配置为基于所述前置凭证和所述认证凭据生成第二认证请求;
第二请求发送模块,被配置为将所述第二认证请求发送至所述服务端,使所述服务端解密所述前置凭证得到第二认证时刻;以及在所述第二认证时刻与所述第一认证时刻不相同的情况下,拦截所述第一认证请求。
17.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6或权利要求7至8中任一项所述的防重放攻击方法。
18.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6或权利要求7至8中任一项所述的防重放攻击方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210796309.0A CN115150176B (zh) | 2022-07-07 | 2022-07-07 | 防重放攻击方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210796309.0A CN115150176B (zh) | 2022-07-07 | 2022-07-07 | 防重放攻击方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115150176A CN115150176A (zh) | 2022-10-04 |
CN115150176B true CN115150176B (zh) | 2023-10-17 |
Family
ID=83412709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210796309.0A Active CN115150176B (zh) | 2022-07-07 | 2022-07-07 | 防重放攻击方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150176B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612936A (zh) * | 2017-10-25 | 2018-01-19 | 广东欧珀移动通信有限公司 | 一种登录方法及相关设备 |
CN110213196A (zh) * | 2018-02-28 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 设备及其防止重放攻击的方法、电子设备和存储介质 |
CN111200599A (zh) * | 2019-12-28 | 2020-05-26 | 浪潮电子信息产业股份有限公司 | 一种访问认证方法、装置、设备及可读存储介质 |
CN111262701A (zh) * | 2020-01-10 | 2020-06-09 | 普联国际有限公司 | 一种重放攻击检测方法、系统、设备及存储介质 |
CN111901116A (zh) * | 2019-05-05 | 2020-11-06 | 厦门雅迅网络股份有限公司 | 一种基于eap-md5改进协议的身份认证方法及系统 |
WO2021076394A1 (en) * | 2019-10-16 | 2021-04-22 | Citrix Systems, Inc. | Systems and methods for preventing replay attacks |
CN113726743A (zh) * | 2021-07-30 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种网络重放攻击的检测方法、装置、设备和介质 |
CN113992353A (zh) * | 2021-09-27 | 2022-01-28 | 北京达佳互联信息技术有限公司 | 登录凭证的处理方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130140A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | System and method for protecting a server against denial of service attacks |
US20120246483A1 (en) * | 2011-03-25 | 2012-09-27 | Netanel Raisch | Authentication System With Time Attributes |
-
2022
- 2022-07-07 CN CN202210796309.0A patent/CN115150176B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612936A (zh) * | 2017-10-25 | 2018-01-19 | 广东欧珀移动通信有限公司 | 一种登录方法及相关设备 |
CN110213196A (zh) * | 2018-02-28 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 设备及其防止重放攻击的方法、电子设备和存储介质 |
CN111901116A (zh) * | 2019-05-05 | 2020-11-06 | 厦门雅迅网络股份有限公司 | 一种基于eap-md5改进协议的身份认证方法及系统 |
WO2021076394A1 (en) * | 2019-10-16 | 2021-04-22 | Citrix Systems, Inc. | Systems and methods for preventing replay attacks |
CN111200599A (zh) * | 2019-12-28 | 2020-05-26 | 浪潮电子信息产业股份有限公司 | 一种访问认证方法、装置、设备及可读存储介质 |
CN111262701A (zh) * | 2020-01-10 | 2020-06-09 | 普联国际有限公司 | 一种重放攻击检测方法、系统、设备及存储介质 |
CN113726743A (zh) * | 2021-07-30 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种网络重放攻击的检测方法、装置、设备和介质 |
CN113992353A (zh) * | 2021-09-27 | 2022-01-28 | 北京达佳互联信息技术有限公司 | 登录凭证的处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115150176A (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347835B (zh) | 信息传输方法、客户端、服务器以及计算机可读存储介质 | |
CN105162772B (zh) | 一种物联网设备认证与密钥协商方法和装置 | |
WO2021120871A1 (zh) | 认证密钥协商方法、装置、存储介质及设备 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
EP3972293A1 (en) | Bluetooth device connection methods and bluetooth devices | |
US10601590B1 (en) | Secure secrets in hardware security module for use by protected function in trusted execution environment | |
US11240008B2 (en) | Key management method, security chip, service server and information system | |
CN114024710A (zh) | 一种数据传输方法、装置、系统及设备 | |
CN105681470A (zh) | 基于超文本传输协议的通信方法、服务器、终端 | |
CN109272314B (zh) | 一种基于两方协同签名计算的安全通信方法及系统 | |
CN112968910B (zh) | 一种防重放攻击方法和装置 | |
Chen et al. | Security analysis and improvement of user authentication framework for cloud computing | |
CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN117834268A (zh) | 一种提升单包授权中认证过程安全性的方法及装置 | |
WO2022042198A1 (zh) | 身份验证方法、装置、计算机设备和存储介质 | |
CN114944921A (zh) | 登录认证方法、装置、电子设备及存储介质 | |
CN113703911B (zh) | 一种虚拟机迁移方法、装置、设备、存储介质 | |
WO2018164673A1 (en) | Data message authentication based on a random number | |
CN117336092A (zh) | 一种客户端登录方法、装置、电子设备和存储介质 | |
KR101358704B1 (ko) | 싱글 사인 온을 위한 인증 방법 | |
Jiang | Advanced secure user authentication framework for cloud computing | |
CN112565156B (zh) | 信息注册方法、装置和系统 | |
CN115150176B (zh) | 防重放攻击方法、装置、电子设备及存储介质 | |
CN108932425B (zh) | 一种离线身份认证方法、认证系统及认证设备 | |
CN116527261A (zh) | 密钥恢复方法、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |