Android平台细粒度权限管理系统的研究与实现

摘要:由于Android平台的开源性,它拥有庞大的用户数量,而其本身的提供的粗粒度安全机制,如沙盒、权限控制、应用签名等,已经不能满足用户日益增多的需求。所以,Android粗粒度安全机制下存在安全问题急需解决。借鉴Android细粒度的权限管理机制,设计实现了对用户隐私数据的提取进行权限控制。该系统能够分析隐私权限,并且用户在授予权限时能够拥有选择的权利,从而增加Android系统权限控制的安全性,同时大大提高对隐私数据的安全性控制。

正文内容:

0 引 言

当今社会,人们在工作、生活和娱乐等各个方面都越来越依赖智能终端。在这个大背景下,Android作为一个开源的系统平台,备受关注。截止到2017年第一季度,国外的市场数据调研公司Kantar woroldpanel公布,在中国、英国、德国、西班牙、法国等国家,安卓的市场占有率稳居第一,而且还有不断上升的趋势。然而,由于庞大的用户群体,安卓本身存在的安全隐患逐渐显现。

目前,Android平台的安全形势变得越来越复杂,而对Android的安全研究,其中重要的一点就是对权限控制的研究。Android粗粒度的安全机制,主要是“一次性的授权”,用户只有看到某个应用所要的权限,而不能自主进行选择;如果用户想要拒绝某个权限,只能放弃安装此软件[1]。这样用户的隐私信息就不能得到周全保护。本文主要是针对Android安全机制本身存在的漏洞,借鉴Android细粒度的权限管理机制,不仅可以对隐私权限进行分析与检测,而且在进行授权时,用户可以有自主选择的权利,从而增加Android系统的安全性[2]。

1 Android系统架构

Android是Google开发的基于Linux内核的开源手机操作系统。系统架构主要分为四层,从下而上分别为:Linux内核层(Linux Kernel)、系统运行库层(Libraries)、应用框架层(Application Framework)和应用层(Application)[3],如图1所示。Linux内核是Android系统的运行平台,为其提供底层的驱动;系统运行库层是Linux内核和应用程序框架层之间的沟通渠道[4];应用框架层是Android开发的基础,并能提供编程接口(API),简化了组件重用,极大方便了应用程序的开发;应用层是Android中安装所有应用程序的所在层[5]。

2 Android安全机制

Android本身建立在Linux内核的基础上,因此需在Linux系统的基础上建立了一套属于自己的安全机制[6]。它不仅继承了Linux操作系统的安全机制,而且其系统架构的各个层次都有独特的安全特性。Android的安全体系框架主要包括:内核级别的安全机制、系统级别的安全机制、基于应用程序级别的安全机制和用户级别的安全机制,本文将着重介绍权限控制机制[7]。Android的安全体系框架,如图2所示。

Android本身的安全机制简单概括,即在默认情况下,应用程序不能对整个系统、其他应用或用户进行不利的操作[8]。而Android系统的开源性,使得其对应用程序的安全设计上采取的是粗粒度的安全机制。它主要提供的功能是用户自己对自己负责的权限申请与授权机制[9]。可以大致把Android的权限管理机制分为三个部分:权限定义与申请层、权限解析与验证层、权限访问实现层,如图3所示。

要将自己所需要的权限告诉用户,即在安装的过程中,要详细显示其所要申请的权限。若用户认为应用程序所要申请的权限已经超过其本身所需要的,那么用户只有权利放弃安装,而不能对权限进行分析与拒绝。可见,Android系统的粗粒度安全机制,并不能保证用户隐私信息的安全。此外,这种安全机制还存在其他缺陷。第一,权限一经授予应用程序,此权限在该应用程序生命期间都将有效,用户无法剥夺权限;第二,权限机制缺乏灵活性,要么全都批准应用程序所要求的所有权限,要么拒绝应用程序的安装;第三,权限机制安全性不够,不能阻止恶意软件通过JNI技术直接调用C库,从而获取系统服务。

对Android安全机制的介绍可以看出,尤其是Android的权限控制机制,在粗粒度的安全机制下,将无法有效保证Android系统的安全。所以,本文针对粗粒度安全机制的缺陷,提出了细粒度的权限管理机制。不仅能分析隐私数据本身的提取,而且实现了对权限的分析,同时用户可以根据应用程序属性,控制应用所要提取的权限,从而实现对隐私数据更加安全与全面的保护。

3 隐私保护技术的设计与实现

3.1 设计总体思想

本系统是一个基于Android平台的隐私保护技术系统,主要针对用户隐私数据保护,从而保证用户的信息安全。

本文提出的Android细粒度的权限控制,主要分为三大模块:权限数据库存储模块、隐私权限控制模块和权限设置管理模块。此系统首先解决Android粗粒度下的缺陷,用户可以通过权限设置管理模块,自定义地设置应用所需的有关权限。此外,当应用要申请某项权限时,隐私权限控制模块就会截获应用的请求,并查看是否具有此权限。若存在,则通过申请;若不存在,则对用户做出警告提示,从而加强Android系统安全机制本身存在的安全问题。整个系统的框架设计,如图4所示。

3.2 权限设置管理模块

权限设置管理模块相当于用户对应用权限的总控制中心。该模块主要先从Android系统中已经安装的应用中提取权限列表,然后过滤所有和隐私相关的权限,并显示在相应的权限列表中。这样用户就可以根据自己的需要选择每个应用所需要的权限。简单来说,就是通过获取PackageManager对象,调用getInstalledAoolications()获取应用的list对象,最后通过获取的对象得到应用的权限列表。此外,此模块维护了一个存储着用户在权限设置管理模块手动设置的每个应用的隐私权限的数据库,这个数据库是隐私权限控制模块的基础。具体设计如图5所示。

3.3 隐私权限控制模块

隐私权限控制模块是此系统的核心模块。此流程中,如果某个应用程序要读取用户的隐私数据,隐私权限控制模块就会截获此信息,并与权限数据库存储模块中的数据进行对比,查看是否存在。若存在,隐私权限控制模块就会通过;若不存在,则会弹出警告窗口,建议用户阻止该处理。具体设计如图6所示。

3.4 系统整体设计与实现

本系统主要设计了权限设置管理模块、隐私权限控制模块以及权限数据库存储模块。系统的整体设计流程图,如图7所示。系统开始运行后,在第三方应用请求隐私数据权限时,隐私权限控制模块会拦截应用的请求信息,然后与权限设置管理模块中的数据库信息进行比对,接着查询此应用是否拥有此权限。若拥有此权限,则访问权限对应的数据;若没有通过查询,则隐私权限控制模块则会弹出一个警告提示框,建议用户拒绝该权限。

4 系统测试

本系统主要实现权限设置管理模块和隐私权限控制模块的功能。其中,权限设置管理模块的功能主要是实现能够获取第三方应用的权限,用户能够选择要阻止的权限;隐私权限控制模块主要是实现当应用要提取用户的隐私信息时,分析应用所要提取的权限,并与权限数据库存储模块中的数据进行对比,对用户做出提醒,给出合理建议。这两个模块的结合,可实现对用户隐私数据更全面的保护。它的测试图如图8、图9所示。

5 结 语

根据上述测试结果,当用户需要安装某一应用程序时,权限数据库存储模块将执行提取第三方应用权限的功能,且用户可以根据自己的需要,选择某项不需要的权限进行阻止;其次,当第三方应用想要申请用户隐私数据的授权时,隐私权限控制模块也会给出相应提示信息,给予用户操作该申请的权利,从而改变以往用户只有查看权限的权利。即若用户出于隐私保护等方面考虑,要阻止某一权限时只能取消安装,而现在用户可以有权利阻止某项权限而不需要取消安装,更加全面地保护了用户隐私信息的安全。

参考文献:

[1]符易阳,周丹平.Android安全机制分析[J].信息网络安全,2011(09):23-25.

[2] 陈璟,陈平华,李文亮.Android内核分析[J].现代计算机(专业版),2009(11):112-115.

[3] 公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(08):85-89.

[4] 赵楠,刘佳.移动APP隐私乱象[J].中国中小企业,2013(10):56-57.

[5] 林佳华,任伟,贾磊雷.Android手机隐私保护系统的设计与实现[J].信息网络安全,2013(07):16-19.

[6] 李中平,邱健峰,李璐等.Android手机远程控制关键技术分析[J].计算机应用与软件,2013(04):113-115.

[7] 姚一楠,于璐,何桂立.Android平台的安全挑战及应对措施[J].现代电信科技,2012(09):16-21.

[8] 吴剑华,莫兰芳,李湘.Android用户隐私保护系统[J].信息网络安全,2012(09):50-53.

[9] 曾露.MVP模式在Android中的应用研究[J].软件,2016(06):75-78.

作者:吕 博,李永忠

单位:江苏科技大学 计算机学院,江苏 镇江 212003

作者简介:吕 博,女,硕士,主要研究方向为网络与信息安全;

李永忠,男,硕士,教授,主要研究方向为网络安全、藏文信息处理。

本文刊登在《通信技术》2018年第2期(转载请注明出处,否则禁止转载)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180227B0VYA800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券