Android权限安全

本文详细解释了安卓系统的权限分类,包括正常权限和危险权限,强调了危险权限对用户隐私的潜在影响。介绍了系统设置权限和通话状态权限,并讨论了Android权限机制如何通过安装时期和实时权限保护用户隐私,以及其相对于传统权限模型的优势。
摘要由CSDN通过智能技术生成

       安卓系统权限分为正常权限和危险权限。
       正常权限:指对用户隐私或其他应用操作风险影响很小的权限,例如,设置时区的权限就是正常权限。如果应用声明其需要正常权限,系统会自动向应用授予该权限。
       危险权限:危险权限涵盖应用需要涉及用户隐私信息的数据或资源,或者可能对用户存储的数据或其他应用的操作产生影响的区域。例如,能够读取用户的联系人属于危险权限。

1、系统设置权限:可以更改系统的设置,就是 Android的设置页面设置的选项,比如应用可以修改你当前静音状态,打开WIFI连接,关闭移动网络等,而这些权限如果你不赋予它,它是没办法完成的。
2、通话状态:应用可以监听你的来电状态,知道你当前是否在通话。
这些都是基本的权限,对用户安全不会带来太大的危害,是可以进行禁止。
目前国内的安卓手机基本上都会预装安全软件,通过这些安全软件可以管理手机所有程序的权限,因此,大家在安装新的APP或者使用APP的时候,最好先通过安全软件将不必要的权限禁用,再使用APP。

       权限系统作为一种安全保护机制在经历着不断的改变和提升。在计算机诞生的早期阶段,大多数计算机都是被多个用户分时使用的;逐渐地,计算机上的用户之间窃取或者伤害对方信息的情况开始出现。这时候,出于保护用户之间的信息安全,操作系统设计了隔离用户的安全机制,也就是对不同用户之间的数据共享进行限制,应用程序以不同用户的身份在执行,如UNIX系统,它对每个文件设置了保护位,具体化了哪个用户能够读取、写入或者执行一个给定的文件。当程序执行时,仅仅能够访问该程序所在用户能够访问到的文件随着计算机的发展,恶意程序或者软件本身存在漏洞的程序开始出现。攻击者能够欺骗用户去安装一些恶意程序,利用操作系统漏洞远程安装恶意程序或者利用一些存有安全缺陷的程序去控制计算机系统。在这种情况下,应用程序不再被认为是可信的了。因此,这时研究人员提出了一些方案使得应用程序不再被赋予它所在用户的全部权限,而是要限制应用程序的特权。强制访问控制系统则是这种模式下的权限系统,它是一个中心化的信息流控制系统,操作系统严格地针对完整性和保密性设定了信息流控制策略,它为不同的文件设置了不同的完整性和保密性级别。信息从低完整性到高完整性或者从高保密性到低保密性的流动都是不允许的。但是这种权限系统并没有考虑到用户或者开发者设定访问控制策略的便利性。因此,一些用户友好的权限系统被研究人员设计出来了,其中包括利用在 Symbian、WindowsUAC(用户账户控制)、Facebook、iOS、浏览器、Google Chrome扩展程序以及Android中的权限系统。

      为了保护用户免于第三方代码的威胁,最新的平台通常采用应用程序权限对安全和隐私相关的API进行访问控制,而由用户决定是否允许应用程序访问这些敏感资源。权限机制可以分为安装时期权限以及实时权限。实时权限要求用户在应用程序运行时对应用程序所需的访问请求进行批准,iOS所采用的权限保护机制为实时权限机制;安装时期权限要求开发者预先声明他们的权限请求,使得用户可以在安装时期对这些权限请求进行授权。后者也正是Android平台所采用的重要安全机制。具体地,在Android系统中,每个不同开发者开发的Android应用程序被分配了一个唯一的用户ID,这使得没有任何一个应用程序在默认情况下可以直接访问其他应用程序。其中包括读写用户的私有数据(如联系人或者电子邮件),读写其他应用程序的文件,进行网络访问或者唤醒设备等。为了支持不同应用程序之间的通信(具体地说是应用程序各个组件之间的通信,组件是Android应用程序的基本组成单元),Android操作系统提供了Binder组件间通信机制。权限机制正是在组件间通信的基础上,为了限制不同组件之间的随意访问而建立的访问控制机制。具体地,每个应用程序组件都可以设定自身的访问权限标记,从而其他想要访问该组件的应用程序必须具备相应访问权限比较才能够访问该组件,每个应用程序可以申请多个权限用于访问多个不同的组件。权限机制实现分为两个部分:a)在程序安装时刻,每个应用程序需要申请它需要请求的全部权限,用于在运行时刻访问相应的组件,并且在安装时刻由用户对该应用程序所申请的权限进行授权;b)在程序运行时刻,系统监控程序组件间的通信过程,对需要提供权限才能够访问的组件进行权限检查,判断通信过程是否能够进行,以限制应用程序间的随意通信过程。
       在应用程序安装时刻,为了访问其他应用程序或操作系统的敏感资源,应用程序需要申请相应的权限来获取访问对应资源的能力。Android中的应用程序静态地声明它们所需要的权限,在应用程序安装时,系统向用户展示应用程序运行所需的权限,经用户确认后,由包管理器负责进行授权。安装完成后,应用程序无法再提出新的权限申请,应用程序执行未授权的操作将被终止。这就是Android应用程序安装时期的授权过程。
       在权限实施过程中,Android操作系统通过Android中间件中的引用监视器对发起的组件间通信进行监视,如果某个组件发起的通信未能提供目标组件需要的权限,那么将无法调用目标组件。具体地,如果某个组件想要访问位置服务,那么它会通过Android中的Binder 进程间通信机制访问系统进程中的Location ManagerService,在该服务中调用权限的检查,最终通过PackageManagerService对发起请求的应用程序的权限进行检查,看是否提供了需要的权限标记。Android中所采用的权限机制较传统的权限相比,它的优点主要体现在两个方面:

a)需要得到用户的允许。具有较高安全意识的用户会对程序中所申请的危险权限进行仔细的考虑。Android安装时刻权限机制能够在程序安装时刻警示用户程序潜在的安全威胁。
b)深层次的防御。对于传统的权限模型,一旦某应用程序存在漏洞被某些恶意程序所利用,那么该恶意程序将具备被攻击程序所在用户的全部特权。对于Android权限机制,存在漏洞而被利用的应用程序的影响也仅限于被利用应用程序所申请的权限之下,这有助于减小由于漏洞而被攻击者利用的应用程序的危害。
       对于这种安装时期权限,一些研究者对目前的Android权限机制在实际应用程序中的使用情况进行了统计,进一步分析出目前Android设计的权限机制的有效性
因此,这些研究工作分析出了目前Android操作系统所采用的权限机制能够反映应用程序的访问特定资源的能力,并且大多数应用程序仅申请了权限集合中的一小部分,说明了权限机制是有效的,能够帮助用户集中于应用程序所申请的这一小部分权限,而这些权限也限定了程序的最大能力范围。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值