电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

android安全访问机制

5页
  • 卖家[上传人]:小**
  • 文档编号:89122071
  • 上传时间:2019-05-18
  • 文档格式:DOC
  • 文档大小:24KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、Android安全访问机制主要内容1、安全架构2、用户ID和文件存取3、权限管理(permission)4、使用权限(uses-permission)4.1、使用低级权限4.2、使用高级权限5、组件权限6、URI权限=Android是一个多进程系统,在这个系统中,应用程序(或者系统的部分)会在自己的进程中运行。系统和应用之间的安全性通过Linux的facilities(工具,功能)在进程级别来强制实现的,比如会给应用程序分配user ID和Group ID。更细化的安全特性是通过Permission机制对特定的进程的特定的操作进行限制,而per-URI permissions可以对获取特定数据的access专门权限进行限制。所以,应用程序之间一般是不可以互相访问的,但是anroid提供了一种permission机制,用于应用程序之间数据和功能的安全访问。一、安全架构Android安全架构中一个中心思想就是:应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的操作。这包括读或写用户的私有数据(如联系人数据或email数据),读或写另一个应用程序的文件,网络连接,

      2、保持设备处于非睡眠状态等。一个应用程序的进程就是一个安全的沙盒。它不能干扰其它应用程序,除非显式地声明了permissions,以便它能够获取基本沙盒所不具备的额外的能力。它请求的这些权限(permissions)会被系统做各种处理,比如自动允许该权限或者通过用户提示或者证书来禁止该权限。应用程序需要的那些“permissions”是静态的在程序中声明,所以他们会在程序安装时被知晓,并不会再改变。所有的Android应用程序必须用证书进行签名认证,而这个证书的私钥是由开发者保有的。该证书可以用以识别应用程序的作者。该证书也不需要CA签名认证(注:CA就是一个第三方的证书认证机构,如verisign等)。Android应用程序允许而且一般也都是使用self- signed证书(即自签名证书)。证书是用于在应用程序之间建立信任关系,而不是用于控制程序是否可以安装。签名影响安全性的最重要的方式是通过决定谁可以进入基于签名的permisssions,以及谁可以share 用户IDs。二、用户ID和文件存取每一个Android应用程序都会在安装时就分配一个独有的Linux用户ID,这就为它建立了

      3、一个沙盒,使其不能与其他应用程序进行接触(也不会让其它应用程序接触它)。这个用户ID会在安装时分配给它,并在该设备上一直保持同一个数值。由于安全性限制措施是发生在进程级,所以两个package中的代码不会运行在同一个进程当中,他们要作为不同的Linux用户出现。我们可以通过使用AndroidManifest.xml文件中的manifest标签中的sharedUserId属性,来使不同的package共用同一个用户 ID。通过这种方式,这两个package就会被认为是同一个应用程序,拥有同一个用户ID(实际不一定),并且拥有同样的文件存取权限。注意:为了保持安全,只有当两个应用程序被同一个签名签署的时候(并且请求了同一个sharedUserId)才会被分配同样的用户ID。所有存储在应用程序中的数据都会赋予一个属性:该应用程序的用户ID,这使得其他package无法访问这些数据。当通过方法getSharedPreferences、openFileOutput、openOrCreateDatabase来创建一个新文件时,你可以通过使用MODE_PRIVATE(只能在应用内使用)、MODE_W

      4、ORLD_READABLE(其他应用只有读的权限) 或者 MODE_WORLD_WRITEABLE(其他应用只有写的权限)标志位来设置是否允许其他apk来访问读写这个文件。当设置这些标志位时,该文件仍然属于该应用程序, 但是文件的读写权限已经被设置,使得它对于其他任何应用程序都是可见的。示例:A 和B 都是C公司的产品,那么如果用户从A中登陆成功。那么打开B的时候就不用再次登陆。具体实现就是A和B设置成同一个User ID:A的AndroidManifest:B的AndroidManifest:这个du.apk就是user id。 以后B就可以像打开本地数据库那样打开A中的数据库了。三、权限管理(permission)权限用来描述是否拥有做某件事的权力。Android系统中权限分为普通级别(Normal),危险级别(dangerous),签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。对于普通和危险级别的权限,我们称之为低级权限,应用申请即授予。其他两级权限,我们称之为高级权限或系统权限

      5、,应用拥有platform级别的认证才能申请。当应用试图在没有权限的情况下做受限操作,应用将被系统杀掉以警示。系统应用可以使用任何权限。权限的声明者可无条件使用自己所声明的权限。四、使用权限(uses-permission)应用需要的权限应当在users-permission属性中申请,所申请的权限应当被系统或某个应用所定义,否则视为无效申请。同时,使用权限的申请需要遵循权限授予条件,非platform认证的应用无法申请高级权限。所以,程序间访问权限大致分为两种:第一种低级点的(permission的protectlevel属性为normal或者dangerous),其调用者apk只需声明即可拥有其permission。第二种高级点的(permission的protectlevel属性为signature或者signatureorsystem),其调用者apk就需要和被调用的apk一样拥有相同的signature。若想拥有使用权限,必须在AndroidManifest.xml文件中包含一个或更多的 标签来声明此权限。4.1、使用低级权限例如,一个需要监听来自SMS消息的应用程序将要指定

      6、如下内容: 应用程序安装的时候,应用程序请求的permissions是通过package installer来批准获取的。package installer是通过检查该应用程序的签名来确定是否给予该程序所请求的权限。在用户使用过程中不会去检查权限,也就是说要么在安装的时候就批准该权限,使其按照设计可以使用该权限;要么就不批准,这样用户也就根本无法使用该权限所描述的功能,也不会有任何提示告知用户尝试失败。4.2、使用高级权限例如,如果一个应用想要使用system级别权限设定的api时,需要使其apk拥有system权限。比如SystemClock.setCurrentTimeMillis()方法就属于system级别。这种情况下有两个方法可以使用此api:第一个方法简单点,不过需要在Android系统源码的情况下用make来编译:1、在应用程序的AndroidManifest.xml中的manifest节点中插入:android:sharedUserId=android.uid.system这个属性2、修改Android.mk文件,插入LOCAL_CERTIFICATE := platf

      7、orm这一行3、使用mm命令来编译,生成的apk就有修改系统时间的职权范围了。第二个方法麻烦点,不过不需要在源码下用make来编译:1、同上,插入android:sharedUserId=android.uid.system这个属性。2、使用eclipse编译出apk文件,但是这个apk文件是不能用的。3、使用针系统的platform密码钥匙来重新给apk文件签名。signapk platform.x509.pem platform.pk8 input.apk output.apk五、组件权限可以为某个组件单独添加权限,在AndroidManifest文件中声明组件的时候,如果为组件添加了android:permission属性,那么该组件就添加了访问权限,比如在Phone模块的AndroidManifest文件内: . Activity 权限:为Activity 增加权限,限制是否能启动该Activity。在startActivity()和startActivityForResult() 期间检查。Service 权限为Service 增加权限,限制是否能启动、绑定该Service

      8、。此权限在 startService(), stopService() 和 bindService() 期间要经过检查;BroadcastReceiver 权限为BroadcastReceiver增加权限,限制发送广播者是否可以将广播发送到该BroadcastReceiver。在 sendBroadcast() 返回后将检查此权限,同时系统设法将广播递送至相关接收者。因此,权限失败将会导致抛回给调用者一个异常,它将不能递送到目的地。ContentProvider 权限为ContentProvider增加权限,用于限制其他应用是否有权限访问该ContentProvider中的数据。申请失败的情况如果调用者没有请求权限,那么会为调用抛出一个安全异常( SecurityException )。在所有这些情况下,一个SecurityException异常从一个调用者那里抛出时不会存储请求权限结果。六、URI权限到目前为止我们讨论的标准的permission系统对于content provider来说是不够的。一个content provider可能想保护它的读写权限,而同时与它对应的直属客户端也需要将特定的URI传递给其

      《android安全访问机制》由会员小**分享,可在线阅读,更多相关《android安全访问机制》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.