文档章节

Android安全模型之介绍

柳哥
 柳哥
发布于 2014/11/30 14:54
字数 965
阅读 563
收藏 2

从技术架构角度来看,Android安全模型基于强健的Linux操作系统内核安全性,通过进程沙箱机制隔离进程资源,并且辅以独特的内存管理技术与安全高效的进程间通信机制,适应嵌入式移动端处理器性能与内存容量的限制。在应用层面,使用显式定义且经用户授权的应用权限控制机制等,系统化地规范并强制各类应用程序的行为准则与权限许可;引入应用程序签名机制定义应用程序之间的信任关系与资源共享的权限。Android应用程序基于Android特有的应用框架(Framework),由Java语言编写,运行于Dalvik Java虚拟机。同时,部分底层应用仍可由C/C++语言设计实现,以原生库形式直接运行于操作系统的用户空间。应用程序及其Dalvik虚拟机运行环境都被限制在“进程沙箱”的隔离环境下,自行拥有专用的文件系统区域,独享私有数据。

Android安全模型的设计特点可概括为:

  • 采用多层架构,在保护用户信息安全的同时,保证开放平台上各种应用的灵活性。

  • 既允许经验丰富的开发者充分利用安全架构的灵活性,也为熟悉安全架构的开发者提供更多可以信赖的默认安全性设置。

  • 鼓励用户了解应用程序是如何工作的,并鼓励用户对所持设备进行安全控制。

  • 不但要面对恶意软件的威胁,而且还要考虑第三方应用程序的恶意攻击。

  • 安全保护与风险控制同在,在安全防护失效时,尽量减少损害,并尽快恢复使用。

Android安全模型主要提供以下几种安全机制:

  • 进程沙箱隔离机制:Android应用程序在安装时被赋予独特的用户标识(UID),并永久保持; 应用程序及其运行的Dalvik虚拟机运行于独立的Linux进程空间,与UID不同的应用程序完全隔离。

  • 应用程序签名机制:应用程序包(.apk文件)必须被开发者数字签名;同一开发者可指定不同的应用程序共享UID,进而运行于同一进程空间,共享资源。

  • 权限声明机制:应用程序需要显式声明权限,名称,权限组与保护级别 。不同的级别要求应用程序行使此权限时的认证方式不同:Normal级申请即可用;Dangerous级需在安装时由用户确认才可用; Signature与Signatureorsystem则必须是系统用户才可用。

  • 访问控制机制:传统的Linux访问控制机制确保系统文件与用户数据不受非法访问。

  • 进程通信机制Binder进程通信机制提供基于共享内存的高效进程通信;Binder基于Client-Server模型,提供类似COM与CORBA的轻量级远程进程调用(RPC);通过接口描述语言(AIDL)定义接口与交换数据的类型,确保进程间通信的数据不会溢出越界,污染进程空间。

  • 内存管理机制:基于标准Linux的低内存管理机制(OOM),设计实现了独特的低内存清理(LMK)机制,将进程按重要性分级,分组,当内存不足时,自动清理最低级别进程所占用的内存空间;同时,引入不同于传统Linux共享内存机制的Android共享内存机制Sshmem,具备清理不再使用共享内存区域的能力。

© 著作权归作者所有

柳哥
粉丝 207
博文 405
码字总数 347782
作品 0
杭州
技术主管
私信 提问
2018 年 Android 应用程序的发展趋势

应用程序开发人员正在不断开发新方法,一方面简化和缩短开发流程,另一方面构建最佳设计和用户体验。每年我们都可以看到在移动应用程序开发中不断涌现的新型尖端技术和工具。在这里,我们将介...

高效码农
2018/02/12
4.6K
2
android基础知识02——线程安全1:定义及例子

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
810
0
android基础知识02——线程安全5: AsyncTask

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
1K
0
Android开发中“即编即达”的用户模型

Android开发官方网站http://developer.android.com 给我们Android开发从入门到深入提供了完善的文档支持。 在Dev Guide标签下,文档完整定义了Android(What is Android?),包括给出其特性、...

xyxzfj
2011/12/07
72
0
android基础知识02——线程安全4:HandlerThread

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
416
0

没有更多内容

加载失败,请刷新页面

加载更多

spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
9分钟前
1
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部