位置隐私保护系统及实现.docx
- 文档编号:14467212
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:49
- 大小:2.12MB
位置隐私保护系统及实现.docx
《位置隐私保护系统及实现.docx》由会员分享,可在线阅读,更多相关《位置隐私保护系统及实现.docx(49页珍藏版)》请在冰豆网上搜索。
位置隐私保护系统及实现
位置隐私保护系统及实现
摘要
英文摘要.
第一章绪论1
1.1研究背景及意义1
1.2论文主要内容和结构2
第二章相关技术概述4
2.1Android平台系统架构4
2.1.1Android平台层次架构5
2.2.1定位服务架构概述6
2.2.2定位服务源码分析7
2.2.3定位服务运行流程8
第三章Android平台位置隐私保护系统的设计与实现10
3.1系统开发平台和环境配置10
3.1.1Eclipse开发平台简介10
3.1.2开发环境配置10
3.2Android模拟位置实现13
3.2.1总体过程流图和介绍13
3.2.2android.location包中的类和接口14
3.2.3系统服务的启动与注册16
3.2.4LocationManagerService18
3.2.5LocationProviderInterface19
3.2.6GpsLocationProvider的实现21
3.2.7JNI层与HAL层26
3.2.8总结29
第四章系统测试与评估32
4.1测试工具和测试目的32
4.2测试过程32
4.3成果截图32
4.4结果分析35
第五章总结和展望36
5.1总结36
5.2展望36
致谢38
参考文献39
位置隐私保护系统及实现
摘要:
随着移动定位设备及无线通讯技术的不断完善,以及由于移动定位设备的飞速发展,伴随产生基于位置服务(Location-BasedServices,LBS),通过LBS人可以享受诸多的便利,例如查询附近医院餐厅、导航路线、查询目前交通状况等。
然而LBS在给人们带来方便的同时,用户的位置信息同样面临着被泄漏的危险。
用户的位置信息往往与用户的个人信息(比如,其所在公司、家庭住址、身体健康状况以及宗教信仰等等)息息相关。
研究者们针对位置隐私泄露问题进行了大量的研究并提出了位置信息隐私保护方法,例如假位置匿名技术、数据混淆方法以及K-匿名等等。
这些方法大部分都针对基于位置服务中的位置隐私泄漏问题而进行研究探索的,然而对于Android操作系统内的位置隐私保护方法的研究还为数不多。
为了保护Android操作系统下用户的位置信息,本文提出来通过XX地图API定位当前位置,然后通过安卓位置管理器维护一个线程不断设置当前手机位置,以达到位置隐私的保护的目的,并将该设计应用到Android操作系统中,从而实现Android环境下的位置隐私保护。
关键词:
基于位置服务(LBS);安卓;位置管理器;位置隐私保护。
LocationPrivacyProtectionSystemandImplementation
ABSTRACT:
Withthecontinuousimprovementofthemobilepositioningdevicesandthewirelesscommunicationtechnology,andthedevelopmentofmobilepositioningequipment,theLocation-BasedServices(LBS)areproduced.WhenpeopleuseLBS,theycanenjoyalotofconvenience,suchas,searchingtheclosestrestauranttoahospital,navigationpath,queryingthesituationofcurrenttraffic,etc.HowevertheLBScanexposetheusers'locationinformation,andthenthreattheusers'privacy.Theusers'locationinformationisusuallycloselylinkedwiththeusers'identityinformation,forexample,thenameoftheircompany,homeaddress,healthstatus,religiousbeliefs,etc.
Researchershaveconductedextensivestudiesforlocationprivacyproblemandtheyputforwardsomealgorithmsforprotectinglocationinformation,includingfalselocationtechnology,dataconfusion,K-anonymous,andsoon.Mostofthesealgorithmsonlyprovidetheoreticalsolution,andtillnowthereislittlepracticalresearchonhowtointegratethelocationprivacyprotectionintotheAndroidsystem.
Toprotecttheuser'slocationinformationinAndroidsystem,ThisthesisproposestolocatethecurrentpositionthroughBaiduMapsAPI,thenthroughAndroidlocationmanagertomaintainathreadconstantlyandtosetthecurrentphonelocation,inordertoachievelocationprivacyprotection,andthedesignisappliedtotheAndroidoperatingsystem,soastorealizethelocationprivacyprotectionundertheAndroidenvironment.
Keywords:
Location-BasedServices(LBS);Android;Location
Manager;LocationPrivacyProtection
第一章绪论
1.1研究背景及意义
伴随定位技术的日益完善以及无线通信网络的快速发展,基于位置服务的应用越来越受到人们的关注,并且现有的移动设备具有强大的传输、存储、定位以及简单的计算能力,可以通过WiFi等与基站进行简单通信。
通过将移动设备与导航系统以及位置探测技术的相互结合,人们可以使用手机、平板电脑等移动设备获得与自己当前位置有关的个性化服务,也就是基于位置的服务。
基于位置的服务包括位置导航,位置感知广告,交通环境咨询,旅游服务,基于位置的游戏和导航,结合用户当前的位置,帮助用户寻找距离用户最近的饭店、餐馆、宾馆、医院、加油站等公共娱乐场所。
用户在享受这些便利的同时,担心自己的隐私受到威胁,即位置信息暴露给不受信任的第三方所带来的隐私泄露问题。
用户的有些位置信息是敏感的,因为用户的日常行为与位置密切相关,例如用户的工作单位、宗教信仰、身体状况等均与用户隐私息息相关,一旦用户位置信息被不法份子获得,将会给用户人身财产安全带来隐患。
因此,如何使用户在享受服务的同时又不把自己的隐私泄露出去,更加重视自己的位置隐私保护。
正因如此,其中多数用户不熟悉位置信息泄漏的知识,从而自身位置信息是否泄漏无法获知。
与此同时,人们也对使用LBS时导致敏感信息泄露的问题越来越关注。
如果用户向非可信的基于位置的服务提交查询服务的途径是尚未经过安全认证的。
那么用户可以自己选择与已经通过安全认证的匿名服务器建立可靠性链接,该匿名器在传递用户的信息之前,先移除与识别用户身份的ID(身份标识号),然后再将用户的其他信息传递给基于位置的服务。
虽然这样移除可以识别用户身份的ID信息,但是这种操作仍然存在以下缺点:
首先,基于位置的服务在处理与用户查询信息时需要用户的位置信息,如果基于位置的服务是未经安全认证的恶意服务商,它仍可以使用一些技术对用户的查询信息进行分析从而得到用户的位置信息并与用户的身份相联系,以致该安全处理操作失败。
比如,用户在公司提交一个基于位置的服务,经过位置信息处理后,该用户的位置有可能转换为与用户公司所在街道的位置信息。
其次,用户与可靠的匿名服务器之间的连接也是存在风险的,如果攻击者能够观察到用户的操作,攻击者很容易将这个操作与用户相互联系起来。
因此,仅仅移除用户的ID信息,是不能够完全保护用户的真实身份信息的。
最后,在处理用户的查询信息时,只单一使用用户所在位置的周边街道信息替代用户的真实位置信息来保护用户的身份信息,也是不够充分的。
例如,当用户处于地域广阔人口稀少的山区时,即使这个区域非常广阔,但是周围与该用户同时使用基于位置服务的用户可能很少甚至几乎没有其他用户。
通过以上分析,对用户的位置隐私保护问题还需进行深一步的研究。
如今是网络飞速发展的时代,使用智能移动设备的用户越来越多,尤其是配载Android操作系统的智能移动设备用户。
用户在使用手机软件的时候随时都面临着自己位置被泄漏的危险。
下面介绍Android操作系统的位置隐私保护的现状:
Android操作系统广泛应用于各种智能手机、平板电脑等移动设备,具备较大的市场占有率和用户基数,所以很多软件开发商从中看到利益。
这些开发商开发自己特色的软件吸引用户的使用,在用户使用的过程中就会获得用户的位置,其中很多软件并不需要用户开启定位服务,目前Android平台下的位置保护方法还很少,典型的针对Google位置泄漏存在两种一般方法:
一、关闭位置服务,更有利的措施是将移动设备恢复出厂设置;
二、安装位置隐私保护软件,例如小红马一位置隐私保护软件,它是一款Android平台可以保护用户位置信息以防被Google盗取的软件。
默认情况下Google手机、平板电脑会自动开启定位服务,无时无刻的监视你的位置变化。
软件可以让用户在必要的时候开启或者关闭位置服务功能。
由以上这两种方法可以看出Android平台下的位置隐私保护仍存在很多缺点,例如单一的关闭开启位置服务,这样既不方便用户使用基于位置服务,又未从根本上保护用户的位置不被泄漏。
鉴于目前支持位置服务的移动设备使用量愈加广泛,由此对位置隐私信息泄漏的概率也在增大,甚至威胁用户的生命财产安全。
基于移动设备的位置隐私保护的研究就是进一步阻止和解决非法攻击者获取移动用户的位置或者移动轨迹信息。
1.2论文主要内容和结构
本文针对上述问题进行移动设备下基于位置服务的隐私保护技术的研究,具体涉及用户位置信息的保护以及用户使用软件可信度的保护。
本文组织结构如下:
第1章为绪论,介绍了课题研究的背景和意义,其中包括当前位置隐私保护算法的研究以及Android平台下位置隐私保护的现状。
第2章研究了Android平台的系统结构,对Android平台下的相关技术进行了概述。
第3章研究了位置隐私保护方案以及在Android平台下的设计与实现,该系统由内核层以及应用层两部分实现,本章对此做了详细介绍和说明。
第4章本章主要介绍软件的测试与结果分析,还有必要的成果截图。
第5章本章主要是对课题研究进行了总结,并对以后的工作进行展望与介绍。
第二章相关技术概述
Android一词的本义指“机器人”,同时是Google于2007年11月5日宣布的基于Linux平台下的开源手机操作系统的名称,该平台是由操作系统、中间件、用户界面和应用软件组成。
2.1Android平台系统架构
Android操作系统平台是以Linux操作系统为背景基础的,扩充Android运行时环境(AndroidRuntime)和Android应用程序开发平台(AndroidPlatform),Android操作系统包括有:
1)应用程序;2)应用程序框架;3)各类链接库;4)Android运行时;5)Linux内核
图2.1Android系统架构
图2.1是Android系统架构图,如图所示,Android系统采用了分层架构,共分为4个层,从高层到低层分别是应用程序层、应用程序框架层、各类链接库和Linux
内核层。
2.1.1Android平台层次架构
观察Android系统架构图2.1可以发现,其提供的基本应用程序(如主程序,联
系人,浏览器等)运行在应用程序框架层上。
同样,开发者借助Android下的SDK
调用应用程序框架层的API(ApplicationProgrammingInterface,应用程序编程接口)开发出应用也会运行在应用程序框架层之上。
下面对Android系统分层结构进行简单介绍:
(1)应用程序层:
Android平台包含了许多用Java语言编写的、可以与用户直接交互的应用程序,这些应用程序还可以与其他应用程序相互替换。
其实Google最开始就在Android系统中捆绑了一些核心应用,比如Email、SMS、日历、地图、浏览器、联系人等等。
(2)应用框架层:
这一层大部分由Java语言编写,它是Android平台上Java世界的基石。
很多核心应用程序也是通过这一层来实现其核心功能,开发人员可以直接使用其提供的组件来进行快速的应用程序开发工作,也可以通过继承来实现个性化的拓展。
通过提供一个自由开放的开发平台,Android提供给开发者建立极其丰富和创新应用的能力。
开发者可以自由地享有硬件设备的优势,例如:
本地信息访问、后台运行服务、添加状态栏通知等等。
应用程序实际上是系统的一组服务,主要包括:
视图、内容提供者、资源管理器、通知管理器、活动管理器等。
(3)各类链接库:
这一层提供动态库(也叫共享库)、Android运行时库、Dalvik虚拟机等。
从编程语言的角度来说,Android还包括了一个C/C++库的集合,它们被系统的众多组件使用。
这一层大部分都是用C或C++写的,所以也可以简单地把它看成是Native层。
通过Android的应用程序框架,这些功能被开放给开发者使用。
其中一些核心库,如:
系统C库、媒体库、LibWebCore、SGL、3Dlibraries、FreeType、SQLite。
(4)Android运行时:
Android运行时又分为核心库和Dalvik虚拟机两部分。
核心库,实现SunJava编程语言中核心库的大部分功能。
这里主要通过JNI的方式向应用程序框架层提供调用底层程序库的接口。
Dalvik虚拟机是为了可以同时高效地运行多个VMs(VMware,虚拟机)而实现的,而且通过Linux内核来实现底层的各种功能,比如线程和低级内存管理。
(5)Linux内核层:
包含了Linux内核和一些驱动模块(比如USB驱动、Camera驱动、音频驱动等)。
目前Android依赖于Linux2.6内核提供的核心系统服务,例如安全、内存管理、进程管理、网络栈、驱动模块等,Android对内核进行了增强。
2.1.2Android应用程序组件
应用程序组件是Android应用程序的基本构建单元,每个组件是系统进入你的应用程序的不同入口点。
不是所有的组件对于用户来说都是实际上的入口点,有些是互相依赖的,但是每个组件都有特定的作用,每个都是唯一的构建单元,这些构建单元定义应用程序的全部行为。
Android有四种不同类型的应用程序组件,这些组件都可以单独实例化,每种都有不同的用处并且有不同的生命周期。
应用程序对外共享功能一般也是通过以下4种应用程序组件实现。
这四类不同的应用程序组件分别有:
Activity(Android的窗体)组件、Service(服务)组件、
BroadcastReceiver(广播接收器)组件、ContentProvider(内容提供者)组件
2.2Android平台定位服务架构分析
2.2.1定位服务架构概述
Android系统中定位服务的架构如图2-2所示。
该结构共分为四层:
2.2Android定位服务架构
第一层是应用层,即Android.Location包中包含的内容,是以Java语言提
供的API。
第二层是框架层,这一层包含了系统服务的实现,主要是由Java语言来实现。
第三层是共享库层,本层由C以及C++语言实现,框架层与共享库之间使用JNI进行衔接。
第四层是Linux内核层,整个Android系统都是以Linux内核为基础的。
从上至下它们是逐层依赖的关系,每层依赖下面一层完成其所需提供的服务。
2.2.2定位服务源码分析
Framework层:
1)路径位于frameworks/base/location/javalandroid/location,一般由App调用该目录,API包是Android.Location。
2)frameworks/base/location/java/com/android/internal/location,该目录是Location服务在Framework中的内部实现。
3)framework/services/java/com/android/server,这个是内部实现在Location服中的一个封装。
2.JNI层:
路径位于frameworks/base/core/jni/android_location_GpsLocationProvider.cpp,JNI层仅有一个文件,在这里有着承上启下的作用。
上层承接Framework层,下层调用HAL层的具体硬件抽象实现。
3.HAL(HardwareAbstractLayer硬件抽象层):
1)hardware/libhardware_legacy/gps
2)hardware/libhatdware_legacy/include/hardware_legacy/gps.h
HAL层相当于一个Linux应用程序接口,通过open,close等对硬件设备进行操作。
在4.2版本中提供了对美国高通((QCOM)公司的GPS的实现,在以下目录:
/hardware/qcom。
2.2.3定位服务运行流程
1.服务注册阶段
在Android系统中,位置服务通过系统的ServiceManager这个管理系统服务对象类来注册。
2.服务运行阶段
(1)LocationManagerService启动后,最主要的作用是提供定位服务,在上面架构图中可以看到获取的位置信息可以选择不同的LocationProvider,每个LocationProvider可能会记录最近一次的定位信息。
同时,我们可以使用监听器来主动获取位置更新通知。
所有的这些功能,都是在LocationManagerService中实现的。
(2)LocationManagerService中的主要内容都是围绕着LocationProvider而实现的。
LocationManagerService其实是一个线程类,除了用于构造函数以外,在其run方法中又完成了另一部分的初始化工作,主要是调用其initialize方法。
在
initialize方法中调用了loadProviders方法,loadProviders这个方法中完成了
LocationProvider的加载工作。
该方法又经过同步加锁以及异常的包装,最终的
实现方法是1oadProvidersLocked。
(3)GpsLocationProvider的构造函数完成了:
a.在系统中注册了一个BroadcastReceiver,这个BroadcastReceiver的作用
是负责在使用GPS模块时响应对于闹钟和短消息的事件处理。
b.读取GPS模块的外部配置文件,这是一个属性文件,该文件是用来配置GPS模块扩展功能的服务器信息,例如XTRA服务器、NTP服务器等信息。
该文件的位置记录在PROPERTIESFILE字段中,它的值是“/etc/gps.conf”。
c.创建并启动GpsLocationProviderThread,这是一个线程类,对于GPS模块功能的请求都是在这个线程中完成的。
(4)GPS模块的功能实现最终需要调用硬件来完成,这些实现必须要通过c/c++
语言才能完成。
为了能在GpsLocationProvider.java中调用这些功能,GpsLocationProvider中包含了许多的native方法。
JNI层的实现依赖HAL层接口,提供对于GpsLocationProvider.java中native方法的实现。
(5)JNI层有一个重要的方法
Android_location_GpsLocationProvider_class_init_native这个方法在GpsLocationProvider类中的静态初始化块中会被调用,它的作用有三个:
①在JNI层初始化对于GpsLocationProviderjava中回调方法的引用。
②尝试打开GPS设备。
③如果GPS设备打开成功,则获取GPS扩展接口的指针。
(6)到达HAL层后就直接和kernel中的GPS硬件驱动进行交互来获取位置
信息。
本章总结,基于Android平台的位置隐私保护系统的技术研究,主要目的是实
现Android平台下的位置隐私保护。
Android平台是用于移动智能设备上的操作系统,在程序开发中,应考虑以下条件:
程序大小、程序执行效率、内存占用比等固有的条件限制。
若在Android平台下实现位置隐私保护,该算法必须执行效率高、
资源开销少、可移植性好。
第三章Android平台位置隐私保护系统的设计与实现
3.1系统开发平台和环境配置
3.1.1Eclipse开发平台简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
然而,Eclipse附带了一个标准的插件集,包括Java开放工具(JavaDevelopmentTools,JDT)。
Eclipse不仅仅可以被当做JavaIDE来使用,同时它还包括了插件开发环境(Plug-inDevelopmentEnvironment,PDE),其主要针对系统扩展Eclipse的软件开放人员。
Eclipse主要包括四个部分:
EclipsePlatform、JDT、CDT和PDE。
JDT支持Java开放、CDT支持C开放、PDE用来支持插件开放,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开放平台,其和JDT、PDE组件共同合并组成EclipseSDK(软件开放包),一个具有丰富特性的开发环境由他们在一起提供的。
3.1.2开发环境配置
此部分主要介绍开发系统所使用到的工具,以及如何搭建开发系统的环境。
1.JDK安装
首先下载JDK,然后就是安装提示一步一步走。
安装后,设置环境变量过程如下:
(1)我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量。
(2)JAVA_HOME值为:
D:
\ProgramFiles\Java\jdk1.6.0_18;
(3)CLASSPATH值为:
.;%J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 位置 隐私 保护 系统 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)