CN111209572B - 一种基于加解密的Linux系统安全启动方法及系统 - Google Patents

一种基于加解密的Linux系统安全启动方法及系统 Download PDF

Info

Publication number
CN111209572B
CN111209572B CN202010015608.7A CN202010015608A CN111209572B CN 111209572 B CN111209572 B CN 111209572B CN 202010015608 A CN202010015608 A CN 202010015608A CN 111209572 B CN111209572 B CN 111209572B
Authority
CN
China
Prior art keywords
decryption
partition
program
file system
encryption
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.)
Active
Application number
CN202010015608.7A
Other languages
English (en)
Other versions
CN111209572A (zh
Inventor
程磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202010015608.7A priority Critical patent/CN111209572B/zh
Publication of CN111209572A publication Critical patent/CN111209572A/zh
Application granted granted Critical
Publication of CN111209572B publication Critical patent/CN111209572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种基于加解密的Linux系统安全启动方法,包括:打包加密步骤;及启动解密步骤。与现有技术相比,本申请具有如下有益效果:1.bootloader解密kernel,kernel解密文件系统的双重安全防护机制。2.kernel先挂载文件系统后只需解密核心业务程序,而不是先解密整个文件系统分区后再挂载。

Description

一种基于加解密的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(内核)是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (6)

1.一种基于加解密的Linux系统安全启动方法,其特征在于,包括:
打包加密步骤;及
启动解密步骤;
打包加密步骤包括:
S2:打包时,对kernel分区进行加密;
S4:对文件系统中的核心业务程序进行加密,文件系统中的其他部分则不做加密;
步骤S2及步骤S4包括:
存储bootloader及解密程序至bootloader分区;
存储Linux内核及rootfs和与所述解密程序对应的加密程序至加密后的kernel分区;
存储核心业务程序及所述加密程序至加密后的核心业务程序;
存储加密后的核心业务程序及文件系统非核心部分至核心程序加密的文件系统分区;
启动解密步骤包括:
S6:系统启动时,bootloader解密并启动所述kernel分区,所述kernel分区里的rootfs挂载文件系统分区并将其中的核心程序解密到内存中执行,包括:
CPU加载并执行所述bootloader;
所述bootloader将所述kernel分区复制到内存解密并执行;
所述rootfs挂载文件系统分区并解密核心业务程序到内存执行。
2.根据权利要求1所述的基于加解密的Linux系统安全启动方法,其特征在于,所述文件系统的根基在flash中。
3.根据权利要求2所述的基于加解密的Linux系统安全启动方法,其特征在于,加密和解密为AES加密及AES解密。
4.一种基于加解密的Linux系统安全启动系统,其特征在于,包括:
加密模块,用于打包加密,包括:
S2:打包时,对kernel分区进行加密;
S4:对文件系统中的核心业务程序进行加密,文件系统中的其他部分则不做加密;
步骤S2及步骤S4包括:
存储bootloader及解密程序至bootloader分区;
存储Linux内核及rootfs和与所述解密程序对应的加密程序至加密后的kernel分区;
存储核心业务程序及所述加密程序至加密后的核心业务程序;
存储加密后的核心业务程序及文件系统非核心部分至核心程序加密的文件系统分区;及
解密模块,用于启动解密包括:
S6:系统启动时,bootloader解密并启动所述kernel分区,所述kernel分区里的rootfs挂载文件系统分区并将其中的核心程序解密到内存中执行,包括:
CPU加载并执行所述bootloader;
所述bootloader将所述kernel分区复制到内存解密并执行;
所述rootfs挂载文件系统分区并解密核心业务程序到内存执行。
5.一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3中任一项所述的基于加解密的Linux系统安全启动方法。
6.一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,其特征在于,所述计算机程序在由处理器执行时实现如权利要求1-3中任一项所述的基于加解密的Linux系统安全启动方法。
CN202010015608.7A 2020-01-07 2020-01-07 一种基于加解密的Linux系统安全启动方法及系统 Active CN111209572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010015608.7A CN111209572B (zh) 2020-01-07 2020-01-07 一种基于加解密的Linux系统安全启动方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010015608.7A CN111209572B (zh) 2020-01-07 2020-01-07 一种基于加解密的Linux系统安全启动方法及系统

Publications (2)

Publication Number Publication Date
CN111209572A CN111209572A (zh) 2020-05-29
CN111209572B true CN111209572B (zh) 2023-02-10

Family

ID=70788979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010015608.7A Active CN111209572B (zh) 2020-01-07 2020-01-07 一种基于加解密的Linux系统安全启动方法及系统

Country Status (1)

Country Link
CN (1) CN111209572B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342425A (zh) * 2021-08-06 2021-09-03 苏州浪潮智能科技有限公司 一种Linux嵌入式系统的启动方法、装置和存储介质
CN114356443A (zh) * 2021-12-23 2022-04-15 常州新途软件有限公司 基于仪表多分区的管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231115A (zh) * 2011-06-07 2011-11-02 深圳市九洲电器有限公司 一种机顶盒安全启动的方法及系统
CN103294969A (zh) * 2013-06-21 2013-09-11 福建伊时代信息科技股份有限公司 文件系统挂载方法和装置
CN106126241A (zh) * 2016-06-29 2016-11-16 上海友衷科技有限公司 一种Linux系统启动方法及系统
CN108614718A (zh) * 2018-04-25 2018-10-02 紫光华山信息技术有限公司 启动操作系统的方法、装置和实现装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770386B (zh) * 2010-03-08 2013-06-19 飞天诚信科技股份有限公司 一种Linux嵌入式系统的安全启动方法
DE102017106042A1 (de) * 2016-12-22 2018-06-28 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum abgesicherten Hochfahren eines Computersystems, sowie Anordnung, umfassend ein Computersystem und ein an das Computersystem angeschlossenes externes Speichermedium
CN108491229A (zh) * 2018-02-01 2018-09-04 烽火通信科技股份有限公司 一种Femtocell设备安全启动的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231115A (zh) * 2011-06-07 2011-11-02 深圳市九洲电器有限公司 一种机顶盒安全启动的方法及系统
CN103294969A (zh) * 2013-06-21 2013-09-11 福建伊时代信息科技股份有限公司 文件系统挂载方法和装置
CN106126241A (zh) * 2016-06-29 2016-11-16 上海友衷科技有限公司 一种Linux系统启动方法及系统
CN108614718A (zh) * 2018-04-25 2018-10-02 紫光华山信息技术有限公司 启动操作系统的方法、装置和实现装置

Also Published As

Publication number Publication date
CN111209572A (zh) 2020-05-29

Similar Documents

Publication Publication Date Title
US20210240637A1 (en) Methods, apparatus, and systems for secure demand paging and paging operations for processor devices
US9535712B2 (en) System and method to store data securely for firmware using read-protected storage
CN102163266A (zh) 在主机服务器之间安全地移动虚拟机
US20160275019A1 (en) Method and apparatus for protecting dynamic libraries
CN111552931A (zh) java代码的加壳方法与系统
US20160026799A1 (en) Security device having indirect access to external non-volatile memory
CN100447736C (zh) 包括固件接口运行时环境保护字段的设备和方法
US9594915B2 (en) Information processing apparatus
US9563773B2 (en) Systems and methods for securing BIOS variables
US11379588B2 (en) System validation by hardware root of trust (HRoT) device and system management mode (SMM)
JP5945313B2 (ja) 構造体を生成する方法および対応する構造体
US9256756B2 (en) Method of encryption and decryption for shared library in open operating system
CN111209572B (zh) 一种基于加解密的Linux系统安全启动方法及系统
CN112384914A (zh) 使用虚拟安全模式保护人工智能模型
US9779245B2 (en) System, method, and device having an encrypted operating system
US8972745B2 (en) Secure data handling in a computer system
CN107025388A (zh) 一种基于tpm芯片实现系统盘与机器绑定的方法
US9507955B2 (en) System and method for executing code securely in general purpose computer
WO2022019910A1 (en) Read protection for uefi variables
US20220198020A1 (en) Encrypting table signatures
Kushwaha A trusted bootstrapping scheme using USB key based on UEFI
US9405909B2 (en) Non-transitory computer-readable recording medium and information processing apparatus including shared library that prevents unauthorized use
US20240214200A1 (en) Methods for accelerating prime number generation in electronic devices
CN114281366A (zh) 软件静默卸载装置、方法、计算设备及存储介质
CN115756314A (zh) Nvram数据处理方法、电子设备和可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant