网络认证方法和装置转让专利

申请号 : CN200810217107.6

文献号 : CN101729513A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋武

申请人 : 成都市华为赛门铁克科技有限公司

摘要 :

本发明实施例公开了一种网络认证方法和装置,方法包括:接收客户端发送的同步数据SYN数据,所述SYN数据包括顺序号SEQ1和网络参数;向客户端发送响应所述SYN数据的同步确认数据SYN_ACK数据,所述SYN_ACK数据包括确认号ACK2,ACK2的值为根据所述SYN数据的网络参数进行函数变换得到的值,且ACK2的值不等于SEQ1加1;接收客户端响应所述SYN_ACK数据而发送的重置请求数据RST数据,所述RST数据包括顺序号SEQ3或确认号ACK3,且SEQ3或ACK3的值与ACK2的值相同,所述RST数据还包括与SYN数据相同的网络参数;根据RST数据的网络参数进行所述函数变换,得到校验值CHK;若CHK与SEQ3或ACK3匹配,则通过对所述客户端的认证。本发明实施例在认证时无需存储SYN_ACK数据包的确认号的值,减少了对存储资源的占用。

权利要求 :

1.一种网络认证方法,其特征在于,包括:

接收客户端发送的同步数据SYN数据,所述SYN数据包括顺序号SEQ1和网络参数;

向客户端发送响应所述SYN数据的同步确认数据SYN_ACK数据,所述SYN_ACK数据包括确认号ACK2,ACK2的值为根据所述SYN数据的网络参数进行函数变换得到的值,且ACK2的值不等于SEQ1加1;

接收客户端响应所述SYN_ACK数据而发送的重置请求数据RST数据,所述RST数据包括顺序号SEQ3或确认号ACK3,且SEQ3或ACK3的值与ACK2的值相同,所述RST数据还包括与SYN数据相同的网络参数;

根据RST数据的网络参数进行所述函数变换,得到校验值CHK;

若CHK与SEQ3或ACK3匹配,则通过对所述客户端的认证。

2.如权利要求1所述的方法,其特征在于,所述网络参数包括:数据包IP包头中的源IP地址SIP、源端口SPORT、目的IP地址DIP、目的端口DPORT、协议类型Protocol或生存时间TTL中的一项或多项。

3.如权利要求2所述的方法,其特征在于,所述若CHK与SEQ3或ACK3匹配,则通过对所述客户端的认证的步骤包括:若CHK与SEQ3或ACK3相等,则通过对所述客户端的认证。

4.如权利要求1所述的方法,其特征在于,所述网络参数包括:IP包头中的身份标识ID。

5.如权利要求4所述的方法,其特征在于,所述若CHK与SEQ3或ACK3匹配,则通过对所述客户端的认证:若CHK与SEQ3或ACK3的差值在设定的范围内,则通过对所述客户端的认证。

6.如权利要求1至5任一项所述的方法,其特征在于,所述函数为哈希函数。

7.一种网络认证装置,其特征在于,包括:

第一接收单元,用于接收客户端发送的同步数据SYN数据,所述SYN数据包括顺序号SEQ1和网络参数;

发送单元,用于向客户端发送响应所述第一接收单元接收的SYN数据的同步确认数据SYN_ACK数据,所述SYN_ACK数据包括确认号ACK2,ACK2的值为根据所述SYN数据的网络参数进行函数变换得到的值,且ACK2的值不等于SEQ1+1;

第二接收单元,用于接收客户端响应所述发送单元发送的SYN_ACK数据而发送的重置请求数据RST数据,所述RST数据包括顺序号SEQ3或确认号ACK3,且ACK3的值与SEQ3或ACK2的值相同,所述RST数据还包括与SYN数据相同的网络参数;

计算单元,用于根据所述第二接收单元接收的RST数据的网络参数进行所述函数变换,得到校验值CHK;

认证单元,用于在所述计算单元计算得到的CHK与所述RST数据的SEQ3或ACK3匹配时,通过对所述客户端的认证。

8.如权利要求7所述的装置,其特征在于,所述网络参数包括:数据包IP包头中的源IP地址SIP、源端口地址SPORT、目的IP地址DIP、目的端口DPORT、协议类型protocol或生命周期TTL中的一项或多项。

9.如权利要求8所述的装置,其特征在于,所述认证单元用于在所述计算单元计算得到的CHK与所述RST数据的SEQ3或ACK3相等时,通过对所述客户端的认证。

10.如权利要求7所述的方法,其特征在于,所述网络参数包括:IP包头中的标识ID。

11.如权利要求10所述的装置,其特征在于,所述认证单元用于在所述计算单元计算得到的CHK与所述RST数据的SEQ3或ACK3的差值在预设的范围时,通过对所述客户端的认证。

说明书 :

技术领域

本发明涉及网络安全技术领域,尤其涉及一种网络认证方法、装置和系统。

背景技术

网络上出现了大量的DDOS(Distributed Denial of Service,分布式拒绝服务)攻击,俗称洪水攻击,被攻击主机或服务器上有大量等待的TCP(Transmission Control Protocol)连接网络中充斥着大量的无用的数据包,攻击者通过制造高流量无用数据,利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求,造成网络拥塞,严重时会造成系统死机。SYN Flood是DDoS的主要攻击手段之一,SYN Flood利用了TCP/IP(Internet Protocol)协议的固有漏洞,面向连接的TCP三次握手是SYN Flood存在的基础。假设一个用户向服务器发送了SYN(同步,synchronize)报文后突然死机或掉线,那么服务器在发出SYN_ACK(synchronize acknowledge)应答数据包后是无法收到客户端的确认ACK(acknowledge)数据包的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN_ACK数据包给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN_ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃。即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况称作服务器端受到了SYN Flood攻击(SYN洪水攻击)。
如图1所示,现有技术一提供了一种防止DDOS攻击的认证方法,该方法利用网关进行认证防护,网关设备收到SYN数据包后,向客户端发送SYC-ACK数据包,SYN_ACK数据包内的顺序号SEQ(sequence number)是网关根据客户端的IP等信息构造的。客户端收到SYN_ACK数据包后会回应一个其应答SEQ为SYN_ACK数据包的SEQ加1的ACK数据包。当网关收到这个ACK数据包,则把客户端的源IP记入白名单中,并发送一个RST数据包给客户端,客户端收到后则断开连接。当客户端在一定时间内再次发送SYN数据包请求连接的时候,只要在白名单的老化时间之内,则可以直接访问受保护的服务器。现有技术一虽然一定程度上可以保护服务器,但防护设备必须发两次回包,浪费资源。
现有技术二提出了一种防火墙降低洪水攻击的方法,防火墙接收到客户端发送的包括顺序号(“SEQ”)的SYN数据包,向客户端发送SYN_ACK数据包,所述SYN_ACK数据包包括顺序号SEQ和确认顺序号ACK_SEQUENCE值(“ACK”),其中SYN_ACK分组的ACK不等于SYN数据包的SEQ+1;客户端接收到包含错误的ACK的SYN_ACK数据包后,按照TCP/IP协议规定,会向防火墙发送RST数据包,正常情况下RST数据包的SEQ与SYN_ACK数据包的ACK一致。防火墙检验RST数据包中的SEQ是否与SYN_ACK数据包的ACK匹配,并且如果匹配,则指定与服务器的连接作为授权的连接。该方法防火墙只需要向客户端发送一次包就可以实现认证。
发明人在实现本发明的过程中发现,现有技术二至少存在如下的缺陷:
防火墙通过检验RST数据包中的SEQ是否与SYN_ACK数据包的ACK匹配进行认证,那么防火墙需要在发送SYN_ACK数据包之后存储SYN_ACK数据包中的ACK值。一旦网络异常或受到洪水攻击时,网络中存在大量的半连接,防火墙需要保存并维护大量的ACK值,占用了存储资源。

发明内容

本发明实施例提供了一种网络认证方法和装置,可以减少网络认证时占用的存储资源。
一种网络认证方法,包括:
接收客户端发送的同步数据SYN数据,所述SYN数据包括顺序号SEQ1和网络参数;
向客户端发送响应所述SYN数据的同步确认数据SYN_ACK数据,所述SYN_ACK数据包括确认号ACK2,ACK2的值为根据所述SYN数据的网络参数进行函数变换得到的值,且ACK2的值不等于SEQ1加1;
接收客户端响应所述SYN_ACK数据而发送的重置请求数据RST数据,所述RST数据包括顺序号SEQ3或确认号ACK3,且SEQ3或ACK3的值与ACK2的值相同,所述RST数据还包括与SYN数据相同的网络参数;
根据RST数据的网络参数进行所述函数变换,得到校验值CHK;
若CHK与SEQ3或ACK3匹配,则通过对所述客户端的认证。
一种网络认证装置,包括:
第一接收单元,用于接收客户端发送的同步数据SYN数据,所述SYN数据包括顺序号SEQ1和网络参数;
发送单元,用于向客户端发送响应所述第一接收单元接收的SYN数据的同步确认数据SYN_ACK数据,所述SYN_ACK数据包括确认号ACK2,ACK2的值为根据所述SYN数据的网络参数进行函数变换得到的值,且ACK2的值不等于SEQ1+1;
第二接收单元,用于接收客户端响应所述发送单元发送的SYN_ACK数据而发送的重置请求数据RST数据,所述RST数据包括顺序号SEQ3或确认号ACK3,且ACK3的值与SEQ3或ACK2的值相同,所述RST数据还包括与SYN数据相同的网络参数;
计算单元,用于根据所述第二接收单元接收的RST数据的网络参数进行所述函数变换,得到校验值CHK;
认证单元,用于在所述计算单元计算得到的CHK与所述RST数据的SEQ3或ACK3匹配时,通过对所述客户端的认证。
由以上技术方案可知,本发明实施例提供的方法和装置,在每次认证时无需存储SYN_ACK数据包的确认号的值,而是在校验时通过相同的函数计算得到并进行认证,减少了对存储资源的占用。

附图说明

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

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,为本发明实施例一提供的网络认证方法流程示意图,包括:
S11、接收客户端发送的SYN数据,所述SYN数据包括顺序号SEQ1和网络参数;
本实施例以TCP/IP协议为例,因此本文所指的数据表现为符合TCP/IP协议规范的格式。IP数据包首部的结构内容包括如下信息:版本号(Version)、服务类型(Type of Service)、总长度(Total Length)、标识ID(Identification)、标志(Flags)、头偏移(Fragment Offset)、生存时间TTL(Time to Live)上层协议类型(Protocol)、头部校验(HeaderChecksum)、源IP地址SIP(Source Address)、目的IP地址DIP(DestinationAddress)、选项(Options)和数据(Padding)。
TCP数据包首部的结构包括以下内容:源端口SPORT(Source Port):呼叫端口的编号;目的端口DPORT(Destination Port):被叫端口的编号;顺序号SEQ(Sequence Number):发送端发出的每个TCP数据包的编号,依次递增1,初始值是随机的;确认号ACK(Acknowledgment Number):期望的对端发送过来的TCP数据包顺序号(隐含确认已收到的TCP包);报头长度(HLEN):以32字节为单位的报头的长度;保留域(Reserved):设置为0;编码位(Code Bits):用于控制段的传输(如会话的建立和中止),包括:URG、ACK、PSH、RST、SYN、FIN六个位;窗口大小(Window):接收方能够继续接收的字节数;校验和(Checksum):包括TCP报头和数据在内的校验和;紧急指针(Urgent Pointer):当前顺顺序号到紧急数据位置的偏移量;选项(Option);数据(Data):上层协议数据。在应用层中,TCP数据包是封装于IP数据包的。
SYN(synchronize)数据包是TCP连接的第一个包,用来发起TCP连接请求。TCP连接的建立需要经过三次握手,例如A要和B建立TCP连接,则A向B发送SYN数据包,顺序号SEQ是x;B向A发送SYN_ACK数据包,顺序号是y,确认号是x+1;最后A向B再发送ACK数据包,确认号是y+1,如此则A和B成功建立TCP连接。
S12、向客户端发送响应所述SYN数据的同步确认数据SYN_ACK数据,所述SYN_ACK数据包括确认号ACK2,ACK2的值为根据所述SYN数据的网络参数进行函数变换得到的值,且ACK2的值不等于SEQ1加1;
在接收到客户端发送的包括顺序号SEQ1的SYN数据包之后,进行认证防护的网关需要向客户端发送SYN_ACK数据包,此时发送的确认号不是SEQ1+1,而是根据客户端发送的SYN数据包中携带的网络参数,根据某特定的函数构造一个确认号ACK2。
S13、接收客户端响应所述SYN_ACK数据而发送的重置请求数据RST数据,所述RST数据包括顺序号SEQ3或确认号ACK3,且SEQ3或ACK3的值与ACK2的值相同,所述RST数据还包括与SYN数据相同的网络参数;
步骤S12中,由于客户端接收到的ACK2值与期望值的不同,根据TCP/IP协议的规定,客户端将发送重置连接RST(RESET)数据包,其顺序号SEQ3或确认号ACK3的值等于SYN_ACK数据包的确认号ACK2的值。通常情况下,RST数据包的顺序号SEQ3和确认号ACK3可以相等,并等于ACK2的值;或者也可以SEQ3或ACK3中任一个与ACK2的值相等,相应的认证的时候,采用SEQ3或ACK3进行认证。
S14、根据RST数据的网络参数进行所述函数变换,得到校验值CHK;具体地,可以将RST数据包携带的网络参数进行所述FUNC函数变换,得到校验值CHK;比较CHK与SEQ3或ACK3是否匹配,若匹配,则通过对所述客户端的认证。
由于RST数据包的确认号ACK3的值与SYN_ACK数据包的确认号ACK2的值相同,因此,在认证的时候,只需要对回包RST数据包携带的网络参数进行相同的函数变换,计算得到的值与RST数据包的顺序号SEQ3或确认号ACK3的值进行比较,如果两者是匹配的,则认为发送SYN数据包与发送RST数据包的客户端相同,因此认证成功,否则认证失败。
这里的网络参数包括TCP/IP数据包头结构中的源IP地址SIP、源端口SPORT、目的IP地址DIP、目的端口DPORT、协议类型protocol或生命周期TTL等中的一项或多项。如果发送SYN包和发送RST包是同一台主机的话,通常两个包中携带的上面这些网络参数都是相同的,因此认证的时候将RST包携带的网络参数进行相同的函数变换得到的校验值CHK,与RST包的顺序号SEQ3或确认号ACK3(即SYN包携带的网络参数经过所述相同的函数变换得到)进行比较,如果CHK等于SEQ3或ACK3的值,那么通过客户端的认证;如果CHK不等于SEQ3或ACK3的值,则认为认证失败。
上述的FUNC函数变换,可以是HASH函数或任意函数,只要满足网络参数的变量值经过函数变换后,变量值与函数值具有一一对应的关系即可,即相同的网络参数计算得到的函数值结果相同,不同的网络参数计算得到的函数结果不同。例如FUNC函数为Func=Hash(SIP,SPORT),表示对数据包中携带的源IP地址和源端口SPORT进行hash变换得到的值。
若客户端通过认证,则可以将客户端的IP地址等信息记入白名单中,下次客户端再请求连接的时候,在白名单记录的有效期内,可以不必认证,允许客户端直接访问受保护的服务器。例如,白名单的内容可以包括:源IP地址、创建时间、最新时间、生存时间TTL和有效标记;其中,创建时间表示创建客户端记录的时间,最新时间是最近一次会话发生的时间,TTL表示该IP数据包实际达到该设备所记录的TTL数值,有效标记表示记录是否有效。
本发明实施例中,网关在向客户端发送SYN_ACK数据包时,其中包含的确认号ACK是通过对客户端发送的SYN数据包携带的网络参数进行特定的函数计算得到的,因此,在校验的时候,对客户端返回的RST数据包携带的网络参数进行相同的函数计算,将计算得到的值与RST数据包中的SEQ值进行比较,判断客户端是否认证通过。因此,本发明实施例提供的方法在每次认证时无需存储SYN_ACK的值,而是在校验时通过相同的函数计算得到并进行认证,减少了对存储资源的占用。
实施例二
本实施例可以进一步防止攻击者伪造虚假IP进行洪水攻击。
若有一台攻击主机伪造另外一台主机的IP地址,由于无论被伪造的主机开没开请求的源端口,攻击主机收到错误序号的SYN_ACK包都会回复RST包,且RST包与被伪造主机发的RST包无明显差异,则网关根据接收到的RST无法区分是发RST包得主机与发SYN包的主机是否同一主机。也就是说,在这种情况下,无论是攻击主机或被伪造主机发的RST数据包,其携带的网络参数如源IP地址SIP、源端口地址SPORT、目的IP地址DIP、目的端口DPORT、协议类型protocol等是相同的,生命周期TTL跟操作系统类型和路由跳数有关,如果攻击主机和被伪造主机同一局域网内,那么它们到网关的路由跳数是相同的,因此其攻击主机数据包的TTL与被伪造主机数据包的TTL数值也是相同的。这样网关根据RST数据包携带的上面的网络参数进行函数变换的值是相同的,因此是无法识别虚假IP的。例如,若发SYN的主机是被伪造主机,而回复RST包的主机是攻击主机,则网关仍然认为认证成功,那么攻击主机就可以发大量的被网关认为正常的数据包去攻击服务器。
为了使网关可以识别虚假IP的情形,本实施例与实施例一不同之处在于,在进行函数变换时采用的网络参数包括有IP数据包首部中的标识ID(Identification)。ID字段表示IP数据包在同一主机系统发包的次序,每发一个数据包,ID自动加1;因此在同一时间两台不同主机,其发包的ID几乎不可能一样或接近。也就是说,如果网关在一定时间内接收到的SYN数据包和RST数据包是同一主机发的,那ID值相差不远;如果是不同主机发的,那么ID值会相差较远,网关利用这个特性可以进行虚假IP的识别。具体地,在进行实施例一所述的函数变换时,将包括ID值在内的网络参数进行函数变换作为SYN_ACK包的确认号;认证时也基于相同的网络参数进行相同的函数变换。在比较CHK与ACK3是否匹配时,具体的可以比较CHK与ACK3是否在设定的范围内,如果是则认为认证成功,否则认证失败。
实施例三
如图2所示为本发明实施例三提供的网络认证方法的流程示意图,本实施例描述一个应用实例,保护服务器的是防火墙。
步骤21、客户端向网关发送SYN数据包,请求建立与服务器的连接,该服务器受防火墙的保护。到达防火墙的SYN数据包的顺序号SEQ1值为100,标识ID的值为232,生存时间TTL的值为58;
步骤22、防火墙响应SYN数据包,向客户端发送SYN_ACK数据包,该SYN_ACK数据包的确认号ACK2的值等于FUNC(ID,TTL)=FUNC(232,58),且ACK2的值不等于(SEQ1+1)即不等于101;
步骤23、客户端接收到包含错误的确认号ACK2的SYN_ACK数据包后,向防火墙发送重置请求的RST数据包,该RST数据包的确认号ACK3的值与防火墙发送的SYN_ACK数据包的确认号的值一致,即为FUNC(232,58),SEQ3并不作限定,可以是FUNC(232,58)也可以是客户端选定的其他数值。RST数据包的标识ID’值为233,生存时间TTL’值为58。
步骤24、防火墙收到RST数据包之后,需要对客户端的身份进行校验,比较RST数据包携带的确认号ACK3的数值与根据RST携带的标识ID’和生存时间TTL’进行函数变换后的数值是否匹配,即比较FUNC(232,58)与FUNC(233,58)的差值是否处于允许的窗口WINDOWS范围内。如果是,则通过客户端的认证,则允许客户端直接与服务器进行通信。
上面的函数仅以ID和TTL为变量进行计算,也可以综合考虑多个变量构造FUNC函数,例如,可以取:
FUNC(TTL,ID,SIP,SPORT,DIP,DPORT,PROTOCOL)
=(x*TTL+y*ID+z*HASH(SIP,SPORT,DIP,DPORT,PROTOCOL))Mod M
其中,x,y,z为三个常量参数,Mod表示取余数,M表示模65536,hash表示哈希函数,其他符号含义同前面的描述一致。
对于SYN_ACK包的确认号ACK和RST包的确认号,他们的HASH结果是相同的。而对于真实的主机,不同的是ID数值,通常ID相差1或很小的数,因此,SYN_ACK包和RST包携带的网络参数经过FUNC函数变换算出来的值会在相应的窗口范围之内。例如,可以使x,y,z分为1,1,1,则差值不会大于10,那么可以取窗口为10。
对于伪造真实主机而发起的请求,则虽然HASH结果是相同的,但其TTL和ID通常不同,因为在同一时间两台不同主机,其发包的ID几乎不可能一样或接近。而TTL的数值是和操作系统版本以及路由的跳数有关,很难假定真实主机到网关的TTL与攻击主机到网关的TTL一致,因此计算后的两个FUNC数值很难一致,从而实现了认证。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
实施例四网络认证装置
图3为本发明实施例提供的网络认证装置结构示意图,网络认证装置包括:
第一接收单元31,用于接收客户端发送的同步数据SYN数据,所述SYN数据包括顺序号SEQ1和网络参数;
发送单元33,用于向客户端发送响应所述第一接收单元31接收的SYN数据的SYN_ACK数据,所述SYN_ACK数据包括确认号ACK2,ACK2的值为根据所述SYN数据的网络参数进行函数变换得到的值,且ACK2的值不等于SEQ1+1;
第二接收单元35,用于接收客户端响应所述发送单元33发送的同步确认数据SYN_ACK数据而发送的重置请求数据RST数据,所述RST数据包括顺序号SEQ3或确认号ACK3,且SEQ3或ACK3的值与ACK2的值相同,所述RST数据还包括与SYN数据相同的网络参数;
计算单元37,用于根据所述第二接收单元35接收的RST数据的网络参数进行所述函数变换,得到校验值CHK;
认证单元39,用于在所述计算单元37计算得到的CHK与所述RST数据包的SEQ3或ACK3匹配时,通过对所述客户端的认证。
若所述网络参数包括:数据包IP包头中的源IP地址SIP、源端口地址SPORT、目的IP地址DIP、目的端口DPORT、协议类型protocol或生命周期TTL中的一项或多项,则所述认证单元39用于在所述计算单元37计算得到的CHK与所述RST数据的SEQ3或ACK3相等时,通过对所述客户端的认证,具体地,用于比较CHK与SEQ3或ACK3的值是否相等,若是,则通过对所述客户端的认证。若所述网络参数包括标识ID,则所述认证单元39用于在所述计算单元37计算得到的CHK与所述RST数据的SEQ3或ACK3的差值在预设的范围时,通过对所述客户端的认证,具体地,用于比较CHK与SEQ3或ACK3的差值是否在设定的范围内,若是,则通过对所述客户端的认证。
本发明实施例提供的网络认证装置可以用于执行实施例一至三提供的网络认证方法,网络认证装置在向客户端发送SYN_ACK数据包时,其中包含的确认号ACK是通过对客户端发送的SYN数据包携带的网络参数进行特定的函数计算得到的,因此,在校验的时候,对客户端返回的RST数据包携带的网络参数进行相同的函数计算,将计算得到的值与RST数据包中的ACK值或SEQ值进行比较,判断客户端是否认证通过。因此,本发明实施例提供的网络认证装置在每次认证时无需存储SYN_ACK数据包的确认号的值,而是在校验时计算得到并进行认证,减少了对存储资源的占用。
以上本发明实施例提供网络认证装置,泛指用于加强安全防护软件或硬件实体,用于保护服务器、私有网络等以免非授权用户的非法连接、恶意攻击等,在实际产品中可能是组成防火墙、网关、路由器等的一部分或全部;也可以用于作为客户机的一部分,防护客户机免受攻击等。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。