本发明涉及网络安全领域,尤其涉及一种识别http代理ip地址的装置和方法。
背景技术:
代理服务器英文全称是proxyserver,其主要功能是代理网络用户去取得网络信息资源,其主要责任就是转发网络信息。形象的说它是网络信息的中转站。目前,代理ip服务器技术已经非常广泛的应用于互联网的各个领域,其初衷是为互联网用户带来便利,然而,在网络迅猛发展的同时,网络安全管理却出现了新的课题,特别是网络安全问题。一方面,代理服务器技术很容易就打破了风险控制领域的http代理ip地址与地理位置互查技术,该技术长期以来作为一个强风险因子而被使用。也即是说,检测一个用户是否短时间内在不同的地理位置登录,如果是,则可以认为是一个高风险操作。另一方面,代理服务器技术可以隐藏自己的ip地址以减少自己访问网站留下的痕迹。也正因如此,有破坏者使用代理工具访问一些站点(例如,维基百科)并做出无效、甚至错误的修改来毁坏站点。本申请的主要目的就是区分出用户是否使用ip代理服务器。也就是说,判断一个ip地址是一个终端上的真实ip地址,还是一个虚拟的http代理服务器的ip地址。
本问题一直在网络安全领域中被讨论,本领域也有针对该类问题的一些解决方案,但是这些解决方案主要还是集中在两个方向:1、代理服务器库的收集,有基于爬虫从互联网上抓取的,还有基于主动扫描的代理服务器收集。2、基于反向探测,反向扫描目前互联网上的所有主机,判断知名的代理端口是否开放。第一种思路下的方案,代理服务器库的收集,针对基于爬虫从互联网上抓取的方式,有很多代理服务器是未在互联网上公布的,或者是黑客控制的一些肉机,此信息非常的不完全。第二种思路下的方案,基于反向探测,原理就是反向扫描所有的ip地址,判断一些常用的代理端口是否开放。但是互联网上活跃主机量非常巨大,而且代理服务器的服务端口不固定,故此方案扫描周期非常长。
现有的http代理ip节点识别方法大多通过终端发送请求与服务器建立http连接然后监听回应从而进行识别,但是进行tcp连接的三次握手过程非常耗时,因而不适合对大的ip库进行快速的代理ip节点识别。所谓三次握手(three-wayhandshake),是指建立一个tcp连接时,需要客户端和服务器总共发送3个报文。一般而言,握手过程中会等待服务器的回复,当进行大量扫描时,这个等待的时间会成为提高扫描速度的瓶颈,不论使用多线程、多进程还是调整timeout参数也都不能满足大批量ip识别的要求。
技术实现要素:
本发明要解决的技术问题是一种面向大规模网络能快速准确地识别出哪些ip地址是http代理ip的方法以及装置,海量的ip库进行大批量识别时,握手过程中不需要等待服务器的回复,因为采用无状态扫描机制大大提升了扫描的速度,这样可对全网的代理节点进行识别。
为了解决上述技术问题,本发明提供了一种面向大规模网络快速识别http代理ip地址的方法,包括如下步骤:
s1:构建ip地址库,该ip地址库是给定的或者通过反向扫描互联网上的所有主机所收集的ip地址;
s2:无状态发射器向每个所述ip发送一个syn握手数据包连接之后忘记该连接,在发送的syn握手数据包的可用字段中加入特定的识别信息可以过滤掉其它的应用流量;
s3:通过cdn进行加速将路由导向最近的服务节点;
s4:如果上述带有识别信息的数据包能达到识别服务器,说明该ip将数据包进行了转发,则认定该ip节点为http代理ip节点,将该ip节点与对应的端口进行记录。
优选方案为:所述步骤s2中的无状态发射器为异步无状态发射器,其只包括发包模块,不包括收包模块。
优选方案为:所述识别服务器为分布式节点服务器,包括收包模块,收包模块接收带有所述特定的识别信息的数据包。
本发明还公开了一种面向大规模网络快速识别http代理ip地址的装置,包括:
获取模块:构建ip地址库;
分发模块:无状态发射器向每个所述ip发送syn握手数据包;
加速模块:通过cdn对数据包路由进行加速。
优选方案为:识别http代理ip地址的装置还包括识别服务器,接收带有特定的识别信息的数据包。
本发明公开的另一种技术方案在于:一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任一项所述方法的步骤。
本发明的技术效果在于:1、本发明的快速识别http代理ip地址的方法、能够快速准确地识别ip地址是否为http代理ip地址的方法以及装置,面向大规模网络海量的ip库进行大批量识别时,因为采用无状态扫描机制大大提升了扫描的速度,这样可对全网的http代理ip节点进行识别。
2、本发明的无状态发射器只有发包模块,不包括收包模块,由于发射器与服务器之间不需要建立完整的tcp连接而且也不用保存请求后的连接状态,在向目标ip发送一个syn握手数据包连接之后忘记该连接,握手发包过程中不需要等待服务器的回复,接着向其它目标发送syn握手数据包,因此,节省了等待服务器的回复时间,减少了系统资源消耗,极大地提升了扫描效率。
3、无状态发射器发送的数据包的可用字段中,加入特定的识别信息,可以过滤掉其它应用的流量。
附图说明
图1是本发明快速识别http代理ip地址的方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
为了方便理解,下面对本申请实施例中涉及的名词进行解释:
传输控制协议(tcp,transmissioncontrolprotocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
tcp三次握手:三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互。第一次握手:客户端发送syn包(syn=j)到服务器,并进入syn_send状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的syn(ack=j 1),同时自己也发送一个syn包(syn=k),即syn ack包,此时服务器进入syn_recv状态;第三次握手:客户端收到服务器的syn ack包,向服务器发送确认包ack(ack=k 1),此包发送完毕,客户端和服务器进入established状态,完成三次握手。连接建立后,客户端和服务器就可以开始进行数据传输了。
syn(synchronizesequencenumbers,同步序列编号)包:是tcp/ip建立连接时发送的包含握手信号的数据包。在客户端和服务器之间建立正常的tcp网络连接时,客户机首先发出一个syn包,服务器使用syn ack应答表示接收到了这个syn包,最后客户机再以ack包响应,这样在客户端和服务器之间才能建立起可靠的tcp连接。
ack(acknowledgecharacter,确认字符)包:即在接收方成功的接收到数据后回复的标识确认收到数据的数据包。
http代理ip地址:在本申请中特指由代理服务器向用户提供的用于接入http网络的一类ip地址,以隐藏用户的真实ip地址。例如,当代理服务器为http服务器时,用户首先向http代理服务器发送连接请求,http代理服务会将用户的请求转发到服务器,而服务器会把http代理服务器当作“客户端”与其通信,而完全察觉不到真正客户端的存在,这实现了隐藏客户端ip的目的。
代理服务器常用的代理端口例如:(1)http协议代理服务器常用端口号:80/8080/3128/8081/9080;(2)socks代理协议服务器常用端口号:1080;(3)ftp(文件传输)协议代理服务器常用端口号:21;(4)telnet(远程登录)协议代理服务器常用端口:23。
在具体实践过程中,常用的识别代理ip地址的方法主要是主动扫描的检测方式:由检测服务器主动向待检测的ip地址常用的代理端口发送测试数据包,若接收到该代理端口返回的针对测试数据包的回包,则表示该代理端口为开放端口,若ip地址常用的代理端口中存在开放端口,则表示该待检测的ip地址为通过代理服务器伪装的代理ip地址。
本发明公开一种面向大规模网络快速识别代理ip地址的方法,包括如下步骤:
s1:构建ip地址库,该ip地址库是给定的或者通过反向扫描互联网上的所有主机所收集的ip地址;
s2:无状态发射器向每个所述ip发送一个syn握手数据包连接之后忘记该连接,在发送的syn握手数据包的可用字段中加入特定的识别信息可以过滤掉其它的应用流量;
s3:通过cdn进行路由加速将所述请求导向最近的服务节点;
s4:如果上述带有识别信息的数据包能达到识别服务器,说明该ip将数据包进行了转发,则认定该ip节点为http代理ip节点,将该ip节点与对应的端口进行记录。
本实施例,无状态发射器只有发包模块,不包括收包模块,由于发射器与服务器之间不需要建立完整的tcp连接而且也不用保存连接状态,在发送一个syn握手数据包之后忘记该请求后的连接状态,接着向其它目标发送syn握手数据包,因此减少了系统资源消耗,极大的提升了扫描效率。此外,通过在数据包的可用字段中加入特定的识别信息可以过滤掉其它应用的流量,特定的识别信息根据不同的运行环境自己定义关键词即可。
本实施例,所述步骤s2中的无状态发射器为异步无状态发射器。
本实施例,所述识别服务器为分布式节点服务器,包括收包模块,收包模块接收带有所述特定的识别信息的数据包。
本发明公开了一种面向大规模网络快速识别代理ip地址的装置,包括:获取模块:构建ip地址库;分发模块:无状态发射器对所述ip库进行无状态地高速发包;加速模块:通过cdn进行加速连接请求。
本发明还公开了一种快速识别代理ip地址的装置,包括识别模块,识识别模块接收带有特定的识别信息的数据包。
本发明公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
1.一种面向大规模网络快速识别http代理ip地址的方法,其特征在于,包括如下步骤:
s1:构建ip地址库,该ip地址库是给定的或者通过反向扫描互联网上的所有主机所收集的ip地址;
s2:无状态发射器向每个所述ip发送一个syn握手数据包连接之后忘记该连接,在发送的syn握手数据包的可用字段中加入特定的识别信息可以过滤掉其它的应用流量;
s3:通过cdn进行加速将路由导向最近的服务节点;
s4:如果上述带有识别信息的数据包能达到识别服务器,说明ip将数据包进行了转发,则认定该ip节点为http代理ip节点,将该ip节点与对应的端口进行记录。
2.根据权利要求1所述的面向大规模网络快速识别http代理ip地址的方法,其特征在于,所述步骤s2中的无状态发射器为异步无状态发射器,其只包括发包模块,不包括收包模块。
3.根据权利要求1所述的面向大规模网络快速识别http代理ip地址的方法,其特征在于,所述识别服务器为分布式节点服务器,包括收包模块,收包模块接收带有所述特定识别信息的数据包。
4.一种面向大规模网络快速识别http代理ip地址的装置,其特征在于,包括:
获取模块:构建ip地址库;
分发模块:无状态发射器向每个所述ip发送syn握手数据包;
加速模块:通过cdn对数据包路由进行加速;
如权利要求4所述的快速识别http代理ip地址的装置,其特征在于,其还包括识别服务器,接收带有特定的识别信息的数据包。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3任一项所述方法的步骤。
技术总结