公开/公告号CN104010000A
专利类型发明专利
公开/公告日2014-08-27
原文格式PDF
申请/专利权人 北京联宇益通科技发展有限公司;
申请/专利号CN201410265628.4
发明设计人 封逸飞;
申请日2014-06-13
分类号H04L29/06(20060101);H04L12/813(20130101);
代理机构北京超凡志成知识产权代理事务所(普通合伙);
代理人吴开磊
地址 102308 北京市门头沟区石龙工业区龙园路8号A1-04A号
入库时间 2023-12-17 01:10:06
法律状态公告日
法律状态信息
法律状态
2022-06-07
未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2014102656284 申请日:20140613 授权公告日:20171229
专利权的终止
2017-12-29
授权
授权
2014-09-24
实质审查的生效 IPC(主分类):H04L29/06 申请日:20140613
实质审查的生效
2014-08-27
公开
公开
技术领域
本发明涉及移动通信技术领域,具体而言,涉及安卓系统非超级用户权限下数据包过滤方法、装置和系统。
背景技术
以安卓手机为代表的基于安卓系统的智能移动设备是当前主要的互联网访问设备之一。安卓设备主要通过无线局域网和移动蜂窝数据网络(GPRS、CDMA、3G、4G等)接入互联网。由于无线网络接入服务商按通信流量进行计费的政策,使用移动蜂窝数据网络有产生高额通信费用的可能,因而大部分安卓设备用户需要对设备的网络通信进行管理。安卓系统提供了连接和断开移动数据网络的用户功能,但这种全开全关的基本管理功能不能满足大部分人的有选择地使用网络的需要。
由于网络通信是安卓系统内核级别的功能,一般情况下对安卓系统的网络通信进行控制需要取得超级用户(root)权限。目前常见的提供流量管理的第三方软件和技术都需要以获取用户设备超级用户权限即进行“root手机”操作作为前提。运行在“超级用户”权限下的程序可以调用安卓系统Linux内核提供的网络通信功能,例如使用Iptables模块对出入设备的数据流通过修改配置文件进行方过滤和其它处理。这是当前的android流量管理程序主要的实现方法。也是其需要root权限的主要原因。这种操作降低了用户设备的安全 性,增加了病毒程序传播的可能性;一些主要的安卓设备生产商也会因用户自行进行了“root”操作而拒绝为所销售的设备提供质保。
发明内容
本发明的目的在于提供一种安卓系统非超级用户权限下数据包过滤方法、装置和系统,以解决上述的问题。
本发明提供的安卓系统非超级用户权限下数据包过滤方法,包括:读取预先启动的虚拟内核设备TUN根据默认路由策略拦截的数据包;
根据数据包的IP五元组确定该数据包所属的应用程序APP;
根据预先设置的过滤规则表及数据包所属的应用程序APP,确定数据包的过滤规则;
根据过滤规则,对数据包进行过滤。
在本发明的实施例中提供的上述安卓系统非超级用户权限下数据包过滤方法,通过利用安卓设备本身的虚拟内核设备,对数据包进行拦截,读取该拦截的数据包,确定该数据包所属的应用程序APP;并根据过滤规则表按照默认规则或者用户的需求对数据包进行过滤,实现有选择的网络通信;同时,该方法在非用户权限下便可实现,提高了用户设备的安全性,降低了病毒程序传播的可能性。
优选的,上述预先设置的过滤规则表由默认规则生成或由用户通过对过滤规则编辑模块进行编辑后生成。
优选的,上述默认规则包括:禁止非安卓系统服务的第三方后台服务进行的移动蜂窝通信;不限制应用程序APP使用无线局域网 通信;当应用程序APP处于前台时,允许该应用程序APP通过当前可用网络接口进行通信;当应用程序APP处于后台时,禁止除在线音视频流以及其他非系统服务之外的应用程序APP使用网络连接进行通信。
优选的,上述根据过滤规则,对数据包进行过滤包括:根据过滤规则对数据包进行判别,分为允许通过的数据包和禁止通过的数据包;当数据包为禁止通过的数据包时,将该禁止通过的数据包丢弃和/或拒绝;当数据包为允许通过的数据包时,将该允许通过的数据包进行代理通信。
优选的,上述数据包包括TCP数据包和/或UDP数据包。
优选的,当上述数据包为TCP数据包时,上述根据过滤规则,对数据包进行过滤包括:
根据过滤规则,判定该TCP数据包为允许通过的TCP数据包或禁止通过的TCP数据包;
当该数据包为禁止通过的TCP数据包时,上述将禁止通过的数据包丢弃和/或拒绝包括:修改TCP数据包的目的IP地址为虚拟内核设备的地址,修改目标端口为指定端口A;该指定端口A与目的端口的连接自动终止;
当该数据包为允许通过的TCP数据包时,上述将所述允许通过的数据包进行代理通信包括:修改TCP数据包的目的IP地址为虚拟内核设备的地址,修改目标端口为指定端口B;建立应用程序APP与TCP代理服务程序的本地套接字A以及TCP代理服务程序与通信目标的套接字B;TCP数据包经本地套接字A以及套接字B的转发完成应用程序APP与通信目标的通信。
优选的,当上述数据包为UDP数据包时,上述根据过滤规则,对数据包进行过滤包括:
根据过滤规则,判定UDP数据包为允许通过的UDP数据包或禁止通过的UDP数据包;
当该数据包为禁止通过的UDP数据包时,上述将禁止通过的数据包丢弃和/或拒绝包括:将该UDP数据包丢弃;
当该数据包为允许通过的UDP数据包时,上述将允许通过的数据包进行代理通信包括:在UDP代理服务程序中创建新的UDP套接字A1;该UDP数据包经由新的UDP套接字A1的转发完成本地应用程序APP与通信目标的通信。
优选的,上述方法还包括:对允许通过的数据包和禁止通过的数据包进行计量;对允许通过的数据包进行转发速率控制。
与上述安卓系统非超级用户权限下数据包过滤方法相对应,本发明还提供了安卓系统非超级用户权限下数据包过滤装置,包括IO模块;该IO模块,用于读取预先启动的虚拟内核设备TUN根据默认路由策略拦截的数据包;还用于根据数据包的IP五元组确定该数据包所属的应用程序APP;以及还用于根据过滤规则表以及数据包所属的应用程序APP对数据包进行过滤。
与上述安卓系统非超级用户权限下数据包过滤方法和装置相对应,本发明还提供了安卓系统非超级用户权限下数据包过滤系统,包括虚拟内核设备TUN、TCP代理服务程序、UDP代理服务程序和上述IO模块;
虚拟内核设备TUN,配置有默认路由策略,用于根据上述默认路由策略拦截数据包;
IO模块,与虚拟内核设备TUN连接,用于读取被拦截的数据包;根据数据包的IP五元组确定该数据包所属的应用程序APP;再根据预先设置的过滤规则表以及数据包所属的应用程序APP对数据包进行过滤;
TCP代理服务程序,用于当数据包为允许通过的TCP数据包时,与IO模块、虚拟内核设备TUN配合实现TCP数据包的代理通信;
UDP代理服务程序,用于当数据包为允许通过的UDP数据包时,与IO模块、虚拟内核设备TUN配合实现UDP数据包的代理通信;
上述TCP代理服务程序和UDP代理服务程序为本地服务程序。
与上述方法相应,在本发明的实施例中提供的安卓系统非超级用户权限下数据包过滤装置和系统,通过虚拟内核设备TUN对数据包进行拦截,然后再由与之相连的IO模块读取该数据包,由该数据包的IP五元组确认其所属的应用程序APP,该IO模块根据过滤规则表及该应用程序APP,与TCP代理服务程序或UDP代理服务程序对数据包进行过滤,实现有选择的网络通信;同时,整个过程在非用户权限下便可实现,提高了用户设备的安全性,降低了病毒程序传播的可能性。
附图说明
图1示出了本发明提供的安卓系统非超级用户权限下数据包过滤方法的示意图;
图2示出了当数据包为TCP数据包时,本发明提供的系统的工作的示意图;
图3示出了当数据包为UDP数据包时,本发明提供的系统的工作的示意图。
具体实施方式
下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。
如图1所示,本发明提供了一种安卓系统非超级用户权限下数据包过滤方法,包括如下步骤:
S101:读取预先启动的虚拟内核设备TUN根据默认路由策略拦截的数据包;
S102:根据上述数据包的IP五元组确定该数据包所属的应用程序APP;
S103:根据预先设置的过滤规则表及上述数据包所属的应用程序APP,确定该数据包的过滤规则;
S104:根据所述过滤规则,对所述数据包进行过滤。
在一些实施例中,步骤S101中也可不使用默认路由策略而采用指定路由表实现对特定的应用程序APP与通信目标之间的数据包的定向分组拦截。
步骤S103中预先设置的过滤规则表由默认规则生成或由用户通过对过滤规则编辑模块进行编辑后生成。
在一些实施例中,为了避免用户设置过滤规则时因缺少网络基础知识造成的选择因难,提供了适用于大部分安卓设备用户的默认过滤规则。该默认规则包括:禁止非安卓系统服务的第三方后台服 务进行的移动蜂窝通信;不限制应用程序APP使用无线局域网通信;当应用程序APP处于前台时,允许应用程序APP通过当前可用网络接口进行通信;当应用程序APP处于后台时,禁止除在线音视频流以及其他非系统服务之外的应用程序APP使用网络连接进行通信。
上述默认规则保证了在不影响用户正常使用网络通信的前提下,滤除了全部用户没有明确指定为允许的网络通信的数据包,减少了网络通信模块对安卓设备的供电消耗,对手机、平板电脑等安卓设备延长了电池使用时间。同时,由于消除了未经用户明确许可的网络通信,减少了用户的网络通信费用开支。
在一些实施例中,本发明还提供了过滤规则的用户编辑界面,使用户能够根据自己的期望对特定的应用程序APP设定允许或禁止的联网方式(包括无线局域网或移动蜂窝数据网)、联网时间,以及针对特定应用的数据流量、通信速度限制。
具体的,步骤S104包括:
S1041:根据过滤规则对数据包进行判别,分为允许通过的数据包和禁止通过的数据包;
S1042:当数据包为禁止通过的数据包时,将禁止通过的数据包丢弃和/或拒绝;
S1043:当数据包为允许通过的数据包时,将允许通过的数据包进行代理通信。
其中,前文所述的数据包包括TCP数据包和/或UDP数据包。
当数据包为TCP数据包时,上述步骤S1041具体为:
根据过滤规则,判定TCP数据包为允许通过的TCP数据包或禁止通过的TCP数据包;
上述步骤S1042具体为:
当数据包为禁止通过的TCP数据包时,
修改TCP数据包的目的IP地址为虚拟内核设备的地址,修改目标端口为指定端口A;
该指定端口A与目的端口的连接自动终止;
上述步骤S1043具体为:
当上述数据包为允许通过的TCP数据包时,
修改该TCP数据包的目的IP地址为虚拟内核设备的地址,修改目标端口为指定端口B;
建立应用程序APP与TCP代理服务程序的本地套接字A以及TCP代理服务程序与通信目标的套接字B;
所述TCP数据包经本地套接字A以及套接字B的转发完成应用程序APP与通信目标通信。
上述指定端口A和B均由TCP代理服务程序创建;指定端口A为虚端口。
当数据包为UDP数据包时,上述步骤S1041具体为:
根据过滤规则,判定所述UDP数据包为允许通过的UDP数据包或禁止通过的UDP数据包;
上述步骤S1042具体为:
当所述数据包为禁止通过的UDP数据包时,将禁止通过的数据包丢弃和/或拒绝包括:将所述UDP数据包丢弃;
上述步骤S1043具体为:
当所述数据包为允许通过的UDP数据包时,将所述允许通过的数据包进行代理通信包括:
在UDP代理服务程序中创建新的UDP套接字A1;
所述UDP数据包经由所述新的UDP套接字A1的转发完成本地应用程序APP与通信目标的通信。
上述方法还包括:对允许通过的数据包和禁止通过的数据包进行计量;对允许通过的数据包进行转发速率控制。
通过对允许和禁止通过的数据包进行计量,可以方便用户查阅允许和被禁止的数据包的数量;通过对允许通过的数据包的转发速率控制可以实现对数据包的速度控制,以防速度太快,发生堵塞,发生丢失数据包等现象,进而保证网络的高效畅通。
与上述方法相对应,本发明还提供了安卓系统非超级用户权限下数据包过滤装置,包括IO模块;该IO模块,用于读取预先启动的虚拟内核设备TUN根据默认路由策略拦截的数据包;还用于根据所述数据包的IP五元组确定该数据包所属的应用程序APP;以及还 用于根据过滤规则表以及所述数据包所属的应用程序APP对所述数据包进行过滤。
与上述方法相对应,本发明还提供了一种安卓系统非超级用户权限下数据包过滤系统,如图2和图3所示,包括虚拟内核设备TUN21、TCP代理服务程序23、UDP代理服务程序24和上述IO模块22;
所述虚拟内核设备TUN21,配置有默认路由策略,用于根据所述默认路由策略拦截数据包;所述IO模块,与所述虚拟内核设备TUN连接,用于读取被拦截的所述数据包;根据所述数据包的IP五元组确定该数据包所属的应用程序APP;再根据预先设置的过滤规则表以及所述数据包所属的应用程序APP对所述数据包进行过滤;
所述TCP代理服务程序23,用于当所述数据包为允许通过的TCP数据包时,与所述IO模块22、虚拟内核设备TUN21配合实现所述TCP数据包的代理通信;
所述UDP代理服务程序24,用于当所述数据包为允许通过的UDP数据包时,与所述IO模块22、虚拟内核设备TUN21配合实现所述UDP数据包的代理通信;
所述TCP代理服务程序23和所述UDP代理服务程序24为本地服务程序。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成 电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。软件类发明可有这段话,否则删除。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 在超级用户权限下实现过程的方法,装置及移动终端
机译: 在超级用户权限下实现流程的方法,装置及移动终端
机译: 用于由缺乏超级用户权限的用户控制文件系统安装操作的性能的方法和装置