电信如何检测多用户共享上网
此次回家,帮助好友成功对抗电信的被动探测,实现多用户共享宽带上网,其间收获诸多体会,特作此文。本文主要聚焦于简要分析电信检测用户端多台电脑共享网络的方式,但常见的通过强制在客户端安装互联星空软件等限制单用户上网的形式及其破解方法,不在本文探讨范畴,或许后续会有专门文章对此进行讲解。
通常,大家实现共享上网时,多采用路由器以NAT或NAPT方式进行IP地址转换,将多个内网地址转换为一个公网IP地址。路由器或代理仅仅对IP地址做了转换,从外部看,与普通IP包并无明显差异。那么,共享上网究竟是如何被检测到的呢?
基于我的经验以及理解,通过实战、与10000号接线员交流和在电信技术部的了解,做出以下推断。电信的检测方法主要分为两大类:一类是主动检测,另一类是被动探测。目前,电信基本朝着以被动探测为主,主动检测为辅的方向发展。
所谓主动探测,即电信机房对分配给用户的IP进行扫描。简单来讲,如同在网上随意下载一个扫描器,对某段IP进行扫描,查看是否开放80端口、161端口等,以此进行初步踩点并获取相关信息。若用户的路由或调制解调器(小猫)未修改默认口令,还可能会被登录。过去,一些存在安全漏洞的小猫和小路由开放了简单网络管理服务,为电信部门打开了161端口的大门,导致共享上网一抓一个准。不过,如今的路由固件基本都修复了这类安全隐患。
被动探测才是真正的“杀手锏”。电信拥有一套完整的机制系统(如网络尖兵),通过检测从用户电脑或路由发出的数据包,分析其内容来判断是否使用一个账号连接了多台计算机(无论采用路由还是以一台电脑充当代理)。
需要说明的是,电信部门通常不会自行进行检测多用户共享上网的工作,而是购买专业公司或组织的服务,并建立长期合作关系。电信专注于自身运营,这类检测技术和工作一般由相应公司承担,其中缘由我们不得而知。电信常用的产品包括网络尖兵、星空极速和南京信风等,在被动检测中,网络尖兵最为常见,而星空极速大家听闻较多。
网友曾深入分析网络尖兵所使用的技术,并将相关结论发布在网上。我浏览过部分内容,深感其技术强大且复杂。由于深入探究过于繁杂,我们仅从数据包角度,看看网络尖兵如何判断多用户共享上网。
我们知道,基于IP协议构建的互联网,具有5层结构。电信能够获取的信息处于第三层到第五层。网上盛传的伪造MAC地址的方法并不可行,原因在于MAC地址在出路由器时会被重新封装,电信根本无法获取。至于应用层分析,网络尖兵曾进行过一些较为极端的检测尝试(例如检测并发数、检测QQ账号登录数量等),但效果不佳,许多正常上网行为也被误封。在强大的舆论压力下,这些检测方式已很少见(估计被列为辅助规则)。鉴于应用层应用特性千差万别,电信基本不具备依靠这一层确定单个账号上网机器数量的技术能力。
如此看来,只能分析IP和TCP包头了。仔细剖析IP报头,探寻哪些信息可能泄露内网机器数量。下面来看IP报文的结构:
0 | 4 | 8 | 16 | 31
---|---|---|---|---
版本 | 首部长度 | 服务类型 | 总长度
标识 | 标志 | 片偏移量
寿命 | 协议 | 首部校验和
源端IP地址 | 目的端IP地址
长度可变的任选字段 | 填充
数据 …
- 版本:IP协议的版本,目前主流是4,教育网中部分为6。
- 首部长度:报头首部的长度,为4字节的整倍数。
- 服务类型(TOS):每台机器该值相同,用于表示优先级。
- 总长度:整个报文首部和数据的长度。
- 标识(identification):数据报的标识,用于标识数据长度超过MTU分片时,重新组装数据的位置。
- 标志:包含MF和DF,分别标志分片结束和不能分片。
- 片偏移:长报文分片后,在原报文中的位置。
- 生存时间(TTL):数据报在网络中的存活时间。
- 协议:携带数据所使用的协议。
- 首部校验和:报文首部的校验信息。
- 源地址:4字节源IP地址。
- 目的地址:4字节目的地址。
单从IP包头组成分析,“标识(identification)”很可能携带内网信息。每台内网机器进行地址转换时,IP - IP的序号保持不变,且安装Windows系统的机器,其IP - ID会随机从某个数开始依次递增。根据其离散特性,很容易判断同时使用宽带的机器数量。因此,IP头中的“16位标识(identification)”极有可能是被检测的重要参数,并且该标识貌似只有Windows系统具备,所以在网上也被不少网友称为Windows的IP指纹信息。例如,在一段时间内,电信检测系统若发现某个源IP地址有三段identification在连续变化,那就表明该“黑户”在此期间至少有三台机器同时使用宽带。
作为辅助判断的参数,还有TTL。不同操作系统的TTL值不同,而且TTL值每经过一个节点就会减1。所以,电信通过检查每个账号发出的IP包中的TTL值是否为32、64、128这几个特定值,能够初步判定用户是否使用了NAT技术。
此外,MTU部分也可作为电信分析共享上网的特征。因为ADSL的MTU和内网的MTU大小存在差异,如果设置不当,就容易被检测出来。(注:IPID为Windows操作系统特有的标识)
当然,这只是从数据包角度对电信可能采用的检测方法进行的初步分析。实际上,电信还使用了许多其他辅助方法。按照网上一些技术达人(DX)的说法,电信检测系统还常运用钟偏移检测法、应用特征检测法等复杂手段。要突破这些限制并非不可能,但相对而言较为麻烦。
总之,突破限制实现共享上网的根本原理是:将所有共享上网机器发出的数据包,在出路由前伪装成一台计算机发出的数据包,并且在返回时能按要求重新分发给相应的机器。