- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Androi安全技术分析
Android安全技术分析 摘 要 中国论文网 /1/viewhtm Android是一种深受人们的厚爱的开放源代码的操作系统,它基于Linux,以其强大的功能,廉价和开源的特征,在带来便利实用等的同时,也带来了安全隐患。本文将结合源码分析Android的安全技术,希望能够对Android操作系统研究有所帮助。 【关键词】安全 Android 权限 漏洞 Android操作系统以其强大的功能,目前已经应用于众多智能设备,像智能手机,智能手表,电脑等。廉价和开源的特征,在带来便利实用等的同时,也带来了安全隐患。 1 Android系统架构 Android系统架构由如下图所示的应用程序层、应用程序框架层、Android系统运行库层以及Linux内核层,四层结构。 2 Android安全机制 Android安全机制中由于传统的Linux安全机制、Dalvik虚拟机的安全机制和Goolge设计了Android特有的安全机制。 2.1 应用程序签名机制 2.1.1 签名的说明 开发者数字签名对每一个应用程序都必不可少。为了标志代码作者和监测应用程序的改变,开发者需要拥有私有秘钥。从而可以在应用程序之间安全的共享资源。不同的应用程序通过相同的签名可以相互授权访问API。可以相互访问代码和数据是因为程序共享UID,运行在同一进程。 2.2 沙箱 2.2.1 进程沙箱概述 一个操作系统级别的应用程序“沙箱”是UID不同的应用程序形成隔离,独立运行于各自的进程。Android将多用户操作系统的隔离机制运用于应用程序之上。 2.2.2 Linux安全中的UID Linux中的每个进程都关联一个用户UID。Linux中的每个文件都有Read、Write和Execute三种权限,这三种权限划分为三组Owner、Group和Other用户属性。 因此,由于主用户组和补充用户组的存在,每一个进程除了有一个对应的UID之外,还对应有一个主GID,以及若干个Supplementary GIDs。 2.2.3 Android安全中的UID (1)Android中UID的生成。 Android的APK都是运行在由init进程fork出来的Zygote进程,再由Zygote进程fork出来的独立的应用程序进程里面。Zygote进程的UID仍是ROOT。然而,他们的UID会被修改为APK的UID。 (2)Android中的UID的安全。 如果要让两个APK共享同一个UID,那么就需要在AndroidManifest中配置android:sharedUserId属性。 2.3 权限机制 2.3.1 权限机制简述 Android通过相当于Linux的安全机制的安全机制,采用为每一个应用程序分配不同的 UID和GID,使得应用程序之间因为权限的不同产生隔离。此外Android还添加了特有的一种permission 机制,可以针对具体操作进行权限细分和访问控制,同时提供了 per-URI permission 机制,用来提供对某些特定的数据块进行 ad-hoc 方式的访问。Permission本质上是一种访问控制机制。 权限主要包括以下信息:权限的名称;属于的权限组;保护级别。Android权限等级划分为normal,dangerous,signature,signatureOrSystem,system,development,不同的权限表示不同的认证方式。 2.3.2 权限申明源码分析 在linux启动成功后,init进程根据init.rc配置文件启动Android系统,启动了ServiceManager。接下来启动创建了Dalvik虚拟机的Android程序的孵化器zygote,同时启动了systemserver。Systemserver启动ActivityManager和PackageManager等一系列的服务。ActivtyManager会负责启动一个应用程序,安卓编程里startActivity就是通过ActivtyManager来实现的。PackageManager会负责应用程序的安装。 Android权限机制的实现贯穿应用层、框架层、系统层。 AndroidManifest.xml对应应用层。 /data/system/packages.xml对应框架层。 Android系统并不将应用程序的GIDS保存起来,而是在启动的时解析这些信息,并且保存到了静态变量里面。这个静态变量就是mPackages。 frameworks/base/data/etc/platforms.xml也对应于框架层。 system
文档评论(0)