首页 > 代码库 > 论文相关笔记4
论文相关笔记4
四、Android安全机制分析及解决策略(2013《科技论坛》)
1.Android概况
(1)Android平台框架
Android是一种电子平台,用来给移动设备里的软件程序提供运行环境。由5部分构成Android的环境内容:
基于Linux2.6内核,主要提供进程管理、驱动、网络协议栈、内存管理、安全等核心系统服务;
Android本地库,存在于Linux内核之上,是一套C/C++库,能够被上层各式的软件系统调用,通过Android应用程序内的Java本地调用(JNI),来合并这些库;
Dalvik虚拟机和核心库组成Android运行平台的环境;dex(Delvik-executable)文件就是由Dalvik运行,通常人们认为它和Java类文件相比,具有更加简洁和节省内存的优点;
Java语言编写Android运行平台的核心库,大量的JavaSE包的子类和一些Android特有的库由此提供;
依然由Java语言编写Android运行系统的应用程序,因为软件开发者就是基于它进行开发Android平台的,该层系统主要由活动管理器、通知管理器、View等组成,它们都是开发工程师直接调用的组件。
还有运行在虚拟机上的由Java语言编写的应用程序。
(2)Android应用构成
Android应用程序通常由一个.apk文件包格式发布,该文件经过数字签名,与Java jar类似,所有程序代码和非代码文件都包含其中。其中一个叫Android Manifest的xml文件包含如包名、组件描述、权限声明等应用程序基本信息。
Activity、Service、Content provider和Boradcast receiver这四种类型的组件构成Android系统的一个应用程序包。其中Activity由于和用户进行通信,手机屏幕前台是它的工作平台;Service没有用户界面,因为其工作在手机后台;Content provider提供数据存储于应用程序;Broadcast receiver在程序组件之间起相互通信的作用。
在实例化和执行单独的一个组件的同时,其他组件也被相互作用,在必要情况下,还能被其他程序启动。
2.Android安全机制分析
(1)Android特有的安全机制
Android具有特有的安全机制:权限机制、组件包装和数字签名。
(a)权限机制:通过实施权限限制应用程序的安装。只有授予权限许可后系统才能执行其他部分的操作,这是Android的主要安全准则。
首先是权限策略,通过将每个权限定义成一个字符串来传达每个操作的权限。所有权限被分为2类:应用程序执行某项任务时请求的权限和其他组件对应用程序的组件请求的权限。这种权限策略可以通过三个步骤实现:权限声明、权限请求和ICC(inter-component communication)权限保护。
然后是防护等级:防护等级是权限授权方式的一个属性。目前,Android系统的权限机制支持四种防护等级:normal、dangerous、signature和signatureOrSystem。
最后是隐藏缺陷:Android隐藏着一些微小但可能致命的缺陷:应用程序无须遵循一定的命名规则和限制即可命名一个新的权限;当删除某个程序时,此程序所被授权的权限不会被取消;当系统内有2个不同的权限命名相同时,其中一个权限即使没有得到生命也可以正常启动。
(b)组件包装:Android拥有不同的用户ID的应用程序为了防止其他应用程序访问自己的组件,将组件包装在程序内容内。Android通过定义组件的“exported”属性来实现着这种功能。由于属性的默认值可能与期望值不一致,开发者必须手动设置“exported”属性值。
(c)数字证书:Android应用程序安装时必须带有数字证书,否则无法进行安装。应用程序的数字证书不需要相关权威机构的签名认证,即可以自签名。
(2)其他保护机制
Android系统外的技术环境为Android系统提供了一些其他的安全保护加强机制。
3.安全解决对策
通过在Android系统上实施和评估一系列安全解决方法,选取Context-aware访问控制、SELinux访问控制机制和入侵检测为优先方案;选取垃圾邮件过滤、远程管理、虚拟专用网络(VPN)、可选择性的Android权限机制、身份验证、数据加密等为次要方案。可以通过HIDS(Host-basedintrusion-detectionsystem)和Saline(Security-EnhancedLinux)两个方面寻求Android系统的安全解决方案。
对策一、研发一种有效机制、以控制源于Linux内核层的潜在损害。
对策二、加固Android的权限机制。
论文相关笔记4