Android安全结构概述

上传人:豆浆 文档编号:1419470 上传时间:2017-06-14 格式:PDF 页数:17 大小:362.04KB
返回 下载 相关 举报
Android安全结构概述_第1页
第1页 / 共17页
Android安全结构概述_第2页
第2页 / 共17页
Android安全结构概述_第3页
第3页 / 共17页
Android安全结构概述_第4页
第4页 / 共17页
Android安全结构概述_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《Android安全结构概述》由会员分享,可在线阅读,更多相关《Android安全结构概述(17页珍藏版)》请在金锄头文库上搜索。

1、A n d r o i d安全机制概述内容翻译自Google官方文档。翻译:王亚薇Em a i l : wa ngyongbo90gm a i l . c om引言Andri od被设计为一个真正开发的,现代化的移动平台。Android应用程序利用先进的硬件和软件,以及本地和服务器上的数据,通过Android平台为消费者带来创新和价值。为了保护这些价值,平台必须提供一个安全环境,确保用户、数据、应用程序、设备和网络的安全性。保护一个开放平台,需要一个强壮的安全架构和严格的安全计划。Android采用多层次的安全设计,提供了开放平台所需的灵活性,同时为平台的所有用户提供保护。Android设计时

2、,时刻将开发人员放在脑子中。安全控制的设计,要减少开发人员的负担。了解安全知识的开发人员可以很容易和灵活的安全控制机制合作,并且可以依赖灵活的安全控制机制。不熟悉安全知识的开发人员使用默认的安全设置。Android设计时,考虑了设备用户。用户可以看到应用如何工作,并且通过这些应用实行控制。这个设计考虑到了攻击者可能尝试进行常见攻击,比如社工攻击说服用户安装恶意软件;攻击Android上的第三方应用;Android的设计既要减少这些攻击的可能性,而且当这些攻击成功的时,要极大的限制这些攻击的影响。本文档概述Android安全计划的目标,描述Android安全架构的基础,并且回答系统架构师和安全分

3、析人员最相关的问题。本文档侧重于Android核心平台的安全特性,不讨论针对特定应用程序的独立的安全问题,比如那些和浏览器或者S MS应用程序有关的。为构建Android设备、部署Android设备或者Android应用开发推荐最佳实践不是本文档的目标,在其他地方提供相关文档。背景Android为移动设备提供了一个开源平台和应用环境。主要的Android平台基础包括:硬件设置:Android可以运行在一个很宽范围的硬件配置上,包括智能手机,平板电脑和机顶盒。Android于处理器无关。但是它可以利用一些特定硬件的安全功能,比如AR M v 6的e Xe c ute - Ne ver。An dr

4、 oid操作系统:核心操作系统构建在Li nux内核之上。所有的设备资源,比如照相机功能,GP S数据,蓝牙功能,电话功能,网络连接等等,通过操作系统访问。An dr oid应用程序运行时:Android应用程序通常使用J a va编写,运行在Da l vik虚拟机。然而,许多应用程序,包括核心的Android服务和应用程序是nat i ve应用或者保护nat i ve库。Da l vik和nat i ve应用运行在同样的安全环境,包含在同样的应用程序沙盒。应用程序获得文件系统的一个私有部分,用来写入私有数据,包括数据库和原始文件。Android应用程序扩展核心Android操作系统。有个主要

5、的应用程序来源:预安装的应用程序:Android包括了一个预安装的应用程序集合,有电话、电子邮件、日历、浏览器和联系人。这些工具都作为用户应用程序,提供可被其他应用访问的关键的设备功能。预安装的应用程序可能是Android开源平台的一部分,或者是OEM为特定设备开发的。用户安装的应用程序:Android提供了一个开放的开发平台,支持任何的第三方应用。Google P l a y为用户提供了几十万个应用程序。Google提供了一个基于云的服务集合,在任意兼容Android的设备上都是可用的。主要的服务是:G oogleG G G Pl ay: Google P l a y是一个服务的聚集,允许用

6、户从他们的Android设备或者w eb上,发现,安装和购买应用。Google P l a y是得开发人员更容易接近Android用户和潜在的客户。Google P l a y也提供社区审查,应用程序证书验证,和其他安全服务。An dr oid更新: Android更新服务为Android设备提供新的功能和安全更新,包括通过w e b或者OTA升级。应用程序服务:框架运行Android应用使用云服务功能,比如备份应用程序数据、设置,和云到设备的消息来推送消息。这些服务不是Android开源工程的一部分,不在本文档的范围之内。但是他们和大多数的Android设备的安全有关,因此,一个相关的安全文

7、档,标题为“Google S e r vic e s f or Android:S e c uri t y Over vie w”,可供参考。An d r o i d安全计划概述开发早期,核心的Android开发团队已经认识到,维持一个云服务提供支持,构建在Android平台上的一个繁荣的生态系统,需要强大的安全模型。因为,在整个开发周期,Android都受到一个专业的安全计划的约束。Android开发团队有机会观察移动、桌面、服务器平台如何预防和应对安全问题,并且针对在这些平台观察到的弱点,建立一个安全计划。Android安全计划的关键组件包括:设计审查: Android的安全处理过程开始于

8、开发周期的早期,创造了一个丰富的和可配置的安全模型和设计。平台的每一个主要特性都被工程和安全资源审查,把合适的安全控制集成到系统架构中。渗透测试和代码审查:平台的开发期间,Android创建的和开源组件受到严格的安全审查。这些审查由Android安全团队,Google的信息安全工程团队和独立的安全顾问执行。审查的目标是在平台开源之前,尽可能的找出薄弱点和可能的漏洞,并且模拟平台发布之后,外部安全专家将进行的分析类型。开源和社区审查:Android开源工程可以被任何感兴趣的组织进行广泛的安全审查。Android也使用了已经经历过意义重大的外部安全审查的开源技术,比较Li nux内核。Google

9、P l a y为用户和公司提供了一个论坛,直接向用户提供相关应用程序的信息。事件响应:即使采用所有的这些预防措施,安全问题仍然可能发生。这是为什么Android团队创建了一个全面的安全响应过程。一个全职的Android安全团队持续的监控Android和一般的安全社区,讨论可能的安全漏洞。当发现一个确定的问题是,Android团队有一个响应过程,使得快速的减缓漏洞,确保对所有的Android用户潜在的危害最小。这些云支持的响应包括更新Android平台(通过O T A),从Google P l a y移除应用,从硬件设备上移除应用。An d r o i d平台安全架构Android旨在通过重新利

10、用传统操作系统的安全控制,成为移动平台最安全的和最实用的操作系统。传统操作系统的安全控制包括:保护用户数据保护系统资源(包括网络)提供给应用程序的隔离为了实现这些目标, Android提供了一些关键的安全特性:通过Li nux内核提供OS层面强健的安全。强制所有应用程序使用沙盒安全的进程间通信应用程序签名应用程序定义权限和用户授权机制以下部分描述这些和Android平台其他的安全特性。图1总结了安全组件,考虑Android软件栈的各个层级。每一个组件假设该组件下面的部分是完全安全的。除了一小块Android OS代码作为r oot运行,所有Li nux内核之上的代码都受到应用程序沙盒限制。图1

11、 An dr oid软件栈系统和内核层安全在操作系统层面,Android平台提供了Li nux内核的安全性,以及一个安全的进程间通信方式,使得运行在不同进程的应用可以安全的通信。OS层的安全特性确保,即使是nat i v e代码也受到应用程序沙盒的限制。无论该代码是应用程序自身的行为,或者是利用程序漏洞的造成的结果,系统都可以阻止恶意应用危害其他应用程序、Android系统或者设备自身。Li n ux S e c ur i t yAndroid平台的基础是Li nux内核。Li nux内核已经被广泛的使用了很多年,用在了上百万的安全敏感的环境中。在它不断的被研究,攻击和上千个开发人员修复的历史

12、上,Li nux已经成为一个稳定的和安全的内核,被许多企业和安全专家信任。As t he bas e f or a m obil e c om puti ng e nvir onme nt, t he Li nux ker nel provides Android wi t hs e ver a l key s e c uri t y f e a t ure s , i ncl uding:作为移动计算环境的基础,Li nux内核为Android提供了几个关键的安全特性:基于用户的授权模型进程隔离安全I P C的可扩展机制移除内核中不必要的和可能的不安全部分的能力作为一个多用户操作性,Li n

13、ux内核的一个基本安全目标是,隔离用户资源。Li nux的安全理念是,保护用户的资源不受其他用户危害。因为,Li nux提供了一下功能:阻止用户A读取用户B的文件确保用户A没有用尽用户B的内存确保用户A没有用尽用户B的CP U资源确保用户A没有用尽用户B的设备(比如:电话,GP S,蓝牙)应用程序沙盒Android平台充分利用了Li nux基于用户的保护,将其作为标识和隔离应用程序资源的方式。Android系统为每一个应用程序分配哟个单独的用户I D(UI D),并且将它以该用户身份运行在一个单独的进程。这个方法与其他使用相同用户权限运行多个应用程序的传统操作系统是不同的(包括传统的Li nu

14、x配置方式)。这设置了一个内核级的应用程序沙盒。内核使用标准的Li nux攻击,比如分配给应用的用户和组I D,在进程级增强应用程序和系统之间的安全。默认的,应用程序之间互相无法交互,并且应用程序只能有限的访问操作系统。假如应用程序A(它是一个单独的应用程序)试图私自做一些恶意的事情,比如读应用程序B的数据,或者拨打电话,然后,操作系统会阻止该行为,因为应用程序A没有合适的用户权限。沙盒是简单的,可审计的,基于几十年前UNI X风格的用户进程分离和文件权限。因为这个应用程序沙盒在内核中,安全模型扩展到了nat i ve代码和操作系统应用程序。图1中,所有的在内核之上的软件,包括操作系统库,应用

15、程序框架,应用程序运行时,所有的应用程序都运行在沙盒中。在一些平台,开发被限制为使用特定的开发框架,AP I集合,或者语言,增强安全性。在Android平台,没有限制如何编写应用程序增强安全性的要求,在这方面,nat i ve代码和解释型代码一样安全。在一些操作系统中,内存损坏错误一般会导致完全危及设备的安全性。在Android平台,因为所有的应用程序和他们的资源在OS层沙盒化,不会有这种情况发生。内存损坏错误只会允许任意代码运行在特定应用程序(指出问题的应用程序)上下文,同时具有操作系统指定的权限(既只有当前应用程序的权限)。与所有的安全功能类似,应用程序沙盒不是不可打破的。然而,在一个配置

16、正确的设备中,要跳出应用程序沙盒,必须攻破Li nux内核。系统分区和安全模式系统分区包括Android内核,以及操作系统库,应用程序运行时,应用程序框架和应用程序。该分区设置为只读模式。当用户启动设备到安全模式,只有核心的Android应用程序是可用的。确保用户可以将他们的手机启动到一个没有第三方软件的环境。文件系统权限UNI X风格的环境,文件系统权限确保一个用户不能改变或者读其他用户的文件。在Android情景下,每一个应用程序作为自己的用户运行。除非开发人员显式的向其他应用程序公开文件,应用程序创建的文件不能被其他应用程序读或者改变。文件系统加密Android3.0及仪式上的版本,提供整个文件系统的加密,所以可以使用AE S 128(CB C模式)和ES S I V- S HA256加密算法,在内核加密所有的用户数据。加密密钥使用128位的AES的算法,从用户密码生成的一个密钥,加密保护。阻止没有用户设备密码的非授权访问用户数据。为了抵抗猜解系统密码攻击(彩虹表,暴力破解

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

当前位置:首页 > 电子/通信 > 综合/其它

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