免root权限的联网防火墙的实现方法及客户端的制作方法

文档序号:7808864阅读:1393来源:国知局
免root权限的联网防火墙的实现方法及客户端的制作方法
【专利摘要】本发明公开了一种免root权限的联网防火墙的实现方法及客户端。其中方法包括:获取网络连接请求,将所述网络连接请求重定向至本地服务进程,所述本地服务进程是由本地VPN服务提供的;在所述本地服务进程中,通过查询系统文件获得发起所述网络连接请求的应用的应用名;查询预配置文件,得到所述预配置文件中记录的与所述应用名对应的配置策略;按照所述配置策略对所述网络连接请求进行处理。由于在操作系统框架内允许VPN框架里的应用对网络连接具有更高的控制权,因此利用VPN框架使得本发明应用无需获得root权限即可实现对其它应用的网络连接的控制。
【专利说明】免root权限的联网防火墙的实现方法及客户端

【技术领域】
[0001] 本发明涉及互联网【技术领域】,具体涉及一种免root权限的联网防火墙的实现方 法及客户端。

【背景技术】
[0002] 随着智能手机的普及和移动互联网技术的发展,手机上网成为"手机网民"不可或 缺的需求,智能手机上的应用也越来越多。相对于PC而言,手机私密性很强,手机安全隐患 对用户的威胁更大,一些手机流氓软件、手机黑客、盗取手机流量等安全问题导致用户无故 的花费支出和其它形式的损失。
[0003] 为了加强手机上网的安全性,现有技术提供了联网防火墙技术,用户利用联网防 火墙可以实现设置应用程序上网规则,屏蔽和允许应用程序上网,设置黑白名单,统计上网 流量,获取上网流量日志以及显示网络状态等功能。但是,由于手机操作系统的权限限制, 现有的联网防火墙要实现上述功能必须获得root权限,然后根据获得的root权限对其它 应用程序进行管理和控制。然而,要获得root权限需要通过刷机实现,对于实现上述功能 来说,由于系统文件的刷新需要一定延迟,所以现有技术的联网防火墙一般都具有反馈结 果延迟的问题。


【发明内容】

[0004] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的客户端和相应的免root权限的联网防火墙的实现方法。
[0005] 根据本发明的一个方面,提供了一种免root权限的联网防火墙的实现方法,包 括:
[0006] 获取网络连接请求,将所述网络连接请求重定向至本地服务进程,所述本地服务 进程是由本地VPN服务提供的;
[0007] 在所述本地服务进程中,通过查询系统文件获得发起所述网络连接请求的应用的 应用名;
[0008] 查询预配置文件,得到所述预配置文件中记录的与所述应用名对应的配置策略;
[0009] 按照所述配置策略对所述网络连接请求进行处理。
[0010] 根据本发明的另一方面,提供了一种客户端,包括:
[0011] 重定向模块,适于获取网络连接请求,将所述网络连接请求重定向至本地服务进 程,所述本地服务进程是由本地VPN服务提供的;
[0012] 应用名获取模块,适于在所述本地服务进程中,通过查询系统文件获得发起所述 网络连接请求的应用的应用名;
[0013] 查询模块,适于查询预配置文件,得到所述预配置文件中记录的与所述应用名对 应的配置策略;
[0014] 处理模块,适于按照所述配置策略对所述网络连接请求进行处理。
[0015] 根据本发明提供的方案,通过在客户端内部创建本地VPN服务而提供的本地服务 进程用于对应用的网络连接进行处理,即:通过查询系统文件获得发起网络连接请求的应 用的应用名,进而通过查询配置文件得到对应的配置策略,按照配置策略对网络连接请求 进行处理。由于在操作系统框架内允许VPN框架里的应用对网络连接具有更高的控制权, 因此利用VPN框架使得本发明应用无需获得root权限即可实现对其它应用的网络连接的 控制,解决了现有技术中存在的反馈结果延迟的问题。
[0016] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的【具体实施方式】。

【专利附图】

【附图说明】
[0017] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0018] 图1示出了根据本发明一个实施例的免root权限的联网防火墙的实现方法的流 程图;
[0019] 图2示出了根据本发明一个实施例的免root权限的联网防火墙的实现方法的流 程图;
[0020] 图3示出了根据本发明一个实施例的客户端的功能结构框图;
[0021] 图4示出了根据本发明另一个实施例的客户端的功能结构框图。

【具体实施方式】
[0022] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0023] 本发明实施例是基于在客户端内部创建的本地VPN服务(VPN client)而实现的。 本文中,客户端可以是智能手机、平板式电脑等具有移动联网服务的移动终端设备。客户 端的操作系统为了便于使用VPN服务,开放了多个系统接口(API),在得到用户确认的情况 下,VPN服务能够获得控制和管理其它应用的权限。具体地,通过调用操作系统提供的API, 可将客户端内部的VPN服务打开,当客户端的其它应用要访问网络时,应用所发起的网络 连接请求均经过本地VPN服务的处理,使得客户端能够有效且安全地访问网络资源。
[0024] 以一种应用场景为例,客户端在安装或首次启动用于实现本发明方案的独立的应 用(以下称为本发明应用)时,本发明应用需要创建本地VPN服务,此时本发明应用向用户 发出信任或不信任本应用的提示信息,如果用户选择信任,则本发明应用创建本地VPN服 务。在创建本地VPN服务之后,由于在操作系统框架内允许VPN框架里的应用对其它应用 具有更高的控制权,所以本发明应用对于网络连接的控制级别高于其它应用。在用户要使 用某些应用且希望在使用这些应用的过程中对这些应用发起的网络连接进行处理时,启动 上述创建本地VPN服务的本发明应用,点击本发明应用的设置开关用于启动VPN client。 在启动VPN client后,执行本实施例提供的方法。
[0025] 图1示出了根据本发明一个实施例的免root权限的联网防火墙的实现方法的流 程图。如图1所示,该方法包括如下步骤:
[0026] 步骤S100,获取网络连接请求,将网络连接请求重定向至本地服务进程,本地服务 进程是由本地VPN服务提供的。
[0027] 基于上面的描述可知,在本发明应用创建本地VPN服务之后,本发明应用对于网 络连接的控制级别高于其它应用。在其它应用发出网络连接请求时,本发明应用能拦截网 络连接请求,将网络连接请求重定向至本发明应用内的本地服务进程进行后续处理。以微 博应用为例,当用户启动微博应用发起访问微博内容的网络连接请求时,由于本发明应用 对网络连接的控制级别高于微博应用,本发明应用拦截该网络连接请求,将网络连接请求 重定向至本发明应用内的本地服务进程进行后续处理。
[0028] 步骤S101,在本地服务进程中,通过查询系统文件获得发起网络连接请求的应用 的应用名。
[0029] 系统文件记录有当前系统中所有tcp连接和/或udp连接的情况。以Android系 统为例,当前系统中所有tcp连接和/或udp连接的网络连接信息都保存在proc文件中。 proc文件是内核的一个快照,它存储了系统运行时的状态信息,同时又可以作为输入接 口--用户可以修改proc目录下一些文件中的内容来改变内核运行时的参数设置。本文 利用proc文件存储状态信息的功能,即通过读取proc文件来实现netstat命令的一些基 本功能,包括tcp和udp端口的扫描,进而获得发起网络连接请求的应用的应用名。
[0030] 步骤S102,查询预配置文件,得到预配置文件中记录的与应用名对应的配置策略。
[0031] 本发明提供了用于存储各种配置策略的预配置文件,该预配置文件向用户提供了 配置接口,用户可以通过该配置接口选择哪些应用使用哪些配置策略。根据用户的选择,每 种配置策略对应有应用名列表,该应用名列表中每一个应用都采用对应的配置策略进行处 理。
[0032] 举例来说,预配置文件中存储有防火墙策略,一种防火墙策略具体为:在无线移动 网(如3G或4G)联网情况下禁止应用访问网络,用户可选择微博应用使用该防火墙策略, 则在预配置文件中将微博应用名写入防火墙策略对应的应用名列表。可选地,另一种防火 墙策略具体为:在无线移动网联网情况下禁止后台程序访问网络,用户可选择使用该策略 的应用,在预配置文件中将用户选择的应用名写入该防火墙策略对应的应用名列表;用户 也可选择不使用该策略的应用(即排他性选择),在预配置文件中将用户选择的应用以外 的应用名写入该防火墙策略对应的应用名列表。一般来说,对于微信、微博这些即时通讯软 件,用户需要实时地获取通知消息,所以在预配置文件中也可排除这些应用的应用名,以避 免这些应用处于后台时不能及时地获取通知消息。
[0033] 步骤S103,按照配置策略对网络连接请求进行处理。
[0034] 在得到发起网络连接请求的应用名及其对应的配置策略之后,按照该配置策略对 网络连接请求进行处理。对于微博应用,若当前联网情况是无线移动网联网,则阻断微博应 用发起的网络连接请求。对于某个后台程序,若它属于禁止后台程序访问网络的防火墙策 略对应的应用名列表,且当前联网情况为无线移动网联网,则阻断该后台程序发起的网络 连接请求。
[0035] 根据本实施例提供的方法,通过在客户端内部创建本地VPN服务而提供的本地服 务进程用于对应用的网络连接进行处理,即:通过查询系统文件获得发起网络连接请求的 应用的应用名,进而通过查询配置文件得到对应的配置策略,按照配置策略对网络连接请 求进行处理。一方面,由于在操作系统框架内允许VPN框架里的应用对网络连接具有更高 的控制权,因此利用VPN框架使得本发明应用无需获得root权限即可实现对其它应用的网 络连接的控制,解决了现有技术中存在的反馈结果延迟的问题;另一方面,通过功能独立的 本发明应用来实现本实施例的上述方法,无需在每个应用中分别设置配置策略,通过在本 发明应用提供的配置接口中统一设置配置策略形成预配置文件,即可对应用名列表中的所 有应用采用统一的配置策略进行处理,方便用户使用。
[0036] 另外,在本发明实施例中,除了客户端本地配置的上述用于存储各种配置策略的 预配置文件以外,云端也会提供一些默认配置策略。例如,云端提供了让用户一键设置的功 能,支持云端配置如下策略:禁止平时只在前台使用的应用(例如浏览器、视频播放软件等 应用)在后台联网,和/或,禁止无需联网的应用(例如计算器等应用)进行联网。在云端 配置的策略可定时同步到客户端,存储在预配置文件中以供匹配使用。
[0037] 图2示出了根据本发明一个实施例的免root权限的联网防火墙的实现方法的流 程图。如图2所示,该方法包括如下步骤:
[0038] 步骤S200,获取网络连接请求。
[0039] 对于客户端内部安装的某个应用,如果该应用需要访问网络,则需要先发起网络 连接请求,例如tcp连接请求或udp连接请求。本实施例在该应用发出这样的网络连接请 求之前,获取该网络连接请求,执行后续流程。
[0040] 步骤S201,从网络连接请求中解析出路由信息,判断解析出的路由信息是否与预 先下发的路由表中记录的信息相匹配,若是,执行步骤S202 ;若否,则本方法流程结束。
[0041] 本发明实施例预先下发了路由表,该路由表中记录了需要进行网络连接优化处理 的路由信息,如果网络连接请求中的路由信息与该路由表中记录的信息相匹配,则执行后 续方法流程。如果网络连接请求中的路由信息与该路由表中记录的信息不相匹配,则表明 此次网络连接请求无需进行网络连接优化处理,后续可按照现有技术的流程继续处理。
[0042] 步骤S202,将网络连接请求重定向至本地服务进程。
[0043] 基于上面的描述可知,在本发明应用创建本地VPN服务之后,本发明应用对于网 络连接的控制级别高于其它应用。在其它应用发出网络连接请求时,本发明应用能拦截网 络连接请求,将网络连接请求重定向至本发明应用内的本地服务进程进行后续处理。
[0044] 步骤S203,调用用于获取地址和端口的系统接口,获取网络连接请求对应的地址 和端口。
[0045] 在本地服务进程接收到网络连接请求之后,通过调用系统接口可获取发起网络 连接请求的应用的本地地址和端口,即ip:P〇rt。在Android系统中提供了 getpeername 接口,当本地服务进程接收到网络连接请求后,获取该网络连接请求对应的socket,将该 socket传递给getpeername接口,就能获取发起网络连接请求的应用的本地地址和端口。
[0046] 步骤S204,根据网络连接请求对应的地址和端口查询系统文件,获得发起网络连 接请求的应用的应用标识。
[0047] 系统文件记录有当前系统中所有tcp连接和/或udp连接的情况。以Android系 统为例,当前系统中所有tcp连接和/或udp连接的网络连接信息都保存在proc文件中。 具体地,有关tcp连接的网络连接信息保存在/proc/net/tcp文件中,有关udp连接的网 络连接信息保存在/proc/net/udp,还有一些网络连接信息保存在/proc/net/tcp6中。因 此,本发明实施例所要查询的系统文件包含以下文件中的一个或多个:/proc/net/tcp ;/ proc/net/udp ;/proc/net/tcp6。其中,在查询系统文件/proc/net/tcp6之前还包括:将地 址和端口由IPV4协议转换为IPV6协议。
[0048] 具体地,在查询时,首先查询/proc/net/tcp文件;如果没有查询到,接着查询/ proc/net/udp文件;如果还没有查询到,最后查询/proc/net/tcp6文件。
[0049] 下面给出通过执行netstat-tn命令查询/proc/net/tcp文件输出的信息的具体 示例:
[0050] si local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
[0051] 1:3A00AA0A:00C7 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 25926 1 f73bc080 3000 002-1
[0052] 在上述示例中,si表示打开套接字的编号;local_address表示格式为十六进制 (网络字节序)的本地IP地址:端口号;rem_address表示远程地址;st表示连接状态;uid 表示发起网络连接请求的应用标识。其它信息与本方案没有直接关系,不再赘述。
[0053] 通过以上示例可以看出,在获知网络连接请求对应的本地地址和端口的情况下, 可以通过查询系统文件得到对应的uid。
[0054] /proc/net/udp文件和/proc/net/tcp6文件也与上述示例类似,只是在远程地址 和状态信息上有所区别,在此不再赘述。
[0055] 步骤S205,根据应用标识调用用于获取应用名的系统接口,获取发起网络连接请 求的应用的应用名。
[0056] 在获得应用标识之后,通过调用系统接口进一步获得应用名。具体地,利用 Android系统提供的getApplicationName接口,得到发起网络连接请求的应用名。
[0057] 步骤S206,查询预配置文件,得到预配置文件中记录的与应用名对应的配置策略。
[0058] 本发明提供了用于存储各种配置策略的预配置文件,该预配置文件向用户提供了 配置接口,用户可以通过该配置接口选择哪些应用使用哪些配置策略。作为一种具体示例, 预配置文件中可包含如下配置策略:
[0059] (1)在无线移动网联网情况下,阻断一些应用名对应的应用发起的网络连接请 求;
[0060] (2)在无线移动网联网情况下,禁止某些后台程序访问网络;
[0061] (3)在无线局域网联网情况下,对一些应用名对应的应用发起的用于访问支付页 面的网络连接请求进行加密处理,即加密策略。
[0062] 根据用户的选择,每种配置策略对应有应用名列表,该应用名列表中每一个应用 都采用对应的配置策略进行处理。以上述防火墙策略(1)为例,若用户选择优酷、搜狐视频 等应用使用该防火墙策略,那么在预配置文件中该防火墙策略对应的应用名列表中添加上 述应用的应用名,形成该防火墙策略的应用黑名单;以上述防火墙策略(2)为例,若用户选 择微博、微信等应用不使用该防火墙策略,那么在预配置文件中将除了微博、微信以外的应 用的应用名添加到该防火墙策略对应的应用名列表中,形成该防火墙策略的应用黑名单; 以加密策略(3)为例,若用户选择淘宝、支付宝、京东、当当网等支付类应用使用加密策略, 那么在预配置文件中加密策略对应的应用名列表中添加上述支付类应用的应用名,形成加 密策略的应用黑名单。
[0063] 在实际应用过程中,可根据情况设置其它配置策略,本发明对此不做限制。
[0064] 另外,在本实施例中,除了客户端本地配置的上述用于存储各种配置策略的预配 置文件以外,云端也会提供一些默认配置策略。例如,云端提供了让用户一键设置的功能, 支持云端配置如下策略:禁止平时只在前台使用的应用(例如浏览器、视频播放软件等应 用)在后台联网,和/或,禁止无需联网的应用(例如计算器等应用)进行联网。在云端配 置的策略可定时同步到客户端,存储在预配置文件中以供匹配使用。
[0065] 步骤S207,按照配置策略对网络连接请求进行处理。
[0066] 在得到发起网络连接请求的应用名及其对应的配置策略之后,按照该配置策略对 网络连接请求进行处理。在上述示例中,如果发起网络连接请求的应用属于防火墙策略(1) 的应用黑名单,则进一步判断当前联网是否属于无线移动(例如3G或4G)联网情况,如是, 则阻断该应用发起的网络连接请求;通过这样的方式,可以大大降低数据流量,达到省流量 的目的。如果发起网络连接请求的应用属于防火墙策略(2)的应用黑名单,则进一步判断 当前联网是否属于无线移动联网情况以及该应用是否为后台程序,如是,则阻断该应用发 起的网络连接请求;通过这样的方式,也能达到省流量的目的。如果发起网络连接请求的应 用属于加密策略的应用黑名单,则进一步判断当前联网是否属于无线局域网(例如wifi)联 网情况,如是,则对该应用发起的用于访问支付页面的网络连接请求进行加密处理,以提高 网络访问的安全性。
[0067] 根据本实施例提供的方法,通过在客户端内部创建本地VPN服务而提供的本地服 务进程用于对应用的网络连接进行处理,即:通过查询系统文件获得发起网络连接请求的 应用的应用名,进而通过查询配置文件得到对应的配置策略,按照配置策略对网络连接请 求进行处理。一方面,由于在操作系统框架内允许VPN框架里的应用对网络连接具有更高 的控制权,因此利用VPN框架使得本发明应用无需获得root权限即可实现对其它应用的网 络连接的控制,解决了现有技术中存在的反馈结果延迟的问题;另一方面,通过功能独立的 本发明应用来实现本实施例的上述方法,无需在每个应用中分别设置配置策略,通过在本 发明应用提供的配置接口中统一设置配置策略形成预配置文件,即可对应用名列表中的所 有应用采用统一的配置策略进行处理,方便用户使用。进一步的,通过配置上述防火墙策 略,可使某些应用在3G或4G等无线移动联网情况下禁止联网,避免了这些应用耗费移动流 量,达到省流量的目的,减少了用户对流量的支出;而且,用户可通过本发明应用统一管理 和配置其它应用的流量输出,操作实用且便捷;通过配置上述加密策略,可对某些支付类应 用在wifi等无线局域网联网情况下对支付页面的访问进行加密处理,避免了用户私密信息 泄露导致的财产损失问题,提高了网络访问的安全性。
[0068] 图3示出了根据本发明一个实施例的客户端的功能结构框图。如图3所示,该客 户端包括:重定向模块300、应用名获取模块310、查询模块320以及处理模块330。这里的 各个功能模块具体为本发明应用内部的功能模块。
[0069] 重定向模块300适于获取网络连接请求,将网络连接请求重定向至本地服务进 程,本地服务进程是由本地VPN服务提供的。在本发明应用创建本地VPN服务之后,本发明 应用对于网络连接的控制级别高于其它应用。在其它应用发出网络连接请求时,本发明应 用中的重定向模块300能拦截网络连接请求,将网络连接请求重定向至本地服务进程进行 后续处理。
[0070] 应用名获取模块310适于在本地服务进程中,通过查询系统文件获得发起网络连 接请求的应用的应用名。系统文件记录有当前系统中所有tcp连接和/或udp连接的情况。 以Android系统为例,当前系统中所有tcp连接和/或udp连接的网络连接信息都保存在 proc文件中。proc文件是内核的一个快照,它存储了系统运行时的状态信息,同时又可以 作为输入接口--用户可以修改proc目录下一些文件中的内容来改变内核运行时的参数 设置。本文利用proc文件存储状态信息的功能,即通过读取proc文件来实现netstat命 令的一些基本功能,包括tcp和udp端口的扫描,进而获得发起网络连接请求的应用的应 用名。
[0071] 查询模块320适于查询预配置文件,得到预配置文件中记录的与应用名对应的配 置策略。本发明提供了用于存储各种配置策略的预配置文件,该预配置文件向用户提供了 配置接口,用户可以通过该配置接口选择哪些应用使用哪些配置策略。根据用户的选择,每 种配置策略对应有应用名列表,该应用名列表中每一个应用都采用对应的配置策略进行处 理。
[0072] 处理模块330适于按照配置策略对网络连接请求进行处理。在得到发起网络连接 请求的应用名及其对应的配置策略之后,由处理模块330按照该配置策略对网络连接请求 进行处理。
[0073] 图4示出了根据本发明另一个实施例的客户端的功能结构框图。如图4所示,该客 户端包括:预配置文件存储模块400、判断模块410、重定向模块420、应用名获取模块430、 查询模块440以及处理模块450。
[0074] 预配置文件存储模块400用于存储预配置文件,该预配置文件向用户提供了配置 接口,用户可以通过该配置接口选择哪些应用使用哪些配置策略。作为一种具体示例,预配 置文件中可包含如下配置策略:在无线移动网联网情况下,阻断一些应用名对应的应用发 起的网络连接请求;和/或,在无线移动网联网情况下,禁止一些应用名对应的应用作为后 台程序访问网络;和/或,在无线局域网联网情况下,对一些应用名对应的应用发起的用于 访问支付页面的网络连接请求进行加密处理。
[0075] 根据用户的选择,每种配置策略对应有应用名列表,该应用名列表中每一个应用 都采用对应的配置策略进行处理。以上述方法实施例描述的防火墙策略(1)为例,若用户 选择优酷、搜狐视频等应用使用该防火墙策略,那么在预配置文件中该防火墙策略对应的 应用名列表中添加上述应用的应用名,形成该防火墙策略的应用黑名单;以上述方法实施 例描述的防火墙策略(2)为例,若用户选择微博、微信等应用不使用该防火墙策略,那么在 预配置文件中将除了微博、微信以外的应用的应用名添加到该防火墙策略对应的应用名列 表中,形成该防火墙策略的应用黑名单;以上述方法实施例描述的加密策略(3)为例,若用 户选择淘宝、支付宝、京东、当当网等支付类应用使用加密策略,那么在预配置文件中加密 策略对应的应用名列表中添加上述支付类应用的应用名,形成加密策略的应用黑名单。
[0076] 在实际应用过程中,可根据情况设置其它配置策略,本发明对此不做限制。
[0077] 判断模块410适于从网络连接请求中解析出路由信息,判断解析出的路由信息是 否与预先下发的路由表中记录的信息相匹配。
[0078] 重定向模块420进一步适于:若判断模块410的判断结果为匹配,则将网络连接请 求重定向至本地服务进程。
[0079] 进一步的,应用名获取模块430包括:第一调用模块431、系统文件查询模块432 以及第二调用模块433。
[0080] 第一调用模块431适于调用用于获取地址和端口的系统接口,获取网络连接请求 对应的地址和端口。具体地,第一调用模块431可调用getpeername接口,用于获取发起网 络连接请求的应用的本地地址和端口。
[0081] 系统文件查询模块432适于根据网络连接请求对应的地址和端口查询系统文件, 获得发起网络连接请求的应用的应用标识。系统文件记录有当前系统中所有tcp连接和/ 或udp连接的情况。以Android系统为例,当前系统中所有tcp连接和/或udp连接的网 络连接信息都保存在proc文件中。具体地,有关tcp连接的网络连接信息保存在/proc/ net/tcp文件中,有关udp连接的网络连接信息保存在/proc/net/udp,还有一些网络连接 信息保存在/proc/net/t Cp6中。因此,系统文件查询模块432所要查询的系统文件包含以 下文件中的一个或多个:/proc/net/tcp ;/proc/net/udp ;/proc/net/tcp6。系统文件查询 模块432还适于:在查询系统文件/proc/net/tcp6之前,将地址和端口由IPV4协议转换为 IPV6协议。关于查询系统文件可参见方法实施例的具体描述。
[0082] 第二调用模块433适于根据应用标识调用用于获取应用名的系统接口,获取发起 网络连接请求的应用的应用名。具体地,第二调用模块433可调用Android系统提供的 getApp 1 i cat ionName接口,得到发起网络连接请求的应用名。
[0083] 查询模块440适于查询预配置文件,得到预配置文件中记录的与应用名对应的配 置策略。具体地,查询模块440查询每种配置策略的应用名列表,如果某种配置策略的应 用名列表中包含发起网络连接请求的应用名,则确定该配置策略为与应用名对应的配置策 略。
[0084] 处理模块450适于按照配置策略对网络连接请求进行处理。例如,如果发起网络 连接请求的应用属于防火墙策略(1)的应用黑名单,则处理模块450进一步判断当前联网 是否属于无线移动(例如3G或4G)联网情况,如是,则处理模块450阻断该应用发起的网络 连接请求。如果发起网络连接请求的应用属于防火墙策略(2)的应用黑名单,则处理模块 450进一步判断当前联网是否属于无线移动联网情况以及该应用是否为后台程序,如是,则 处理模块450阻断该应用发起的网络连接请求。如果发起网络连接请求的应用属于加密策 略的应用黑名单,则处理模块450进一步判断当前联网是否属于无线局域网(例如wifi)联 网情况,如是,则处理模块450对该应用发起的用于访问支付页面的网络连接请求进行加 密处理,以提高网络访问的安全性。
[0085] 根据本发明上述实施例提供的客户端,通过在其内部创建本地VPN服务而提供的 本地服务进程用于对应用的网络连接进行处理,即:通过查询系统文件获得发起网络连接 请求的应用的应用名,进而通过查询配置文件得到对应的配置策略,按照配置策略对网络 连接请求进行处理。一方面,由于在操作系统框架内允许VPN框架里的应用对网络连接具 有更高的控制权,因此利用VPN框架使得本发明应用无需获得root权限即可实现对其它应 用的网络连接的控制,解决了现有技术中存在的反馈结果延迟的问题;另一方面,通过功能 独立的本发明应用来实现本实施例的上述方案,无需在每个应用中分别设置配置策略,通 过在本发明应用提供的配置接口中统一设置配置策略形成预配置文件,即可对应用名列表 中的所有应用采用统一的配置策略进行处理,方便用户使用。进一步的,通过配置上述防火 墙策略,可使某些应用在3G或4G等无线移动联网情况下禁止联网,避免了这些应用耗费移 动流量,达到省流量的目的,减少了用户对流量的支出;而且,用户可通过本发明应用统一 管理和配置其它应用的流量输出,操作实用且便捷;通过配置上述加密策略,可对某些支付 类应用在wifi等无线局域网联网情况下对支付页面的访问进行加密处理,避免了用户私密 信息泄露导致的财产损失问题,提高了网络访问的安全性。
[0086] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。 各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求 的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种 编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发 明的最佳实施方式。
[0087] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构 和技术,以便不模糊对本说明书的理解。
[0088] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面 的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此, 遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身 都作为本发明的单独实施例。
[0089] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任 何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开 的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代 特征来代替。
[0090] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。
[0091] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行 的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用 微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的客户端中的一些或者全 部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或 者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的 程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号 可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0092] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领 域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词"包含"不排除存在 未列在权利要求中的元件或步骤。位于元件之前的单词"一"或"一个"不排除存在多个这 样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来 实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件 项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为 名称。
[0093] 本发明公开了 :A1、一种免root权限的联网防火墙的实现方法,包括:
[0094] 获取网络连接请求,将所述网络连接请求重定向至本地服务进程,所述本地服务 进程是由本地VPN服务提供的;
[0095] 在所述本地服务进程中,通过查询系统文件获得发起所述网络连接请求的应用的 应用名;
[0096] 查询预配置文件,得到所述预配置文件中记录的与所述应用名对应的配置策略;
[0097] 按照所述配置策略对所述网络连接请求进行处理。
[0098] A2、根据A1所述的方法,在所述将网络连接请求重定向至本地服务进程之前进一 步包括:从所述网络连接请求中解析出路由信息,判断解析出的路由信息是否与预先下发 的路由表中记录的信息相匹配;
[0099] 所述将网络连接请求重定向至本地服务进程具体为:若判断结果为匹配,则将所 述网络连接请求重定向至本地服务进程。
[0100] A3、根据A1或A2所述的方法,所述通过查询系统文件获得发起所述网络连接请求 的应用的应用名进一步包括:
[0101] 调用用于获取对端地址和端口的系统接口,获取所述网络连接请求对应的地址和 端口;
[0102] 根据所述网络连接请求对应的地址和端口查询系统文件,获得所述发起网络连接 请求的应用的应用标识;
[0103] 根据所述应用标识调用用于获取应用名的系统接口,获取所述发起网络连接请求 的应用的应用名。
[0104] A4、根据A3所述的方法,所述系统文件包含以下文件中的一个或多个:/proc/ net/tcp ;/proc/net/udp ;/proc/net/tcp6〇
[0105] A5、根据A4所述的方法,在查询系统文件/proc/net/tcp6之前还包括:将所述地 址和端口由IPV4协议转换为IPV6协议。
[0106] A6、根据A1-A5任一项所述的方法,所述配置策略包含:
[0107] 在无线移动网联网情况下,阻断一些应用名对应的应用发起的网络连接请求;
[0108] 和/或,在无线移动网联网情况下,禁止一些应用名对应的应用作为后台程序访 问网络;
[0109] 和/或,在无线局域网联网情况下,对一些应用名对应的应用发起的用于访问支 付页面的网络连接请求进行加密处理。
[0110] 本发明还公开了:B7、一种客户端,包括:
[0111] 重定向模块,适于获取网络连接请求,将所述网络连接请求重定向至本地服务进 程,所述本地服务进程是由本地VPN服务提供的;
[0112] 应用名获取模块,适于在所述本地服务进程中,通过查询系统文件获得发起所述 网络连接请求的应用的应用名;
[0113] 查询模块,适于查询预配置文件,得到所述预配置文件中记录的与所述应用名对 应的配置策略;
[0114] 处理模块,适于按照所述配置策略对所述网络连接请求进行处理。
[0115] B8、根据B7所述的客户端,还包括:判断模块,适于从所述网络连接请求中解析出 路由信息,判断解析出的路由信息是否与预先下发的路由表中记录的信息相匹配;
[0116] 所述重定向模块进一步适于:若所述判断模块的判断结果为匹配,则将所述网络 连接请求重定向至本地服务进程。
[0117] B9、根据B7或B8所述的客户端,所述应用名获取模块包括:
[0118] 第一调用模块,适于调用用于获取地址和端口的系统接口,获取所述网络连接请 求对应的地址和端口;
[0119] 系统文件查询模块,适于根据所述网络连接请求对应的地址和端口查询系统文 件,获得所述发起网络连接请求的应用的应用标识;
[0120] 第二调用模块,适于根据所述应用标识调用用于获取应用名的系统接口,获取所 述发起网络连接请求的应用的应用名。
[0121] B10、根据B9所述的客户端,所述系统文件查询模块进一步适于查询以下系统文 件中的一个或多个:/proc/net/tcp ;/proc/net/udp ;/proc/net/tcp6〇
[0122] B11、根据B10所述的客户端,所述系统文件查询模块还适于:在查询系统文件/ proc/net/tcp6之前,将所述地址和端口由IPV4协议转换为IPV6协议。
[0123] B12、根据B7-B11任一项所述的客户端,预配置文件存储模块,用于存储所述预配 置文件,所述预配置文件中记录的配置策略包含:
[0124] 在无线移动网联网情况下,阻断一些应用名对应的应用发起的网络连接请求;
[0125] 和/或,在无线移动网联网情况下,禁止一些应用名对应的应用作为后台程序访 问网络;
[0126] 和/或,在无线局域网联网情况下,对一些应用名对应的应用发起的用于访问支 付页面的网络连接请求进行加密处理。
【权利要求】
1. 一种免root权限的联网防火墙的实现方法,包括: 获取网络连接请求,将所述网络连接请求重定向至本地服务进程,所述本地服务进程 是由本地VPN服务提供的; 在所述本地服务进程中,通过查询系统文件获得发起所述网络连接请求的应用的应用 名; 查询预配置文件,得到所述预配置文件中记录的与所述应用名对应的配置策略; 按照所述配置策略对所述网络连接请求进行处理。
2. 根据权利要求1所述的方法,在所述将网络连接请求重定向至本地服务进程之前进 一步包括:从所述网络连接请求中解析出路由信息,判断解析出的路由信息是否与预先下 发的路由表中记录的信息相匹配; 所述将网络连接请求重定向至本地服务进程具体为:若判断结果为匹配,则将所述网 络连接请求重定向至本地服务进程。
3. 根据权利要求1或2所述的方法,所述通过查询系统文件获得发起所述网络连接请 求的应用的应用名进一步包括: 调用用于获取对端地址和端口的系统接口,获取所述网络连接请求对应的地址和端 Π ; 根据所述网络连接请求对应的地址和端口查询系统文件,获得所述发起网络连接请求 的应用的应用标识; 根据所述应用标识调用用于获取应用名的系统接口,获取所述发起网络连接请求的应 用的应用名。
4. 根据权利要求3所述的方法,所述系统文件包含以下文件中的一个或多个:/proc/ net/tcp ;/proc/net/udp ;/proc/net/tcp6〇
5. 根据权利要求4所述的方法,在查询系统文件/pr〇C/net/tCp6之前还包括:将所述 地址和端口由IPV4协议转换为IPV6协议。
6. 根据权利要求1-5任一项所述的方法,所述配置策略包含: 在无线移动网联网情况下,阻断一些应用名对应的应用发起的网络连接请求; 和/或,在无线移动网联网情况下,禁止一些应用名对应的应用作为后台程序访问网 络; 和/或,在无线局域网联网情况下,对一些应用名对应的应用发起的用于访问支付页 面的网络连接请求进行加密处理。
7. -种客户端,包括: 重定向模块,适于获取网络连接请求,将所述网络连接请求重定向至本地服务进程,所 述本地服务进程是由本地VPN服务提供的; 应用名获取模块,适于在所述本地服务进程中,通过查询系统文件获得发起所述网络 连接请求的应用的应用名; 查询模块,适于查询预配置文件,得到所述预配置文件中记录的与所述应用名对应的 配置策略; 处理模块,适于按照所述配置策略对所述网络连接请求进行处理。
8. 根据权利要求7所述的客户端,还包括:判断模块,适于从所述网络连接请求中解析 出路由信息,判断解析出的路由信息是否与预先下发的路由表中记录的信息相匹配; 所述重定向模块进一步适于:若所述判断模块的判断结果为匹配,则将所述网络连接 请求重定向至本地服务进程。
9. 根据权利要求7或8所述的客户端,所述应用名获取模块包括: 第一调用模块,适于调用用于获取地址和端口的系统接口,获取所述网络连接请求对 应的地址和端口; 系统文件查询模块,适于根据所述网络连接请求对应的地址和端口查询系统文件,获 得所述发起网络连接请求的应用的应用标识; 第二调用模块,适于根据所述应用标识调用用于获取应用名的系统接口,获取所述发 起网络连接请求的应用的应用名。
10. 根据权利要求9所述的客户端,所述系统文件查询模块进一步适于查询以下系统 文件中的一个或多个:/proc/net/tcp ;/proc/net/udp ;/proc/net/tcp6〇
【文档编号】H04L29/06GK104092691SQ201410334918
【公开日】2014年10月8日 申请日期:2014年7月15日 优先权日:2014年7月15日
【发明者】苏云琳, 王鹏程 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1