一种访问认证方法、装置、设备及可读存储介质与流程

文档序号:20883973发布日期:2020-05-26 17:21阅读:173来源:国知局
一种访问认证方法、装置、设备及可读存储介质与流程

本发明涉及网络安全技术领域,特别是涉及一种访问认证方法、装置、设备及可读存储介质。



背景技术:

重放攻击是黑客常用的攻击方式之一,具体指攻击者发送一个目的主机已接收过的数据包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。

目前,包括存储集群和大部分服务器在内,用于防重放攻击的方案大致有随机数,时间戳和加流水号。其中,随机数是通过客户端和服务器双方记录使用过的随机数,如果相同认为是重放攻击,这种方式需要额外保存使用过的随机数,若记录的时间段较长,则保存和查询的开销较大;时间戳能够克服随机数的缺点,即不用保存任何记录,但是对认证双方时间同步精度很高,当系统很庞大甚至需要跨时区时这种方案便不可行;加流水号能够解决随机数和时间戳的缺点,客户端和服务器保持一个递增的流水号,只要流水号本次比上次高就认为安全,缺点是一旦攻击者对报文解密成功,就可以获得流水号,从而每次将流水号递增欺骗认证端。

综上所述,如何有效地解决重放攻击等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种访问认证方法、装置、设备及可读存储介质,以通过随机流水号结合认证标志,解决重放攻击问题。

为解决上述技术问题,本发明提供如下技术方案:

一种访问认证方法,包括:

接收访问请求,并获取所述访问请求中携带的认证标志和客户端标志;

查询与所述客户端标志匹配的随机流水号;所述随机流水号为在所述客户端标志对应的客户端成功登陆后反馈给所述客户端并同步更新的流水号;

生成所述随机流水号对应的认证参考标志;

判断所述认证标志与所述认证参考标志是否一致;

若是,则确定访问请求合法,并与所述客户端对所述随机流水号进行同步更新处理;若否,则确定所述访问请求非法。

优选地,与所述客户端对所述随机流水号进行同步更新处理,包括:

与所述客户端对所述随机流水号进行同步加或同步减的同步更新处理。

优选地,还包括:

当所述同步更新处理为同步加且所述随机流水号大于上限阈值时,或,当所述同步更新处理为同步减且所述随机流水号小于下限阈值时,重新生成新的随机流水号,并反馈给所述客户端。

优选地,所述重新生成新的随机流水号,并反馈给所述客户端,包括:

利用随机函数生成指定范围内的随机流水号,并利用aes加密后反馈给所述客户端。

优选地,生成所述随机流水号对应的认证参考标志,包括:

调用散列函数,生成所述认证参考标志。

优选地,所述调用散列函数,生成所述认证参考标志,包括:

按照函数轮换顺序,从多个所述散列函数中调用指定散列函数,生成所述认证参考标志;在反馈并同步更新所述随机流水号时,通知所述客户端利用所述指定散列函数生成所述认证标志。

优选地,所述调用散列函数,生成所述认证参考标志,包括:

调用所述散列函数对所述随机流水号和指定参数进行处理,获得所述认证参考标志。

一种访问认证装置,包括:

请求解析模块,用于接收访问请求,并获取所述访问请求中携带的认证标志和客户端标志;

随机流水号查询模块,用于查询与所述客户端标志匹配的随机流水号;所述随机流水号为在所述客户端标志对应的客户端成功登陆后反馈给所述客户端并同步更新的流水号;

认证参考标志生成模块,用于生成所述随机流水号对应的认证参考标志;

判断模块,用于判断所述认证标志与所述认证参考标志是否一致;

合法确定模块,用于若所述认证标志与所述认证参考标志一致,则确定访问请求合法,并与所述客户端对所述随机流水号进行同步更新处理;

非法确定模块,用于若所述认证标志与所述认证参考标志不一致,则确定所述访问请求非法。

一种访问认证设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述访问认证方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述访问认证方法的步骤。

应用本发明实施例所提供的方法,接收访问请求,并获取访问请求中携带的认证标志和客户端标志;查询与客户端标志匹配的随机流水号;随机流水号为在客户端标志对应的客户端成功登陆后反馈给客户端并同步更新的流水号;生成随机流水号对应的认证参考标志;判断认证标志与认证参考标志是否一致;若是,则确定访问请求合法,并与客户端对随机流水号进行同步更新处理;若否,则确定访问请求非法。

在服务端接收到访问请求后,获取访问请求携带的认证标志和客户端标志。然后查询出与该客户端标志匹配的随机流水号。该随机流水号为客户端标志对应的客户端成功登录后,服务端反馈给客户端并与客户端保持同步更新的流水号。由于随机流水号在每一次处理了合法访问请求之后,服务端和客户端中的随机流水号会同步更新。也就是说,若发送访问请求的是合法客户端,则该访问请求中的认证标志应为基于与服务端相同的随机流水号生成的。因此,服务端在查询到随机流水号后,便可生成随机流水号对应的认证参考标志,并比对认证参考标志与认证标志是否一致来确定出访问请求是否属于合法的。如此,无需存储并维护大量信息,也无需服务端与客户端保持严格的时间同步,也可可规避重放攻击,确保认证的正确性。

相应地,本发明实施例还提供了与上述访问认证方法相对应的访问认证装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种访问认证方法的实施流程图;

图2为本发明实施例中一种访问认证装置的结构示意图;

图3为本发明实施例中一种访问认证设备的结构示意图;

图4为本发明实施例中一种访问认证设备的具体结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

请参考图1,图1为本发明实施例中一种访问认证方法的流程图,该方法可应用于服务端,该方法包括以下步骤:

s101、接收访问请求,并获取访问请求中携带的认证标志和客户端标志。

访问请求可具体为客户端向服务端发送的任意一个访问数据包。

当服务端接收到客户端发送的访问请求后,可对访问请求进行解析,获得该访问请求中携带的认证标志和客户端标志。

其中,认证标志即客户端在登陆成功后,服务端反馈的随机流水号,且服务端与客户端对该随机流水号进行同步处理。

客户端标志可具体为客户端id,也可为该客户端上登陆的用户的账号信息。即,客户端标志为能够通过该客户端标志唯一确定是哪个客户端的信息。

s102、查询与客户端标志匹配的随机流水号。

其中,随机流水号为在客户端标志对应的客户端成功登陆后反馈给客户端并同步更新的流水号。

在获取到客户端标志和认证标志之后,服务端可查询出与客户端标志匹配的随机流水号。

其中,与客户端对随机流水号进行同步更新处理,可具体为与客户端对随机流水号进行同步加或同步减的同步更新处理。例如,当客户端成功登录后,服务端随机生成一个流水号a,服务端将随机流水号a反馈给客户端;随后服务端与客户端对各自存储的随机流水号a进行同步更新处理,如进行同步加或同步减。其中,同步加或同步减的操作可具体为客户端发送的访问请求在验证合法后,服务端和客户端分别对随机流水号进行加b,或减b,其中b为不为0的自然数,如b=1。

优选地,由于随机流水号是用于生成认证标志和认证参考标志的关键参数,因此为避免出现因随机流水号泄漏或被黑客分析出认证标志生成规则,在本实施例中还可对随机流水号进行重新随机生成,以避免黑客发现其中规则。具体的,当同步更新处理为同步加且随机流水号大于上限阈值时,或,当同步更新处理为同步减且随机流水号小于下限阈值时,重新生成新的随机流水号,并反馈给客户端。具体的,当同步更新处理为同步加处理,且在随机流水号大于上限阈值时,服务端重新生成新的随机流水号,并反馈给客户端;当同步更新处理为同步减处理(如snr=snr-1),且在随机流水号小于下限阈值时,服务端重新生成新的随机流水号,并反馈给客户端。

举例说明:在本实施例中,可控制生成的随机流水号小于一个上限阈值500,如此,在生成随机流水号时,采用snr=rand%500+1,如此,新生成的随机流水号snr取值为1-500的任意值,当采用同步加的方式(如snr=snr+1)进行同步更新处理,则在更新后的随机流水号大于500时,服务端重新生成随机流水号,并反馈给客户端。

进一步,为了避免服务端在向客户端反馈随机流水号时,携带随机流水号的报文被拦截破解,导致随机流水号泄漏。服务端在向客户端发送随机流水号时,可对随机流水号进行加密后反馈,以降低随机流水号的泄漏风险。具体的,利用随机函数生成指定范围内的随机流水号,并利用aes加密后反馈给客户端。客户端接收到加密后的随机流水号后,通过解密,便可获得随机流水号。

s103、生成随机流水号对应的认证参考标志。

在本实施例中,服务端与客户端可采用相同的处理逻辑,对随机流水号进行处理,客户端得到该随机流水号对应的认证标志,服务端得到该随机流水号对应的认证参考标志。

为避免出现不同的随机流水号经过同一个处理逻辑进行处理后,得到相同的结果,在本实施例中可优选使用散列函数对随机流水号进行处理。即,调用散列函数,生成认证参考标志。例如,可采用md5算法对随机流水号进行计算,获得认证参考标志。

优选地,为了进一步保障认证标志不被非法制造,在本实施例中,客户端和服务端内可设置一组散列函数,并规定函数轮换顺序。然后,按照函数轮换顺序,从多个散列函数中调用指定散列函数,生成认证参考标志;在反馈并同步更新随机流水号时,通知客户端利用指定散列函数生成认证标志。例如,服务端和客户端均预先设置5个散列函数:h1,h2,h3,h4和h5,并规定函数轮换顺序为h1,h2,h3,h4和h5;客户端在生成随机流水号对应的认证标志时,若上一次生成的认证标志是采用h2生成的,则本次采用h3生成认证标志;对于服务端在生成随机流水号对应的认证参考标志时,若上一次生成的认证标志是采用h1生成的,则本次采用h2生成认证标志;服务端可在客户端登陆成功时,与客户端约定函数轮换顺序,并指定首个调用的散列函数,如此对于客户端和服务端针对同一个随机流水号均采用同一个散列函数。

优选地,为了进一步加强认证参考标志以及认证标志的安全性,还可调用散列函数对随机流水号和指定参数进行处理,获得认证参考标志。其中,指定参数可具体为服务端集群的集群id,或其他指定参数。例如,token=md5(fsid+snr),其中fsid为集群id,snr为随机流水号,若计算过程发生在客户端,token则为认证标志,若计算过程发生在服务端,则token为认证参考标志。

s104、判断认证标志与认证参考标志是否一致。

判断日志标志与认证参考标志是否一致可通过做差或相除的方式确定出认证标志与认证参考标志是否一致。

得到判断结果之后,便可基于不同的判断结果执行不同的后续处理操作。具体的,如果是,则执行步骤s105;如果否,则执行步骤s106。

s105、确定访问请求合法,并与客户端对随机流水号进行同步更新处理。

由于客户端中的随机流水号为登陆成功后,服务端反馈给客户端的随机流水号,且客户端与服务端对随机流水号进行同步更新处理。因此,在正常情况下,客户端与服务端均采用相同的处理逻辑基于随机流水号生成认证标志和认证参考标志,在正常情况下,认证标志和认证参考标志应当一致。因此,当认证标志和认证参考标志一致时,则可确定访问请求合法。又因,在本实施例中,在每一次确定访问请求合法后,服务端与客户端会对随机流水号进行同步更新处理,因此在认证标志与认证参考标志一致时,可确定当前的访问请求并非重复攻击。

s106、确定访问请求非法。

当认证标志与认证参考标志不一致时,可确定该访问请求非法,此时可无需向该客户端标志对应的非法客户端提供服务。

需要说明的是,导致认证标志与认证参考标志不一致的情况有多种原因,如重复攻击,客户端故障导致无法正常同服务器一起对随机流水号进行同步更新处理,或客户端无法基于随机流水号生成正确的认证标志。无论是哪个原因导致,均可视为访问请求非法,以保障服务器性能不受影响。

应用本发明实施例所提供的方法,接收访问请求,并获取访问请求中携带的认证标志和客户端标志;查询与客户端标志匹配的随机流水号;随机流水号为在客户端标志对应的客户端成功登陆后反馈给客户端并同步更新的流水号;生成随机流水号对应的认证参考标志;判断认证标志与认证参考标志是否一致;若是,则确定访问请求合法,并与客户端对随机流水号进行同步更新处理;若否,则确定访问请求非法。

在服务端接收到访问请求后,获取访问请求携带的认证标志和客户端标志。然后查询出与该客户端标志匹配的随机流水号。该随机流水号为客户端标志对应的客户端成功登录后,服务端反馈给客户端并与客户端保持同步更新的流水号。由于随机流水号在每一次处理了合法访问请求之后,服务端和客户端中的随机流水号会同步更新。也就是说,若发送访问请求的是合法客户端,则该访问请求中的认证标志应为基于与服务端相同的随机流水号生成的。因此,服务端在查询到随机流水号后,便可生成随机流水号对应的认证参考标志,并比对认证参考标志与认证标志是否一致来确定出访问请求是否属于合法的。如此,无需存储并维护大量信息,也无需服务端与客户端保持严格的时间同步,也可可规避重放攻击,确保认证的正确性。

实施例二:

相应于上面的方法实施例,本发明实施例还提供了一种访问认证装置,下文描述的访问认证装置与上文描述的访问认证方法可相互对应参照。

参见图2所示,该装置包括以下模块:

请求解析模块101,用于接收访问请求,并获取访问请求中携带的认证标志和客户端标志;

随机流水号查询模块102,用于查询与客户端标志匹配的随机流水号;随机流水号为在客户端标志对应的客户端成功登陆后反馈给客户端并同步更新的流水号;

认证参考标志生成模块103,用于生成随机流水号对应的认证参考标志;

判断模块104,用于判断认证标志与认证参考标志是否一致;

合法确定模块105,用于若认证标志与认证参考标志一致,则确定访问请求合法,并与客户端对随机流水号进行同步更新处理;

非法确定模块106,用于若认证标志与认证参考标志不一致,则确定访问请求非法。

应用本发明实施例所提供的装置,接收访问请求,并获取访问请求中携带的认证标志和客户端标志;查询与客户端标志匹配的随机流水号;随机流水号为在客户端标志对应的客户端成功登陆后反馈给客户端并同步更新的流水号;生成随机流水号对应的认证参考标志;判断认证标志与认证参考标志是否一致;若是,则确定访问请求合法,并与客户端对随机流水号进行同步更新处理;若否,则确定访问请求非法。

在服务端接收到访问请求后,获取访问请求携带的认证标志和客户端标志。然后查询出与该客户端标志匹配的随机流水号。该随机流水号为客户端标志对应的客户端成功登录后,服务端反馈给客户端并与客户端保持同步更新的流水号。由于随机流水号在每一次处理了合法访问请求之后,服务端和客户端中的随机流水号会同步更新。也就是说,若发送访问请求的是合法客户端,则该访问请求中的认证标志应为基于与服务端相同的随机流水号生成的。因此,服务端在查询到随机流水号后,便可生成随机流水号对应的认证参考标志,并比对认证参考标志与认证标志是否一致来确定出访问请求是否属于合法的。如此,无需存储并维护大量信息,也无需服务端与客户端保持严格的时间同步,也可可规避重放攻击,确保认证的正确性。

在本发明的一种具体实施方式中,合法确定模块105,具体用于与客户端对随机流水号进行同步加或同步减的同步更新处理。

在本发明的一种具体实施方式中,还包括:

随机流水号重新反馈模块,用于当同步更新处理为同步加且随机流水号大于上限阈值时,或,当同步更新处理为同步减且随机流水号小于下限阈值时,重新生成新的随机流水号,并反馈给客户端。

在本发明的一种具体实施方式中,随机流水号重新反馈模块,具体用于利用随机函数生成指定范围内的随机流水号,并利用aes加密后反馈给客户端。

在本发明的一种具体实施方式中,认证参考标志生成模块103,具体用于调用散列函数,生成认证参考标志。

在本发明的一种具体实施方式中,认证参考标志生成模块103,具体用于按照函数轮换顺序,从多个散列函数中调用指定散列函数,生成认证参考标志;在反馈并同步更新随机流水号时,通知客户端利用指定散列函数生成认证标志。

在本发明的一种具体实施方式中,认证参考标志生成模块103,具体用于调用散列函数对随机流水号和指定参数进行处理,获得认证参考标志。

实施例三:

相应于上面的方法实施例,本发明实施例还提供了一种访问认证设备,下文描述的一种访问认证设备与上文描述的一种访问认证方法可相互对应参照。

参见图3所示,该访问认证设备包括:

存储器d1,用于存储计算机程序;

处理器d2,用于执行计算机程序时实现上述方法实施例的访问认证方法的步骤。

具体的,请参考图4,为本实施例提供的一种访问认证设备的具体结构示意图,该访问认证设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在访问认证设备301上执行存储介质330中的一系列指令操作。

访问认证设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等。

上文所描述的访问认证方法中的步骤可以由访问认证设备的结构实现。

实施例四:

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种访问认证方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的访问认证方法的步骤。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1