Android安全模型
2016-05-05 11:27
302 查看
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系统采用更加细化的权限设置允许(或禁止)应用程序或组件同其他应用程序组件的交互,对关键资源的访问,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标志。若是程序的开发人员没有谨慎的设置这两个标志,则将会导致其他应用程序能够读写该应用创建文件,即使这些文件仅属于该应用程序。
相关文章推荐
- 解决adb.exe停止工作,端口”5037“占用的问题
- Android中的焦点问题
- Android之Loader加载功能
- android NDK编译(导入).a文件和编译多个so文件
- 关于Android虚拟机
- Mac下Android Studio中获取SHA1和MD5
- 关于Android MVP模式的思考
- Android Studio使用教程2
- 使用PendingIntent.getBrocast() 在 onReceive 中接受不到intent 的问题
- Android文件存储的问题:ClassLoader和实现Parcelable接口后 详解及用途
- Android性能优化之一:ViewStub
- android瀑布流效果(仿蘑菇街)
- 关于android Imageview 圆角圆图处理xutils兼容问题
- Android中的SurfaceView学习
- Android LayoutInflater原理分析,带你一步步深入了解View(一) ---站在巨人的肩膀上学习总结
- Android--自定义控件---自动分页的GridView
- Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
- android popupwindow的实现
- Android随手记
- Android的apk文件是怎么怎么生成的?