Android的安全与权限.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android 的安全与权限 Android 是一个多进程系统,每一个应用程序 (和系统的组成部分)都运行在自 己的进程中。在应用程序和系统间的安全通过标准的Linux 设备在进程级被执 行,例如被分配给应用程序的用户和组ID。额外的细粒度安全特性通过“许可” 机制来提供,该机制能够对一个指定进程可实现的特定操作进行约束。 内容 安全结构 应用程序签名 用户标识和文件访问 权限命名 权限的声明和支持 在AndroidManifest.xml文件中支持权限 发送广播时支持权限 其它权限的支持 URI权限 安全结构 Android安全学中的一个重要的设计点是在默认情况下应用程序没有权限执行对 其它应用程序、操作系统或用户有害的操作。这些操作包括读写用户的隐私数/ 据 (例如联系方式或e-mail),读写其它应用程序的文件,执行网络访问,保/ 持设备活动,等等。 应用程序的进程是一个安全的沙箱。它不能干扰其它应用程序,除非在它需要添 加原有沙箱不能提供的功能时明确声明权限。这些权限请求能够被不同方式的操 作所处理,特别的要基于证书和用户的提示被自动的允许或禁止。权限的请求在 那个应用程序中通过一个应用程序被声明为静态的,所以在此之后在安装时或没 有改变时它们会预先知道。 应用程序签名 所有的Android 应用程序 (.apk文件)必须通过一个证书的签名,此证书的私钥 必须被开发者所掌握。这个证书的标识是应用程序的作者。这个证书不需要通过 证书组织的签署:Android 应用程序对于使用自签署的证书是完全允许的和特别 的。这个证书仅仅被用于与应用程序建立信任关系,不是为了大规模的控制应用 程序可否被安装。最重要的方面是通过确定能够访问原始签名权限和能够共享用 ID 户 的签名来影响安全。 用户标识和文件访问 安装在设备中的每一个Android 包文件(.apk)都会被分配给一个属于自己的统一 的Linux 用户ID,并且为它创建一个沙箱以防止影响其它应用程序 (或者其它 应用程序影响它)。用户ID 在应用程序安装到设备中时被分配,并且在这个设 备中保持它的永久性。 因为安全执行发生在进程级,所以一些不同包中的代码在相同进程中不能正常的 运行,自从他们需要以不同Linux 用户身份运行时。你可以使用每一个包中的 AndroidManifest.xml文件中的manifest 标签属性sharedUserId 拥有它们 ID 分配的相同用户 。通过这样做,两个包被视为相同的应用程序的安全问题被 解决了,注意为了保持安全,仅有相同签名 (和请求相同sharedUserId 标签) 的两个应用程序签名将会给相同的用户ID。 应用创建的任何文件都会被赋予应用的用户标识,并且,正常情况下不能被其它 包访问。当你通过getSharedPreferences(String,int),openFileOutput(String,int) 或者 openOrCreateDatabase(String, int,SQLiteDatabase.CursorFactory)创建 一个新文件时, 你可以同时或分别使用 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 标志允许其它包读/写此文件。当设置了这些标 志时,这个文件仍然属于你的应用程序,但是它的全局读、写和读写权限已经设 置所以其它任何应用程序可以看到它。 权限命名 一个基本的Android 应用程序没有与其相关联的权限,意味着它不能做任何影响 用户体验或设备中的数据的有害操作。要利用这个设备的保护特性,在你的应用 程序需要时,你必须在AndroidManifest.xml 文件中包含一个或更多的 uses-permission 标签来声明此权限。 例如:需要监听来自SMS 消息的应用程序将要指定如下内容: manifest xmlns:android http :///apk/res/android package com .android.app .myapp uses-permission android:name android.permission.RECEIVE_SMS / /manifest 在安装应用程序时,通过包安装器应用程序要通过权限请求的许可,使建立在与 应用程序签名的核对下声明对于用户的那些权限和影响。在应用运行期间对用户 不做检查:它要么在安装时被授予特定的许可,

文档评论(0)

183****9956 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档