CN103049707A - 一种基于Android平台的GPS数据拦截控制方法 - Google Patents
一种基于Android平台的GPS数据拦截控制方法 Download PDFInfo
- Publication number
- CN103049707A CN103049707A CN201210560896XA CN201210560896A CN103049707A CN 103049707 A CN103049707 A CN 103049707A CN 201210560896X A CN201210560896X A CN 201210560896XA CN 201210560896 A CN201210560896 A CN 201210560896A CN 103049707 A CN103049707 A CN 103049707A
- Authority
- CN
- China
- Prior art keywords
- function
- server process
- address
- rel
- plt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
Abstract
本发明属于位置隐私保护技术领域,提出一种基于Android平台的GPS数据拦截控制方法。本发明在不影响Android系统性能的情况下,在system_server进程中插入自己的位置服务监控模块,实现对GPS数据的拦截控制。本发明通过两步进行Android平台的GPS数据拦截控制:首先找到system_server进程运行时的ioctl函数的入口地址,在system_server进程中的ioctl函数入口地址处加载我们的监控模块,即实现在底层对GPS数据报的拦截。
Description
技术领域
本发明属于位置隐私保护技术领域,特别是涉及一种基于Android平台的GPS数据拦截控制方法。
背景技术
位置隐私保护是LBS(基于位置的服务)的重要方面,是用户获得QoS(服务质量)的关键技术之一,直接影响着用户是否安装并正常使用基于位置服务的应用程序。这几乎在所有涉及到LBS的技术文献和研究论文中均有论述。相关文献: Tran Khanh Dang, Quoc
Cuong To ,An Extensible and Pragmatic Hybrid Indexing Scheme for MAC-based LBS
Privacy-Preserving in Commercial DBMSs; Chi-Yin Chow, Mohamed F. Mokbel, Privacy in Location-based Services: A System Architecture Perspective; 深圳市中兴通讯股份有限公司,一种位置服务中隐私控制方法。
传统的基于用户权限的系统,为享受应用程序的服务,将用户的全部特权都分配给所有应用程序,这会导致一些恶意应用程序获取并泄露用户的隐私。相关文献:Luke Hutton.
An architecture for ethical and privacy-sensitive social network experiments.
PADE ’12 London, 2012.
很多应用程序大量收集用户的位置信息,远远多于提供服务所需的数据,而且,应用程序很少提供隐私策略,即清楚地说明用户的敏感信息会怎么使用,以及将会与哪些第三方应用平台分享敏感信息。APPs(应用服务)对位置的获取引发的隐私问题逐渐受到重视,人们已经开始认为分享位置信息在很多应用程序中弊大于利,从而拒绝安装一些应用程序,用户可以通过打分系统决定是否安装应用程序。相关文献:Adrienne
Porter Felt. The Effectiveness of Application Permissions. WebApps'11
Proceedings of the 2nd USENIX conference on Web application development, 2011;
Jaeyeon Jung. Enhancing Mobile Application Permissions with Runtime Feedback and Constraints. SPSM
'12 Proceedings of the second ACM workshop on Security and privacy in
smartphones and mobile devices, 2012; 黄毅. CoPrivacy:一种用户协作无匿名区域的 位置隐私保护方法. 计算机学报, 2011; Daniel Kifer. A Rigorous and
Customizable Framework for Privacy. Proceedings of the 31st symposium on
Principles of Database Systems, 2012.
用户的敏感位置作为隐私保护的对象,如何防止恶意的应用程序泄露用户的敏感位置是当前的一个热点问题。以敏感位置为中心的隐私保护方案有很多。最直接的方法就是设置敏感位置(make sensitive),防止应用程序获取这些敏感位置,当进入一个新环境时,弹出提示窗口,让用户选择。这种方法的设置本身就泄露了信息,而且给用户造成了一定的认知负担。为了减轻用户的认知负担,可以使用收集数据的方法,收集来自其他类似经历用户的概要文件,维护数据库。为了防止设置本身的泄露,出现了两种隐私检测方法(maskit):概率检查(probabilistic check)和模拟检查(simulatable check),通过对应用程序的使用风险采用朴素贝叶斯排序,来决定释放还是抑制用户的当前位置。相关文献:Fehmi Ben
Abdesslem. Context-based Personalised Settings for Mobile Location Sharing.
Proceedings of the 31st symposium on Principles of Database Systems, 2012;
Jinseong Jeon. Dr. Android and Mr. Hide: Fine-grained Permissions in Android
Applications. SPSM '12 Proceedings of the second ACM workshop on Security and
privacy in smartphones and mobile devices, 2012; Michaela Götz. MaskIt:
Privately Releasing User Context Streams for Personalized Mobile Applications.
Proceedings of the 2012 international conference on Management of Data - SIGMOD
'12, 2012.
从应用程序的角度,目前最普遍的方法是设置应用程序信任列表,拦截应用程序的位置请求数据报,选择是否置空请求数据报,以控制应用程序对位置的访问权限。应用程序对位置的访问或者允许,或者拒绝。允许获取,则用户可以享受到应用程序提供的服务,拒绝获取则不能。
相关参考文献:Drew Fisher.
Location Privacy: User Behavior in the Field. SPSM '12 Proceedings of the
second ACM workshop on Security and privacy in smartphones and mobile devices,
2012.
现有的一些位置隐私保护的相关产品如LBE,360隐私保护等都通过建立信任列表的方式,来控制位置服务访问的授权,采用选择即信任的单一保护模式。
为了实现个性化的隐私保护,达到在享受服务同时进行隐私保护的目的,基于很多时候应用程序收集的位置信息多于其所需的位置信息这一事实,需要进一步改进现有技术。
发明内容
针对上述问题,本发明提出一种基于Android平台的GPS数据拦截控制方法,提高用户隐私信息保护力度。
本发明的技术方案提供一种基于Android平台的GPS数据拦截控制方法,在system_server进程中的ioctl函数入口地址处加载监控模块,在底层对GPS数据报进行拦截;
所述监控模块通过hookioctl函数实现,hookioctl函数首先对比GPS数据报的命令字cmd,当cmd = = BC_TRANSACTION时,解析GPS数据报获取服务名称sname;然后通过设置判断语句实现位置服务名称与sname的映射,实现对请求位置服务的GPS数据报的拦截。
而且,所述ioctl函数入口地址获取方式如下,
首先获取ioctl函数的函数索引name_index,然后和rel_plt节头表中的rel_plt_table->r_info进行一一对比,如果相等,则找到system_server进程中的ioctl函数偏移地址io_r_offset = rel_plt_table->r_offset;其中,rel_plt_table->r_info表示rel_plt结构中在指针所指地址内储存的函数索引,rel_plt_table->r_offset表示rel_plt结构中在指针所指地址内储存的函数偏移地址;
查看系统的进程列表,找到system_server进程的运行基地址BaseAddr,根据基地址和ioctl函数的入口地址,计算出system_server进程运行时ioctl函数的入口地址ioctl_addr =
io_r_offset + BaseAddr。
而且,在system_server进程中加载监控模块的实现方式如下,
使用ptrace函数暂停system_server进程,并在system_server进程中加载和运行load_server_lib函数模块,从而获得system_server进程的操作权限,使指向ioctl函数的指针指向监控模块hookioctl函数。
本发明提供一种基于Android平台的GPS数据拦截控制方法,在不影响Android系统性能的情况下,在system_server进程中插入自己的位置服务监控模块,实现对GPS数据的拦截,从而增加用户对APPs位置服务请求的有效控制,使得用户可以根据自己的需要修改位置服务中的GPS数据,为用户个性化的隐私保护提供了技术支持。
附图说明
图1为传统应用进程请求位置服务通信流程图。
图2为本发明实施例的应用进程请求位置服务通信流程图。
图3为本发明实施例寻找ioctl函数的偏移地址的示意图。
具体实施方式
本发明技术方案基于Android平台,具体实施时可采用软件技术实现自动运行,所涉及各现有进程、函数可参见相应文献。
以下结合附图和实施例提供本发明技术方案的详细说明。
如图1所示,一般的应用进程请求位置服务通信流程中,Application(应用程序)首先向ServiceManager(服务管理)进程发送一个接入Location(位置)服务的请求数据报,即图中1.请求接入服务;ServiceManager进程返回Location服务的接入入口,即图中2.返回位置提供者入口;然后Application根据入口向System_server请求接入,即图中3.接入服务;Location服务获得用户位置信息后返回一个含有用户位置信息的GPS响应数据报,即图中4.获得位置信息。
如图2所示,本发明在System_server进程中插入一个监控模块。首先同样执行1.请求接入服务、2.返回位置提供者入口、3.接入服务。Android系统中,Location服务在System_server(系统服务)进程中,Application根据Location服务接入入口向System_server发送请求获取用户位置信息的GPS请求数据报,GPS请求数据报经过监控模块发送给Location服务,即图中4.请求位置信息;Location服务获得用户位置信息后返回一个含有用户位置信息的GPS响应数据报,即图中5.返回;该GPS响应数据报经过我们的监控模块将位置信息返回给Application,即图中6.获得位置信息。通过本发明实现Application和Systen_server通信的GPS数据报都经过我们的监控模块,达到对GPS数据报拦截和控制的目的。
Android系统中规定,进程间必须通过Binder通信机制进行通信。Binder驱动程序和Service Manager在Android平台中已经实,Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力。system_server进程通信过程中数据流需要经过ioctl函数来实现输入输出。本发明实施例实现对GPS数据的拦截控制,是通过寻找system_server进程运行时的ioctl函数的入口地址,在ioctl函数入口地址处加载实施例提供的监控模块来实现的。
为了获得system_server进程中ioctl函数的入口地址,首先需要分析system_server的ELF文件结构,找到ioctl函数在system_server进程中的偏移地址io_r_offset。通过分析可发现system_server进程的ioctl函数的偏移地址存储在rel_plt节头表中,rel_plt节头表中包含连续的rel_plt_table结构,rel_plt_table结构内存储system_server进程中的函数索引信息r_info和函数偏移地址r_offset(如图3)。
如图3所示,在System_server进程中查找ioctl函数的偏移地址,首先从elf header(ELF文件头部)查找找到program header(程序头部),program header中包含ELF文件中section(节点,例如第一个节点section1)的入口地址,经过分析发现System_server进程的ioctl函数偏移地址储存在rel_plt section(rel_plt结构节点)中,然后通过program header找到rel_plt section的入口地址,将该入口地址赋给指针rel_plt_table,rel_plt节头表中每一段内存结构都含有r_info(函数索引)和r_offset(对应函数的偏移地址)等信息;根据ioctl函数的函数名,实施例首先获取ioctl函数的函数索引name_index,然后和rel_plt节头表中的rel_plt_table->r_info(rel_plt结构中,在指针所指地址内储存的函数索引)进行一一对比,如果r_info != name_index(不相等),rel_plt_table++(指针指向rel_plt的下一个内存结构);如果r_info = = name_index(相等),则找到system_server进程中的ioctl函数偏移地址io_r_offset = rel_plt_table->r_offset(rel_plt结构中,在指针所指地址内储存的函数偏移地址)。
查看系统的进程列表,找到system_server进程的运行基地址BaseAddr,根据基地址和ioctl函数的入口地址,可以计算出system_server进程运行时ioctl函数的入口地址ioctl_addr =
io_r_offset + BaseAddr。
一般情况下,在Android系统中实现对system_server进程处的模块加载,需要拥有该进程的操作权限。Android系统提供了ptrace函数,该函数允许暂停正在运行的进程,并对该进程中的代码进行插入、删除、修改等操作。实施例使用ptrace函数暂停system_server进程,并在system_server进程中加载和运行预先编译好的load_server_lib函数模块(现有技术),执行load_server_lib函数的目的是获得system_server进程的操作权限,使指向ioctl函数的指针指向实施例提供的监控模块hookioctl函数,完成位置服务监控模块的加载。
实施例提供的hookioctl函数首先对比GPS数据报的命令字cmd,当cmd = =
BC_TRANSACTION时,解析该GPS数据报,获取其服务名称sname。BC_TRANSACTION是Binder驱动程序的请求数据命令。通过设置判断语句实现位置服务名称与sname的映射——位置服务名称= = sname,实现对请求位置服务的GPS数据报的拦截。在system_server进程中的ioctl函数入口地址处加载hookioctl函数实现的监控模块,即可实现在底层对GPS数据报的拦截和根据上层事件要求对GPS数据的修改。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (3)
1.一种基于Android平台的GPS数据拦截控制方法,其特征在于:在system_server进程中的ioctl函数入口地址处加载监控模块,在底层对GPS数据报进行拦截;
所述监控模块通过hookioctl函数实现,hookioctl函数首先对比GPS数据报的命令字cmd,当cmd =
= BC_TRANSACTION时,解析GPS数据报获取服务名称sname;然后通过设置判断语句实现位置服务名称与sname的映射,实现对请求位置服务的GPS数据报的拦截。
2.根据权利要求1所述基于Android平台的GPS数据拦截控制方法,其特征在于:
所述ioctl函数入口地址获取方式如下,
首先获取ioctl函数的函数索引name_index,然后和rel_plt节头表中的rel_plt_table->r_info进行一一对比,如果相等,则找到system_server进程中的ioctl函数偏移地址io_r_offset = rel_plt_table->r_offset;其中,rel_plt_table->r_info表示rel_plt结构中在指针所指地址内储存的函数索引,rel_plt_table->r_offset表示rel_plt结构中在指针所指地址内储存的函数偏移地址;
查看系统的进程列表,找到system_server进程的运行基地址BaseAddr,根据基地址和ioctl函数的入口地址,计算出system_server进程运行时ioctl函数的入口地址ioctl_addr = io_r_offset + BaseAddr。
3.根据权利要求1或2所述基于Android平台的GPS数据拦截控制方法,其特征在于:在system_server进程中加载监控模块的实现方式如下,
使用ptrace函数暂停system_server进程,并在system_server进程中加载和运行load_server_lib函数模块,从而获得system_server进程的操作权限,使指向ioctl函数的指针指向监控模块hookioctl函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560896.XA CN103049707B (zh) | 2012-12-21 | 2012-12-21 | 一种基于Android平台的GPS数据拦截控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560896.XA CN103049707B (zh) | 2012-12-21 | 2012-12-21 | 一种基于Android平台的GPS数据拦截控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049707A true CN103049707A (zh) | 2013-04-17 |
CN103049707B CN103049707B (zh) | 2015-09-30 |
Family
ID=48062340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210560896.XA Expired - Fee Related CN103049707B (zh) | 2012-12-21 | 2012-12-21 | 一种基于Android平台的GPS数据拦截控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049707B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699835A (zh) * | 2013-12-11 | 2014-04-02 | 西安交通大学 | 一种面向Android系统资源的访问控制方法 |
CN105446806A (zh) * | 2014-09-28 | 2016-03-30 | 广州市动景计算机科技有限公司 | 一种应用程序无响应的处理方法及装置 |
CN107368751A (zh) * | 2017-07-24 | 2017-11-21 | 湖南大学 | 一种基于背景信息的位置隐私保护方法 |
CN108595976A (zh) * | 2018-03-27 | 2018-09-28 | 西安电子科技大学 | 基于差分隐私的安卓终端传感器信息保护方法 |
CN110555313A (zh) * | 2018-05-14 | 2019-12-10 | 北京大学 | 一种基于Android系统的位置隐藏方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026869A (zh) * | 2006-02-24 | 2007-08-29 | 中兴通讯股份有限公司 | 一种位置服务中隐私控制方法 |
CN101493873A (zh) * | 2009-03-04 | 2009-07-29 | 浪潮电子信息产业股份有限公司 | 基于内核层技术实现对win平台文件读写操作访问控制方法 |
US7797733B1 (en) * | 2004-01-08 | 2010-09-14 | Symantec Corporation | Monitoring and controlling services |
CN102693394A (zh) * | 2012-06-07 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种用于拦截应用程序对服务的调用的方法和装置 |
-
2012
- 2012-12-21 CN CN201210560896.XA patent/CN103049707B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797733B1 (en) * | 2004-01-08 | 2010-09-14 | Symantec Corporation | Monitoring and controlling services |
CN101026869A (zh) * | 2006-02-24 | 2007-08-29 | 中兴通讯股份有限公司 | 一种位置服务中隐私控制方法 |
CN101493873A (zh) * | 2009-03-04 | 2009-07-29 | 浪潮电子信息产业股份有限公司 | 基于内核层技术实现对win平台文件读写操作访问控制方法 |
CN102693394A (zh) * | 2012-06-07 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种用于拦截应用程序对服务的调用的方法和装置 |
Non-Patent Citations (1)
Title |
---|
谷长龙: "《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》", 15 April 2010 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699835A (zh) * | 2013-12-11 | 2014-04-02 | 西安交通大学 | 一种面向Android系统资源的访问控制方法 |
CN103699835B (zh) * | 2013-12-11 | 2016-08-17 | 西安交通大学 | 一种面向Android系统资源的访问控制方法 |
CN105446806A (zh) * | 2014-09-28 | 2016-03-30 | 广州市动景计算机科技有限公司 | 一种应用程序无响应的处理方法及装置 |
CN105446806B (zh) * | 2014-09-28 | 2019-03-15 | 广州市动景计算机科技有限公司 | 一种应用程序无响应的处理方法及装置 |
CN107368751A (zh) * | 2017-07-24 | 2017-11-21 | 湖南大学 | 一种基于背景信息的位置隐私保护方法 |
CN108595976A (zh) * | 2018-03-27 | 2018-09-28 | 西安电子科技大学 | 基于差分隐私的安卓终端传感器信息保护方法 |
CN110555313A (zh) * | 2018-05-14 | 2019-12-10 | 北京大学 | 一种基于Android系统的位置隐藏方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103049707B (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10244001B2 (en) | System, apparatus and method for access control list processing in a constrained environment | |
CN102968599B (zh) | 基于资源发布者自定义的访问控制系统及方法 | |
US8656016B1 (en) | Managing application execution and data access on a device | |
KR101302092B1 (ko) | 개인통신 단말기의 보안제어 시스템 및 방법 | |
US8843648B2 (en) | External access and partner delegation | |
Corrad et al. | Context-based access control management in ubiquitous environments | |
US8850041B2 (en) | Role based delegated administration model | |
CN103049707B (zh) | 一种基于Android平台的GPS数据拦截控制方法 | |
CN104683336A (zh) | 一种基于安全域的安卓隐私数据保护方法及系统 | |
CN104573478A (zh) | 一种Web应用的用户权限管理系统 | |
CN111869179B (zh) | 基于位置访问受控访问资源 | |
KR20130023656A (ko) | 애플리케이션 접근권한 통제 기능을 갖는 휴대용 다기능 디바이스 및 애플리케이션 접근권한 통제방법 | |
CN105404819A (zh) | 一种数据访问控制方法、装置以及终端 | |
JP2015524592A (ja) | 企業データシステム内のテナントのためのセキュリティおよびデータの隔離 | |
CN103413095A (zh) | 管理移动终端的方法和装置 | |
CN105550595A (zh) | 用于智能通信设备的隐私数据访问方法及系统 | |
KR101059058B1 (ko) | 위치 기반 서비스 접근 제어 장치, 방법 및 시스템 | |
JP2008250930A (ja) | データ利用制限システム、ユーザ情報管理装置、データ利用判定装置及び移動機並びにデータ利用制限方法 | |
CN107124429B (zh) | 一种基于双数据表设计的网络业务安全保护方法及系统 | |
KR101731920B1 (ko) | 이동 단말기 및 그것의 제어방법 | |
KR20090128203A (ko) | 호스팅 서비스 환경에서 접근권한 제어 장치 및 그 방법 | |
US20220255970A1 (en) | Deploying And Maintaining A Trust Store To Dynamically Manage Web Browser Extensions On End User Computing Devices | |
KR20100070763A (ko) | 유비쿼터스 센서 네트워크 미들웨어에서의 접근제어 방법 및 그 장치 | |
KR102165820B1 (ko) | 사물간 웹 네트워크를 통한 자원 접근 제어 방법 | |
JP2015099461A (ja) | データ保護装置、方法、および、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150930 Termination date: 20161221 |