Android 安全机制
安全不管在哪个平台,哪个语言中,都是非常重要的一个环节。Android开发者在Android系统中简历了五道防线。
第一道防线
- 代码安全机制——代码混淆proguard
由于java语言的特性,即使是编译成apk的应用程序也存在被反编译的风险。而proguard则是代码层面上对Android应用程序App的第一重保护,它可以混淆关键代码、替换命名让破坏者阅读困难,同时也可以压缩代码、优化编译后的java字节码。
- 代码安全机制——代码混淆proguard
.
- 第二道防线
- 应用接入权限控制——AndroidMainifest文件权限声明、权限检查机制。
- 任何应用程序App在使用Android受限资源的时候,都需要显示向系统声明所需要的权限,只有当一个应用App具有相应的权限,才能在申请受限资源的时候,通过权限机制的检查并使用系统的Binder对象完成对系统服务的调用。但是这道防线也有这先天性的不足,如下
- 授予的权限无法停止
- 在应用声明App使用权限时,用户无法针对部分权限进行限制
- 权限的声明机制与用户的安全理念有关。
第三到防线
应用签名机制——数字证书
Android中所有的App都会有一个数字证书,这就是App的签名,数字证书用于保护App的作者对其App的信任关系,只有拥有相同数字签名的App,才会在升级时被认为是同一款app。而且Android凶不会安装没有签名的App
第四道防线
- Linux内核层安全机制——uid、访问权限控制
第五道防线
- Android虚拟机沙箱机制——沙箱隔离
- Android的app运行在虚拟机中,因此才有沙箱机制,可以让应用之间相互隔离。
以上的五种安全机制,任然不能100%保证Android的核心安全,但却可以在最大程度上给破坏者增加破坏难度。
参考了Android群英传