首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 系统软件 / 操作系统 / 进程 / 基于Docker容器的移动端双系统实现系统及方法

基于Docker容器的移动端双系统实现系统及方法

阅读:458发布:2024-02-12

专利汇可以提供基于Docker容器的移动端双系统实现系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及基于Docker容器的移动端双系统实现系统及方法,所述系统包括相互连接的 内核 层及应用程序层,其中,应用程序层包括Docker模 块 以及Docker模块根据Docker创建的多个容器,所述内核层包括LSM模块,所述LSM模块用于对多个容器内的 进程 进行 访问 控制。本发明提供的基于Docker容器的移动端双系统实现系统及方法,可有效阻止Docker容器进程对宿主机中没有被隔离文件资源的访问,完善了Docker容器与宿主机之间的访问控制机制,可满足多元场景的实用性及移动端的安全性,同时又可以省去多个移动端切换使用的复杂性。,下面是基于Docker容器的移动端双系统实现系统及方法专利的具体信息内容。

1.一种基于Docker容器的移动端双系统实现系统,其特征在于:所述移动端双系统实现系统包括相互连接的内核层及应用程序层,其中,应用程序层包括Docker模以及Docker模块根据Docker创建的多个容器,所述内核层包括LSM模块,所述LSM模块分别与应用程序层内的各容器连接,用于对多个容器内的进程进行访问控制。
2.如权利要求1所述的基于Docker容器的移动端双系统实现系统,其特征在于,所述LSM模块包括:
系统调用模块,用于通过命名控制机制对容器中的进程进行定位,以判断内核层中的进程是否是对应的容器中的进程;
错误检查模块,与系统调用模块连接,用于对容器中的进程进行错误检查;
数字模拟转换器,与错误检查模块连接,用于转换容器中的进程文件的格式;
安全决策模块,与数字模拟转换器连接,用于判断容器中的进程文件是否是内核层的保护文件;
访问权限判断模块,与安全决策模块连接,用于根据安全决策模块的判断结果判断容器中的进程是否具有访问权限。
3.如权利要求2所述的基于Docker容器的移动端双系统实现系统,其特征在于:所述系统调用模块通过Open系统调用程序完成对容器中的进程的定位。
4.如权利要求2所述的基于Docker容器的移动端双系统实现系统,其特征在于:所述安全决策模块通过其内设置的钩子函数判断容器中的进程文件是否是内核层的保护文件。
5.如权利要求2所述的基于Docker容器的移动端双系统实现系统,其特征在于:所述LSM模块还包括错误信息返回模块,与安全决策模块连接,用于在容器中的进程文件不是内核层的保护文件的情况下,返回错误信息,并结束容器中的进程的系统调用。
6.如权利要求2所述的基于Docker容器的移动端双系统实现系统,其特征在于:在访问权限判断模块判断容器中的进程有访问权限的情况下,所述LSM模块允许对应的容器访问内核层的内核数据,在访问权限判断模块判断容器中的进程没有访问权限的情况下,所述LSM模块禁止对应的容器访问内核层的内核数据。
7.如权利要求1所述的基于Docker容器的移动端双系统实现系统,其特征在于:所述多个容器设为两个,一个用于面向日常生活场景,另一个用于面向包括支付、转账及保密在内的特殊要求场景。
8.如权利要求1所述的基于Docker容器的移动端双系统实现系统,其特征在于:所述内核层还包括输入设备驱动模块、输出设备驱动模块以及Binder驱动模块,各容器分别包括与输入设备驱动模块连接的输入模块,与输出设备驱动模块连接的输出模块以及与Binder驱动模块连接Binder模块,以实现各容器的程序输入、结果输出以及进程间驱动。
9.如权利要求1-8中任一项所述的基于Docker容器的移动端双系统实现系统,其特征在于:所述Docker模块通过从远程服务器下载操作系统的副本镜像到移动端上实现容器的创建。
10.一种基于Docker容器的移动端双系统实现方法,其特征在于,包括如下步骤:
S1:根据内核层操作系统的运行环境定制镜像,并将镜像上传到服务器仓库;
S2:根据移动端需要运行的系统下载对应的镜像;
S3:利用Docker技术下载镜像并生成容器;
S4:获取容器的第一个启动进程init的进程号,设置它的运行级别;
S5:启动内核层操作系统中的容器切换应用程序,应用程序获取当前操作系统的运行级别,并根据当前操作系统的init进程号完成framebuffer的切换。

说明书全文

基于Docker容器的移动端双系统实现系统及方法

技术领域

[0001] 本发明涉及计算机安全技术领域,具体涉及一种基于Docker容器的移动端双系统实现系统及方法。

背景技术

[0002] 随着科技平的发展,移动智能终端和移动互联网也得到了充分的进步,搭载主流移动操作系统(IOS、Android)的移动智能终端数量呈现爆炸式增长。其中,由于Android手机有着相对优势的性价比,在市场中占有很大的比重,与此同时,Android应用为了满足用户的需求也呈现出爆炸式增长的趋势。如今,很多的人士由于业务的需要,往往需要携带两部或者以上的手机来适应不同的场景,比如生活和工作相分离的场景,对于一些特殊的人群(保密人员、公务员)等就一定需要考虑到安全的问题。虽然Android原生系统从底层内核到上层app应用添加了多种安全措施,确保手机系统的安全性,但是还依然存在着安全问题,比如Linux内核的攻击,对上层app应用的攻击。随着恶意程序的增多,用户的隐私及数据会受到很大的威胁。
[0003] 虚拟化技术是对系统硬件资源进行抽象化并进行管理,然后向上层提供统一的接口,加入虚拟化技术后,系统间的硬件的差异化就被透明化了,比如,当选择一种操作系统时就可以不用关心底层硬件的处理器指令集。虚拟化技术的引入,慢慢解决了系统中软硬件紧密耦合的关系,可以在同一个物理机上能够同时运行多个操作系统实例,使得系统能够充分利用硬件资源。
[0004] 目前,虚拟化技术解决方案可以在不同层次上实现,不同的实现方式和抽象层次对应的虚拟化有不同特性。按实现的技术不同,虚拟化可以分为指令级虚拟化、硬件级虚拟化、操作系统级虚拟化以及编程语言级虚拟化4种。
[0005] 指令级虚拟化是通过软件模拟出客户机操作系统运行所必需的物理硬件的方法,可以称采用这种虚拟技术的虚拟机模拟器,其基本原理就是将客户机运行所执行的指令与当前物理级的指令做映射。其优点就是其虚拟机层次结构简单,鲁棒性好,能够使操作系统运行在不同的平台上。缺点是效率低,实现过程复杂。
[0006] 硬件级虚拟化是指运行在硬件之上的虚拟化技术,其客户机操作系统运行的物理机硬件指令与真实的硬件的指令非常相似,因此,客户虚拟机运行时会使用本地的硬件资源,它的管理软件就是hypervisor或virtual machine monitor,它模拟出的是一个完整的操作系统,也就是常见的基于Hyper-V的虚拟化技术,VMware、Xen、VirtualBox、amason AWS及阿里使用的就是这种技术。硬件级虚拟化技术的优点是实现结构简单,运行效率高。但是,其缺点是其所虚拟的硬件体系平台有限,而且需要底层具体硬件支持,对于手机而言,由于其硬件资源有限,如果在物理机上虚拟出一个系统,反而会使其整体运行效率变低,达不到预期效果。
[0007] 操作系统级虚拟化不同于指令级虚拟化和硬件级虚拟化,操作系统级虚拟化不用创建出虚拟机,而是在一个操作系统上创建出可以供多个应用程序运行的独立环境。其本质就是共享同一个操作系统,操作系统之上的虚拟层按照每个虚拟机的需求为其生成一个运行在物理机器之上的操作系统副本,如果手机硬件资源足够的话,允许多个操作系统副本在一个操作系统镜像的控制下隔离并发运行。通过划分特定的权限,成为相互隔离的操作系统运行环境,供应用程序运行。

发明内容

[0008] 为解决现有技术的不足,满足多元场景的实用性及手机的安全性,同时又可以省去多个手机切换使用的复杂性,本发明提供了一种基于Docker容器的移动端双系统实现系统,所述移动端双系统实现系统包括相互连接的内核层及应用程序层,其中,应用程序层包括Docker模以及Docker模块根据Docker创建的多个容器,所述内核层包括LSM模块,所述LSM模块分别与应用程序层内的各容器连接,用于对多个容器内的进程进行访问控制。
[0009] 其中,所述LSM模块包括:
[0010] 系统调用模块,用于通过命名控制机制对容器中的进程进行定位,以判断内核层中的进程是否是对应的容器中的进程;
[0011] 错误检查模块,与系统调用模块连接,用于对容器中的进程进行错误检查;
[0012] 数字模拟转换器,与错误检查模块连接,用于转换容器中的进程文件的格式;
[0013] 安全决策模块,与数字模拟转换器连接,用于判断容器中的进程文件是否是内核层的保护文件;
[0014] 访问权限判断模块,与安全决策模块连接,用于根据安全决策模块的判断结果判断容器中的进程是否具有访问权限。
[0015] 其中,所述系统调用模块通过Open系统调用程序完成对容器中的进程的定位。
[0016] 其中,所述安全决策模块通过其内设置的钩子函数判断容器中的进程文件是否是内核层的保护文件。
[0017] 其中,所述LSM模块还包括错误信息返回模块,与安全决策模块连接,用于在容器的进程文件不是内核层的保护文件的情况下,返回错误信息,并结束容器中的进程的系统调用。
[0018] 其中,在访问权限判断模块判断容器中的进程有访问权限的情况下,所述LSM模块允许对应的容器访问内核层的内核数据,在访问权限判断模块判断容器中的进程没有访问权限的情况下,所述LSM模块禁止对应的容器访问内核层的内核数据。
[0019] 其中,所述多个容器设为两个,一个用于面向日常生活场景,另一个用于面向包括支付、转账及保密在内的特殊要求场景。
[0020] 其中,所述内核层还包括输入设备驱动模块、输出设备驱动模块以及Binder驱动模块,各容器分别包括与输入设备驱动模块连接的输入模块,与输出设备驱动模块连接的输出模块以及与Binder驱动模块连接Binder模块,以实现各容器的程序输入、结果输出以及进程间驱动。
[0021] 其中,所述Docker模块通过从远程服务器下载操作系统的副本镜像到移动端上实现容器的创建。
[0022] 本发明另外提供了一种基于Docker容器的移动端双系统实现方法,包括如下步骤:
[0023] S1:根据内核层操作系统的运行环境定制镜像,并将镜像上传到服务器仓库;
[0024] S2:根据移动端需要运行的系统下载对应的镜像;
[0025] S3:利用Docker技术下载镜像并生成容器;
[0026] S4:获取容器的第一个启动进程init的进程号,设置它的运行级别;
[0027] S5:启动内核层操作系统中的容器切换应用程序,应用程序获取当前操作系统的运行级别,并根据当前操作系统的init进程号完成framebuffer的切换。
[0028] Docker是开源的应用容器引擎,能够为任何应用创建一个轻量级、可移植的容器,此容器是完全使用沙箱机制,可以保证容器之间的隔离。Docker的核心是利用LXC基于kernel namespace操作系统级的隔离机制和cgroup的限额功能来实现类似VM的虚拟化,其中,pid、ipc、net、mnt、uts等namespace将container的进程、网络、消息、文件系统和hostname隔离开,从而保证容器的轻量及相互隔离。
[0029] 本发明中,所谓的“LSM”,是指Linux系统的安全模块。
[0030] 本发明提供的基于Docker容器的移动端双系统实现系统及方法,可有效阻止Docker容器进程对宿主机中没有被隔离文件资源的访问,完善了Docker容器与宿主机之间的访问控制机制,可满足多元场景的实用性及移动端的安全性,同时又可以省去多个移动端切换使用的复杂性。附图说明
[0031] 图1:本发明的基于Docker容器的移动端双系统实现系统结构框架示意图;
[0032] 图2:本发明的LSM模块的结构框架示意图;
[0033] 图3:本发明的Open系统调用流程图
[0034] 图4:本发明的基于Docker容器的移动端双系统实现方法的镜像制作及上传操作流程图;
[0035] 图5:本发明的基于Docker容器的移动端双系统实现方法的设置容器运行级别操作流程图;
[0036] 图6:本发明的基于Docker容器的移动端双系统实现方法的容器系统切换操作流程图。
[0037] 附图标记说明
[0038] 10   内核层
[0039] 11   LSM模块
[0040] 12   输入设备驱动模块
[0041] 13   输出设备驱动模块
[0042] 14   Binder驱动模块
[0043] 20   应用程序层
[0044] 21   Docker模块
[0045] 22   容器
[0046] 221  输入模块
[0047] 222  输出模块
[0048] 223  Binder模块
[0049] 111  系统调用模块
[0050] 112  错误检查模块
[0051] 113  数字模拟转换器
[0052] 114  安全决策模块
[0053] 115  访问权限判断模块
[0054] 116  错误信息返回模块

具体实施方式

[0055] 为了对本发明的技术方案及有益效果有更进一步的了解,下面配合附图详细说明本发明的技术方案及其产生的有益效果。
[0056] 图1为本发明的基于Docker容器的移动端双系统实现系统结构框架示意图;如图1所示,本发明供了一种基于Docker容器的移动端双系统实现系统,包括相互连接的内核层10及应用程序层20,其中,
[0057] 所述应用程序层20包括Docker模块21以及Docker模块21根据Docker创建的多个容器22,具体的,所述Docker模块21通过从远程服务器下载操作系统的副本镜像到移动端上实现容器22的创建;
[0058] 所述内核层10包括LSM模块11,所述LSM模块11分别与应用程序层20内的各容器22连接,用于对多个容器22内的进程进行访问控制。
[0059] 所述内核层10还包括输入设备驱动模块12、输出设备驱动模块13以及Binder驱动模块14,各容器22分别包括与输入设备驱动模块12连接的输入模块221,与输出设备驱动模块13连接的输出模块222以及与Binder驱动模块14连接的Binder模块223,以实现各容器22的程序输入、结果输出以及进程间驱动。
[0060] 具体实施时,所述容器22的数量可根据实际需要设置,通常设置为两个,一个用于面向日常生活场景,例如聊天、娱乐及通信等,另一个用于面向特殊要求场景,例如支付、转账及保密等。
[0061] 以安卓系统为例,本发明的核心技术方案在于:首先,通过Docker创建容器,此过程即是Docker模块从远程服务器下载操作系统的副本镜像到手机上,副本镜像可以根据实际的场景需要进行定制;其次,实现操作系统级的资源隔离,通过Docker的虚拟化技术,实现在一个物理机上运行多个安卓实例,保证多个系统都能安全地运行。
[0062] Docker通过命名空间机制(namespaces)和控制组机制(cgroup)来实现容器和安卓宿主机之间的资源隔离,这是其访问控制的基础。但在Linux系统中,不是所有的资源都有命名空间,容器中的进程可以访问未被隔离的内核资源,如sys、proc目录。
[0063] 为了避免未被隔离的内核资源被访问,需要对容器22中的进程进行访问控制。
[0064] 为了能够有效防止容器22中进程逃逸出容器22,本发明通过强制访问机制对容器22中的进程进行监控,从而控制容器22对宿主机内核资源的访问,图2为本发明的LSM模块的结构框架示意图,如图2所示,所述LSM模块11包括:
[0065] 系统调用模块111,用于通过命名控制机制对容器22中的进程进行定位,以判断内核层10中的进程是否是对应的容器22中的进程;
[0066] 错误检查模块112,与系统调用模块111连接,用于对容器22中的进程进行错误检查;
[0067] 数字模拟转换器113,与错误检查模块112连接,用于转换容器22中的进程文件的格式;
[0068] 安全决策模块114,与数字模拟转换器113连接,用于判断容器22中的进程文件是否是内核层10的保护文件,以实现对容器22进程的访问控制;
[0069] 访问权限判断模块115,与安全决策模块114连接,用于根据安全决策模块114的判断结果判断容器22中的进程是否具有访问权限(访问内核资源的权限);在容器22中的进程有访问权限的情况下,所述LSM模块11允许对应的容器22访问内核层10的内核数据,在容器22中的进程没有访问权限的情况下,所述LSM模块11禁止对应的容器22访问内核层10的内核数据;
[0070] 错误信息返回模块116,与安全决策模块114连接,用于在容器22的进程文件不是内核层10的保护文件的情况下,返回错误信息,并结束容器22中的进程的系统调用。
[0071] 其中,所述系统调用模块111通过Open系统调用程序完成对容器中的进程的定位。
[0072] 其中,所述安全决策模块114通过其内设置的安全钩子函数判断容器22中的进程文件是否是内核层10的保护文件,也即,安全钩子函数判断容器进程访问的文件是否是内核资源,然后判断容器进程是否有访问内核资源的权限。
[0073] 具体的,容器进程对宿主机内核资源的访问权限涉及容器进程对宿主机文件的打开以及读写操作等,为了保证容器进程不能访问宿主机文件资源,首先要阻止容器进程打开宿主机文件。
[0074] 图3为本发明的Open系统调用流程图,如图3所示:Open系统调用的功能就是打开文件,进程获得文件描述符fd及文件对象的信息struct file结构体,最后使两者关联起来。
[0075] 在open系统调用过程中,经过自主访问控制判断后,还需要security_inode_permission函数对应的钩子函数inode_permission对文件节点进行判断。在安全决策模块114中使用inode_permission钩子判断容器22中的进程文件是否是宿主机的保护文件。如果是保护文件,则返回错误信息,结束系统调用,否则正常执行系统调用。
[0076] 因此,本发明提供的LSM模块,可使用命名空间机制对容器22内的进程进行定位,在容器22的进程调用将访问宿主机内核没有被隔离的资源时,调用与之相对应的安全钩子函数,可有效阻止容器进程对宿主机中没有被隔离的文件资源的访问,完善了容器与宿主机之间的访问控制机制。
[0077] 图4-图6分别为本发明的基于Docker容器的移动端双系统实现方法的镜像制作及上传操作流程图、设置容器运行级别操作流程图以及容器系统切换操作流程图;如图4-图6所示,本发明另外提供了一种基于Docker容器的移动端双系统实现方法,包括如下步骤:
[0078] S1:根据内核层操作系统的运行环境定制镜像,并将镜像上传到服务器仓库;
[0079] S2:根据移动端需要运行的系统下载对应的镜像;
[0080] S3:利用Docker技术下载镜像并生成容器;
[0081] S4:获取容器的第一个启动进程init的进程号,设置它的运行级别;
[0082] S5:启动内核层操作系统中的容器切换应用程序,应用程序获取当前操作系统的运行级别,并根据当前操作系统的init进程号完成framebuffer的切换。
[0083] 同样以安卓系统为例,从本发明提供的基于Docker容器的移动端双系统实现方法的整个运行过程可以看出,基于Docker的安卓安全容器的实现主要完成三方面的工作:首先,由于Docker虚拟化技术主要是针对Linux操作系统的,要使其能够运行在安卓系统上,应该针对arm平台进行交叉编译并进行移植;然后,创建安全容器;其次,通过修改安卓内核来完成输入设备和显示输出设备的复用,其是多个多容器安卓系统能够交互运行的基础。
[0084] 综上,本发明所实现的双系统就是基于docker创建两个容器,其中一个是普通的安卓系统,面向平常的生活场景,另一个就是安全的安卓系统,面向一些有特殊要求的场景,比如支付、转账、保密等。
[0085] 本发明中,所谓的“Binder模式”,是指安卓系统进程间的通信方式。
[0086] 本发明中,所谓的“init”,是安卓系统内核启动的第一个用户级进程,它是后续所有进程的发起者,即所有其它进程的父进程
[0087] 本发明中,所谓的“framebuffer”,是指用一个视频输出设备从包含完整的数据的一个内存缓冲区中来驱动一个视频显示设备。
[0088] 本发明所能实现的有益效果是:
[0089] 1、实现了在同一个移动端上运行两个安卓操作系统,并可以实现两个安卓操作系统的切换和通信。
[0090] 2、可根据场景需要定制镜像,并上传到仓库服务器进行管理。
[0091] 3、通过命名控制机制定位容器进行所属系统,可防止容器内的进程逃逸。
[0092] 4、通过LSM模块的设置,可防止容器对未被隔离资源的访问。
[0093] 虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈