一种探测流加密代理服务器的方法与流程

文档序号:11206403阅读:953来源:国知局
一种探测流加密代理服务器的方法与流程

本发明涉及互联网领域,尤其涉及一种探测流加密代理服务器的方法。



背景技术:

代理服务器(proxyserver)是指能够代理网络用户去取得网络信息的服务器。形象的说,它是网络信息的中转站。且一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接或者获得目标服务器的指定资源(如文件)。

流加密是对称加密算法的一种,加密和解密双方使用相同伪随机加密数据流(pseudo-randomstream)作为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流。

申请号为201210309017.6的一种代理服务器识别方法及装置,其利用tcpack和浏览器反馈的ajax请求之间的时间差来判断用户是否使用了代理服务器。但目前还没有一种能够有效探测代理服务器是否为流加密代理服务器的方法。



技术实现要素:

本发明的目的是提供一种探测流加密代理服务器的方法,该方法能够探测代理服务器是否为采用流加密的代理服务器。

为达上述目的,本发明所采用的技术方案为:

一种探测流加密代理服务器的方法,其步骤包括:

客户端将经过流加密的报文发送给待测代理服务器,且客户端的防火墙记录所述报文内容;

防火墙修改上述报文的报文头部分,得到报文头部分的所有可填值,并将所有包含修改后的报文头部分的报文组成报文组;

将上述报文组中的报文分别发送给上述待测代理服务器,当待测代理服务器有n次未直接关闭连接时,则该待测代理服务器为流加密代理服务器;其中n由上述报文的报文头部分的可选值的个数确定。

进一步地,客户端与待测代理服务器进行通信的协议包括但不限于socks5协议、http协议、tcp协议。

进一步地,所述报文的报文头部分包括但不限于版本号和通信方法。

进一步地,采用穷举法得到所述报文头部分的所有可填值。

进一步地,当客户端通过socks5协议与待测代理服务器使用流加密进行通信时,防火墙修改的报文头部分atypdstaddr只有1个字节,且该字节的可选值为代表ipv4地址的1或代表域名的3或代表ipv6地址的4。

更进一步地,穷举所述1个字节的256种可填值,将该256种可填值分别替换所述报文头部分,并将包含所述报文头部分的报文发送给所述待测代理服务器,当待测代理服务器有三次未直接关闭连接时,则该待测代理服务器为socks5流加密代理服务器。

更进一步地,当发送给所述待测代理服务器的报文的报文头部分的可填值为1、3、4时,所述待测代理服务器未直接关闭连接。

本发明的有益效果在于:本发明提供一种探测流加密代理服务器的方法,该方法利用流加密的特性及穷举法能够成功有效的探测代理服务器是否为采用流加密的代理服务器。在该方法中客户端将经过流加密的报文发送给待测代理服务器,同时客户端的防火墙记录所述报文内容;之后防火墙对上述报文的报文头部分进行修改,并将所有包含修改后的报文头部分的报文发送给上述待测代理服务器进行探测;当待测代理服务器有n次未直接关闭连接时,则该待测代理服务器为流加密代理服务器;其中n由上述报文的报文头部分的可选值的个数确定。

附图说明

图1为本发明提供的一种探测流加密代理服务器的方法流程图。

图2为本发明一实施例的一种探测流加密代理服务器的方法流程图。

具体实施方式

为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。

本发明提供一种探测流加密代理服务器的方法,其核心构思为:流加密使得明文和密文一一对应,修改任一位的明文都会导致对应位置的密文发生改变。

当使用代理服务器通信时,防火墙修改加密报文中的报文头部分,例如版本号和通信方法,会导致代理服务器立即关闭连接,基于此可以对代理服务器进行主动探测。

本发明提供一种探测流加密代理服务器的方法,请参考图1,该方法步骤包括:

客户端将经过流加密的报文发送给待测代理服务器,且客户端的防火墙记录所述报文内容;

防火墙修改上述报文的报文头部分,得到报文头部分的所有可填值,并将所有包含修改后的报文头部分的报文组成报文组;

将上述报文组中的报文分别发送给上述待测代理服务器,当待测代理服务器有n次未直接关闭连接时,则该待测代理服务器为流加密代理服务器;其中n由上述报文的报文头部分的可选值的个数确定。

下面举两个具体实施例来解释说明本发明。

实施例1

请参考图2,在该实施例中,客户端使用socks5协议与代理服务器通信,其步骤包括:

1、当客户端使用socks5协议与待测代理服务器使用流加密进行加密通信时,客户端将经过流加密的报文发送给待测代理服务器,同时客户端的防火墙记录所述报文内容。

2、防火墙修改上述经过流加密的报文的报文头部分atypdstaddr,且该报文头部分atypdstaddr只有一位(即1个字节),其有可能出现三个可选值(即1、3、4)中的一个,其中1代表ipv4地址,3代表域名,4代表ipv6地址。

3、穷举该报文头部分的atypdstaddr位的所有的256种可填值,并将这256种可填值替换报文中的报文头部分的该位数据,之后将包含256种可填值的报文头部分的报文发送给待测代理服务器,发现待测代理服务器有三次未直接关闭连接,则该待测代理服务器为socks5流加密代理服务器。

客户端也可使用http协议、tcp协议等其它协议与代理服务器进行通信,其方法步骤上述相似,这里不再详述。

实施例2

该实施例使用aes(高级加密标准)加密算法加密数据。

现有一个数据包,共7个字节,即0x01、0x08、0x08、0x08、0x08、0x00、0x50。

将该数据包比对socks5协议,可以判定这是一个ipv4数据包,其目标地址为8.8.8.8的80端口,使用aes-256-cfb算法,密码abc加密后,该数据包变为0xbb、0x59、0x1c、0x4a、0xb9、0x0a、0x91、0xdc、0x07、0xef、0x72、0x05、0x90、0x42、0xca、0x0d、0x4c、0x3b、0x87、0x8e、0xca、0xab、0x32。

该数据包的前16个字节都是iv(initializationvector,初始化向量),因为明文和密文是一一对应的,因此只要修改正文第一个字节0x4c就可以起到修改明文中第一个字节的效果。

由于socks5协议的atypdstaddr字段值通常只有三种可选值,所以只要穷举第三个字节的所有可填值(0-255),如果有三次代理服务器没有立即关闭连接,即可判断客户端使用了socks5协议进行加密通信。

以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

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