一种基于加解密的Linux系统安全启动方法及系统与流程

文档序号:20919017发布日期:2020-05-29 13:54阅读:518来源:国知局
一种基于加解密的Linux系统安全启动方法及系统与流程

本申请涉及信息安全领域,具体而言,涉及一种基于加解密的linux系统安全启动方法。



背景技术:

如图1所示,现有技术中心,嵌入式linux系统整个分区中的数据都是未加密的。bootloader为引导分区,kernel为linux内核+rootfs分区,文件系统分区主要用于存放产品核心业务程序。

这种方式的缺点是显而易见的:

1.kernel分区容易被copy出来进行反编译,替换,甚至盗用。

2.文件系统分区中的核心业务逻辑为二进制或脚本程序,若将分区copy出来进行反编译分析,很容易发现程序中的执行逻辑,甚至敏感字符串等信息。存在较大的安全隐患。



技术实现要素:

本申请的主要目的在于提供一种基于加解密的linux系统安全启动方法,包括:

打包加密步骤;及

启动解密步骤。

可选地,打包加密步骤包括:

s2:打包时,对kernel分区进行加密;

s4:对文件系统中的核心业务程序进行加密;

启动解密步骤包括:

s6:系统启动时,bootloader解密并启动所述kernel分区,所述kernel分区里的rootfs挂载文件系统分区并将其中的核心程序解密到内存中执行。

可选地,步骤s2及步骤s4包括:

存储bootloader及解密程序至bootloader分区;

存储linux内核及rootfs和与所述解密程序对应的加密程序至加密后的kernel分区;

存储核心业务程序及所述加密程序至加密后的核心业务程序;

存储加密后的核心业务程序及文件系统非核心部分至核心程序加密的文件系统分区。

可选地,步骤s6包括:

cpu加载并执行所述bootloader;

所述bootloader将所述kernel分区复制到内存解密并执行;

所述roofs挂载文件系统分区并解密核心业务程序到内存执行。

可选地,所述文件系统的根基在flash中。

可选地,加密和解密为aes加密及aes解密。

根据本申请的另一方面还提供了一种基于加解密的linux系统安全启动系统,包括:

加密模块,用于打包加密;及

解密模块,用于启动解密。

本申请还公开了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的基于加解密的linux系统安全启动方法。

本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的基于加解密的linux系统安全启动方法。

本申请还公开了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的基于加解密的linux系统安全启动方法。

与现有技术相比,本申请具有如下有益效果:

1.bootloader解密kernel,kernel解密文件系统的双重安全防护机制。

2.kernel先挂载文件系统后只需解密核心业务程序,而不是先解密整个文件系统分区后再挂载。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和有益效果变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是现有技术中,linux系统启动方法的示意图。

图2是根据本申请一个实施例的基于加解密的linux系统安全启动方法的流程示意图;

图3是根据本申请一个实施例的基于加解密的linux系统安全启动方法的流程示意图;

图4是根据本申请一个实施例的基于加解密的linux系统安全启动方法的流程示意图;

图5是根据本申请一个实施例的计算机设备的示意图;以及

图6是根据本申请一个实施例的计算机可读存储介质的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

本申请一实施例提供了一种基于加解密的linux系统安全启动方法,包括:

打包加密步骤;及

启动解密步骤。

请参照图2-3,本申请一实施例中,打包加密步骤包括:

s2:打包时,对kernel分区进行加密;

s4:对文件系统中的核心业务程序进行加密;

启动解密步骤包括:

s6:系统启动时,bootloader解密并启动所述kernel分区,所述kernel分区里的rootfs挂载文件系统分区并将其中的核心程序解密到内存中执行。

本申请一实施例中,步骤s2及步骤s4包括:

存储bootloader及解密程序至bootloader分区;

存储linux内核及rootfs和与所述解密程序对应的加密程序至加密后的kernel分区;

存储核心业务程序及所述加密程序至加密后的核心业务程序;

存储加密后的核心业务程序及文件系统非核心部分至核心程序加密的文件系统分区。

如图4所示,本申请一实施例中,步骤s6包括:

cpu加载并执行所述bootloader;

所述bootloader将所述kernel分区复制到内存解密并执行;

所述roofs挂载文件系统分区并解密核心业务程序到内存执行。

例如,打包时,一方面对kernel进行加密。另一方面只针对文件系统中的核心业务程序进行加密,文件系统中的其他部分则不做加密。系统启动时,bootloader解密并启动kernel,kernel分区里的rootfs挂载文件系统分区并负责将其中的核心程序解密到内存中去执行。

本申请一实施例中,所述文件系统的根基在flash中。

本申请一实施例中,加密和解密为aes加密及aes解密。然而并不一次为限,本领域技术人员可以根据实际情况使用任何已知的加密解密方法,均属于本申请所要求保护的范围之内。

例如,打包时,一方面对kernel进行aes加密。另一方面只针对文件系统中的核心业务程序进行aes加密,文件系统中的其他部分则不做aes加密。系统启动时,bootloaderaes解密并启动kernel,kernel分区里的rootfs挂载文件系统分区并负责将其中的核心程序解密到内存中去执行。

本申请还提供了一种基于加解密的linux系统安全启动系统,包括:

加密模块,用于打包加密;及

解密模块,用于启动解密。

在本申请一实施例中,基于加解密的linux系统安全启动系统中,加密模块在打包时,对kernel分区进行加密;所述加密模块对文件系统中的核心业务程序进行加密;所述解密模块在系统启动时,bootloader解密并启动所述kernel分区,所述kernel分区里的rootfs挂载文件系统分区并将其中的核心程序解密到内存中执行。

本申请一实施例中,所述加密模块存储bootloader及解密程序至bootloader分区;存储linux内核及rootfs和与所述解密程序对应的加密程序至加密后的kernel分区;存储核心业务程序及所述加密程序至加密后的核心业务程序;存储加密后的核心业务程序及文件系统非核心部分至核心程序加密的文件系统分区。

在本申请一实施例中,所述解密模块用于cpu加载并执行所述bootloader;所述bootloader将所述kernel分区复制到内存解密并执行;所述roofs挂载文件系统分区并解密核心业务程序到内存执行。

上述技术方案描述了本申请嵌入式linux系统的启动过程。最后一步是先挂载文件系统再去解密文件中的核心业务程序,这个文件系统的根基仍然在flash上面而不是在内存中,好处是这个文件系统可以是可读写文件系统,可以用于存放系统运行过程中产生的数据,从而也间接节省了内存空间的占用率。由于只对部分数据进行解密,而不是整个文件系统,这也可以有效减少系统的启动时间。

与现有技术相比,本申请具有如下有益效果:

1.bootloader解密kernel,kernel解密文件系统的双重安全防护机制。

2.kernel先挂载文件系统后只需解密核心业务程序,而不是先解密整个文件系统分区后再挂载。

请参照图5,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的基于加解密的linux系统安全启动方法。

请参照图6,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的基于加解密的linux系统安全启动方法。

一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的基于加解密的linux系统安全启动方法。

本申请中出现的一些术语的解释:

bootloader:在嵌入式操作系统中,bootloader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像bios那样的固件程序(注,有的嵌入式cpu也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由bootloader来完成。

kernel(内核)是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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