一种控制代理上网服务的方法、装置及客户端技术领域
本发明涉及计算机技术领域,尤指一种控制代理上网服务的方法、装置及
客户端。
背景技术
目前高校学生上网,多数是采用包月计费,理论上应该是一个学生一个账
号登录上网。但是,学生们为了逃费,可能会一个学生通过认证程序登录上网,
然后再为其他学生提供代理上网服务。学生上网使用的认证程序具备检测代理
上网行为并防止的功能。但是,如果首先登录的学生在认证程序认证成功后,
强杀认证程序对应的进程,然后利用第三方工具模拟认证程序和交换机之间的
心跳,仍可以继续为其他学生提供代理上网服务。由于认证程序对应的进程已
经被杀掉,首先登录上网的学生为其他学生提供代理上网服务的行为也不会被
发现了。
为了防止认证程序对应的进程被杀后,首先登录的学生仍可以继续为其他
学生提供代理上网服务,一般会在应用层开启一个守护进程,来守护认证程序
对应的进程,如果认证程序对应的进程被杀,守护进程代替认证程序对应的进
程发出下线报文,来通知交换机关闭端口,这样首先登录的学生自己不能上网
了,也就不能为其他学生提供代理上网服务了。但是,现在的杀进程工具非常
强大,如网络上的冰刃等工具,首先登录的学生可以使用这些杀进程工具轻松
突破应用层的守护进程,将守护进程杀掉,然后再杀掉认证程序对应的进程,
甚至可以通过应用程序编程接口(Application Programming Interface,API)函
数同时杀掉守护进程和认证程序对应的进程,然后继续上网并为其他学生提供
代理上网服务。因此,现有的控制代理上网的方法不能很好地杜绝代理上网服
务的现象。
发明内容
本发明实施例提供一种控制代理上网服务的方法、装置及客户端,用以解
决现有的控制代理上网服务的方法不能很好地杜绝代理上网的现象的问题。一
种控制代理上网服务的方法,包括:
过滤驱动接收到认证程序发送的携带事件对象句柄的守护请求消息后,向
所述认证程序返回守护响应消息,指示所述认证程序请求交换机开启提供上网
服务的端口;
确定自身要被卸载时,使用所述事件对象句柄指示所述认证程序发送下线
报文,来通知交换机关闭所述端口。
一种控制代理上网服务的装置,包括:
第一接收单元,用于接收到认证程序发送的携带事件对象句柄的守护请求
消息;
第一发送单元,用于所述第一接收单元接收到所述守护请求消息后,向所
述认证程序返回守护响应消息,指示所述认证程序请求交换机开启提供上网服
务的端口;
指示单元,用于确定自身所在的过滤驱动要被卸载时,使用所述事件对象
句柄指示所述认证程序发送下线报文,来通知交换机关闭所述端口。
一种控制代理上网服务的方法,包括:
过滤驱动接收到认证程序发送的守护请求消息后,向所述认证程序返回守
护响应消息,指示所述认证程序请求交换机开启提供上网服务的端口,其中,
所述守护请求消息包括所述认证程序对应的进程的标识信息和下线报文;
根据所述认证程序对应的进程的标识信息确定所述认证程序对应的进程
被关闭后,发送所述下线报文来通知所述交换机关闭所述端口。
一种控制代理上网服务的装置,包括:
第二接收单元,用于接收认证程序发送的守护请求消息,其中,所述守护
请求消息包括所述认证程序对应的进程的标识信息和下线报文;
第二发送单元,用于所述第二接收单元接收到所述守护请求消息后,向所
述认证程序返回守护响应消息,指示所述认证程序请求交换机开启提供上网服
务的端口;以及根据所述认证程序对应的进程的标识信息确定所述认证程序对
应的进程被关闭后,发送所述下线报文来通知所述交换机关闭所述端口。
一种客户端,包括上述控制代理上网服务的装置。
本发明有益效果如下:
本发明实施例提供的控制代理上网服务的方法、装置及客户端,过滤驱动
接收到认证程序发送的携带事件对象句柄的守护请求消息后,向所述认证程序
返回守护响应消息,指示所述认证程序请求交换机开启提供上网服务的端口;
确定自身要被卸载时,使用所述事件对象句柄指示所述认证程序发送下线报
文,来通知交换机关闭所述端口。该方案使用过滤驱动来守护认证程序,由于
过滤驱动一般不容易被卸载,即使过滤驱动自身要被卸载,仍可以在被卸载前
通知认证程序发送下线报文,这样就可以有效控制代理上网服务。
附图说明
图1为本发明实施例中控制代理上网服务的方法的流程图;
图2为本发明实施例中客户端上的操作系统结构图;
图3为本发明实施例中与图1中的控制代理上网服务的方法对应的控制代
理上网服务的装置的结构示意图;
图4为本发明实施例中另一种控制代理上网服务的方法的流程图;
图5为本发明实施例中与图4中的控制代理上网服务的方法对应的控制代
理上网服务的装置的结构示意图。
具体实施方式
针对现有的控制代理上网的方法不能很好地杜绝代理上网服务的现象的
问题,本发明实施例提供一种控制代理上网服务的方法,该方法的流程如图1
所示,执行步骤如下:
S10:认证程序向过滤驱动发送携带事件对象句柄的守护请求消息。
当学生使用客户端上网时,需要在客户端上安装认证程序,该认证程序会
创建事件对象句柄,用来与过滤驱动进行通信。
S11:过滤驱动接收到认证程序发送的守护请求消息后,向认证程序返回
守护响应消息。
这里的过滤驱动,可以采用网络驱动接口规范(Network Driver Interface
Specification,NDIS)中间层驱动或NDIS Filter驱动,二者都是微软NDIS规
范里面支持的驱动类型,成熟稳定。操作系统自身的很多模块也是采用这些技
术实现的,这就保障了在高校学生客户端环境复杂多样的情况下,认证程序能
够成功部署、稳定运行。其中,客户端上的操作系统的结构如图2所示。
S12:认证程序接收到过滤驱动返回的守护响应消息后,向交换机发送认
证请求报文。
在认证程序认证前,首先确定过滤驱动是否正常,如果过滤驱动被卸载了,
就不能向认证程序发送守护响应报文了,认证程序若收不到该守护响应报文,
那么就得知过滤驱动出现异常,也就不会向交换机发送认证请求报文,客户端
也就无法实现上网了,从而不能为其他客户端提供代理上网服务。
S13:交换机接收到认证程序发送的认证报文后,进行认证,在认证成功
后,开启提供上网服务的端口并返回认证成功报文。
S14:过滤驱动确定自身要被卸载时,使用事件对象句柄指示认证程序发
送下线报文。
过滤驱动一旦确定自身要被卸载,就会使用认证程序发送的事件对象句柄
指示认证程序发送下线报文。
S15:认证程序向交换机发送下线报文。
认证程序遵循过滤驱动的指示,向交换机发送下线报文,交换机会关掉提
供上网服务的端口,客户端就结束上网,也就不能为其他客户端提供代理上网
服务。
如果过滤驱动没有发现自身被卸载,而认证程序也是正常退出的话,在认
证程序退出之前会通知过滤驱动不用再守护,然后再向交换机发送下线报文。
该方案使用过滤驱动来守护认证程序,由于过滤驱动一般不容易被卸载,
只有在破解过滤驱动的即插即用标识(Plug-and-Play Identifier,PnPId)信息后
才能编程将其卸载掉。退一步讲,即使过滤驱动要被卸载,卸载过滤驱动需要
5—20秒的时间,而卸载操作一开始,过滤驱动能够接收到该卸载事件,这是
就可以发出通知认证程序发送下线报文了,交换机会关掉提供上网服务的端
口,客户端结束上网,也就结束为其他客户端提供代理上网服务,这样就可以
有效控制代理上网服务。
过滤驱动在操作系统内核层运行,同时可以将驱动inf文件设置为驱动不
显示,在操作系统界面上无法看出驱动存在,因此比应用层的守护程序更加隐
蔽。
具体的,上述S14中的确定自身要被卸载的过程,具体包括:接收到操作
系统发送的卸载请求消息、且自身的卸载函数被调用时,确定自身要被卸载。
如果用户编程卸载过滤驱动,操作系统内核在卸载过滤驱动前,会向过滤
驱动发送PnP事件,然后调用过滤卸载(Filter Detach)函数卸载过滤驱动,
过滤驱动可以根据接收到的PnP事件以及卸载过滤函数被调用,判断出自身将
要被卸载。而此时过滤驱动正在守护认证程序,按照业务逻辑,认证程序是不
会来卸载过滤驱动的。因此过滤驱动判断,此次卸载是用户的攻击行为。
基于同一发明构思,本发明实施例提供一种控制代理上网服务的装置,该
装置可以设置在客户端中,结构如图3所示,包括:
第一接收单元30,用于接收到认证程序发送的携带事件对象句柄的守护请
求消息。
第一发送单元31,用于第一接收单元30接收到守护请求消息后,向认证
程序返回守护响应消息,指示认证程序请求交换机开启提供上网服务的端口。
指示单元32,用于确定自身所在的过滤驱动要被卸载时,使用事件对象句
柄指示认证程序发送下线报文,来通知交换机关闭端口。
具体的,上述指示单元32,具体用于:接收到操作系统发送的卸载请求消
息、且自身的卸载函数被调用时,确定自身要被卸载。
基于同一发明构思,本发明实施例提供另一种控制代理上网服务的方法,
该方法的流程如图4所示,具体执行步骤如下:
S40:认证程序向过滤驱动发送守护请求消息,其中,守护请求消息包括
认证程序对应的进程的标识信息和下线报文。
认证程序向过滤驱动发送守护请求消息时,该守护请求消息中携带了认证
程序对应的进程的标识信息以及下线报文,该标识信息可以唯一的标识认证程
序对应的进程。
S41:过滤驱动接收到认证程序发送的守护请求消息后,向认证程序返回
守护响应消息。
S42:认证程序接收到过滤驱动返回的守护响应消息后,向交换机发送认
证请求报文。
在认证程序认证前,首先确定过滤驱动是正常的,如果过滤驱动被卸载了,
就不能向认证程序发送守护响应报文了,认证程序若收不到该守护响应报文,
那么就得知过滤驱动出现异常,也就不会向交换机发送认证请求报文,客户端
也就无法实现上网了,从而不能为其他客户端提供代理上网服务。
S43:交换机接收到认证程序发送的认证报文后,进行认证,在认证成功
后,开启提供上网服务的端口并返回认证成功报文。
S44:过滤驱动根据认证程序对应的进程的标识信息确定认证程序对应的
进程被关闭后,发送下线报文来通知交换机关闭端口。
当认证程序对应的进程被关闭后,也就是说认证程序被攻击后,就直接代
替认证程序向交换机发送下线报文,来结束这次认证。
具体的,上述S44中的根据认证程序对应的进程的标识信息确定认证程序
对应的进程被关闭,具体包括:监控操作系统中记录已结束进程的标识信息的
链表或队列;若监控到链表或队列中包含认证程序对应的进程的标识信息,则
确定认证程序对应的进程被关闭。
当过滤驱动发现操作系统中记录已结束进程的标识信息的链表或者队列
中包含认证程序对应的进行的标识信息时,就可以确定认证程序对应的进程被
关闭。
S40-S44中控制代理上网服务的方法是过滤驱动确定认证程序被关闭,从
而代替认证程序向交换机发送下线报文,结束客户端上网;S10-S15中控制代
理上网服务的方法是过滤驱动得知自身被卸载时,指示认证程序发送下线报
文,来结束客户端上网。这两种方法都可以很好的发现认证程序或者过滤驱动
被攻击,从而结束客户端上网,也就结束了客户端为其他客户端提供的代理上
网服务。
基于同一发明构思,本发明实施例提供另一种控制代理上网服务的装置,
该装置可以设置在客户端中,结构如图5所示,包括:
第二接收单元50,用于接收认证程序发送的守护请求消息,其中,守护请
求消息包括认证程序对应的进程的标识信息和下线报文。
第二发送单元51,用于第二接收单元50接收到守护请求消息后,向认证
程序返回守护响应消息,指示认证程序请求交换机开启提供上网服务的端口;
以及根据认证程序对应的进程的标识信息确定认证程序对应的进程被关闭后,
发送下线报文来通知交换机关闭端口。
具体的,上述第二发送单元51,具体用于:监控操作系统中记录已结束进
程的标识信息的链表或队列;若监控到链表或队列中包含认证程序对应的进程
的标识信息,则确定认证程序对应的进程被关闭。
该方案利用部署在客户端的过滤驱动,守护客户端上的认证程序,不需要
交换机上的认证服务程序参与,也就不需要交换机与客户端之间的交互过程,
不会影响交换机的性能;客户端上的认证程序可随时升级,不需要客户端上的
认证程序和交换机上的认证服务程序同时升级,也就是说不需要考虑客户端上
的认证程序和交换机上的认证服务程序的版本匹配问题;另外,不需要额外的
设备投资。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及
其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。