Android网络防火墙实现初探
来源:互联网 发布:java unity 编辑:程序博客网 时间:2024/05/21 22:49
1.
随着智能手机越来越普及,以及3G网络的快速发展,越来越多的用户使用手机上网冲浪。于此同时,各类恶意软件也通过网络来盗取用户手机上的的隐私,甚至控制用户的手机。因此智能手机上的防火墙应运而生。
与PC上的环境不同, Android手机上的网络环境相对没有那么复杂。因此现行主流的Android防火墙解决方案都是对手机里的应用设置网络访问权限,而不会像PC上的防火墙那样提供强大的网络监视、数据包过滤、端口监控等功能。
2.
a)
b)
c)
有兴趣的朋友,可以研究一下。目前主流安全软件的联网拦截功能,如360手机卫士,手机毒霸等都是使用这一方案。
3.
以上主要介绍了通过三个层面来控制一个应用的上网。具体使用哪一种,需要看用户的需求,以及手机的系统环境而定。
a)
b)
c)
其实比较下来,还是基于iptables的方案相对较好。它似乎只有一个缺点就是需要root权限。但大家又知道一旦手机被root以后,安全性反而将大大降低。我们可否找到一种手机既不被root,又能使用iptables的方案呢?
其实是有的。只是这无法通过第三方的应用实现。必须有手机厂商对Android系统进行定制化修改,添加一个具有root权限的service来负责iptables命令的操作。其他进程只有向这个service提出请求,才能间接调用iptables。当然app应用要和这个service沟通,必须遵循一定的协议和获得相应的授权才行,否则又会变的不安全了。
我们 @安卓安全小分队 已经实现了上述方案,并且效果还不错。我们在init.rc里添加了一个service,并且授予这个service root权限。这个service起来之后,会等待client端请求。对于这个client端,我们对外提供了一套SDK,应用程序只需调用这套SDK API就可以和这个root service进行通信了,然后就可以间接执行iptables命令。
以下是我们的SDK API接口。Uid指应用的uid。type是针对的网络类型,可以是3G网络或者是Wifi网络。Blocked表示禁用还是启用网络。
public static final int MOBILE_NETWORK = 1;
public static final int WIFI_NETWORK = 2;
public void setApplicationPolicy(int uid, int type, boolean blocked); //设置拦截状态
public boolean getApplicationPolicy(int uid, int type); //获得当前的拦截状态
转自http://blog.sina.com.cn/s/blog_be6dacae01018mnp.html
- Android网络防火墙实现初探
- Android网络防火墙实现初探
- Android网络防火墙实现初探
- Android 网络防火墙的实现 Iptables解决方案
- Android 网络防火墙的实现-Iptables
- android网络防火墙的实现iptables解决方案
- Android 网络防火墙的实现 Iptables解决方案
- Android 网络防火墙的实现 Iptables解决方案
- Android 网络防火墙的实现 Iptables解决方案
- Android网络防火墙
- 用VpnService实现网络防火墙
- iptables实现网络防火墙(一)
- iptables实现网络防火墙(一)
- iptables实现网络防火墙(一)
- Android防火墙实现
- 网络防火墙系统的实现(一)
- 网络防火墙系统的实现(二)
- 网络防火墙系统的实现(三)
- 鸟哥私房菜(基础篇第三版)8、9、10章笔记
- web service原理图
- MySQL Query Cache 小结
- 软件测试之游戏测试
- Quartz 2D与CTM
- Android网络防火墙实现初探
- Linux下Apache安装64位问题
- 外网访问设置
- DirectFB的接口详解 .
- [Win8]Windows8开发笔记(六):页面导航的基础与深入
- 基于Gzip的压缩解压缩帮助类
- java文件上传带进度条的
- Polycode:免费、开源的跨平台(游戏和APP)开发工具
- 在linux下安装配置svn独立服务器