应用于SEAndroid系统的安全策略配置方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及系统安全技术领域,具体涉及一种应用于SEAndroid系统的安全策略配置方法及装置。
【背景技术】
[0002]Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。SELinux(英文全称为:Security-Enhanced Linux)系统是美国国家安全局(NSA,Nat1nalSecurityAgency)对于强制访问控制(MAC,Mandatory Access Control)的实现,是Linux上最杰出的新安全子系统。对于目前可用的Linux安全模块来说,SELinux系统是功能最全面,而且测试最充分的,它是在20年的MAC研究基础上建立的。
[0003]为了增强安卓(即Android)系统的安全性,NSA在SELinux系统的基础上,根据Android系统的特性修改移植,形成了适用于Android系统的增强安全子系统,即SEAndroid(英文全称为:Security-Enhanced Android,中文译名为Android的增强安全)系统。
[0004]安全策略(即policy)是整个SEAndroid系统安全机制的核心之一,除了有好的安全架构外还必须有好的安全策略以确保让访问主体只拥有最小权限,使程序既能顺利执行基本功能又能防止被恶意使用。在SEAndroid系统中有关policy的相关源文件都在源码目录external/sepolicy中,在Android.mk文件中描述了相关编译过程,首先会使用m4预处理器将sepolicy中的所有相关文件整合成一个源文件口1:[07.001^,然后通过011601^)01;^7编译器将policy, conf策略源文件编译成sepolicy.24的二进制策略文件(24为策略版本号)。(:116^^)01;^7编译器的所有源文件都在61七61'肪1/(3116^^)01;^7目录中,编译完成的二进制策略文件会在系统启动时被加载到内核中,在权限检测时使用。
[0005]目前存在一种SEAndroid系统安全策略配置方法,具体如下:在负责安全策略编译的主机上编译好所需要的安全策略,并下载到安全TF(英文全称为:TranFlash)卡上的安全存储区内,将带有安全策略的安全TF卡插入SEAndroid系统中,在SEAndroid系统开机且通过安全TF卡认证后,从安全TF卡中加载安全策略,SEAndroid系统根据安全TF卡中的安全策略来控制系统中不同程序的访问权限和可以进行的操作。
[0006]虽然上述SEAndroid系统安全策略配置方法能够实现在不同安全策略环境中对安全策略的配置,然而上述方法需要额外准备安全TF卡,且每次配置安全策略时都需要将TF卡插入SEAndroid系统中,操作繁琐。
【发明内容】
[0007]本发明提供一种应用于SEAndroid系统的安全策略配置方法及装置,使得安全策略配置更为便利。
[0008]本发明一方面提供一种应用于SEAndroid系统的安全策略配置方法,包括:
[0009]在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
[0010]从云端服务器下载与默认的安全策略对应的bundle文件,其中,上述云端服务器中存储有两个以上上述bundle文件,且每个上述bundle文件对应的安全策略各不相同,且其中一个上述bundle文件对应的安全策略为默认的安全策略;
[0011 ]基于上述BundleContext,调用BundleContext.1nstallBundle方法安装当前下载的bundle文件;
[0012]获取当前安装的bundI e文件的bund I e标识符;
[0013]基于上述BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。
[0014]本发明另一方面提供一种应用于SEAndroid系统的安全策略配置系统,包括:
[0015]OSGI框架上下文获取单元,用于在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
[0016]下载单元,用于从云端服务器下载与默认的安全策略对应的bundle文件,其中,上述云端服务器中存储有两个以上上述bundle文件,且每个上述bundle文件对应的安全策略各不相同,且其中一个上述bundle文件对应的安全策略为默认的安全策略;
[0017]安装单元,用于基于上述OSGI框架上下文获取单元获取的BundleContext,调用BundleContext.1nstallBundle方法安装当前下载的bundle文件;
[0018]第一获取单元,用于获取当前安装的bundle文件的bundle标识符;
[0019]启动单元,用于基于上述OSGI框架上下文获取单元获取的BundleContext以及上述第一获取单元当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。
[0020]由上可见,本发明预先在云端服务器存储两个以上与安全策略对应的bundle文件,在SEAndroid系统启动时,从云端服务器下载与默认的安全策略对应的bundle文件并利用Android系统中的OSGI框架服务对下载的bundle文件进行安装和启动,以此实现对默认的安全策略的配置。本发明不需要额外准备安全TF卡,也无需在每次配置安全策略时将TF卡插入SEAndroid系统中,因此,安全策略的配置过程更为便利。
【附图说明】
[0021]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1为本发明提供的一种应用于SEAndroid系统的安全策略配置方法一实施例流程不意图;
[0023]图2为本发明提供的一种应用于SEAndroid系统的安全策略配置方法另一实施例流程示意图;
[0024]图3为本发明提供的一种应用于SEAndroid系统的安全策略配置方法再一实施例流程示意图;
[0025]图4为本发明提供的一种应用于SEAndroid系统的安全策略配置系统一实施例结构示意图。
【具体实施方式】
[0026]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]本发明实施例提供一种应用于SEAndrοid系统的安全策略配置方法,包括:在SEAndroid系统启动时,获取OSGI框架中的BundleContext;从云端服务器下载与默认的安全策略对应的bundle文件,其中,上述云端服务器中存储有两个以上上述bundle文件,且每个上述bundle文件对应的安全策略各不相同,且其中一个上述bundle文件对应的安全策略为默认的安全策略;基于上述BundleContext,调用BundleContext.1nstallBundle方法安装当前下载的bundle文件;获取当前安装的bundIe文件的bundIe标识符;基于上述BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。本发明实施例还提供相应的安全策略配置系统,以下分别进行详细说明。
[0028]实施例一
[0029]请参阅图1,本发明实施例中的安全策略配置方法包括:
[0030]步骤101、在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
[0031]下面对本发明实施例中提及的OSGI进行说明。
[0032]开放服务网关协议(0SGI,0penService Gateway Initiative),亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。
[0033]OSGI由两部分组成:0SGI框架和OSGI标准服务。OSGI框架是实现并提供OSGI功能的运行环境,OSGI标准服务定义了很多用于执行常见任务的可重用应用程序编程接口(API ,Applicat1n Programming Interface) dOSGI框架和标准服务的规范由OSGI联盟管理。OSGI框架在创建基于OSGI的应用时起着核心作用,因为它是应用的执行环境。
[0034]OSGI联盟在OSGI框架规范中定义了框架的正确行为,这样就可以基于一个定义清晰的API进行编程。这个框架是依据OSGI规范中定义的三个概念层设计的,这三个概念层分别为模块层、生命周期层和服务器。模块层关注于打包和共享代码。模块层定义了 OSGI模块的概念,并将之称为一个bundle Aundle是一个包含元数据(关于数据的数据)的jar文件,由类文件和相关资源组成。生命周期层关注于提供执行时模块管理和对底层OSGI框架的访问。生命周期层定义了在OSGI框架中是如何动态安装和管理来的。生命周期层定义了bundle生命周期的操作(如安装、更新、启动、停止和卸载)。这些生命周期的操作使得可以用一种定义明确的方式动态地提供、管理和改进应用程序。服务层关注于模块,特别是模块内的组件间的交互和通信。服务层支持和促成了一个灵活的应用编程模型。主要涉及面向服务的发布、查找和绑定交互模式,即服务提供者将服务发布到服务注册中心,然后服务客户端通过搜索服务注册中心,查找可供使用的服务。
[0035]在OSGI中,生命周期层由Bundle、BundIeContext和BundleActivator这三个核心接口构成。Android平台模块动态加载OSGI框架中生命周期层核心部分仍然由这三个接口组成,但接口中的方法需要进行删减和扩充,进行删减的原因是这些方法在Androi