CN105516154A - 应用于SEAndroid系统的安全策略配置方法及装置 - Google Patents
应用于SEAndroid系统的安全策略配置方法及装置 Download PDFInfo
- Publication number
- CN105516154A CN105516154A CN201510938081.4A CN201510938081A CN105516154A CN 105516154 A CN105516154 A CN 105516154A CN 201510938081 A CN201510938081 A CN 201510938081A CN 105516154 A CN105516154 A CN 105516154A
- Authority
- CN
- China
- Prior art keywords
- security strategy
- bundle
- bundle file
- current
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Abstract
本发明公开了一种应用于SEAndroid系统的安全策略配置方法及装置,该安全策略配置方法包括:在SEAndroid系统启动时,获取OSGI框架中的BundleContext;从云端服务器下载与默认的安全策略对应的bundle文件;基于该BundleContext调用BundleContext.installBundle方法安装当前下载的bundle文件;获取当前安装的bundle文件的bundle标识符;基于该BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。本发明提供的技术方案使得安全策略配置更为便利。
Description
技术领域
本发明涉及系统安全技术领域,具体涉及一种应用于SEAndroid系统的安全策略配置方法及装置。
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。SELinux(英文全称为:Security-EnhancedLinux)系统是美国国家安全局(NSA,NationalSecurityAgency)对于强制访问控制(MAC,MandatoryAccessControl)的实现,是Linux上最杰出的新安全子系统。对于目前可用的Linux安全模块来说,SELinux系统是功能最全面,而且测试最充分的,它是在20年的MAC研究基础上建立的。
为了增强安卓(即Android)系统的安全性,NSA在SELinux系统的基础上,根据Android系统的特性修改移植,形成了适用于Android系统的增强安全子系统,即SEAndroid(英文全称为:Security-EnhancedAndroid,中文译名为Android的增强安全)系统。
安全策略(即policy)是整个SEAndroid系统安全机制的核心之一,除了有好的安全架构外还必须有好的安全策略以确保让访问主体只拥有最小权限,使程序既能顺利执行基本功能又能防止被恶意使用。在SEAndroid系统中有关policy的相关源文件都在源码目录external/sepolicy中,在Android.mk文件中描述了相关编译过程,首先会使用m4预处理器将sepolicy中的所有相关文件整合成一个源文件plicy.conf,然后通过checkpolicy编译器将policy.conf策略源文件编译成sepolicy.24的二进制策略文件(24为策略版本号)。checkpolicy编译器的所有源文件都在external/checkpolicy目录中,编译完成的二进制策略文件会在系统启动时被加载到内核中,在权限检测时使用。
目前存在一种SEAndroid系统安全策略配置方法,具体如下:在负责安全策略编译的主机上编译好所需要的安全策略,并下载到安全TF(英文全称为:TranFlash)卡上的安全存储区内,将带有安全策略的安全TF卡插入SEAndroid系统中,在SEAndroid系统开机且通过安全TF卡认证后,从安全TF卡中加载安全策略,SEAndroid系统根据安全TF卡中的安全策略来控制系统中不同程序的访问权限和可以进行的操作。
虽然上述SEAndroid系统安全策略配置方法能够实现在不同安全策略环境中对安全策略的配置,然而上述方法需要额外准备安全TF卡,且每次配置安全策略时都需要将TF卡插入SEAndroid系统中,操作繁琐。
发明内容
本发明提供一种应用于SEAndroid系统的安全策略配置方法及装置,使得安全策略配置更为便利。
本发明一方面提供一种应用于SEAndroid系统的安全策略配置方法,包括:
在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
从云端服务器下载与默认的安全策略对应的bundle文件,其中,上述云端服务器中存储有两个以上上述bundle文件,且每个上述bundle文件对应的安全策略各不相同,且其中一个上述bundle文件对应的安全策略为默认的安全策略;
基于上述BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件;
获取当前安装的bundle文件的bundle标识符;
基于上述BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。
本发明另一方面提供一种应用于SEAndroid系统的安全策略配置系统,包括:
OSGI框架上下文获取单元,用于在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
下载单元,用于从云端服务器下载与默认的安全策略对应的bundle文件,其中,上述云端服务器中存储有两个以上上述bundle文件,且每个上述bundle文件对应的安全策略各不相同,且其中一个上述bundle文件对应的安全策略为默认的安全策略;
安装单元,用于基于上述OSGI框架上下文获取单元获取的BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件;
第一获取单元,用于获取当前安装的bundle文件的bundle标识符;
启动单元,用于基于上述OSGI框架上下文获取单元获取的BundleContext以及上述第一获取单元当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。
由上可见,本发明预先在云端服务器存储两个以上与安全策略对应的bundle文件,在SEAndroid系统启动时,从云端服务器下载与默认的安全策略对应的bundle文件并利用Android系统中的OSGI框架服务对下载的bundle文件进行安装和启动,以此实现对默认的安全策略的配置。本发明不需要额外准备安全TF卡,也无需在每次配置安全策略时将TF卡插入SEAndroid系统中,因此,安全策略的配置过程更为便利。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种应用于SEAndroid系统的安全策略配置方法一实施例流程示意图;
图2为本发明提供的一种应用于SEAndroid系统的安全策略配置方法另一实施例流程示意图;
图3为本发明提供的一种应用于SEAndroid系统的安全策略配置方法再一实施例流程示意图;
图4为本发明提供的一种应用于SEAndroid系统的安全策略配置系统一实施例结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种应用于SEAndroid系统的安全策略配置方法,包括:在SEAndroid系统启动时,获取OSGI框架中的BundleContext;从云端服务器下载与默认的安全策略对应的bundle文件,其中,上述云端服务器中存储有两个以上上述bundle文件,且每个上述bundle文件对应的安全策略各不相同,且其中一个上述bundle文件对应的安全策略为默认的安全策略;基于上述BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件;获取当前安装的bundle文件的bundle标识符;基于上述BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。本发明实施例还提供相应的安全策略配置系统,以下分别进行详细说明。
实施例一
请参阅图1,本发明实施例中的安全策略配置方法包括:
步骤101、在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
下面对本发明实施例中提及的OSGI进行说明。
开放服务网关协议(OSGI,OpenServiceGatewayInitiative),亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。
OSGI由两部分组成:OSGI框架和OSGI标准服务。OSGI框架是实现并提供OSGI功能的运行环境,OSGI标准服务定义了很多用于执行常见任务的可重用应用程序编程接口(API,ApplicationProgrammingInterface)。OSGI框架和标准服务的规范由OSGI联盟管理。OSGI框架在创建基于OSGI的应用时起着核心作用,因为它是应用的执行环境。
OSGI联盟在OSGI框架规范中定义了框架的正确行为,这样就可以基于一个定义清晰的API进行编程。这个框架是依据OSGI规范中定义的三个概念层设计的,这三个概念层分别为模块层、生命周期层和服务器。模块层关注于打包和共享代码。模块层定义了OSGI模块的概念,并将之称为一个bundle。bundle是一个包含元数据(关于数据的数据)的jar文件,由类文件和相关资源组成。生命周期层关注于提供执行时模块管理和对底层OSGI框架的访问。生命周期层定义了在OSGI框架中是如何动态安装和管理来的。生命周期层定义了bundle生命周期的操作(如安装、更新、启动、停止和卸载)。这些生命周期的操作使得可以用一种定义明确的方式动态地提供、管理和改进应用程序。服务层关注于模块,特别是模块内的组件间的交互和通信。服务层支持和促成了一个灵活的应用编程模型。主要涉及面向服务的发布、查找和绑定交互模式,即服务提供者将服务发布到服务注册中心,然后服务客户端通过搜索服务注册中心,查找可供使用的服务。
在OSGI中,生命周期层由Bundle、BundleContext和BundleActivator这三个核心接口构成。Android平台模块动态加载OSGI框架中生命周期层核心部分仍然由这三个接口组成,但接口中的方法需要进行删减和扩充,进行删减的原因是这些方法在Android平台的框架中使用不到,将多余的方法删除使框架更加轻量级。其中,BundleContext是指模块在OSGI框架中运行时的上下文环境,该上下文环境提供了模块与OSGI框架进行交互的方法,在OSGI框架运行的各个bundle共同构成了一个微型的生态系统,bundle的许多行为都无法孤立进行,必须在特定的上下文环境中才有意义,因此,本发明实施例中,终端首先需要在SEAndroid系统启动时,获取OSGI框架中的BundleContext(即上下文环境)。
在本发明实施例中,当SEAndroid系统启动时,获取OSGI框架中的BundleContext,以便后续基于该BundleContext对bundle文件进行安装、启动等操作。具体地,获取OSGI框架中的BundleContext可以参照已有技术实现,此处不再赘述。
应理解的是,OSGI框架在Android系统启动之后且SEAndroid系统启动之前即嵌入到该Android系统中,在Android系统中嵌入OSGI框架的步骤如下:1、实现运行OSGI框架的服务,例如建立GetFramework继承自Android系统中的服务;2、在该服务中通过FrameWorkFactory.newFrameWork方法获取OSGI框架实例;3、在OSGI框架服务器初始化时通过Framework.start()方法启动该OSGI框架实例,以此完成在Android系统中嵌入OSGI框架。具体地,在Android系统中嵌入OSGI框架可以参照已有技术实现,此处不再赘述。
步骤102、从云端服务器下载与默认的安全策略对应的bundle文件;
其中,上述云端服务器中存储有两个以上与安全策略对应的bundle文件,且每个上述与安全策略对应的bundle文件对应的安全策略各不相同,且其中一个bundle文件对应的安全策略为默认的安全策略。
本发明实施例中的bundle为OSGI中的模块模型。标准Java平台的jar包中包含有class文件以及相应的资源文件,bundle可以简单地理解为是增加了元数据的jar包。一个bundle中包含了java类和一些其他的数据资源,这些数据可以是HTML文件、帮助文档以及图标等。
本发明实施例中,预先生成并编译好各种安全策略并加载到Android系统,通过Android系统框架的硬件抽象层(HAL,HardwareAbstractLayer)在应用层调用底层的各种安全策略,将调用的各个安全策略分别编译成jar文件,并将这些jar文件转化为bundle文件,如上述可知,bundle文件是添加了特定元数据的jar文件,因此,在将jar文件转化成bundle文件的过程中,会为jar文件增加相应的元数据,元数据包括:可读信息和bundle识别信息。
其中,可读信息为使用者提供该bundle的相关帮助信息,包括如下信息:
Bundle-Name:作为bundle的一个缩写名;
Bundle-Description:描述bundle的功能;
Bundle-DocURL:提供有关bundle的文档;
Bundle-Category:定义了一组由逗号分隔的分类名;
Bundle-Vendor:有关bundle提供商的信息;
Bundle-ContactAddress:有关bundle提供商的信息;
Bundle-Copyright:有关bundle提供商的信息。
bundle识别信息为识别bundle文件的必要信息,在本发明实施例中,bundle识别信息由bundle符号名称和bundle版本号两部分组成。bundle符号名称(即Bundle-SymbolicName)和java中包命名方法一致,可直接采用包名作为符号名称。bundle版本号(即Bundle-Version)的格式通常为:主版本号.次版本号.微版本号.限定符。
在将上述jar文件转化为bundle文件之后,则每个bundle文件将对应一种安全策略且不同bundle文件对应不同的安全策略,进一步,将这些与安全策略对应的bundle文件部署于云端服务器保存,并从中设置一bundle文件为默认下载的bundle文件,该bundle文件对应的安全策略即为默认的安全策略,具体地,默认的安全策略可以根据实际需求进行设定,此处不作限定。在步骤102中,终端从云端服务器下载与默认的安全策略对应的bundle文件。可选的,云端服务器中存储的各个与安全策略对应的bundle文件的格式如下:bundle包名_安全策略名称,其中安全策略名称与用户在搭载Android系统的终端中选择的安全策略名称一致。
步骤103、基于上述BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件;
本发明实施例中,终端可基于步骤101获取的BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件。具体地,调用BundleContext.installBundle方法安装bundle文件的过程可参照已有技术实现,此处不再赘述。
步骤104、获取当前安装的bundle文件的bundle标识符;
本发明实施例中,bundle标识符也即bundleID(英文全称为Identifier),bundleID是运行期最常用的标识符。它是由OSGI框架自动分配的一个长整型数字,在bundle整个生命周期内(包括Bundle更新、卸载之后)都不会改变,甚至在OSGI框架重启后都能保留下来。bundleID是在bundle安装过程中由OSGI框架根据bundle文件的安装时间的先后次序,由小到大进行分配的。
可选的,在本发明实施例中,终端可以通过调用OSGI框架服务中的getBundleID方法获取当前安装的bundle文件的bundleID。当然,本发明实施例中,终端也可以通过其它方式获取当前安装的bundle文件的bundleID,此处不作限定。
可选的,预设一数据库,终端将当前安装的bundle文件的bundle标识符和当前安装的bundle文件对应的安全策略的名称绑定并存储至预设的数据库中,以便后续在配置相同安全策略时,可直接在上述终端上直接安装启动,而无需再通过云端服务器。应理解,步骤103下载的bundle文件会保留在上述终端中。进一步,终端还可获取当前安装的bundle文件的符号名称(即bundle符号名称)和版本号(即bundle符号名称),并将当前安装的bundle文件的bundle标识符、当前安装的bundle文件对应的安全策略的名称、当前安装的bundle文件的符号名称和版本号绑定存储至上述数据库中。具体地,终端可以调用getSymbolicName方法和getVersion方法分别获取当前安装的bundle文件的符号名称和版本号。
步骤105、基于上述BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件;
本发明实施例中,终端可基于步骤101获取的BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法安装当前下载的bundle文件,以此完成对当前下载的bundle文件对应的安全策略的配置。具体地,调用BundleContext.start方法启动bundle文件的过程可参照已有技术实现,此处不再赘述。
需要说明的是,本发明实施例中的终端包括但不限于搭载SEAndroid系统的手机、平板电脑、掌上电脑等。
由上可见,本发明预先在云端服务器存储两个以上与安全策略对应的bundle文件,在SEAndroid系统启动时,从云端服务器下载与默认的安全策略对应的bundle文件并利用Android系统中的OSGI框架服务对下载的bundle文件进行安装和启动,以此实现对默认的安全策略的配置。本发明不需要额外准备安全TF卡,也无需在每次配置安全策略时将TF卡插入SEAndroid系统中,因此,安全策略的配置过程更为便利。
实施例二
在实施例一的基础上,本发明实施例中进一步增加了安全策略动态更换的方案,使得在完成默认的安全策略的配置之后,用户可以根据需要更换安全策略的配置,如图2所述,本发明实施例中的安全策略配置方法包括:
步骤201~205,其中,步骤201~205的具体实现过程可以参照实施例一中步骤101~105的描述,此处不再赘述。
步骤206、若接收到输入的安全策略配置指令,则比较上述安全策略配置指令包含的待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称;
本发明实施例中,终端可以为用户提供安全策略的配置界面,该配置界面中有多种预设的安全策略供用户选择,这些预设的安全策略(包含默认的安全策略)已预先编译并以bundle文件的形式存放在实施例一中提及的云端服务器。举例说明,在该配置界面中显示:权限高、权限较高、权限适中、权限较低、权限低五种模式供用户选择,而这五种模式分别对应于安全策略1、安全策略2、安全策略3、安全策略4和安全策略5,这五种安全策略已预先编译并以bundle文件的形式存放在实施例一中提及的云端服务器。当用户可通过从该配置界面中选择一安全策略来输入相应的安全策略配置指令,该安全策略配置指令包含待配置的安全策略(也即用户当前选择的安全策略)的名称。当然,本发明实施例中用户也可以通过其它方式向配置界面输入安全策略配置指令,此处不作限定。需要说明的是,本发明实施例中,用户可以在SEAndroid系统启动且完成默认的安全策略的配置之后的任意时刻,向终端输入上述安全策略配置指令来进行安全策略的更换。
步骤207、若上述待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称不同,则停止运行上述SEAndroid系统当前配置的安全策略;
本发明实施例中,当终端检测到上述安全策略配置指令包含的待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称不同时,则表明用户有更换安全策略的需求,终端停止运行上述SEAndroid系统当前配置的安全策略。
步骤208、根据上述待配置的安全策略的名称,从上述云端服务器查找并下载与上述待配置的安全策略对应的bundle文件;
本发明实施例中,由于云端服务器中存储着多个预设的与安全策略对应的bundle文件,因此,终端根据上述待配置的安全策略的名称,即从上述云端服务器查找并下载相应的bundle文件,之后,终端针对当前下载的bundle文件,返回执行步骤203~205,以此完成对当前下载的bundle文件对应的安全策略的配置。
需要说明的是,本发明实施例中的终端包括但不限于搭载SEAndroid系统的手机、平板电脑、掌上电脑等。
由上可见,本发明预先在云端服务器存储两个以上与安全策略对应的bundle文件,在SEAndroid系统启动时,从云端服务器下载与默认的安全策略对应的bundle文件并利用Android系统中的OSGI框架服务对下载的bundle文件进行安装和启动,以此实现对默认的安全策略的配置。本发明不需要额外准备安全TF卡,也无需在每次配置安全策略时将TF卡插入SEAndroid系统中,因此,安全策略的配置过程更为便利。并且,本发明实施例还提供了安全策略动态更换的方案,用户只需输入相应的安全策略配置指令即可实现对安全策略配置指令的重配置,而不需要在每次重新配置安全策略时都进行繁琐地执行编译、存入TF卡、插入TF卡等动作,使得用户能够更为方便地对安全策略进行重配置。
实施例三
在实施例一的基础上,本发明实施例中进一步增加了安全策略动态更换的方案,使得在完成默认的安全策略的配置之后,用户可以根据需要更换安全策略的配置,并且,通过预设的数据库存储已配置的安全策略,对于已配置过的安全策略可以直接在本地进行安装,而无需再从云端服务器进行查询下载,使得安全策略的配置更为快捷。具体地,如图3所述,本发明实施例中的安全策略配置方法包括:
步骤301~304,其中,步骤301~304的具体实现过程可以参照实施例一中步骤101~104的描述,此处不再赘述。
步骤305、将当前安装的bundle文件的bundle标识符和当前安装的bundle文件对应的安全策略的名称绑定并存储至预设的数据库中;
本发明实施例中,预设一数据库,终端将当前安装的bundle文件的bundle标识符和当前安装的bundle文件对应的安全策略的名称绑定存储至预设的数据库中。进一步,终端还可获取当前安装的bundle文件的符号名称(即bundle符号名称)和版本号(即bundle版本号),并将当前安装的bundle文件的bundle标识符、当前安装的bundle文件对应的安全策略的名称、当前安装的bundle文件的符号名称和版本号绑定存储至上述数据库中。具体地,终端可以调用getSymbolicName方法和getVersion方法分别获取当前安装的bundle文件的符号名称和版本号。
步骤306、基于上述BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件;
其中,步骤306的具体实现过程可以参照实施例一中步骤105的描述,此处不再赘述。
步骤307、若接收到输入的安全策略配置指令,则比较上述安全策略配置指令包含的待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称;
其中,步骤307的具体实现过程可以参照实施例二中步骤206的描述,此处不再赘述。
步骤308、若上述待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称不同,则停止运行上述SEAndroid系统当前配置的安全策略;
本发明实施例中,当终端检测到上述安全策略配置指令包含的待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称不同时,则表明用户有更换安全策略的需求,终端停止运行上述SEAndroid系统当前配置的安全策略。
步骤309、查询上述数据库中是否存在上述待配置的安全策略的名称;
终端查询上述数据库中是否存在上述待配置的安全策略的名称,若存在,则表明该安全策略已配置过,进入步骤310,若不存在,则表明该安全策略未配置过,进入步骤311。
步骤310、获取上述数据库中与上述待配置的安全策略的名称对应的bundle标识符,并基于上述BundleContext以及当前获取的bundle标识符,调用Bundle.start方法启动相应的bundle文件。
步骤311、根据上述待配置的安全策略的名称,从上述云端服务器查找并下载与上述待配置的安全策略对应的bundle文件;
本发明实施例中,由于云端服务器中存储着多个预设的与安全策略对应的bundle文件,因此,终端根据上述待配置的安全策略的名称,即从上述云端服务器查找并下载相应的bundle文件,之后,终端针对当前下载的bundle文件,返回执行步骤303~306,以此完成对当前下载的bundle文件对应的安全策略的配置。
需要说明的是,本发明实施例中的终端包括但不限于搭载SEAndroid系统的手机、平板电脑、掌上电脑等。
由上可见,本发明预先在云端服务器存储两个以上与安全策略对应的bundle文件,在SEAndroid系统启动时,从云端服务器下载与默认的安全策略对应的bundle文件并利用Android系统中的OSGI框架服务对下载的bundle文件进行安装和启动,以此实现对默认的安全策略的配置。本发明不需要额外准备安全TF卡,也无需在每次配置安全策略时将TF卡插入SEAndroid系统中,因此,安全策略的配置过程更为便利。并且,本发明实施例还提供了安全策略动态更换的方案,用户只需输入相应的安全策略配置指令即可实现对安全策略配置指令的重配置,而不需要在每次重新配置安全策略时都进行繁琐地执行编译、存入TF卡、插入TF卡等动作,使得用户能够更为方便地对安全策略进行重配置。通过预设的数据库存储已配置的安全策略,对于已配置过的安全策略可以直接在本地进行安装,而无需再从云端服务器进行查询下载,使得安全策略的配置更为快捷。
实施例四
本发明实施例提供一种应用于SEAndroid系统的安全策略配置系统进行描述,请参阅图4,本发明实施例中的安全策略配置系统400包括:
OSGI框架上下文获取单元401,用于在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
下载单元402,用于从云端服务器下载与默认的安全策略对应的bundle文件,其中,上述云端服务器中存储有两个以上与安全策略对应的bundle文件,且每个与安全策略对应的bundle文件对应的安全策略各不相同,且其中一个bundle文件对应的安全策略为默认的安全策略;
安装单元403,用于基于OSGI框架上下文获取单元401获取的BundleContext,调用BundleContext.installBundle,方法安装当前下载的bundle文件;
第一获取单元404,用于获取当前安装的bundle文件的bundle标识符;
启动单元405,用于基于OSGI框架上下文获取单元401获取的BundleContext以及第一获取单元404当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。
可选的,本发明实施例中的安全策略配置系统还包括:
接收单元,用于接收输入的安全策略配置指令,其中,上述安全策略配置指令包含待配置的安全策略的名称;
比较单元,用于当上述接收单元接收到输入的安全策略配置指令时,比较上述待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称;
安全策略控制单元,用于当上述比较单元比较出上述待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称不同时,停止运行上述SEAndroid系统当前配置的安全策略;针对当前下载的bundle文件,依次触发下载单元402、安装单元403、第一获取单元404和启动单元405。
可选的,本发明实施例中的安全策略配置系统还包括:
存储单元,用于将当前安装的bundle文件的bundle标识符和当前安装的bundle文件对应的安全策略的名称绑定并存储至预设的数据库中;
查询单元,用于当上述待配置的安全策略的名称与上述SEAndroid系统当前配置的安全策略的名称不同时,查询上述数据库中是否存在上述待配置的安全策略的名称;
第一获取单元404,还用于当上述查询单元查询到上述数据库中存在上述待配置的安全策略的名称时,获取上述数据库中与上述待配置的安全策略的名称对应的bundle标识符,并触发启动单元405;
下载单元402在上述查询单元查询到上述数据库中不存在上述待配置的安全策略的名称时触发。
可选的,本发明实施例中的安全策略配置系统还包括:
第二获取单元,用于获取当前安装的bundle文件的符号名称和版本号;
上述存储单元,具体用于:将当前安装的bundle文件的bundle标识符、当前安装的bundle文件对应的安全策略的名称、当前安装的bundle文件的符号名称和版本号绑定存储至预设的数据库。
可选的,第一获取单元404具体用于:调用上述OSGI框架服务中的getBundleID方法获取当前安装的bundle文件的bundle标识符。
需要说明的是,本发明实施例中的安全策略配置系统集成在搭载SEAndroid系统的终端,该终端包括但不限于手机、平板电脑、掌上电脑等。
应理解,本发明实施例中的安全策略配置系统可以如上述方法实施例中提及的终端,可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。
由上可见,本发明预先在云端服务器存储两个以上与安全策略对应的bundle文件,在SEAndroid系统启动时,从云端服务器下载与默认的安全策略对应的bundle文件并利用Android系统中的OSGI框架服务对下载的bundle文件进行安装和启动,以此实现对默认的安全策略的配置。本发明不需要额外准备安全TF卡,也无需在每次配置安全策略时将TF卡插入SEAndroid系统中,因此,安全策略的配置过程更为便利。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种应用于SEAndroid系统的安全策略配置方法及装置的描述,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种应用于SEAndroid系统的安全策略配置方法,其特征在于,包括:
在SEAndroid(安卓的增强安全)系统启动时,获取OSGI(开放服务网关协议)框架中的BundleContext;
从云端服务器下载与默认的安全策略对应的bundle文件,其中,所述云端服务器中存储有两个以上所述bundle文件,且每个所述bundle文件对应的安全策略各不相同,且其中一个所述bundle文件对应的安全策略为默认的安全策略;
基于所述BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件;
获取当前安装的bundle文件的bundle标识符;
基于所述BundleContext以及当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。
2.根据权利要求1所述的安全策略配置方法,其特征在于,所述调用Bundle.start方法启动当前安装的bundle文件之后还包括:
若接收到输入的安全策略配置指令,则比较所述安全策略配置指令包含的待配置的安全策略的名称与所述SEAndroid系统当前配置的安全策略的名称;
若所述待配置的安全策略的名称与所述SEAndroid系统当前配置的安全策略的名称不同,则:
停止运行所述SEAndroid系统当前配置的安全策略;
根据所述待配置的安全策略的名称,从所述云端服务器查找并下载与所述待配置的安全策略对应的bundle文件;
针对当前下载的bundle文件,执行所述基于所述BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件的步骤、所述获取当前安装的bundle文件的bundle标识符的步骤、以及所述基于所述BundleContext以及当前获取的bundle标识符,调用Bundle.start方法启动当前安装的bundle文件的步骤。
3.根据权利要求2所述的安全策略配置方法,其特征在于,所述获取当前安装的bundle文件的bundle标识符,之后还包括:
将当前安装的bundle文件的bundle标识符和当前安装的bundle文件对应的安全策略的名称绑定并存储至预设的数据库中;
所述根据所述待配置的安全策略的名称,从所述云端服务器查找并下载与所述待配置的安全策略对应的bundle文件,之前包括:
查询所述数据库中是否存在所述待配置的安全策略的名称;
当所述数据库中存在所述待配置的安全策略的名称时,获取所述数据库中与所述待配置的安全策略的名称对应的bundle标识符,并基于所述BundleContext以及当前获取的bundle标识符,调用Bundle.start方法启动相应的bundle文件;
当所述数据库中不存在所述待配置的安全策略的名称时,执行所述根据所述待配置的安全策略的名称,从所述云端服务器查找并下载与所述待配置的安全策略对应的bundle文件的步骤以及后续步骤。
4.根据权利要求3所述的方法,其特征在于,所述将当前安装的bundle文件的bundle标识符和当前安装的所述bundle文件对应的安全策略的名称绑定存储至预设的数据库中,之前包括:
获取当前安装的bundle文件的符号名称和版本号;
对应的,所述将当前安装的bundle文件的bundle标识符和当前安装的所述bundle文件对应的安全策略的名称绑定存储至预设的数据库,具体为:
将当前安装的bundle文件的bundle标识符、当前安装的bundle文件对应的安全策略的名称、当前安装的bundle文件的符号名称和版本号绑定存储至预设的数据库。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述获取当前安装的bundle文件的bundle标识符,具体为:
调用所述OSGI框架服务中的getBundleID方法获取当前安装的bundle文件的bundle标识符。
6.一种应用于SEAndroid系统的安全策略配置系统,其特征在于,包括:
OSGI框架上下文获取单元,用于在SEAndroid系统启动时,获取OSGI框架中的BundleContext;
下载单元,用于从云端服务器下载与默认的安全策略对应的bundle文件,其中,所述云端服务器中存储有两个以上所述bundle文件,且每个所述bundle文件对应的安全策略各不相同,且其中一个所述bundle文件对应的安全策略为默认的安全策略;
安装单元,用于基于所述OSGI框架上下文获取单元获取的BundleContext,调用BundleContext.installBundle方法安装当前下载的bundle文件;
第一获取单元,用于获取当前安装的bundle文件的bundle标识符;
启动单元,用于基于所述OSGI框架上下文获取单元获取的BundleContext以及所述第一获取单元当前获取的bundle标识符,调用BundleContext.start方法启动当前安装的bundle文件。
7.根据权利要求6所述的安全策略配置系统,其特征在于,所述安全策略配置系统还包括:
接收单元,用于接收输入的安全策略配置指令,其中,所述安全策略配置指令包含待配置的安全策略的名称;
比较单元,用于当所述接收单元接收到输入的安全策略配置指令时,比较所述待配置的安全策略的名称与所述SEAndroid系统当前配置的安全策略的名称;
安全策略控制单元,用于当所述比较单元比较出所述待配置的安全策略的名称与所述SEAndroid系统当前配置的安全策略的名称不同时,停止运行所述SEAndroid系统当前配置的安全策略;针对当前下载的bundle文件,依次触发所述下载单元、所述安装单元、所述第一获取单元和所述启动单元。
8.根据权利要求7所述的安全策略配置系统,其特征在于,所述安全策略配置系统还包括:
存储单元,用于将当前安装的bundle文件的bundle标识符和当前安装的bundle文件对应的安全策略的名称绑定并存储至预设的数据库中;
查询单元,用于当所述待配置的安全策略的名称与所述SEAndroid系统当前配置的安全策略的名称不同时,查询所述数据库中是否存在所述待配置的安全策略的名称;
所述第一获取单元,还用于当所述查询单元查询到所述数据库中存在所述待配置的安全策略的名称时,获取所述数据库中与所述待配置的安全策略的名称对应的bundle标识符,并触发所述启动单元;
所述下载单元在所述查询单元查询到所述数据库中不存在所述待配置的安全策略的名称时触发。
9.根据权利要求8所述的安全策略配置系统,其特征在于,所述安全策略配置系统还包括:
第二获取单元,用于获取当前安装的bundle文件的符号名称和版本号;
所述存储单元,具体用于:将当前安装的bundle文件的bundle标识符、当前安装的bundle文件对应的安全策略的名称、当前安装的bundle文件的符号名称和版本号绑定存储至预设的数据库。
10.根据权利要求6至9任一项所述的安全策略配置系统,其特征在于,所述第一获取单元具体用于:调用所述OSGI框架服务中的getBundleID方法获取当前安装的bundle文件的bundle标识符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510938081.4A CN105516154B (zh) | 2015-12-15 | 2015-12-15 | 应用于SEAndroid系统的安全策略配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510938081.4A CN105516154B (zh) | 2015-12-15 | 2015-12-15 | 应用于SEAndroid系统的安全策略配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516154A true CN105516154A (zh) | 2016-04-20 |
CN105516154B CN105516154B (zh) | 2019-09-17 |
Family
ID=55723790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510938081.4A Active CN105516154B (zh) | 2015-12-15 | 2015-12-15 | 应用于SEAndroid系统的安全策略配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516154B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020912A (zh) * | 2016-06-02 | 2016-10-12 | 北京元心科技有限公司 | 基于云的SELinux策略加载方法、装置、终端设备及系统 |
CN106372503A (zh) * | 2016-09-07 | 2017-02-01 | 深圳市新国都支付技术有限公司 | 增强apk应用权限配置灵活性的方法、装置和系统 |
CN106502754A (zh) * | 2016-11-25 | 2017-03-15 | Tcl集团股份有限公司 | Activity组件加载方法及装置 |
WO2018010366A1 (zh) * | 2016-07-14 | 2018-01-18 | 中兴通讯股份有限公司 | 信息同步方法及装置 |
CN109508550A (zh) * | 2018-10-22 | 2019-03-22 | 南瑞集团有限公司 | 基于SEAndroid的用户隐私保护方法及系统 |
CN110909362A (zh) * | 2019-11-12 | 2020-03-24 | 中国科学院微电子研究所 | 系统检测方法、装置、电子设备及存储介质 |
CN112861118A (zh) * | 2021-04-26 | 2021-05-28 | 湖北亿咖通科技有限公司 | 双系统的容器间安全策略隔离方法、电子设备及存储介质 |
WO2021159819A1 (zh) * | 2020-02-13 | 2021-08-19 | 支付宝(杭州)信息技术有限公司 | 机器学习模型保护方法和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102917346A (zh) * | 2012-10-17 | 2013-02-06 | 浙江大学城市学院 | 一种基于Android的应用程序运行时安全策略管理系统及方法 |
US20130332981A1 (en) * | 2012-06-08 | 2013-12-12 | Eric Paris | Method and system for extending selinux policy with enforcement of file name translations |
CN103905449A (zh) * | 2014-04-03 | 2014-07-02 | 国家电网公司 | 一种增强SEAndroid系统安全策略配置灵活性的方法 |
-
2015
- 2015-12-15 CN CN201510938081.4A patent/CN105516154B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332981A1 (en) * | 2012-06-08 | 2013-12-12 | Eric Paris | Method and system for extending selinux policy with enforcement of file name translations |
CN102917346A (zh) * | 2012-10-17 | 2013-02-06 | 浙江大学城市学院 | 一种基于Android的应用程序运行时安全策略管理系统及方法 |
CN103905449A (zh) * | 2014-04-03 | 2014-07-02 | 国家电网公司 | 一种增强SEAndroid系统安全策略配置灵活性的方法 |
Non-Patent Citations (1)
Title |
---|
梁洪亮 等: ""Android平台环境自适应安全机制"", 《清华大学学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020912A (zh) * | 2016-06-02 | 2016-10-12 | 北京元心科技有限公司 | 基于云的SELinux策略加载方法、装置、终端设备及系统 |
WO2018010366A1 (zh) * | 2016-07-14 | 2018-01-18 | 中兴通讯股份有限公司 | 信息同步方法及装置 |
CN106372503A (zh) * | 2016-09-07 | 2017-02-01 | 深圳市新国都支付技术有限公司 | 增强apk应用权限配置灵活性的方法、装置和系统 |
CN106502754A (zh) * | 2016-11-25 | 2017-03-15 | Tcl集团股份有限公司 | Activity组件加载方法及装置 |
CN106502754B (zh) * | 2016-11-25 | 2021-06-01 | Tcl科技集团股份有限公司 | Activity组件加载方法及装置 |
CN109508550A (zh) * | 2018-10-22 | 2019-03-22 | 南瑞集团有限公司 | 基于SEAndroid的用户隐私保护方法及系统 |
CN110909362A (zh) * | 2019-11-12 | 2020-03-24 | 中国科学院微电子研究所 | 系统检测方法、装置、电子设备及存储介质 |
CN110909362B (zh) * | 2019-11-12 | 2022-04-29 | 中国科学院微电子研究所 | 系统检测方法、装置、电子设备及存储介质 |
WO2021159819A1 (zh) * | 2020-02-13 | 2021-08-19 | 支付宝(杭州)信息技术有限公司 | 机器学习模型保护方法和设备 |
CN112861118A (zh) * | 2021-04-26 | 2021-05-28 | 湖北亿咖通科技有限公司 | 双系统的容器间安全策略隔离方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105516154B (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105516154A (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
CN105657191B (zh) | 一种基于Android系统的应用增量升级方法及系统 | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
CN101470621B (zh) | 虚拟机配置系统 | |
CN110058863A (zh) | Docker容器的构建方法、装置、设备及存储介质 | |
KR100903999B1 (ko) | Sdr 단말용 코아 프레임워크에서 데이터베이스를 이용한도메인 프로파일의 운용 시스템 및 방법 | |
CN104750528B (zh) | 一种Android程序中的组件管理方法和装置 | |
CN105100191A (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
CN110727440B (zh) | 一种软件封装方法 | |
CN110463162B (zh) | 应用部署方法、装置及系统 | |
CN102422266A (zh) | 构建和更新运行时刻环境的系统和方法 | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
CN104750555A (zh) | 一种Android程序中的进程管理方法和装置 | |
CN105373406B (zh) | 基于Android平台的应用布局动态切换方法及系统 | |
CN104699537A (zh) | 程序控制方法与活动组件调度方法及其相应的装置 | |
CN105159788A (zh) | 一种Android应用间动态共享资源的方法及系统 | |
CN105468427A (zh) | 一种自动编译和发布的实现方法及系统 | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
CN109871241A (zh) | 一种跨环境应用服务器的配置方法 | |
CN106569863B (zh) | 基于资源和代码模块化的安卓app资源更新和修复的方法 | |
CN106502685B (zh) | 一种数据库的升级方法及系统 | |
CN105592086A (zh) | 一种针对Android平台管理防火墙的方法及装置 | |
Hall | A policy-driven class loader to support deployment in extensible frameworks | |
CN113821220A (zh) | 一种linux操作系统的安装方法和装置 | |
CN103677933A (zh) | 一种为智能卡打补丁的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |