Android平台智能防火墙系统的设计与实现
摘要:近年来,随着智能手机的普通,智能手机的安全领域越来越受到人们的关注。作为市场占有率第一的移动平台操作系统,Android用户同样面临了很多的安全方面的威胁。本文针对用户日常生活中受到的垃圾短信、电话的骚扰,重点研究短信、电话屏蔽的相关技术,设计并实现了一种基于黑白名单的Android平台智能防火墙系统。
关键词:Android;手机防火墙;骚扰拦截;黑名单
TN929.53:A:1007-9599 (2013) 06-0000-02
在智能手机越来越普及的今天,人们对安全[1]问题越来越重视。在实际应用中,和PC一样,手机操作系统同样需要安全应用软件的保护,并根据各种威胁做出相应的处理。当前,手机用户越来越多的接收到垃圾短信以及电话,这不仅严重地影响了用户的正常生活,还为用户带来了很多安全隐患,所以一款针对骚扰拦截功能的手机系统防火墙[2]成为了用户的必须。
本文介绍的手机基于Android平台的智能手机防火墙,能够实现骚扰拦截功能。通过监听系统短信数据库实现短信过滤,通过利用AIDL机制以及Java反射机制,屏蔽骚扰电话;通过设置黑白名单,用户自己定义骚扰行为,达到对用户友好的目的。
1Android系统概述
Android[3]系统是由07年Google公司发布的一个开源的移动平台操作系统,它是一个以Linux内核为基础的分层结构,共分为四层:(1)应用层,运行Android平台的应用程序,应用程序由Java语言编写;(2)应用框架层,这一层为Google公司发布的,为支持应用程序开发的系统调用框架调;(3)本地库,本地库中包扩支持应用框架层的由C/C++语言编写的类库以及Android应用程序运行的Dalvik虚拟机,每一个Android应用程序都运行在一个独立的Dalvik中;(4)Linux内核,内核提供诸如电源管理、网络协议栈、进程管理等操作系统的核心服务。
Android SDK中提供了大量的应用程序框架供Android应用程序开发者调,其中包括有关电话管理的Itelephony[4]类以及短信管理SmsManager类。但是,由于系统开发者处于安全的考虑,Android SDK中并没有直接提供有关屏蔽电话以及拦截短信的API,所以要实现系统要求的骚扰拦截功能,必须采取一些非常规的方法。
2系统设计方案
2.1系统总体
本文所要实现的Android平台的智能手机防火墙,是基于黑白名单,实现的是过滤垃圾短信、屏蔽骚扰电话的功能,。系统分为三层结构:其中表示层通过用户自定义并维护的黑名单以及短信过滤关键词,实现对过滤规则的控制;控制层是具体的功能的实现;数据层用了存储短信以及来电记录。
2.2短信过滤模块的设计
系统可以根据黑名单中的号码以及根据短信内容的关键词来过滤垃圾短信.
目前,基于Android平台的短信过滤方法主要有两种,一是通过监听系统广播;而是通过监听系统数据库的方式,同方式一相比,方式二的兼容性更强,操作更加方便、简单,更适用作为短信的实现。
监听短信数据库的原理是,系统通过监听短信数据库的变化,当有新的短信到来时,数据库状态会发生变化。系统首先读取短信的地址(电话号码),与用户黑名单和关键词比对,如果符合用户的自己定义的过滤条件,则删除短信。
2.3电话拦截模块的设计
系统根据用户自己设定的黑名单,选择是否拦截来电。同短信过滤一样,Android SDK同样没有为电话拦截提供API。但是电话管理服务类Itelephony为我们提供了endcall()函数实现挂机服务,这为我们解决电话拦截问题提供了思路。
通过前面的分析可知,系统的目标就是获取一个Itelephony类,进而通过调用它的成员函数endcall()实现具体的功能。但是怎样才能获取Itelephony类的一个实例呢?事实上,在2.0版本以前,通过调用Android SDK中TelephonyManager类中的成员函数getItelephony(),可以获取Itelephony类的一个对象。但是出去对系统安全的考虑,在2.0版本之后,Google Android系统开发人员将getItelephony()方法设为了私有。如果想要使用getItelephony()方法,必须使用AIDL机制。
Java语言明确规矩了紧张跨进程共享对象。Android应用程序是由Java语言编写,自然也要遵守这一约定。所以,AIDL机制应用而生。AIDL,Android interface definition languag,是一种进程间的通信接口。通过预先定义接口,将进程中需要共享的实例对象转化为AIDL所能理解的参数形式,进而实现进
程间的对象共享。
3系统实现
根据上面的设计描述,本系统短信过滤功能以及电话拦截功能。
3.1短信过滤
通过ContenObserver类监听系统数据库,当系统数据库发生变化时,重写onChange (boolen selfChange)函数,实现短信过滤。系统实现如图4。
3.2电话拦截
电话拦截功能的实现步骤如下:
(1)通过AIDL机制,将ITelephony所在的包生成一个.aidl文件,然后利用AIDL工具,将.aidl文件转化成.java文件。
(2)通过java反射机制,调用TelephonyManager类的私有成员函getItelephony(),进而获取ITelephony类的对象。
(3)通过重写phoneStateListener类,监听系统来电。当来电时,通过重写onCallStateChanged()方法,改变电话状态,从而实现挂机功能。
4结束语
linux内核设计与实现 pdf随着移动互联网技术的发展,用户面临的安全问题也日益复杂。如何为用户在享受到移动互联网技术带来的良好的服务的同时,保障用户使用的安全,这也成为了当今安全领域研究的热点。本文利用Android应用开发平台,实现智能手机防火墙,对Android应用编程初学者还有开发人员都具有一定参考价值。
参考文献:
[1]Ognjen Prnjat,et.al,Integrity and Security of the Application Level Active Networks,UCL.London.2000.
[2]A Shabtai.Y Fledel,U Kannonv.Et.al,Google Android:A comprehensive security saasement, IEEE Educational Activities Department Piscataway,NJ,USA,2010.
[3]Avik Chaudhurim Language-based Security on Android,Univ Maryland at College Park,ACM,2009.
[4]向勇.Windows操作系统原理[M].机械工业出版社.
[5]杨丰盛.Android应用开发解密[M].电子工业出版社,2009.
[作者简介]胡松萌(1987-),硕士研究生。
-全文完-
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论