发明内容
为解决上述技术问题,本发明提供一种TCP连接方法及装置、内网认证方法及***,能够通过AP(Access Point,接入点)与STA建立TCP连接之后实现内网Portal认证。
本发明提供的技术方案如下:
本发明公开了一种TCP连接方法,用于在AP与STA之间建立TCP连接,包括步骤:S20:AP拦截STA向目标网站发送的连接请求报文;S21:AP根据所述连接请求报文伪装成目标网站,向STA返回连接应答报文,与STA建立TCP连接。
本发明通过使用假三次握手协议,在内网的环境下实现AP与STA的TCP连接,为实现内网Portal认证建立先决条件。
进一步优选的,所述步骤S20之前还包括步骤:S201:AP拦截STA发送的域名解析请求;S202:AP根据所述域名解析请求进行地址解析,并返回解析地址至STA;S203:STA根据所述解析地址生成连接请求报文,并向目标网站发送所述连接请求报文。
本发明采用虚拟DNS服务器给STA解析地址,巧妙地在内网完成DNS解析,为访问域名的STA弹出Portal认证页面提供了保障。
本发明还公开了一种内网认证方法,其特征在于,包括步骤:S10:STA向目标网站发送连接请求报文,请求建立TCP连接;S20:AP拦截STA向目标网站发送的所述连接请求报文;S21:AP根据所述连接请求报文伪装成目标网站,向STA返回连接应答报文,与STA建立TCP连接;S11:STA向目标网站发起HTTP请求;S22:AP拦截所述HTTP请求,向所述STA返回HTTP响应报文,并向所述STA返回云AC的地址;S12:STA接收所述HTTP响应报文,并向云AC发送HTTP请求;S30:云AC重定向到portal认证页面,返回所述portal认证页面给所述STA;S13:STA在所述portal认证页面进行认证。
本发明通过AP与STA建立假TCP连接,拦截STA的HTTP请求,使得STA在不连接外网的情况下跳转到Portal认证页面,从而实现内网Portal认证,解决了一些特殊环境如学校、医院等只允许用户访问内部网络资源不允许访问Internet的情况。
进一步优选的,所述步骤S10之前还包括步骤:S201:AP拦截STA发送的域名解析请求;S202:AP根据所述域名解析请求进行地址解析,并返回解析地址至STA;S203:STA根据所述解析地址生成连接请求报文,并向目标网站发送所述连接请求报文。
本发明采用虚拟DNS服务器给STA解析地址,巧妙地在内网完成DNS解析,为访问域名的STA弹出Portal认证页面提供了保障。
进一步优选的,所述步骤S21进一步包括:S211:AP拦截所述连接请求报文,根据所述连接请求报文获得目标网站的目的IP和目的MAC;S212:AP根据目标网站的目的IP和目的MAC生成连接应答报文;S213:AP发送所述连接应答报文至STA,与STA建立TCP连接。
本发明通过在AP中嵌入假三次握手模块,并伪造DNS服务器接管DNS,既能使访问域名的STA弹出Portal认证页面,也能使访问IP地址的STA弹出Portal认证页面。
本发明还公开了一种TCP连接装置,用于与STA建立TCP连接,其特征在于,包括AP和STA,所述STA包括:TCP连接请求模块,用于发送连接请求报文至目标网站,请求建立TCP连接;所述AP具体包括:拦截模块,用于拦截STA向目标网站发送的连接请求报文;假三次握手模块,用于根据所述连接请求报文伪装成目标网站,向STA返回连接应答报文;所述STA还包括:TCP连接建立模块,用于当接收到所述AP发送的连接应答报文时,与AP建立TCP连接。
进一步优选的,所述拦截模块还用于拦截STA发送的域名解析请求;所述AP还包括:伪造DNS服务器,用于当所述拦截模块拦截STA发送的所述域名解析请求时对所述域名解析请求进行地址解析,并返回解析地址至STA。
本发明还公开了一种内网认证***,其特征在于,包括STA、AP以及云AC;所述STA包括:TCP连接请求模块,用于发送连接请求报文至目标网站,请求建立TCP连接;TCP连接建立模块,用于当接收到所述AP发送的连接应答报文时,与AP建立TCP连接;HTTP请求模块,用于当建立TCP连接后,向目标网站发起HTTP请求;以及还用于向所述云AC发起HTTP请求;所述AP包括:拦截模块,用于拦截所述STA向目标网站发送的连接请求报文;以及还用于拦截所述STA向目标网站发送的所述HTTP请求;假三次握手模块,用于根据所述连接请求报文伪装成目标网站,向STA返回连接应答报文,建立TCP连接;地址重定向模块,用于当所述拦截模块拦截所述HTTP请求之后,向所述STA返回云AC的地址;所述云AC用于当接收到所述HTTP请求时,重定向到portal认证页面,并返回所述portal认证页面给所述STA;所述STA还包括认证模块,用于在所述portal认证页面进行认证。
进一步优选的,所述拦截模块还用于拦截所述STA发送的域名解析请求;所述AP还包括:地址解析模块,用于对所述域名解析请求进行地址解析,并返回解析地址至STA。
进一步优选的,所述假三次握手模块具体包括:获取模块,用于根据所述连接请求报文获得目标网站的目的IP和目的MAC;报文生成模块,用于根据目标网站的目的IP和目的MAC生成连接应答报文;连接模块,用于发送所述连接应答报文至STA,与STA建立TCP连接。
与现有技术相比,本发明具有以下有益效果:
1)在外网不可达情况下,实现虚拟DNS服务器,给STA解析地址,再使用假三次握手协议,巧妙的在内网完成弹出Portal的机制;
2)能够在校园或者医院等需要内网Portal的环境下,更加完善的提供Portal认证方案。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
图1为本发明一种TCP连接方法的主要步骤示意图,作为本发明的一个具体实施例,如图1所示,一种TCP连接方法,用于在AP与STA之间建立TCP连接,包括步骤:S10:STA向目标网站发送连接请求报文,请求建立TCP连接;S20:AP拦截STA向目标网站发送的连接请求报文;S21:AP根据所述连接请求报文伪装成目标网站,向STA返回连接应答报文,与STA建立TCP连接。
具体的,本发明中的STA在WLAN中一般为客户端,可以是装有无线网卡的计算机,也可以是有WiFi模块的智能手机。STA可以是移动的,也可以是固定的,是无线局域网的最基本组成单元。
AP是用于无线网络的无线HUB,是无线网络的核心,是移动计算机用户进入有线以太网骨干的接入点。
连接请求报文(synchronous)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
本实施例中STA与AP建立的TCP连接,非真正意义上的TCP连接,是AP通过拦截STA发送的连接请求报文连接请求,使用假三次握手协议,伪装成目标网站与STA建立的TCP连接。
在无外网连接的情况下,目标域名或IP地址不存在或不可达,而STA无法和一个不存在或不可达的网站建立TCP连接,因此Portal认证无法继续,所以本发明通过伪装成目标网站,与STA先建立TCP连接,用于在TCP连接截获之后拦截STA发送的HTTP请求,进而进行下一步内网环境下Portal认证。
本发明通过在内网的环境下实现STA于AP之间建立TCP连接,为内网Portal认证建立先决条件。
优选的,所述步骤S20之前还包括步骤:S201:AP拦截STA发送的域名解析请求;S202:AP根据所述域名解析请求进行地址解析,并返回解析地址至STA;S203:STA根据所述解析地址生成连接请求报文,并向目标网站发送所述连接请求报文。
本发明采用AP接管DNS的方式,采用虚拟DNS服务器给STA解析地址,巧妙地在内网环境下完成DNS解析,为访问域名的STA弹出Portal认证页面提供了保障。
图2为本发明一种内网认证方法的主要步骤示意图,作为本发明的一个具体实施例,如图2所示,一种内网认证方法,包括步骤:S10:STA向目标网站发送连接请求报文,请求建立TCP连接;S20:AP拦截STA向目标网站发送的所述连接请求报文;S21:AP根据所述连接请求报文伪装成目标网站,向STA返回连接应答报文,与STA建立TCP连接;S11:STA向目标网站发起HTTP请求;S22:AP拦截所述HTTP请求,向所述STA返回HTTP响应报文,并向所述STA返回云AC的地址;S12:STA接收所述HTTP响应报文,并向云AC发送HTTP请求;S30:云AC重定向到portal认证页面,返回所述portal认证页面给所述STA;S13:STA在所述portal认证页面进行认证。
本发明通过AP与STA建立假TCP连接,拦截STA的HTTP请求,使得STA在不连接外网的情况下跳转到Portal认证页面,从而实现内网Portal认证,解决了一些特殊环境如学校、医院等只允许用户访问内部网络资源不允许访问Internet的情况。
优选的,图3为本发明一种内网认证方法的完整步骤示意图。如图3所示,一种内网认证方法,包括步骤:S201:AP拦截STA发送的域名解析请求;S202:AP根据所述域名解析请求进行地址解析,并返回解析地址至STA;S203:STA根据所述解析地址生成连接请求报文,并向目标网站发送所述连接请求报文;S10:STA向目标网站发送连接请求报文,请求建立TCP连接;S20:AP拦截STA向目标网站发送的所述连接请求报文;S21:AP根据所述连接请求报文伪装成目标网站,向STA返回连接应答报文,与STA建立TCP连接;S11:STA向目标网站发起HTTP请求;S22:AP拦截所述HTTP请求,向所述STA返回HTTP响应报文,并向所述STA返回云AC的地址;S12:STA接收所述HTTP响应报文,并向云AC发送HTTP请求;S30:云AC重定向到portal认证页面,返回所述portal认证页面给所述STA;S13:STA在所述portal认证页面进行认证。
本发明进一步采用虚拟DNS服务器给STA解析地址,巧妙地在内网完成DNS解析,为访问域名的STA弹出Portal认证页面提供了保障。
优选的,所述步骤S21进一步包括:S211:AP拦截所述连接请求报文,根据所述连接请求报文获得目标网站的目的IP和目的MAC;S212:AP根据目标网站的目的IP和目的MAC生成连接应答报文;S213:AP发送所述连接应答报文至STA,与STA建立TCP连接。
本发明通过在AP中嵌入假三次握手模块,并伪造DNS服务器接管DNS,既能使访问域名的STA弹出Portal认证页面,也能使访问IP地址的STA弹出Portal认证页面。
下面以手机终端作为STA为例,详细介绍本发明的工作原理。
本发明装置首先在AP内嵌入一个假三次握手的模块,当STA连接到AP的设备SSID时访问网络,访问网络的时候分以下两种情况:
1)图4为本发明一种内网认证方法STA访问目标网站域名的原理拓扑图。如图4所示,STA在内网环境下访问域名地址,比如www.phicomm.com,STA通过AP设备的伪造DNS服务器完成DNS解析,继续发送连接请求报文,AP设备通过拦截连接请求报文,伪装成连接请求的目的IP和目的MAC,给STA发送连接应答报文即SYN ACK报文,欺骗STA完成三次握手协议,STA回复TCP ACK报文,STA完成三次握手后与AP设备建立TCP连接。STA发送HTTP请求,AP设备截获HTTP请求后,给其返回HTTP 200OK的HTTP响应报文,并将地址指向云AC。STA进一步向云AC发送HTTP请求,云AC将重定向到Portal认证页面,这样就能完成内网环境下的域名Portal认证。
2)图5为本发明一种内网认证方法STA访问目标网站IP地址的原理拓扑图。如图5所示,STA在内网环境下访问IP地址,比如1.1.1.1,STA向目标网站发送连接请求报文,AP设备通过拦截连接请求报文即TCP SYN报文,伪装为连接请求的目的IP和目的MAC,给STA发送连接应答报文即TCP SYN ACK报文,欺骗STA完成三次握手协议。STA完成三次握手后,发送HTTP请求,AP设备截获后,给其返回HTTP 200OK的HTTP响应报文,并将地址指向云AC,STA进一步向云AC发送HTTP请求,云AC将重定向到Portal认证页面,这样就能完成内网环境下的域名Portal。这样就能完成内网环境下的IP地址Portal认证。
图6为本发明一种TCP连接装置的组成框图,如图6所示,一种TCP连接装置,用于与STA100建立TCP连接,包括AP 200和STA100,所述STA100包括:TCP连接请求模块101,用于发送连接请求报文至目标网站,请求建立TCP连接;所述AP 200具体包括:拦截模块201,用于拦截STA100向目标网站发送的连接请求报文;假三次握手模块202,用于根据所述连接请求报文伪装成目标网站,向STA100返回连接应答报文;所述STA100还包括:TCP连接建立模块102,用于当接收到所述AP 200发送的连接应答报文时,与AP 200建立TCP连接。
优选的,所述拦截模块201还用于拦截STA100发送的域名解析请求;所述AP 200还包括:伪造DNS服务器,用于当所述拦截模块201拦截STA100发送的所述域名解析请求时对所述域名解析请求进行地址解析,并返回解析地址至STA100。
图7为本发明一种内网认证***的主要组成框图,作为本发明的一个具体实施例,如图7所示,一种内网认证***,包括STA100、AP 200以及云AC 300;所述STA100包括:TCP连接请求模块101,用于发送连接请求报文至目标网站,请求建立TCP连接;TCP连接建立模块102,用于当接收到所述AP 200发送的连接应答报文时,与AP 200建立TCP连接;HTTP请求模块103,用于当建立TCP连接后,向目标网站发起HTTP请求;以及还用于向所述云AC 300发起HTTP请求;所述AP 200包括:拦截模块201,用于拦截所述STA100向目标网站发送的连接请求报文;以及还用于拦截所述STA100向目标网站发送的所述HTTP请求;假三次握手模块202,用于根据所述连接请求报文伪装成目标网站,向STA100返回连接应答报文,建立TCP连接;地址重定向模块203,用于当所述拦截模块201拦截所述HTTP请求之后,向所述STA100返回云AC 300的地址;所述云AC 300用于当接收到所述HTTP请求时,重定向到portal认证页面,并返回所述portal认证页面给所述STA100;所述STA100还包括认证模块104,用于在所述portal认证页面进行认证。
具体的,本发明中的STA100在WLAN中一般为客户端,可以是装有无线网卡的计算机,也可以是有WiFi模块的智能手机。STA100可以是移动的,也可以是固定的,是无线局域网的最基本组成单元。
AP是用于无线网络的无线HUB,是无线网络的核心,是移动计算机用户进入有线以太网骨干的接入点。
本实施例中STA100与AP 200建立的TCP连接,非真正意义上的TCP连接,是AP 200通过拦截STA100发送的连接请求报文连接请求,使用假三次握手协议,伪装成目标网站与STA 100建立的TCP连接。
优选的,所述拦截模块201还用于拦截所述STA 100发送的域名解析请求;所述AP200还包括:地址解析模块204,用于对所述域名解析请求进行地址解析,并返回解析地址至STA 100。
图8为本发明一种内网认证***的完整组成框图。优选的,如图8所示,所述假三次握手模块202具体包括:获取模块2021,用于根据所述连接请求报文获得目标网站的目的IP和目的MAC;报文生成模块2022,用于根据目标网站的目的IP和目的MAC生成连接应答报文;连接模块2023,用于发送所述连接应答报文至STA 100,与STA 100建立TCP连接。
本发明通过在AP 200中嵌入假三次握手模块202,并伪造DNS服务器接管DNS,既能使访问域名的STA 100弹出Portal认证页面,也能使访问IP地址的STA 100弹出Portal认证页面。
需要说明的是,本***中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。