Android主要涉及的安全问题,与Android的系统架构相对应,如图:
应用层涉及代码的安全与接入权限;应用框架层涉及数字证书问题;Android系统库与运行时一层主要涉及网络安全、数据库安全、虚拟机安全;Linux内核层涉及文件的访问控制;其中Android最重要的安全涉及虚拟机的沙箱和权限。
1、代码安全
因为Android的源代码源于Java,Java有易于反编译的隐患。为了提高代码的安全性能。程序员应尽量减少代码中的敏感内容,对敏感内容采用C/C++实现,使用JNI技术。
2、接入权限
权限主要用来对应用的操作增加限制,这样可以防止恶意程序进行非法操作私人窃取敏感信息,防止恶意吸费等问题。Android的接入权限包括以下几种:
a、Normal权限:不会给用户带来实质性的伤害,如调整背光。
b、Dangerous权限:可能会给用户带来潜在的伤害,如读取电话薄,联网等。系统在安装应用时提示用户。
c、signature权限:具有同一签名的应用才能访问。
d、signatureOrSystem权限:主要由设备商使用,不能推荐使用。
3、数字证书
Android系统不会安装运行任何一款未经签名的apk程序,无论是在模拟器