Android的安全机制包括以下几个方面:
• 进程沙箱隔离机制。
• 应用程序签名机制。
• 权限声明机制。
• 访问控制机制。
• 进程通信机制。
• 内存管理机制。
• SELinux
1.进程沙箱隔离机制
Android应用程序在安装时被赋予独特的用户标识(UID),并永久保持;应用程序及其运行的Dalvik虚拟机运行于独立的Linux进程空间,与UID不同的应用程序完全隔离。
2.应用程序签名机制
应用程序包(.apk文件)必须被开发者数字签名;同一开发者可指定不同的应用程序共享UID,进而运行于同一进程空间,共享资源。
签名的过程:
• 生成私有、公共密钥和公共密钥证书
• 对应用进行签名
• 优化应用程序
签名的作用:
• 识别代码的作者。
• 检测应用程序是否发生了改变。
• 在应用程序之间建立信任,以便于应用程序可以安全地共享代码和数据。
3.权限声明机制
应用程序需要显式声明权限、名称、权限组与保护级别。不同的级别要求应用程序行使此权限时的认证方式不同:
Normal级申请即可用;
Dangerous级需在安装时由用户确认才可用;
Signature与Signatureorsystem则必须是系统用户才可用。
• 通过manifest文件中声明以下属性
<uses-permissionandroid:name="string" />
请求android: