Android系统短信隐私保护

武汉大学国际软件学院

课程论文

课程名称 信息安全 专业年级 软件工程2012级 姓 名 梁振友 学 号 2012302580042 学 期 2014-2015 学年 第二 学期 成 绩 任课教师签名

Android系统短信隐私保护

摘要

随着经济和科技的发展,智能手机得到了普及,移动互联网已经影响了人民

生活的各个方面,人们的生活甚至已经离不开移动设备。在这个时候,却不断爆出了智能手机用户信息被窃取的新闻,隐私泄露问题日益严峻。

由谷歌公司发布的Android手机操作系统是全球首个为移动设备所打造的完全开放的手机平台。该平台由一系列应用软件、操作系统、中间件与用户界面所组成,是目前市面上主流的手机平台,其用户群是相当巨大的。本片论文主要研究Android系统下,如何实现对恶意监听短信软件的检测,从而保护短信隐私内容,完成的主要工作包括:

1) 分析Android系统的广播机制 2) 分析恶意监听短信的软件的原理

3) 从Android系统的机制,研究如何通过检测恶意软件的权限,通过权限来

判断软件属性,从而保护短信内容不被其他软件读取。

关键字: Android 广播 短信 监听 恶意软件

权限 检测

目录

第一章 引言

第二章 Android平台概述 第三章 Android的广播机制 第四章 恶意监听代码 第五章 检测软件权限 第六章 结论

第一章 引言

Android 操作系统作为目前应用市场上影响力最大的移动平台,其开放性为

运营商和开发者提供了广阔的发挥空间,同时面向终端用户的开放也为其带来了各种风险。据2013 年6 月23 日的调查数据:目前Android 平台上14%的免费应用程序可以获取用户联系人的全部信息;39%的免费应用程序可以获取用户当前的位置信息;57%的免费应用程序包含第三方私有代码;12%的免费应用程序会监听用户的短信、通话记录。

短信内容的泄露,不仅是使用户的日常隐私被看到,更可怕的是支付平台发送的支付验证信息会被截取,从而到底财产损失。保护短信隐私安全,迫在眉睫!

第二章 Android平台概述

2007 年11 月5 日,Google 公司发布了一款名为Android(中文意思为机器人)的操作系统,这个操作系统是基于Linux 内核的开源操作系统,主要应用于移动智能终端。目前,Android 操作系统已经取得了巨大的成功,与Windows Phone、IOS 等手机操作系统并驾齐驱,成为是主流的手机操作系统之一,Android 的成功,主要来源于它的开放性,能够使开发者自由的发挥、自主创新。Android 系统在Linux 核心应用的基础上,向广大程序开发者提供了各种函数库和完整的应用程序框架。此外,Android 系统还在Linux 核心上提供了一种名为Dalvik 的Java 应用程序运行环境,与Sun 公司的Java 虚拟机有所不同,Dalvik 是Google 独创的专门针对于Android 平台进行优化的虚拟机。为了吸引全世界的应用程序开发人员参与Android 平台应用程序的开发,Google 公司还提供了完全免费的跨平台的开发工具包(SDK),它们已在Windows、Mac OS X、Linux 等平台得到了成功的应用。Android 系统主要具有开放性、所有的应用都平等、应用间无界限、快速便捷开发应用的优势。

1.开放性

Android 是一个真正意义上的开放性移动智能设备综合平台,它的开放性主要表现在:(1)Android 操作系统本身的源代码完全开放,它可以自由的吸纳新的尖端技术;(2)应用程序的自由性。例如一个应用程序可以调用系统电话服务中的拨打电话、监听电话状态、发送文本信息等核心功能,允许开发者创建更丰富、自由度更高的应用程序;(3)通过与运营商、设备制造商、开发商以及其他有关各方结成深层次的合作伙伴关系,来建立标准化的手机软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。

2.所用的应用都平等

Android 系统并不会区分手机中的系统级应用程序或第三方应用程序,所有的应用都运行在一个核心的引擎上面,这个核心的引擎就是Dalvik 虚拟机,它提供了一系列用于应用和硬件资源间通信的API 服务,所有应用都可以平等的享有系统资源,使用这些服务。例如开发者可以任意替换手机的风格界面,控制手机使用自定义的图片浏览器程序,按照自己喜欢的方式排列图片、浏览图片。

3.应用间无界限

Android 打破了应用之间的界限,例如开发者可以将Web 上的数据与本地的联系人、日历、位置信息结合起来,为用户创造全新的用户体验。例如使用Android系统,开发者可以获得其Android 设备的位置信息,允许不同设备之间的交流通信,使得Android 平台下的点对点社交成为了可能。

4.快速便捷开发应用

Android 系统为开发者提供了大量的实用库和工具,开发者可以快速便捷的开发出自己的应用。例如在Symbian、Windows Phone 手机平台上要进行位置应用的开发是相当复杂的,而Android 系统集成了Google Map,开发者只需要通过简单的几行代码就可以实现一个基于地图位置的应用。另外,Android 还包含了平台周边的应用,开发者可以高效的开发深入的应用程序。

第三章 Android的广播机制

Android广播机制指的是,在一个应用程序运行的时候可以自定义一个消息类型,让相应的接收器去处理这个消息或者是系统消息,比如来电话了、来短信了、手机没电了等等系统发送的消息。系统发送的消息也可以通过广播的方式通知给应用程序,这样子就避免了新开一个Thread去监听系统或其他应用发送过来的消息的状态。

Android广播的分类:

1、 普通广播:这种广播可以依次传递给各个处理器去处理

2、 有序广播:这种广播在处理器端的处理顺序是按照处理器的不同优先级来区分的,高优先级的处理器会优先截获这个消息,并且可以将这个消息删除 3、 粘性消息:粘性消息在发送后就一直存在于系统的消息容器里面,等待对应的处理器去处理,如果暂时没有处理器处理这个消息则一直在消息容器里面处于等待状态。

普通广播和粘性消息不同被截获,而有序广播是可以被截获的。

处理器的注册:

1、 在代码中用函数代码动态的方式注册。动态注册的处理器必须用代码动态的销毁,每次用来处理消息的就一个实例对象

2、 在配置文件里面静态注册,静态注册有个特点,那就是一旦注册就会一直存在于系统里面,无论应用是否关闭或开关机。静态注册每次有处理消息就由系统new一个处理器处理,并销毁。

第四章 恶意监听代码

注册一个广播:在manifest.xml文件中写以下代码,注册一个静态广播

1. 2.

3.

\ />

4. 5.

SmsReceiver.java

1. public class SmsReciver extends BroadcastReceiver { 2.

3. @Override

4. public void onReceive(Context context, Intent intent) { 5. Bundle bundle = intent.getExtras(); 6. SmsMessage msg = null; 7. if (null != bundle) {

8. Object[] smsObj = (Object[]) bundle.get(\); 9. for (Object object : smsObj) {

10. msg = SmsMessage.createFromPdu((byte[]) object); 11. Date date = new Date(msg.getTimestampMillis());//时间

12. SimpleDateFormat format = new SimpleDateFormat(\

H:mm:ss\);

13. String receiveTime = format.format(date);

14. System.out.println(\ + msg.getOriginatingAddress() 15. + \ + msg.getDisplayMessageBody() + \ 16. + msg.getTimestampMillis()); 17.

18. //在这里写自己的逻辑

19. if (msg.getOriginatingAddress().equals(\)) { 20. //TODO 21. 22. } 23. 24. } 25. } 26. } 27. 28. }

这样,一个短信监听软件就完成了,收到短信时,系统会发出一个

android.provider.Telephony.SMS_RECEIVED的广播,然后这个软件就会响应,接收短信内容,并且输出。

如果在这个onReceive()里面加入abortBroadcast();,那Android自带的短信软件也看不到短信消息和短信内容了。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4