Android是一个开源的移动平台操作系统,主要用于移动设备。作为一个运行于实际应用环境中的终端操作系统,Android操作系统在其体系结构设计和功能模块设计上就将系统的安全性考虑其中。Android是一个支持多任务的系统,其安全机制依托于数字签名和权限,系统中的应用程序之间一般是不可以互相访问的,每一个应用程序都有独立的进程空间。
Android系统本身具有一套比较完善的安全机制,正常情况下可以有效地保护系统的安全使其不受侵害。Android的安全机制是在Linux安全机制的基础上发展和创新的,是传统的Linux安全机制和Android特有的安全机制的共同发展。
(一)用户ID
Android系统是基于Linux内核的,对应用程序文件和系统文件的访问都遵循Linux的许可机制,并将这种机制用于管理应用程序。在Android应用程序安装成功后,系统就为其指定了一个唯一的用户名,对应着系统中唯一的用户标识(UID),每个用户可以属于一个或者多个组。如果在应用程序执行期间有越轨或超越权限的操作行为发生,那么用户将会收到Android的警告信息。
通常,只有UID是system或root的用户才拥有Android系统文件的访问权限,而任何一个应用程序在使用Android受限资源之前都必须向Android系统提出申请,等待Android系统批准后方可使用相应的资源。
(二)应用程序数字签名(https://www.xing528.com)
数字签名是通过某种密码运算生成一系列符号及代码组成电子密码进行签名,以代替书写签名或印章。签名的主要作用是身份认证、完整性验证和建立信任关系。Android系统安装的应用程序都进行了签名,即所有安装到Android系统中的应用程序都必须拥有一个数字证书,此数字证书用于标识应用程序的作者和应用程序之间的信任关系。如果一个权限的保护级别为signature或system,Android系统会将该权限授予具有相同数字签名的应用程序或Android包类。
(三)Permission机制
Android是一个权限分离系统,它利用Linux已有的权限管理机制,为每一个应用程序分配不同的UID和GID,使不同的应用程序之间的私有数据和访问达到隔离的目的。如果使不同的应用程序之间的私有数据和访问达到共享,就需要声明对应的权限。为此,Android在原有的基础上进行了扩展,提供了permlssion机制,它主要是用来对应用程序可执行的某些具体操作进行权限细分和访问控制。在manifest文件中添加一个permission标签,就定义了一个permission。另外,Android为了对某些特定的数据块进行ad-hoc方式的访问,还提供了per-URI permission机制。
(四)沙箱隔离
Android引入沙箱的概念来实现应用程序之间的分离,具有允许或拒绝一个应用程序访问另一个应用程序资源的权限。其本质是为了实现不同应用程序和进程之间的互相隔离,即在默认情况下,应用程序没有权限访问系统资源或其他应用程序的资源。Android使用内核层Linux的自主访问控制机制和运行时的Dalvik虚拟机来实现Android的“沙箱”机制。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
