【读书笔记】Android安全机制解析与应用实践之安卓的安全模型

安卓的安全模型:

安卓应用程序在安装的时候被赋予独特的用户标识UID

.apk应用程序包必须被开发者数字签名

权限声明:Normal:申请即可用   Dangerous:安装时由用户确认

进程间通信:Binder基于共享内存,是CS模式

内存管理机制:LMK低内存清理



【读书笔记】Android安全机制解析与应用实践之安卓的安全模型_第1张图片





【读书笔记】Android安全机制解析与应用实践之安卓的安全模型_第2张图片

由此可以看出,进程有自己独立的虚拟内存空间,由内核区和用户区组成

在进程的虚拟内存内核区,操作系统的内核代码和数据被映射到内核区,从而使进程在运行中得到操作系统的支持

内核区总是映射到物理内存的低地址空间

用户区映射到物理地址内核映像以上的任意地址空间




进程沙箱为互不信任的应用程序之间提供了隔离机制,SharedUserID则为具备信任关系的应用程序之间提供了资源共享机制



传统Linux进程间通信的缺点:

效率问题:需要多次复制数据,数据从发送进程的用户区缓存复制到内核区缓存,然后再从内核区缓存复制到接受进程的用户区缓存,单向传输至少有两次复制,传统的共享内存机制无需反复复制,但是属于低层机制,应用程序直接控制十分复杂,因而难以使用。

安全问题:传统的接受进程无法获得发送进程的UID,安卓程序有自己的UID,可以用于鉴别身份




【读书笔记】Android安全机制解析与应用实践之安卓的安全模型_第3张图片




AIDL会定义交换数据的类型,确保进程间通信的数据不会溢出越界污染进程空间

Android有自己的内存共享机制Ashmem



SD卡是FAT系统,无法设置文件读写权限




你可能感兴趣的:(android)