- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于Android的通信安防设计
摘要:针对当前Android手机用户通过手机访问网络的需求日益增加的情况,提出了增强基于Android手机网络通信的安全性的目标,研究并采用在Android系统上实现拦截和过滤骚扰电话及短信的关键技术,继而给出一种实现Android系统过滤电话和短信黑白名单的防骚扰的方法。通过测试Android系统手机的实时短信以及来电,达到拦截白名单以外所有电话以及短信,或者拦截黑名单内所有的电话以及短信的效果,从而验证Android通信安防系统的方法性和可实现性。
关键词:Android;短信拦截;电话拦截;黑白名单
手机已经成为当今人们日常生活中不可或缺的一部分。普通手机很难满足人们的要求,随着科技的进步和人们生活质量的提高,手机不断更新换代,变得更加智能化,产生了智能手机。智能手机在越来越被大众所接受的同时,智能手机也伴生新的安全隐患。目前,手机上的应用因为手机的发展日渐丰富,移动互联网领域出现越来越多的信息安全问题,甚至已经成为新的安全威胁。由此,可以看一下现有智能手机安全软件的情况,目前针对智能手机的安全软件大概分两种,一种是硬安全用以杀毒;另一种软安全用以恶意通信拦截和隐私保护,还有就是两者的功能结合体。手机的安全问题现在成为被社会各界普遍关注的热点。
Google在2007年11月5日公布了Android手机系统平台之后,Android很快进入人们的视线。因为作为移动设备综合平台它达到了真正意义上的开放性,拥有移动电话工作所需的全部软件。基于Android平台的可开发性和免费等特点,既能在Android平台上开发第三方软件,从而促进技术创新;有助于降低开发成本,方便创造特色化产品。这无疑使之成为智能手机操作系统的首选。
目前手机应用中还是以电话通信和短信通信应用最为广泛,而电话骚扰与短信广告骚扰日益严重,针对此现象,人们纷纷采取了应用措施,其中,一些手机平台相继开发出了电话防火墙和短信防火墙。比如,塞班手机平台的信安易卫士,Android手机平台下的SecrityGuarder等。文中针对上述问题,设计和实现了一种基于Android手机平台的通信安防应用,基本实现了拦截骚扰电话和短信。
1 Android简介
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用"安卓"或"安致"。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
1.1 Android系统具有5个优点
1)开放性。
2)挣脱运营商束缚。
3)丰富的硬件选择。
4)不受任何限制的开发商。
5)无缝结合的Coogle应用。
1.2 Android系统具有5个不足
1)安全和隐私。
2)首先开卖Android手机的不是最大运营商。
3)运营商任能够影响Android手机。
4)同类机型用户减少。
5)过分依赖开发商缺少标准配置。
1.3 Android的系统构架
1.3.1 应用程序
Android会同一系列核心应用程序包一起发布,应用程序包包括Email客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
1.3.2 应用程序框架
开发人员直接调用的API。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
1.3.3 程序库
Android包含一些C/C++库,这些库是底层的,能被Android系统中应用程序框架的组件使用。
1.3.4 Android运行库
Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每个Android程序都在Dalvik虚拟机中运行,拥有独立的实例。Dalvik是基于寄存器的,可以高效运行的虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。Dalv ik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
1.3.5 Linux Kernel
Android的核心系统服务依赖于Linux 2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。
2 Android通信安防系统的结构设计
2.1 短信拦截功能
2.1.1 白名单
用户如果只想接收特定号码的短信则点击白名单选框后,进入白名单设置界面,在白名单里添加号码,则除了输入白名单的号码能够接入本机,其他号码用户被自动默认为黑名单被屏蔽,同时被保存在查看短信历史记录里面,手机不会触发短信接收的反映,在手机短信箱里也不会出现该短信。用户可以通过查看短信历史记录,对接入的被屏蔽了的短信进行查看。
2.1.2 黑名单
用户如果想屏蔽特定号码电话的短信则点击黑名单选框后,进入黑名单设置界面,在黑名单里添加号码,当其短信进入时则被屏蔽,同时被保存在短信历史记录里面,手机不会触发短信接收的反映,在手机短信箱里也不会出现该短信。用户可以通过查看拦截历史记录,对接入的被屏蔽了的短信进行查看。
2.2 电话拦截功能
2.2.1 白名单
用户如果只想接听特定号码的电话则点击白名单选框后,进入白名单设置界面,在白名单里添加号码,则除了输入白名单的号码能够接入本机,其他号码用户被自动默认为黑名单被屏蔽,同时被保存在拦截历史记录里面,同时被屏蔽的号码用户听到电话提示对方呼叫繁忙的效果,从而无法接通。用户可以通过查看拦截历史记录,对接入的被屏蔽了的电话进行查看。
2.2.2 黑名单
用户如果想屏蔽特定号码电话的接入则点击黑名单选框后,进入黑名单设置界面,在黑名单里添加号码,当其接入时则被屏蔽,同时被保存在拦截历史记录里面,同时被屏蔽的号码用户听到电话提示对方呼叫繁忙的效果,从而无法接通。用户可以通过查看拦截历史记录,对接入的被屏蔽了的电话进行查看。
2.3 设定时间功能
通过设置开始时间和停止时间从析让应用自动在此时间断内开启,超过时间后自动关闭。
2.4 功能流程图
如图1所示为通信拦截系统的功能流程。
3 Android通信安防系统原理及实现
由于Android中本身没有关于拦截来电和过滤短信的API,因此,在技术实现上需要采用了一些非常规的做法,难度相对较大。以下将介绍关于电话拦截和短信拦截技术。
3.1 Android-telephy整体框架原理
主要分为C/C++与Java两层:
1)C/C++层:Rild,守护进程,电话底层驱动管理,GSM/GPRS modem,AI命令接口管理。
2)JAVA层:RIL.Java文件进行电话短信服务线程通过Socket与Rild进程通信;在java的服务线程池里面有telephy的服务接口;提供处理电话的功能接口。
3.2 短信拦截原理
固有短信的收取是通过底层框架的rild,解析之后,通过发送有序的广播,对有序的广播进行中断,通过设置广播获取的最高级别的权限属性挂载程序,达到短信拦截的目的。BroadcastReceiver广播类接收系统发出的短信广播,获取短信内容过滤,使用abortBroadcast()方法中断广播避免短信到达SMS的应用。
关键代码:
3.3 电话拦截原理
基于Android框架的电话服务,通过该服务可以获取到电话的大体功能,通过内部源码,提供的隐藏电话服务功能的API()函数,获取到对电话处理的内部方法调用AIDL接口ITelephy.aidl提供了endcall()方法,以此调用来拦截电话。电话来电信号从底层回调会发送一个无序的来电广播和回调PhoneStateListener的接口,通过获取广播中的信息或者接口中的信息拦截电话。
关键代码:
3.4 工作原理流程
通信安防系统工作原理流程如图2所示。
4 实际测试
4.1 测试环境
1)本应用开发后的.app应用程序。
2)用于运行此程序的基于android2.36系统的三星S5830手机。
3)用于对测试手机进行电话通信和短信发送的两部手机,号码为15883673262,18202866062。
4.2 测试过程
4.2.1 白名单测试
首先打开通信安防软件,点击打开拦截开关。然后进入白名单,输入电话号码15883673262,表示除了此号外,其他电话的通话和短信都会被拦截。
接着用号码为18202866062的电话接入本机,并且发送内容为"你好"的短信,在本机通信安防软件里面分别点击查看来电历史和查看短信历史看到如下图效果。
测试成功,号码为18202866062的电话对本机进行的来电和短信都被成功拦截。
4.2.2 黑名单测试
在删除上例中白名单中输入的15883673262号码后,进入黑名单中输入电话号码15883673262,表示此号码对本机进行的通话和短信都会被拦截。
接着用号码为15883673262的电话接入本机,并且发送内容为"你好啊"的短信,在本机通信安防软件里面分别点击查看来电历史和查看短信历史看到如图10、图11所示效果。
5 结束语
文中详细介绍了基于Android平台的来电拦截和短信拦截的实现原理以及测试效果,可看出它能较好的实现来电拦截和短信拦截的功能。但由于研究时间有限,设计还不尽完善,来电拦截技术上还有待改进。如来电拦截,经过多次试验,其效果并没达到所期望的那么好,当有来电接入时,如果是在原号码前面加上86或者17951的前号则应用程序视为不同的电话号码处理。还有因为Android是一个开放的平台,会给许多居心不良者提供方面,利用此技术来做一些恶意拦截电话短信的软件,从而会给广大用户代码不必要的麻烦。后面还应该需要在节能方面进行改进,不使用service来维护后台工作,而使用broadcastRecever来维护后台,可以节省Android大量的电量。
同时对于日新月异发展的Android技术,希望在不久的将来google公司完善源码中电话和短信安全控制,能脱离对Android通信安防应用软件的需求。
如何成为一名优秀的射频工程师,敬请关注: 射频工程师养成培训
上一篇:基于MSC-51单片机的智能压力变送器
下一篇:当移动技术遇到LabVIEW