Android 安全机制答疑

来源:互联网 发布:在u盘上安装ubuntu 编辑:程序博客网 时间:2024/06/12 01:24
什么是Android 多用户模式
        类似PC机器上的多账号登陆,一台设备支持多个用户复用,在Android 4.2时就已经开始支持多用户功能;Android为不同的用户提供独立的通知、应用、壁纸、指纹、密码、电话、短信等个人数据空间,主要应用场景如,父母可能会允许他们的孩子使用家用平板电脑,或应急响应团队可能会共用一台移动设备用于呼叫值班。此外市面上常见的应用双开、手机分身功能都是基于此种技术实现的。
        Android 设备管理使用以下用户类型:
        主要用户:添加到设备的第一个用户。除非恢复出厂设置,否则无法移除主要用户;此外,即使其他用户在前台运行,主要用户也会始终处于运行状态。该用户还拥有只有自己可以设置的特殊权限和设置。
        次要用户:除主要用户之外添加到设备的任何用户。次要用户可以移除(由用户自行移除或由主要用户移除),且不会影响设备上的其他用户。这种用户可以在后台运行且可以继续连接到网络。
        访客   :临时的次要用户。访客用户设置中有明确的删除选项,以便在访客用户帐号过期时快速将其删除。一次只能创建一个访客用户。
该技术是基于linux 自主式访问控制扩展而来,但不是基于此,且该技术是在一个文件系统上进行权限访问控制的,多用户模式只是一个标准Android操作系统中的一个安全机制而已。

        *P10的用户账号、访客账户、隐私账户说的就是这种多用户模式,它既不是双android系统,也不是双域双系统,可以简单理解为Android多用户模式将所有用户数据互相隔离开来。


什么是Android沙箱
        沙箱,对使用者来说可以理解为一种安全环境,对恶意访问者来说是一种限制。
        在Android系统中,应用APP(通常)都在一个独立的沙箱中运行,即每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的ART虚拟机实例。ART经过优化,允许在有限的内存中同时高效地运行多个虚拟机的实例,并且每一个ART应用作为一个独立的Linux进程执行。
        Android沙箱扩展了Linux内核安全模型的用户与权限机制,将Linux多用户(和前面Android多用户模式不一样)隔离机制巧妙地移植为应用程序隔离。在linux中,一个用户标识(UID)识别一个给定用户;在Android上,一个UID则识别一个应用程序。在安装应用程序时向其分配UID。因此,应用程序运行于自己独立的进程空间,与UID不同的应用程序自然形成资源隔离,如此便形成了一个操作系统级别的应用程序“沙箱”。
        *沙箱只是标准Android操作系统中的一个安全机制而已,不能用来做双系统,可以简单理解为沙箱将所有应用互相隔离开来。


什么是双Android系统,双域双系统
        双Android系统、双域双系统肯定不是标准Android操作系统(google官方发布),它是经过改造的!
        双Android系统:类似咱们公司开发的双Android系统,它的一个典型特点是通过chroot(linux命令)在一个linux内核操作系统上挂载两个文件系统,然后分别在不同的文件系统中启动Android系统进程树,构造双Android形态!可以形象的理解为一棵标准的青松(标准Android),在出土时分叉长出两棵子树!
        双域双系统:类似上海公司给咱们开发的ACE双系统手机,它的一个典型特点是通过复制Android系统核心进程zygote来构建双Android形态的,并且它只有一个文件系统,可以形象的理解为一棵标准的青松(标准Android),在长出半米高儿的时候开始分叉长出两个主干!
        *至于双空间、隐私空间应该指的双Android系统、双域双系统中各子系统的别称吧,类似咱们公司的双Android系统,其中一个子系统叫普通系统(普通区域)、另一个则叫安全系统(安全区域)。


对比
       *Android多用户模式、沙箱机制是Android系统内的安全机制
       *双Android系统、双域双系统是Android系统虚拟化技术


      *Android多用户模式隔离的是用户数据
      *沙箱机制隔离的是应用数据
      *双Android系统隔离的是Android系统进程树(文件系统)
      *双域双系统隔离的是Android系统的framework层(运行时空间)