联通校园宽带简介
  通常情况下在学校联通营业厅即可办理,带宽不同价格不同(30/40/50元分别对应2/4/10M带宽,很多学校已经免费提速5倍,即相同的价格可以享受10/20/50M带宽。)办理时会给你开户,并告知使用方法(有的学校会有人来安装,有的学校是直接把网线插入宿舍网口就可以了),无线的话,需要自行购买无线路由器。
客户端
  开户时联通会给一个账号密码,上网必须使用联通提供的客户端,手机想上网也得用客户端,且一个账号最多只能登录一台电脑和一部手机。客户端会检测电脑是否共享上网,检测到共享的话会强制断网。联通这么做是为了杜绝宽带共享使用,至于原因大家都懂。
解除限制
  有人尝试直接使用系统自带的PPPoE拨号却提示691,很明显,联通对账号密码进行了加密,给的账号密码还要经过特殊的算法加密以后才能使用。联通客户端会把用户输入的账号密码,通过他的算法加密后的再传送到联通,从而拨号成功。因此,如果我们想直接使用系统自带的PPPoE拨号,就必须知道真实的账号密码,3.3版本的客户端使用的是静态加密,即账号后+@wo201,密码前+\001(\001指的是ASCII编码为1的字符,代号为SOH,不可显示),联通肯定是发现了静态密码的弊端,所以在2017年暑假期间,对客户端进行了升级,升级后的版本是3.7,更换了新的加密方式,所以只能重新分析客户端。直接使用Fiddler2和Whireshark进行抓包(其他抓包工具亦可),发现客户端每次拨号前都会发出一个Get请求,得到一个json格式的数据,请求地址是http://114.247.41.50:9343/aaa/get/pin?user=账号,得到的内容中大致两个内容:msg应该是请求状态,成功显示ok(没遇到失败的情况,所以不知道失败的代码是啥);pin是一个随机数(每次请求都不相同,间隔时间在10秒以内可能相同)。同时发现Whireshark抓到一个PPPoE数据包。红色位置是账号,涂掉了~

北京联通宽带网络架构 北京联通宽带2021_客户端

北京联通宽带网络架构 北京联通宽带2021_加密方式_02

Peer-ID就是PPPoE拨号的账号了,和3.3版本的一样,账号后+@wo201

Password自然就是PPPoE拨号的密码了,前边一串内容和之前Fiddler2发出Get请求后得到的pin是一致的,所以可以发现密码的算法换成了动态密码,即pin值+密码(好像也不能算是加密……)

知道了加密方式就可以自己用系统自带的PPPoE进行拨号了,由于pin值最多10秒就会发生变化,变化后密码自然就不对了,所以要拼手速,更稳妥的办法就是写一个软件,代替联通客户端发送Get请求,解析json,得到pin,然后创建PPPoE连接进行拨号,本人的编程能力实在是菜(什么JAVA、C++完全不会)……只会用易语言,附上易语言写的关键部分代码,只能靠自己转换为其他语言了。

北京联通宽带网络架构 北京联通宽带2021_北京联通宽带网络架构_03

  我没有直接给出成品,一方面是易语言写的程序报毒很普遍,为了避免不必要的误会,所以没有直接给出编译好的程序。另一方面我觉得授人以鱼不如授人以渔,所以介绍了下分析的过程和方法,毕竟毕业以后就没有这种环境进行测试了。一旦联通再次更改加密方式,又会失效。