Android_09-Android安全机制.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android_09-Android安全机制

Android 智能终端 课程讲义 Android安全机制 2011-09 By wez 综述 2 Android 是一个多进程系统,在这个系统中,应用程序(或者系统的部分)会在自己的进程中运行。系统和应用之间的安全性通过 Linux 的 facilities(工具,功能)在进程级别来强制实现的,比如会给应用程序分配 user ID 和 Group ID。更细化的安全特性是通过Permission机制对特定的进程的特定的操作进行限制,而per-URI permissions可以对获取特定数据的access 专门权限进行限制。 所以,应用程序之间的一般是不可以互相访问的,但是 anroid提供了一种 permission 机制,用于应用程序之间数据和功能的安全访问。 安全架构 3 Android 安全架构中一个中心思想就是:应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的操作。这包括读或写用户的私有数据(如联系人数据或 email 数据),读或写另一个应用程序的文件,网络连接,保持设备处于非睡眠状态。 一个应用程序的进程就是一个安全的沙盒。它不能干扰其它应用程序,除非显式地声明了“permissions”,以便它能够获取基本沙盒所不具备的额外的能力。它请求的这些权限“permissions”可以被各种各样的操作处理,如自动允许该权限或者通过用户提示或者证书来禁止该权限。应用程序 需要的那些“permissions”是静态的在程序中声明,所以他们会在程序安装时被知晓,并不会再改变。 安全架构 4 Android 安全架构中一个中心思想就是:应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的操作。这包括读或写用户的私有数据(如联系人数据或 email 数据),读或写另一个应用程序的文件,网络连接,保持设备处于非睡眠状态。 一个应用程序的进程就是一个安全的沙盒。它不能干扰其它应用程序,除非显式地声明了“permissions”,以便它能够获取基本沙盒所不具备的额外的能力。它请求的这些权限“permissions”可以被各种各样的操作处理,如自动允许该权限或者通过用户提示或者证书来禁止该权限。应用程序 需要的那些“permissions”是静态的在程序中声明,所以他们会在程序安装时被知晓,并不会再改变。 安全架构 5 所有的 Android 应用程序(。apk 文件)必须用证书进行签名认证,而这个证书的私钥是由开发者保有的。该证书可以用以识别应用程序的作者。该证书也不需要 CA 签名认证(注:CA 就是一个第三方的证书认证机构,如 verisign 等)。Android 应用程序允许而且一般也都是使用 self- signed 证书(即自签名证书)。证书是用于在应用程序之间建立信任关系,而不是用于控制程序是否可以安装。签名影响安全性的最重要的方式是通过决定谁可以进入基于签名的 permisssions,以及谁可以 share 用户 IDs。 用户IDs和文件存取 6 每一个 Android 应用程序(apk 文件)都会在安装时就分配一个独有的 Linux 用户 ID,这就为它建立了一个沙盒,使其不能与其他应用程序进行接触(也不会让其它应用程序接触它)。这个用户 ID 会在安装时分配给它,并在该设备上一直保持同一个数值。 由于安全性限制措施是发生在进程级,所以两个 package 中的代码不会运行在同一个进程当中,他们要作为不同的 Linux 用户出现。我们可以通过 使用 AndroidManifest。xml 文件中的 manifest 标签中的 sharedUserId 属性,来使不同的 package 共用同一个用户 ID。通过这种方式,这两个 package 就会被认为是同一个应用程序,拥有同一个用户 ID(实际不一定),并且拥有同样的文件存取权限。注意:为了保持安全,只有当两个应用程序被同一个签名签署的时候(并且请求了同一个 sharedUserId)才会被分配同样的用户 ID。 用户IDs和文件存取 7 所有存储在应用程序中的数据都会赋予一个属性—该应用程序的用户ID,这使得其他package无法访问这些数据。 当通过这些方法getSharedPreferences(String,int),openFileOutput(String,int)或者openOrCreateDatabase(String,int,SQLiteDatabase.CursorFactory)来创建一个新文件时,你可以通过使用MODE_WORLD_READABLEand/orMODE_WORLD_WRITEABLE标志位来设置是否允许其他package来访问读写这个文件。 当设置这些标志位时,该

文档评论(0)

2232文档 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档