Android安全模型

android系统的开发人员已经在android平台的设计中引入了安全的机制,android系统强制所有的android应用程序使用双层安全模型,在android底层核心,依靠Linux内核提供安全特性,即每一个android的应用程序作为单独的进程运行,其他进程不能干扰其运行,每个应用程序拥有自己的一组数据。

在应用层,android系统采用更加细化的权限设置允许(或禁止)应用程序或组件同其他应用程序组件的交互,对关键资源的访问,Mainfest.xml中的权限的配置。

每一个android应用程序都是运行在一个独立的Dalvik虚拟机上,这样就形成了一个安全的沙箱。但是这种沙箱也不是没有不被打破的可能,所以android的权限检查没有放在Dalvik虚拟机中实现,而是放在了Linux内核的代码中,在运行的时候强制的执行。


在android的系统的安全的方面,底层Linux设备资源的访问主要通过验证用户和群组的ID来确保安全。同时通过manifest.xml的权限设置,又提供了另外的一种更加的细化的安全的特性。


Linux的权限机制:

android系统为每一个新安装的应用程序分配一个唯一的UID(user ID )和一个GID(Group ID)。每一个新安装的应用程序都有一组与UID和GID关联的数据结构和文件,只有应用程序本身(通过其UID)或者是超级用户(即Root用户)具有访问这些数据和文件的权限。其他用户不具有超级用户的权限。

当应用程序需要同其他应用程序或者是组件共享信息的时候,则通过应用层采用MAC(mandatory Access Control,强制访问控制)安全模型实现。

每一个android系统上的应用程序在/data/data/目录下都有各自的文件夹。

     当android应用程序调用getSharedPreferences()、openFileOutput()或者是openOrCreateDatabase()函数创建文件的时候,可以使用MODE_WORLD_READABLE和/或MODE_WORLD_WRITEABLE标志。若是程序的开发人员没有谨慎的设置这两个标志,则将会导致其他应用程序能够读写该应用创建文件,即使这些文件仅属于该应用程序。

你可能感兴趣的:(android随笔)