安卓敏感数据和能力的访问控制增强机制研究

2016-09-08 10:32韩伟力
计算机应用与软件 2016年8期
关键词:访问控制安卓联系人

王 蔚 周 韬 韩伟力

(复旦大学软件学院 上海 201203)



安卓敏感数据和能力的访问控制增强机制研究

王蔚周韬韩伟力

(复旦大学软件学院上海 201203)

安卓设备中的敏感数据和感知能力面临严重安全威胁。现有的安全机制主要从应用层实施粗粒度访问控制,无法有效保护用户敏感数据和设备感知能力。为此,提出基于密码学和细粒度安全策略驱动的安卓敏感数据和能力访问控制增强机制。首先,结合密钥管理和细粒度加密策略,利用高强度对称加密算法对敏感数据进行加密,解决敏感数据的安全存储问题;其次,应用基于细粒度安全策略的访问控制机制,从安卓平台层控制感知能力的访问权限,实现感知数据保护的目的。通过原型系统和性能测试,提出的安卓敏感数据和能力的访问控制增强机制可以运行在当前安卓平台上,并且性能是可接受的。

安卓安全访问控制细粒度隐私保护

0 引 言

近年来,安卓智能手机的全球市场份额大幅攀升[1],大量的安全问题也不断显现。安卓的安全体系通过权限机制控制第三方应用程序对短信、联系人、感知设备等敏感资源的访问。然而,由于粗粒度的权限控制,使用者和开发者通常为了更好地用户体验而希望获得更多权限,从而导致系统的安全机制直接失效,安卓设备也因此面临了更多安全威胁。其中,恶意代码植入、权限扩大攻击等带来的恶意收费、窃听、位置泄露等安全事件频发。这些用户敏感信息的泄漏问题,给安卓系统安全带来了巨大的挑战。

1 研究背景

1.1国内外研究现状

国内外的研究人员在安卓权限管理上做了大量的研究。Bugiel等人研究发现权限的过度请求违反了最少权限法则,从而带来隐私泄露和财产损失的隐患[2]。此外,Schlegel等人对权限扩大攻击进行了研究,发现恶意应用程序可以通过和其他应用程序协作,在没有显式请求的情况下访问敏感资源[3]。

研究人员在隐私数据保护方面也做了大量研究。Rayarikar等人在安卓系统上实现了一个对短信进行加密的应用程序,采用AES算法对数据进行加解密[4]。吴剑华等人通过黑白名单的方式,实现对隐私数据的授权访问以及对进程的实时监控[5]。

此外,常见的系统保护软件,如腾讯手机管家等,它们将隐私数据文件隐藏在磁盘的隐藏空间中,使得恶意软件或攻击者无法得到,以达到防止数据泄露的目的。但在该解决方案中,文件本身并没有加密,所以仍存在明文获取、隐私泄露的风险。

1.2研究内容和意义

面对大量的安卓安全威胁,研究者们已经做了大量的研究,但这些研究大多停留在粗粒度控制上,用户不能对资源进行自定义的保护配置。毕竟,在实际应用场景中,我们并不需要对整个磁盘或者整个数据库进行加密操作。此外,由于缺乏对感知来源的控制,麦克风等感知来源可能被恶意程序调用,从而获取用户的敏感数据,造成用户隐私数据的泄露。

基于以上问题,本文提出基于安卓系统的访问控制增强机制。通过对联系人和短信数据进行细粒度加密,实现隐私数据的保护。同时,本文采用权限阻断的方式,对感知来源数据进行保护。最后,本文通过性能实验验证了保护机制的可用性和可靠性。本文主要贡献如下:1) 设计并实现了隐私数据加解密框架,保护自定义字段的数据,避免全加密对系统造成的性能负担。2) 设计了权限阻断机制,在不同的应用场景中完成对权限的授予和阻断,从而保护感知来源数据。

2 相关理论与技术

2.1安卓体系结构

安卓系统的体系结构由4个层次组成:应用程序层、应用程序框架层、Android的运行时和系统库、Linux内核层[6]。

应用程序层提供了基本的应用程序包。该层由一个或多个不同的组件组成:活动、服务、广播接收器和内容提供商。应用程序不一定包含全部组件,但必须至少有一个活动呈现图形用户界面。应用程序框架层是应用开发的基础,该层包括了活动管理器、窗口管理器等10个部分。应用程序框架为不同目的(如电源管理、资源处理、窗口管理)提供管理器。应用程序应该使用管理器的服务,而不是直接使用底层的函数库。这种方式使得通过沙盒式权限系统对管理器强制实施应用程序权限变为可能。系统库和Android运行时中,系统库包含了9个子系统,运行时由Dalvik 虚拟机和 Java 核心库组成[7]。Linux内核是安卓核心系统服务的重要依赖。安卓使用的内核是 Linux 2.6系列内核,并被修改以满足电源管理、内存管理和运行时环境中的特殊需要。

2.2安卓系统访问控制模型

访问控制是一种显式的准许或限制主体对客体访问能力及范围的方法[8]。访问控制通过限制关键资源的访问,防止非法用户的入侵,从而保证系统资源的合法使用。安卓对应用程序和数据的访问控制主要通过两种机制的结合,一种为Linux内核安全机制,另一种为安卓特有的安全机制。

(1) Linux内核安全机制

Linux操作系统提供了认证和访问控制机制。首先, root用户作为超级用户能对系统的所有资源做最大限度的调整,还可以允许或禁止其他用户对系统的访问[9]。其次,文件系统是Linux系统安全的核心。安卓系统中的文件也受制于此文件权限机制。Linux系统中的文件使用了文件读写许可机制,不同的用户对不同的文件具有各自的读、写和执行权限。此外,Linux将许多系统功能视作伪文件,所以文件访问机制也能有效地对驱动、硬件传感器、音频设备等进行访问控制。

(2) 安卓特有安全机制

访问控制的核心是授权策略。授权策略是用于确定一个主体能否对客体拥有访问能力的一套规则。访问控制模型定义了主体、客体、访问规则是如何表示和操作的,它决定了授权策略的表达能力和灵活性。安卓利用权限机制控制应用程序对敏感资源的访问,每个权限代表了针对系统资源的一个或者一组操作许可,具有细粒度的安全特征[10]。

应用程序默认没有任何权限,它必须在自己的配置文件AndroidManifest.xml中用uses-permission标签声明自己所需要的权限,才可以使用某个系统资源或者访问某些数据[11]。安卓约有130条内置权限分别对应了系统中的设备、功能以及数据等的访问权限[12],应用程序也可以定义额外的权限。此外,权限有四个保护级别[13]:正常、危险、签名、签名或系统。

安卓应用程序还使用了数字签名机制对应用程序安装包进行数字签名,以对应用程序开发者进行身份合法性认证,防止恶意应用开发者替换合法应用程序。此外,文件签名还可以确保安装文件内容的完整性和正确性[14]。

最后,安卓系统实现了将不同应用程序之间、进程之间互相隔离。默认情况下,应用程序没有权限访问系统资源或其他应用程序的资源。每个应用程序和系统进程都被分配唯一且固定的UserID。当应用程序需要共享数据或进程时,系统会验证程序的sharedUserID和签名,如果结果相同,那么虚拟机认定两个应用程序由相同开发者开发,为两个程序分配相同的User ID,以实现程序之间的数据和进程共享[15]。

3 威胁分析与代码分析

3.1安卓威胁分析

(1) 开发者威胁

来自开发者的基于权限的威胁主要分为过度授权和权限扩大攻击两类。

权限的过度请求是安卓安全中最大的问题之一。它违反了最少权限法则,给用户带来隐私泄露和财产损失的隐患[2]。例如一个请求了SEND_SMS短信发送权限的单机游戏,利用了不必要的短信发送权限在用户不知情的情况下发送付费短信。

一般来说,恶意应用程序造成的影响会受到安卓系统沙盒机制限制[16]。但权限扩大攻击允许恶意应用程序和其他应用程序相互协作从而在没有显式请求的情况下访问敏感资源[3]。权限扩大攻击可以分为混淆代理攻击和共谋攻击。

(2) root威胁

安卓系统基于Linux系统。在Linux系统中,root用户作为管理员用户,可以访问整个系统。在默认设定下,使用者无法获取root权限。然而在现实场景中,用户有许多方法可以获得root权限。root权限可以使用户实现卸载自带软件,取消应用权限,运行防火墙等功能。然而,当root被窃取后,安卓系统的最高权限也被授予,系统安全和用户隐私将受到极大威胁。

(3) 物理威胁

安卓系统一般都以手机等智能设备作为载体,因此,也不可避免受到以下的物理威胁:储存卡威胁、设备遗失或报废威胁、传感器威胁等。

通常情况下,手机存储卡上的数据是不会被加密的。储存卡读取成为窃取用户隐私的方便途径。攻击者可通过运行相关程序,获得存储卡上的明文数据。设备遗失或报废会导致数据的机密性受到威胁。恶意用户可以利用用户遗失或报废的设备获取存储在手机中的数据。此外,手机是传感器的集合体。研究学者发现,手机的震动功能、麦克风、定位系统均存在威胁漏洞,用户也因此会面临更复杂更严重的攻击。

3.2访问控制代码分析

(1) 数据库表结构分析

安卓系统中联系人和短信数据存储在SQLite数据库中。SQLite是一个存储效率高、查询快、运行时占用内存小且能被多个进程同时访问的开源数据库。SQLite本身没有提供任何安全控制机制,只要用户得到数据库文件或访问数据库的权限[17],便能够读取这些信息,也直接导致了用户的隐私数据泄露。

通过研究,我们发现安卓系统中联系人数据库contacts2.db存放在/data/data/com.android.providers.contacts/databases路径下。为了获取对该数据库的访问,第三方应用需申请READ_CONTACTS和WRITE_CONTACTS权限。联系人数据库主要涉及到三个表:contacts、raw_contacts和data。其中,contact表保存了所有联系人信息,具体字段包括联系人编号、联系次数、是否有电话号码等。Raw_contacts表存储了联系人的详细信息包括显示名称、昵称、是否被删除等。Data表存储了所有创建过的联系人的详细信息。通过相关分析可知,本文需要对三个数据表中的数据进行选择性加密即可实现联系人数据的细粒度保护机制。

另一方面,安卓系统中的短信数据库mmssms.db存放在/data/data/com.android.providers.telephone/databases路径下。第三方应用需申请READ_SMS、WRITE_SMS、SEND_SMS等权限以获取访问短信数据库文件的权限。数据库mmssms.db中包含所有与短信有关的表结构。其中sms表用于存储短信内容、短信属性、重要字段的描述等。此外,person字段指向了contacts表中的联系人编号,body字段描述了短信的内容。在这两个字段的基础上。本文实现了添加联系人并选择是否对短信内容进行加密的细粒度保护机制。

(2) 权限检查分析

安卓操作系统中的权限检查模块主要针对系统服务的访问控制策略。安卓系统提供约30项以特权用户的身份运行的系统服务,包括管理应用程序、提供位置信息、提供蓝牙连接和管理用户账户等重要功能[18]。权限检查模块允许开发者利用权限保护服务的单个方法而不是整个服务,以实现对服务的细粒度的访问控制。例如,checkPermission可用于判断给定的进程和用户是否被赋予某条权限。

4 访问控制增强模块需求与设计

如图1所示,为文本设计的访问控制增强系统的总体架构图。该架构旨在实现对安卓设备三个功能模块的访问控制,即:联系人管理模块、短信管理模块和感知来源控制模块。为了更好地实现访问控制增强模块,本文采用了策略管理和密钥管理两个机制。在策略管理机制下,用户可以指定修改联系人、短信的加密策略以及对于感知来源的细粒度控制策略;在密钥管理机制下,用户可以通过密钥机制实现对隐私数据的安全保护。

图1 安卓访问控制增强系统总体架构图

4.1联系人管理模块

联系人管理是访问控制增强系统中的重要部分,其主要特点为:在加密策略的驱动下,对联系人数据进行加密操作,以保护联系人数据的安全性。本系统主要实现了联系人的查看、添加、删除和搜索的功能。

用户通过点击按钮进行相关的联系人操作。例如,用户点击联系人信息添加按钮,系统需要从联系人管理模块获取联系人密钥,然后获取联系人加解密策略,最后根据该策略将联系人信息中需要加密的字段加密处理并存储。

由于安卓系统并没有考虑联系人数据的加解密问题,因此,本文增加了一个名为encryptdata的数据表记录数据加解密状态信息。由于本方案为细粒度加密,系统需要维护数据库中每个字段的加密策略,因此encryptdata表和data表相对应,并通过字段的比特值表示加密状态,其中,1表示信息已加密。

4.2短信管理模块

短信管理实现了加解密策略驱动下短信的接受、发送、删除和搜索的功能。在访问控制增强机制中,系统通过对短信的加解密来保证短信操作的安全性和机密性。用户通过策略管理机制制定短信加解密策略,并将安全管理策略存储在策略库中。

当设备接收到新短信时,短信管理模块会将其存储于短信数据库中。此时,对策略库的检索会被触发,系统会获取对应发件人的短信加密规则。系统成功验证用户的短信密钥后,会选择对该短信进行加密保存或者直接保存。同样,当用户在安卓设备上撰写新的短信并点击发送后,本模块会验证收件人是否属于短信加密列表,并进行加密储存。此外,针对密文的短信搜索和删除服务均需建立在验证密钥的前提下进行。

4.3感知来源控制模块

感知来源控制模块在应用框架层对安卓设备的感知来源进行细粒度权限设置。本系统的感知来源控制模块主要实现了感知权限的状态设置和感知场景的新建、修改和删除的功能。

首先,用户进入感知权限设置界面设置感知权限状态。感知来源的状态可设置为开启或者关闭,且立即生效。其次,在预置场景中,用户可以新建、修改、删除感知场景。用户点击新建或修改按钮后,可在感知来源列表中设置感知来源的状态,并输入名称、保存该场景。此外,用户可直接选择相应的感知来源场景快捷地对系统的感知来源进行相应权限的保护。

应用程序访问感知设备,需要经过框架层、Linux内核层和设备驱动程序三个层次。因此,本系统要实现对感知设备的访问控制,可以在这三个层次中分别插入策略执行点。策略执行点截获应用程序访问感知设备的请求,向策略决策点请求访问决策(即允许或拒绝),并按收到的访问决策执行。

5 访问控制增强机制实现

5.1策略管理机制

策略管理机制用于管理联系人和短信的加解密策略以及感知来源的控制策略,联系人和短信根据加解密策略选择明文或密文加载,感知设备也根据权限策略而设定是否可用。

策略文件包含policyset、policy、rule的三层结构。其中,前者元素可包含一至多条的后者元素,同时policyset可以内嵌零至多条的policyset。如图2所示为一个policy.xml的源文件,系统的策略编辑器通过操作策略文件完成对加密选项的选择。

图2 策略实现图

用户通过策略编辑器选择对联系人、短信进行加密,选择后status发生改变,从初始状态0变为加密状态1。后台通过读取policy.xml中对应status值,选择对联系人、短信进行加密。这样的设计实现了基于场景的安全策略设置,降低了安卓用户敏感数据的访问控制策略设置的复杂度。

本文实现了系统中的联系人策略管理配置界面,用户可以选择将联系人的字段分别加密,生成策略文件。当用户存储联系人信息时,系统会查看当前的策略文件,对需要加密的字段进行加密并存储在本地数据库中。这样即使第三方应用获取了对联系人数据的访问权限,由于底层数据库中的数据是密文存储的,也只能获取到密文信息,通过这样的方式,可以避免隐私数据的泄露。

5.2密钥管理机制

(1) 初始化密钥

系统在初始化过程中,需要进行密钥初始化工作,以设置对联系人数据和短信数据进行加解密操作所需的系列密钥。

初始化安卓设备时,用户输入初始口令,密钥管理模块使用SHA-256算法对初始口令进行加密后保存,并生成相应加密密钥。此外,系统使用SHA-256算法加密初始口令、联系人特定字段和安卓设备号后取前128位作为联系人应用的密钥;使用SHA-256算法加密初始口令、短信特定字段、安卓设备号后后取前128位作为短信应用的密钥。

(2) 信息加解密

在本系统中,联系人、短信加解密均使用AES算法。

在联系人信息管理模块中,用户在策略管理点制定联系人加解密策略,并存储在策略库中。当用户新建联系人并保存数据时,联系人模块会触发对策略库的检索,以获取联系人的加密规则。系统成功验证用户的联系人密钥后,依据加密规则加密联系人的数据,并将密文数据保存于联系人数据库中。同样,当用户试图查看联系人信息时,联系人模块触发对策略库的检索,获取联系人的加密规则,成功验证联系人密钥后,解密联系人的数据,并最终显示联系人的明文信息。

在短信管理模块中,用户在策略管理点制定短信加解密策略并存储在策略库中。当安卓设备接收到一条短信时,存储过程会触发对策略库的检索。系统获取发件人的短信加密规则,并成功验证用户的短信密钥后,会选择对该短信进行加密或者直接保存。同样,当用户试图查看短信箱内的短信时,短信模块会触发对策略库的检索,获取相应的加密规则。系统成功验证短信密钥后,会解密短信数据,并最终显示短信的明文信息。

5.3感知来源控制的实现

(1) 安卓应用框架层实现

针对感知设备的权限保护,本系统修改了权限检查模块,通过插入策略执行点,使得在权限检查时,合法的感知设备请求一律返回PERMISSION_DENIED 参数。在本访问控制增强机制中,选择了在访问控制层进行感知设备的控制。这种做法具有实现复杂度低、覆盖全部API、兼容性强的优点。

具体实现如图3所示,通过在加入以下具有下划线的代码片,使得系统在检查名称为android.permission.CAMERA的权限时,一律返回PERMISSION_DENIED参数。

图3 应用框架层代码修改

(2) 安卓Linux内核层实现

感知来源的权限控制还可以通过Linux内核层实现。对Linux内核来说,应用程序在安装完成时会被分配一个唯一的用户ID,并以该用户ID运行。对于安卓系统权限,应用程序被授予后,其用户ID也被加入该权限的用户组。例如应用程序被授予CAMERA权限后,其用户ID就成为camera用户组的成员。在安卓应用框架层的访问控制机制中,粒度为整个外置存储设备,而在Linux内核层,普通文件的访问控制粒度为单个文件。因此,对大部分感知设备的访问,应用框架层由权限进行控制,Linux内核层则由用户ID和组ID机制进行控制,在两个层次的控制粒度都是对感知设备整体的访问。

SELinux (Security Enhanced Linux) 为Linux内核提供了强制访问控制机制。SELinux对所有进程、对象和操作实施系统级的安全策略,并实现了策略指定和策略实施逻辑的分离。例如,一个具有标签app_t应用程序被授予访问具有的标签microphone_t麦克风的权限,策略管理模块会新建一条允许app_t读取和获得microphone_t属性的规则的策略,但不包括写入、删除和修改microphone_t的拥有者信息的权限。由于在SELinux中,默认情况下所有访问都被拒绝,没有策略规则显式允许访问microphone_t的应用程序将无法访问麦克风。

5.4性能测试

(1) 系统整体性能对比

针对本文所涉及的访问控制增强机制,本文将其和原生安卓系统进行了性能对比。对比测试环境为四核智能手机,内存13231.8 MB且RAM值为1872.1 MB。如表1所示,为原生安卓4.2.2系统和两种启动策略管理模块的系统的部分性能对比结果。表中分数为测试工具AnTuTu的评分结果。由该对比可知,基于应用框架层的策略管理模块具有少量的性能优势。

表1 系统整体性能对比

(2) 联系人模块性能横向对比

图4显示了策略模块启动前后,添加200、400、600、800条联系人信息得到的平均添加时间。其中,曲线1~4为启动了策略模块的结果,曲线5、6没有启动策略模块。每条曲线代表的实验场景如图4所示。

图4 联系人模块性能横向对比测试结果(单位ms)

曲线1:策略模块启动,验证口令正确,添加一个包含完整联系人字段并且加密所有信息;

曲线2:策略模块启动,验证口令正确,添加一个只有一个字段的联系人并且加密该字段;

曲线3:策略模块启动,验证口令错误,添加一个包含完整联系人字段并且加密所有信息;

曲线4:策略模块启动,验证口令错误,添加一个只有一个字段的联系人并且加密该字段;

曲线5:未启动策略模块,添加一个完整字段的联系人;

曲线6:未启动策略模块,添加一个单个字段的联系人。

由图4可以得出以下结论:首先,从整体来看,启动策略模块后添加联系人的平均时间大于未启动策略模块所需要的时间。然后,在策略模块启动后,添加的联系人越多,平均消耗的时间越多,而未启动策略模块的情况下,添加联系人所需要的平均时间与联系人的数量无关。在启动策略模块的情况下,加密的字段越多,即联系人信息越复杂所消耗的平均时间越多。

在启动策略模块后,针对联系人信息的加密,系统会执行以下四步操作:验证用户是否持有密钥;加密;储存加密特征;储存联系人。因此,对比未启动策略模块的情况,额外的时间开销来自前三步,这与图4中的实验结果相吻合。此外,由于本文在数据库中额外添加了表格记录联系人字段加密信息。随着系统中的联系人增加,数据库操作所需的时间也会增加,故曲线1~4中平均消耗时间随着添加联系人的增加而增加。

(3) 短信模块性能横向对比

表2列出了在策略管理模块启动前后发送一定条数的短信所消耗时间的对比。该时间从用户按下发送按钮到短信在数据库插入一条记录并进入发送服务计算而得。可以看出,安全策略模块启动前后对短信模块的性能也无明显的影响。因此安卓系统访问控制增强机制保证了短信模块的性能。

表2 短信模块性能横向对比

(4) 感知源状态控制性能评测

本实验中,我们在豌豆荚上分别以“照相机”和“录音机”为关键字进行搜索,选取搜索结果中的前20个应用进行实验,以测试感知源访问拦截率。我们在启用了本文设计的访问控制增强机制的设备上安装并运行这些应用程序。同时制定阻止应用程序访问感知设备的策略,并执行这些应用程序的主要功能,观察和分析应用程序对感知设备的访问是否阻止,计算拦截各种感知设备的应用程序的成功率和应用程序崩溃率。

从表3可以看出,应用框架层的感知源状态控制能完全阻止应用程序对麦克风的访问,但是有10%的应用程序能绕过控制访问摄像头。基于Linux内核层的感知源状态控制能同时完全阻止应用程序对麦克风和摄像头的访问。同时,两者的应用程序崩溃率都在可以接受的范围之内。

表3 感知源状态控制测试结果

6 结 语

本文设计并实现了一种基于安卓系统的访问控制增强机制。该机制能够为用户提供敏感数据如联系人、短信等信息的细粒度保护,解决安全存储问题,同时通过对安卓权限的访问控制实现对感知源的安全控制。最后,本文通过对比实验验证了加解密模块对系统性能造成的时间开销在用户的可接受范围内,同时也验证了对感知源的访问控制增强机制的有效性。

然而,虽然本文设计实现的安卓访问控制增强机制能有效的防止隐私数据的泄露问题,但在日益增加的用户体验需求和日益复杂的安卓威胁下,本文提出的方案仍有不足之处。在未来,首先我们希望提供一个更加友好的方式以处理安全性和易用性上的平衡关系。然后我们希望在感知源数据保护的应用程序崩溃问题上有所改善。最后我们希望在下一步工作中将密钥的存储位置从本地文件中转移到更为安全的存储位置。

[1] Fragkaki E,Bauer L,Jia L,et al.Modeling and enhancing Android’s permission system[M]//Computer Security-ESORICS 2012.Springer Berlin Heidelberg,2012:1-18.

[2] Bugiel S,Davi L,Dmitrienko A,et al.Xmandroid: A new android evolution to mitigate privilege escalation attacks[R].Technische Universität Darmstadt,Technical Report TR-2011-04,2011.

[3] Schlegel R,Zhang K,Zhou X,et al.Soundcomber:A Stealthy and Context-Aware Sound Trojan for Smartphones[C]//NDSS.2011,11:17-33.

[4] Rayarikar R,Upadhyay S,Pimpale P.SMS encryption using AES Algorithm on Android[J].International Journal of Computer Applications,2012,50(19):12-17.

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

[6] 蒋绍林,王金双,张涛,等.Android安全研究综述[J].计算机应用与软件,2012,29(10):205-210.

[7] Yan L K,Yin H.DroidScope:Seamlessly Reconstructing the OS and Dalvik Semantic Views for Dynamic Android Malware Analysis[C]//USENIX Security Symposium,2012:569-584.

[8] 任海鹏.访问控制模型研究现状及展望[J].计算机与数字工程,2013,41(3):452-456.

[9] 孙悦,张妹,李京平,等.基于Linux操作系统文件权限的设置[J].计算机安全,2008(3):36-38.

[10] 诸姣,李宏伟,彭鑫,等.安卓应用系统的功能与权限相关性研究[J].计算机应用与软件,2014,31(10):27-33.

[11] Shin W,Kiyomoto S,Fukushima K,et al.Towards formal analysis of the permission-based security model for android[C]//Wireless and Mobile Communications,2009.ICWMC’09.Fifth International Conference on.IEEE,2009:87-92.

[12] 刘志伟.Android操作系统安全性增强方案的设计与实现[D].西北大学,2012.

[13] 雷灵光,张中文,王跃武,等.Android系统代码签名验证机制的实现及安全性分析[J].信息网络安全,2012(8):61-63.

[14] 伊鹏翔.Dalvik虚拟机结构与性能的研究[D].吉林:吉林大学,2011.

[15] Nauman M,Khan S.Design and implementation of a fine-grained resource usage model for the android platform[J].Int.Arab J.Inf.Technol.,2011,8(4):440-448.

[16] Miller C.Mobile attacks and defense[J].Security & Privacy,IEEE,2011,9(4):68-70.

[17] Owens M,Allen G.SQLite[M].Apress LP,2010.

[18] Saltzer J H.Protection and the control of information sharing in Multics[J].Communications of the ACM,1974,17(7):388-402.

ON ACCESS CONTROL ENHANCEMENT MECHANISM FOR SENSITIVE DATA AND CAPACITIES IN ANDROID

Wang WeiZhou TaoHan Weili

(SoftwareSchool,FudanUniversity,Shanghai201203,China)

Sensitive data and perception capacities in Android devices face severe security threats. Current security mechanism cannot efficiently protect the sensitive data of users and perception capacity of devices, because it only provides a coarse-grained access control on application level. Therefore, this paper proposes an access control enhancement mechanism for sensitive data and capacities in Android, which is based on cryptography and fine-grained security policy drive. First, with the help of key management and fine-grained encryption policy, it leverages a high-strength symmetric encryption algorithm to encrypt the sensitive data and this solves the secure storage problem of sensitive data; Then, the mechanism leverages a fine-grained security policy-based access control mechanism to control the access privilege of perception capacities on layer of Android platform to reach the goal of perception data protection. Through prototype system and performance testing, the proposed access control enhancement mechanism for sensitive data and capacity of Android is able to operate on current Android platform with acceptable performance.

Android securityAccess controlFine-grainedPrivacy protection

2015-03-09。国家“核高基”科技重大专项课题基金项目(2012ZX01039-004-20)。王蔚,硕士生,主研领域:安卓安全,物联网追溯安全。周韬,硕士生。韩伟力,副教授。

TP309

A

10.3969/j.issn.1000-386x.2016.08.067

猜你喜欢
访问控制安卓联系人
iPhone不卡的秘密曝光:安卓也能享受
让重要联系人更醒目
为每个联系人设定不同的铃声
文物表情包
教你将手机联系人导出到Excel
ONVIF的全新主张:一致性及最访问控制的Profile A
一种基于安卓系统的手机侧抓包分析方法
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现