- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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来访问读写这个文件。
当设置这些标志位时,该
您可能关注的文档
最近下载
- 正常新生儿护理演示ppt课件.ppt
- 硬笔楷书教学课件.pptx VIP
- 天津市南开翔宇学校初一新生分班(摸底)数学模拟考试(含答案).pdf VIP
- 第1课 寻找信息科技(教学设计)-2024-2025学年人教版(2024)信息三年级全一册.docx VIP
- 南京电子地图超大版-超清晰-3600-x-5100分辨率.pdf VIP
- 冷轧带钢再结晶退火的感应加热.pdf VIP
- (高清版)B-T 18380.12-2022 电缆和光缆在火焰条件下的燃烧试验 第12部分:单根绝缘电线电缆火焰垂直蔓延试验 1kW预混合型火焰试验方法.pdf VIP
- 大学生竞选班长最新PPT课件.ppt VIP
- 云教版劳动与技术四年级上册2切菜.pptx VIP
- 育婴员(职工组)基础知识模块(模块一).docx VIP
文档评论(0)