Android操作系统的安全机制研究

上传人:洪易 文档编号:32416746 上传时间:2018-02-11 格式:DOC 页数:5 大小:28KB
返回 下载 相关 举报
Android操作系统的安全机制研究_第1页
第1页 / 共5页
Android操作系统的安全机制研究_第2页
第2页 / 共5页
Android操作系统的安全机制研究_第3页
第3页 / 共5页
Android操作系统的安全机制研究_第4页
第4页 / 共5页
Android操作系统的安全机制研究_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Android操作系统的安全机制研究》由会员分享,可在线阅读,更多相关《Android操作系统的安全机制研究(5页珍藏版)》请在金锄头文库上搜索。

1、Android 操作系统的安全机制研究Android 操作系统的安全机制研究Android 是一个开源的移动平台操作系统,占据中国智能手机 80%市场份额,主要用于便携式设备。作为一个运行于实际应用环境中的终端操作系统,Android 操作系统在其体系结构设计和功能模块设计上就将系统的安全性考虑之中。与此同时,它又改造开发了原有的 Linux 系统内核和 Java 虚拟机。在这种前提下,Android 操作系统在利用系统安全机制方面就会与原系统安全机制的设计目的有所不同。由于 Android 平台的开放和脆弱性,开发其上的隐私保护系统显得非常重要,其面临的安全威胁在所有手机操作系统中也是最大的

2、。1 Android 安全机制Android 的安全机制是在 Linux 安全机制基础上的发展和创新,是传统的 Linux 安全机制和 Android 特有的安全机制的共同发展。Android 安全机制中的主要出发点是,在默认的情况下,应用程序任何能够给用户、系统或者其他应用程序带来负面影响的操作是不可以执行的。Android 是一个支持多任务的系统,其安全机制依托于数字签名和权限,系统中的应用程序之间一般是不可以互相访问的,每一个应用程序都有独立的进程空间。1.1 用户 IDAndroid 系统是基于 Linux 内核的,对应用程序文件和系统文件的访问都要遵循 Linux 的许可机制,并将这

3、种机制用于管理应用程序。在Android 应用程序安装成功后,系统就为其指定了一个唯一的用户名,对应着系统中唯一的 UID,每个用户可以属于一个或者多个组。如果在应用程序执行期间有越轨或超越权限操作的行为时,用户将会得到 Android 的警告信息。1.2 应用程序数字签名数字签名是过某种密码运算生成一系列符号及代码组成电子密码进行签名,来代替书写签名或印章。签名的主要作用是身份认证、完整性验证和建立信任关系。Android 系统不会安装没有进行签名的应用程序,所有应用程序进行签名认证是必须的,但签名认证是第三方证书认证机构可以不参与的。Android 系统对签名证书的过期时间检查是在应用程序

4、安装时进行的,这就意味着如果一个应用程序在安装后才发现其签名证书过期,就不会影响应用程序的运行。需要注意的是,应用程序必须使用同一个证书进行签名才可以升级到新的版本,两个应用程序使用同一个数字签名才可以相互授予权限来访问彼此的资源。1.3 Permission 机制Android 是一个权限分离的系统,它利用 Linux 已有的权限管理机制,为每一个应用程序分配不同的 UID 和 GID,使不同的应用程序之间的私有数据和访问达到隔离的目的。如果使不同的应用程序之间的私有数据和访问达到共享,就需要声明对应的权限。为此,Android 在原有的基础上进行了扩展,提供了 permission 机制,

5、它主要是用来对应用程序可以执行的某些具体操作进行权限细分和访问控制。在 manifest 文件中添加一个 permission 标签,就定义一个 permission。另外,Android 为了对某些特定的数据块进行ad-hoc 方式的访问,还提供了 per-URI permission 机制。一个权限主要包含权限名、权限组和保护级别,若干个具体权限构成一个权限组,权限组是根据权限的功能划分出来的,每个权限有不同的保护级别(普通级别、危险级别、签名级别和系统/签名级别四类) ,不同的保护级别代表了应用程序使用此权限时的认证方式。1.4 沙箱隔离Android 引入沙箱的概念来实现应用程序之间的

6、分离,具有允许或拒绝一个应用程序访问另一个应用程序资源的权限。每个应用程序在安装后都有一个 UID 号,且一直不会改变。系统根据UID 号为每个应用程序建立一个沙箱,不同的进程空间中运行着不同应用程序的代码,且不能随意的互访彼此的进程空间。如果两个应用程序的 UID 不同,运行在基本沙箱进程中的应用程序默认情况下是没有被分配权限,因此它们无法交互彼此的数据,此类应用程序要想访问系统文件、资源文件等变得不太可能,这种相互隔离的沙箱模式保证了数据的安全性。那么,不同的应用之间需要共享资源该怎么办,可以通过请求权限来解决,即设置应用的sharedUserld 属性,或者是与其他受信任的应用程序运行在

7、同一进程中,从而共享对其数据资源的访问。如此一来,相同用户的应用程序的资源和数据就如同使用应用程序自身的资源一样可以互相访问和使用。但是,若想两个应用程序分配同样的 UID,那么必须使用相同的签名,且请求设置了同一个sharedUserld。2 Android 的安全隐患Android 系统的开源性势必会给我们带来一系列的安全隐患,有Linux 内核安全漏洞造成的,有 Android 自身权限机制不健全造成的,也有基于硬件损伤造成的,但也正因为开源性才可以让我们有自由创造和发挥的空间。1)基于硬件的问题主要体现在硬件损伤、温度过高等因素导致便携设备不能工作的现象。由于 Android 系统过于

8、开放,至少在手机死机现象频繁发生的问题上扮演了重要角色。2)在 Linux 内核安全上,有一个哈希算法问题,即当攻击者把经过特殊构造的包传给系统并接收后,服务器的资源因哈希表产生冲突而被耗尽。哈希算法是把一组关键词经过某种哈希运算后,把得出的相同的哈希值存储到同一个地址区间,从而使哈希表变成了一个单向链表,插入操作的复杂度因此也变得比较大,从原来的 O(n)级变为 O(n*n)级,如此导致处理器资源被大量消耗,服务器拒绝服务,也就产生了 DoS 攻击。还有 Linux 内核中的整数溢出漏洞问题,它是由于一个正数/负数不匹配整形漏洞引起的,存在于 XDR 处理器例程中。当 Linux 系统的 X

9、DR 处理程序接收到经过攻击者精心构造的包时,包的大小被程序中的检测语句错误的估计,致使大批的内存不断的从内核中复制出来,导致系统瘫痪,内核数据遭受破坏。当然,Linux 内核还有其他的一些问题,此处不再叙述。3)Android 自身权限机制问题。首先,不透明的权限问题。用户在安装应用时,系统会把该应用使用的权限列表以界面的方式弹出告诉用户。但是,为什么用这些权限,用户或许不清楚,也许根本就不了解、不关心,由于用户要使用这个应用所以必须安装,从而造成不必要的损失。其次,不可分的权限集问题。上面提到,应用程序安装后,系统已经给出了使用的权限列表,权限的使用只限于该列表而不能超出该列表。但问题的关

10、键在于,用户不能选中权限列表中的部分选项,要么全选,要么不选,都是一种绝对的状态,用户只有全选权限才能使用该应用程序,否则只能放弃使用。最后,研发工作者在研发应用程序的过程中,由于某种原因声明了一些或许根本就没有使用到的权限,那么在安装应用程序时,也会告诉用户,从而增加了系统的负担和一些不安全的因素,用户由于担心安全问题而不敢随意安装该应用程序。3 结束语Android 是一款非常出色的操作系统平台,随着 Andriod 系统智能终端的日益推广,Android 操作系统的安全性越来越重要,在其快速发展中不可避免的存在不完善的地方。Android 平台的开源造成了系统易被攻击,随着安全技术的不断发展和进步,开源的 Android 平台的安全性可以不断地被改进,Android 系统的安全漏洞会得到有益补充。除了要不断改善 Android自身的安全,用户也应该加强安全维护意识,还要对第三方程序开发商进行严格的监管,制定出有效的应用程审核和管理机制,这样才能使得用户对Android 操作系统的支持越来越多,才能更好地保障整个系统的安全性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号