Android安全机制:权限分离与权限控制

需积分: 9 2 下载量 171 浏览量 更新于2024-09-14 收藏 45KB DOC 举报
"Android安全机制详解" Android安全机制是Android操作系统的核心组成部分,旨在保护用户数据和系统资源免受恶意软件和未经授权的访问。Android系统基于Linux内核,因此继承了其权限管理系统,并在此基础上进行了扩展,构建了一个多层级的安全框架。 11. Android安全机制概述 Android的安全模型基于权限分离原则,每个应用都被分配一个唯一的用户ID(UID)和组ID(GID)。这种沙箱(sandbox)机制确保了应用间的数据隔离,防止一个应用访问其他应用的私有数据。此外,Android引入了权限(permission)机制,对应用可以执行的操作进行细粒度控制。权限分为两种类型:常规权限和危险权限。常规权限一般对用户透明,而危险权限在安装或运行时需要用户明确授予。 11.1 UID、GID、GIDs - UID:每个应用在安装时会被分配一个独特的UID。对于标准应用,UID从10000开始递增,10000以下的UID属于系统进程。UID的分配在`PackageManagerService`的`newUserLP`方法中完成。 - GID:通常情况下,应用的GID与其UID相同。然而,某些应用可能需要加入多个组,以访问特定权限关联的资源。这些组ID(GIDs)在安装过程中根据应用申请的权限动态生成。 - GIDs:如果应用被授予特定权限,且该权限关联有GID,那么应用的GIDs列表会包含这些GID。在启动新进程时,如通过Zygote,这些设置会在`ActivityManagerService`的`startProcessLocked`方法中进行,并在`dalvik_system_zygote.c`的`forkAndSpecializeCommon`中通过Linux系统调用完成。 21.2 权限(Permission) 权限是控制应用行为的关键元素,它定义了应用可以访问哪些系统服务或资源。权限主要由三部分组成:名称、保护级别和权限组。保护级别决定了权限的敏感程度,分为正常、危险和签名三种。权限组是一组相关的权限,允许系统一次性处理多个权限请求。 21.3 权限管理 - 在安装阶段,系统会检查应用的`AndroidManifest.xml`文件,列出所有需要的权限。对于危险权限,系统会提示用户在安装时决定是否授权。 - 运行时权限管理:自Android 6.0(API级别23)起,用户可以在应用运行时对危险权限进行授权或拒绝,增强了用户对权限使用的控制。 - 系统权限:某些权限仅对系统应用开放,需要签名与系统签名相匹配才能获得。 - URI权限:允许应用对特定URI进行临时或长期的访问控制,常用于文件共享和数据交换。 21.4 其他安全特性 - 数据加密:Android支持全盘加密和应用数据加密,确保数据在设备丢失或被盗时不会泄露。 - 安全启动:设备启动过程中,系统会验证固件和内核的完整性,防止篡改。 - SELinux:增强型安全网络执行环境(SELinux)提供额外的强制访问控制,限制进程对系统的访问。 - Intent过滤器:限制应用接收和响应特定类型的Intent,防止未授权的数据交互。 Android的安全机制通过权限管理、数据隔离、运行时权限控制、系统签名验证等手段,为用户提供了一套全面的保护措施,确保应用间的相互独立性和用户数据的安全性。