安卓移动终端数据隔离方法与流程

文档序号:12272110阅读:1741来源:国知局
安卓移动终端数据隔离方法与流程

本发明涉及Android系统信息安全技术领域,特别涉及一种Android移动终端数据隔离方法。



背景技术:

Android系统具有较为完善的功能接口和强大的网络互联能力,是目前主流的移动终端操作系统。相比传统移动终端,Android移动终端拥有更高性能的处理器、更大的存储空间、和更强大的移动网络数据传输能力。借助Android移动终端开展大量业务的同时,也要处理更多的个人隐私数据,因此信息安全问题变得极为迫切。Android的安全机制主要是由安全技术来保障,现有的安全技术主要包括传统访问控制、基于权限的安全模式、隔离和应用程序签名等。

传统访问控制包括自主访问控制和强制访问控制。自主访问控制机制具有传递性,是一种比较宽松的访问控制。访问权限可以在主体中自由地传递,这会导致资源拥有者失去对资源的控制,带来严重的安全隐患。强制访问控制是一种更为严格的访问控制策略,抵抗攻击能力较强。但传统访问控制的一个问题是用户与访问权限一一对应的,当用户发生变动或增加大量用户时,要进行大量的授权工作,因此传统访问控制的灵活性和便捷性较差,无法适用于数据库的大数据量要求。

基于权限的安全模式声明的权限在程序安装时获取,若用户不同意授权,则程序无法成功安装,并且权限一旦获取就无法更改。虽然权限机制阻止了程序的某些非授权行为,但基于权限机制的应用权限分类方式太过粗糙,权限控制粒度不够细致,该问题会导致应用程序申请超过本身所需的权限,存在很大的信息安全隐患。

隔离能够实现不同应用程序和进程之间的彼此隔离,一般情况下,应用程序没有权限访问系统资源或其它应用程序的资源。Android隔离系统能够保证应用程序只访问其允许的系统资源,但同时赋予了应用程序请求进入移动终端其它子系统权限的权利,所以恶意应用程序在受到隔离系统限制的同时,仍能够执行很多种类的攻击,包括资源攻击、数据丢失攻击等。

应用程序签名机制主要检测APK包(Android安装包)的完整性和发布机构的唯一性,在应用程序安装或更新时发挥其作用。该机制根据每个包的唯一性签名文件,仅针对将文件解压后进行篡改的行为,在一定程度上保护了系统安全。现有安全机制下的Android系统通常仅有一个用户数据区以及对应的外置存储区的数据结构,不能有效地保障用户信息安全。



技术实现要素:

本发明的目的在于克服现有技术的不足,通过修改安卓移动终端的系统核心存储结构,诱导系统访问所指定位置,以达到多用户数据共存与数据隔离的效果。

本发明的目的是通过以下技术方案来实现的:通过对Android移动终端的存储框架的修改,重定义用户数据存储方式,诱导系统文件索引服务,诱导系统和用户应用仅访问指定的存储位置。

当前,在Android移动终端的框架下数据存储区主要有两大类:

(1)系统用户数据分区:用于存放用户和系统应用存活的必要数据(如:电话,短信,部分IM(即时通讯)软件的聊天记录,以及一些必要的用户服务数据)。用户没有权限直接访问本存储区的数据,仅能通过应用程序来间接访问,且本区数据不在各应用程序之间共享。

(2)用户扩展储存区(SD卡):用于存放用户应用运行所产生的、且需要和其他应用共享的数据(如:图片、视频、音乐等等),在多数系统中,这块数据存储区赋予了用户的使用权,具备配套的文件管理应用。

本发明为每个用户配置一个用户数据分区,以实现用户设置隔离、用户应用程序隔离、用户应用程序数据区隔离、和用户账号切换。在每个用户数据分区还可以实现用户扩展存储空间隔离。其中用户扩展存储空间隔离为在数据隔离基础上实现的扩展需求。

用户设置隔离:包括用户默认APN隔离和APN列表隔离(网络隔离)和其他用户设置(时区、语言、电源策略等)隔离。不同用户账户具备不同的用户设置内容,安全系统的用户设置隔离范围包含时区、语言、电源策略等可自定义的系统用户设置。安全系统通过隔离不同用户的网络设置(APN)来达到网络隔离的效果。

用户应用程序隔离:不同用户账户具备不同的应用程序安装空间,用户账户不能看到和使用其他账户的应用,各账户系统消息不共享,应用间不能互相访问或被其他账户的系统消息唤醒。

用户应用程序数据区隔离:不同用户账户具备不同的应用程序数据存储区,各用户安装的应用相互之间不能共享数据。

因而,本发明的安卓移动终端数据隔离方法包括下列步骤:

为每个用户账号创建一个私有的用户数据分区,用于存放用户的关键文件,所述关键文件包括应用软件、应用数据和系统用户设置;

并为每个用户账户配置N个私有的虚拟扩展存储区(SD卡),其中N≥1,虚拟扩展存储区用于存放用户的应用软件在运行时产生的且需要和其他应用软件共享的运行数据;

在启用用户时,基于选定的目标用户账户,将目标用户账户的关键文件从用户数据分区搬移到安卓移动终端的系统用户数据分区,使得目标用户账户的用户数据分区被系统访问;在切换用户时,基于切换的目标用户账户,将切换前的用户账户的关键文件从系统用户数据分区搬移到该用户账号的用户数据分区;并将目标用户账户的关键文件从用户数据分区搬移到安卓移动终端的系统用户数据分区,然后重启系统,使得目标用户账户的用户数据分区被系统访问。

在实现不同用户账户的用户数据(应用软件、应用数据和系统用户设置等用户数据)的数据隔离的同时,为了提高系统访问速度,可以通过为系统用户数据分区建立虚拟用户数据分区,并通过镜像文件以软连接的方式实现系统访问,即:

通过修改系统启动配置文件(如init.rc文件),将安卓移动终端的系统用户数据分区挂载到一个指定目录,并在该指定目录下建立虚拟用户数据分区。将系统用户数据分区文件搬移至指定目录下的虚拟用户数据分区,同时在系统用户数据分区中建立镜像文件与指定目录中文件一一对应。当系统访问系统用户数据分区的内部文件时,将被镜像文件以软连接的方式指向指定目录中的对应文件,使得位于系统用户数据分区的用户数据被系统访问,通过该方法可以提高访问速度。

进一步的,切换用户处理可以替换为:在切换用户时,基于切换的目标用户账户重启系统完成账户切换。

本发明的有益效果是,通过数据隔离改变Android系统仅有一个用户数据分区以及对应的外置存储区的数据结构的传统架构,在现有Linux安全的基础上,提出数据隔离实现用户分区,并在用户分区实现扩展存储空间隔离,对Linux安全较为薄弱的部分进行了增强,安全性更高,可广泛应用于安全等级较高的环境中。

附图说明

图1为本发明的Android移动终端数据隔离的系统架构图;

图2为新用户创建的示意流程图;

图3为用户切换的示意流程图;

图4为用户删除的示意流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。

本发明通过重制Android移动终端的数据存储结构,使原系统单一化存储结构转为多元化,在保障用户数据环境隔离的同时,避开对Android移动终端框架核心特性的改动。不同于传统的仅有一个用户数据分区以及对应的外置存储区的数据结构,修改后的Android系统框架接管了原有的掌管用户数据挂载、移除的服务,在多用户与数据隔离技术下,系统将拥有无限多个用户数据分区,并相互不可见。如图1描述的系统框架所示,将Android系统分为Linux系统内核和Android框架,其中Android框架包括系统用户数据分区和其它系统分区。本发明利用系统核心层框架修改技术手段和系统应用层框架修改技术手段实现用户数据区隔离。

首先,系统在指定文件目录下构建对应用户账户的用户数据分区,图1中所示的用户1数据分区~用户n数据分区,用于存放各用户账户的用户数据,如安装的应用软件、应用数据和系统用户设置(网络设置、时区、语言、电源策略等等)等关键文件;

启用用户时,将目标用户数据分区的关键文件搬移到系统用户数据分区,使其被系统访问。为了提高访问速度,将Android移动终端的系统用户数据分区挂载到一个指定目录,并在该目录建立虚拟用户数据分区,同时将系统用户数据分区的文件搬移至指定目录下的虚拟用户数据分区,同时在系统用户数据分区中建立镜像文件与指定目录中的文件一一对应。当系统访问系统用户数据分区内部文件时,将被镜像文件以软连接的方式指向指定目录中的对应文件,使得位于系统用户数据分区的用户数据被系统访问。

切换用户时替换系统用户数据分区中的关键文件。即将系统用户数据分区中当前用户账户的用户数据搬移至对应用户数据分区,将目标用户账户的关键文件从其用户数据分区搬移到系统用户数据分区,重启系统,使目标用户生效。

进一步地,对于用户扩展存储区的数据隔离,本发明针对Android系统的不同版本做了不同设计。

针对Android 2.3.X,对SD卡做真实的分区隔离,修改SD挂载配置文件,以多分区选择挂载的方式实现外置存储卡隔离手段。系统vold服务管理着SD卡设备热插拔任务,当服务检测到SD卡插入时,将配置文件中将挂载指定分区作为用户的外置存储位置。

针对Android 4.0及以上版本系统,使用fuse用户空间文件系统实施虚拟SD卡;fuse用户空间文件系统(Filesystem in Userspace),是Linux系统中用于挂载某些网络空间(如SSH)到本地文件系统的模块。本具体实施方式中使用它将一个指定的文件目录,挂载为用户的虚拟SD卡。

本发明结合Android底层数据结构在应用层提供APP入口,为系统开辟了一条快捷的多用户通道。使用者在自身权限范围内可随意的创建用户、删除用户或切换用户,其具体处理如图2~图4所示:

创建用户,用于具备权限的用户账户新建用户账户:基于用户填写的新用户注册信息,为该新用户构建数据分区结构,即在指定路径下设置一个私有的用户数据分区,用于存放安装的应用软件、应用数据和系统用户设置(网络设置、时区、语言、电源策略等等)等关键文件,并为该新用户关联或新建一个SD卡存储分区,最后将系统的基础支撑数据拷贝至该新用户的用户数据分区,完成新用户创建。

用户切换,在整个用户切换过程工作量较大,需要将当前用户账户的用户数据切换出去,使当前系统指向的数据分区变为缺失,搬移目标用户账户的用户数据填补缺失,实现用户数据的替换,在此同时替换用户的关联SD卡。替换完成重启系统核心使目标用户账户生效。

删除用户,用于具备权限的用户账户对所选择的目标用户账户进行删除:分析目标用户账户的用户数据分区结果,即获取目标用户账户的用户数据、SD卡信息,并删除对应的用户数据区目录与对应的SD卡目录,同时删除系统保留的对应注册信息,即可删除指定用户。

以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1