一种系统安全启动方法技术方案

技术编号:39830940 阅读:13 留言:0更新日期:2023-12-29 16:12
本发明专利技术涉及系统安全技术领域,公开了一种系统安全启动方法

【技术实现步骤摘要】
一种系统安全启动方法、电子设备及存储介质


[0001]本专利技术涉及系统安全
,尤其涉及一种系统安全启动方法

电子设备及存储介质


技术介绍

[0002]日常生活中越来越多的用到智能设备,例如手机

电视

汽车

乃至家用电器等

智能设备系统的安全涉及到用户个人信息

财产

隐私等,因此,智能设备的系统安全至关重要

[0003]目前,大多研发人员更多关注系统本身的安全,通过构建防火墙

增加安全模块等方法增加系统的安全性

在系统启动过程中,一般会先对系统文件进行验证,然而,恶意篡改的方式越来越多,简单的系统文件验证已经不足以保证系统的安全性

[0004]因此,亟需一种系统安全启动方法,在系统启动过程中保证系统模块的完整性,提高系统的安全性,避免系统被恶意篡改导致客户信息泄露及财产损失


技术实现思路

[0005]为了解决上述技术问题,本专利技术提供了一种系统安全启动方法

电子设备及存储介质,能够在系统启动过程中保证系统模块的完整性,提高系统的安全性,避免系统被恶意篡改导致客户信息泄露及财产损失

[0006]本专利技术提供了一种系统安全启动方法,包括如下步骤:
S1、CPU
通电,装载启动装载程序的入口,启动装载程序初始化
CPU
内部的模块;
S2、CPU
读取一次性可编程存储器显示的数据信息,当数据信息显示系统的当前运行模式为生产模式时,
CPU
根据需要选择验证模式或检测模式进行系统安全启动;
S3、
若选择验证模式,则
CPU
通过分别进行
UBOOT、Linux
内核和内核模块的数字签名认证进行系统安全启动;
S4、
若选择检测模式,则
CPU
通过
TPM
芯片的密钥分别对
UBOOT、Linux
内核和内核模块进行解密,并且分别进行
UBOOT、Linux
内核和内核模块的数字签名认证进行系统安全启动

[0007]进一步的,步骤
S3
,若选择验证模式,则
CPU
通过分别进行
UBOOT、Linux
内核和内核模块的数字签名认证进行系统安全启动包括:
S301、CPU
开启安全启动功能,把安全启动密钥加载到安全引擎的密钥槽当中;
S302、CPU

eMMC
上加载
UBOOT
,获取
UBOOT
的数字签名和公钥证书;
S303、
启动装载程序验证
UBOOT
的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值是否相同;若
UBOOT
的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值相同,则证明
UBOOT

OEM
正式发布的,没有受到过篡改,执行步骤
S304
;若
UBOOT
的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程;
S304、
启动装载程序跳转到
UBOOT
,引导
Linux
内核启动;
S305、Linux
内核启动后,
CPU
获取
Linux
内核驱动程序的数字签名,启动装载程序验证
Linux
内核的数字签名的根证书的
Hash
值与一次性可编程存储器中的
Signing Key

Hash
值是否相同;若
Linux
内核的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值相同,执行步骤
S306
;若
Linux
内核的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程;
S306、CPU
获取待启动内核模块的数字签名,启动装载程序验证待启动内核模块的数字签名的根证书的
Hash
值与一次性可编程存储器中的
Signing Key

Hash
值是否相同;若待启动内核模块的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值相同,则将启动控制权交给待启动内核模块,待启动内核模块开始启动;若待启动内核模块的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程

[0008]进一步的,在步骤
S306
之后,还包括:
S307、
当待启动内核模块开始启动,同时
CPU
获取下一个待启动内核模块的数字签名,启动装载程序验证下一个待启动内核模块的数字签名的根证书的
Hash
值与一次性可编程存储器中的
Signing Key

Hash
是否相同;若下一个待启动内核模块的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值相同,则在当前正在启动的内核模块启动完毕后,将启动控制权交给下一个待启动内核模块,下一个待启动内核模块开始启动;若下一个待启动内核模块的数字签名的根证书的
Hash
值和一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程;
S308、
重复执行步骤
S307
,直至
Linux
系统中的所有内核模块均启动完毕或者系统安全启动过程中断为止

[0009]进一步的,根据程序编号
...

【技术保护点】

【技术特征摘要】
1.
一种系统安全启动方法,其特征在于,包括如下步骤:
S1、CPU
通电,装载启动装载程序的入口,所述启动装载程序初始化所述
CPU
内部的模块;
S2、
所述
CPU
读取一次性可编程存储器显示的数据信息,当所述数据信息显示所述系统的当前运行模式为生产模式时,所述
CPU
根据需要选择验证模式或检测模式进行系统安全启动;
S3、
若选择所述验证模式,则所述
CPU
通过分别进行
UBOOT、Linux
内核和内核模块的数字签名认证进行系统安全启动;
S4、
若选择所述检测模式,则所述
CPU
通过
TPM
芯片的密钥分别对所述
UBOOT、
所述
Linux
内核和所述内核模块进行解密,并且分别进行所述
UBOOT、
所述
Linux
内核和所述内核模块的数字签名认证进行系统安全启动
。2.
根据权利要求1所述的一种系统安全启动方法,其特征在于,所述步骤
S3
,所述若选择所述验证模式,则所述
CPU
通过分别进行
UBOOT、Linux
内核和内核模块的数字签名认证进行系统安全启动包括:
S301、
所述
CPU
开启安全启动功能,把安全启动密钥加载到安全引擎的密钥槽当中;
S302、
所述
CPU

eMMC
上加载所述
UBOOT
,获取所述
UBOOT
的数字签名和公钥证书;
S303、
所述启动装载程序验证所述
UBOOT
的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值是否相同;若所述
UBOOT
的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值相同,则证明所述
UBOOT

OEM
正式发布的,没有受到过篡改,执行步骤
S304
;若所述
UBOOT
的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程;
S304、
所述启动装载程序跳转到所述
UBOOT
,引导所述
Linux
内核启动;
S305、
所述
Linux
内核启动后,所述
CPU
获取所述
Linux
内核驱动程序的数字签名,所述启动装载程序验证所述
Linux
内核的数字签名的根证书的
Hash
值与所述一次性可编程存储器中的
Signing Key

Hash
值是否相同;若所述
Linux
内核的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值相同,执行步骤
S306
;若所述
Linux
内核的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程;
S306、
所述
CPU
获取待启动内核模块的数字签名,所述启动装载程序验证所述待启动内核模块的数字签名的根证书的
Hash
值与所述一次性可编程存储器中的
Signing Key

Hash
值是否相同;若所述待启动内核模块的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值相同,则将启动控制权交给所述待启动内核模块,所述待启动内核模块开始启动;若所述待启动内核模块的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程
。3.
根据权利要求2所述的一种系统安全启动方法,其特征在于,在步骤
S306
之后,还包括:
S307、
当所述待启动内核模块开始启动,同时所述
CPU
获取下一个待启动内核模块的数字签名,所述启动装载程序验证所述下一个待启动内核模块的数字签名的根证书的
Hash
值与所述一次性可编程存储器中的 Signing Key

Hash
是否相同;若所述下一个待启动内核
模块的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值相同,则在当前正在启动的内核模块启动完毕后,将启动控制权交给所述下一个待启动内核模块,所述下一个待启动内核模块开始启动;若所述下一个待启动内核模块的数字签名的根证书的
Hash
值和所述一次性可编程存储器中的
Signing Key

Hash
值不同,则中断系统安全启动过程;
S308、
重复执行步骤
S307
,直至
Linux
系统中的所有内核模块均启动完毕或者系统安全启动过程中断为止
。4.
根据权利要求3所述的一种系统安全启动方法,其特征在于,根据程序编号

程序的版本编号以及密钥生成所述
UBOOT、
所述
Linux
内核和所述内核模块的数字签名
。5.
根据权利要求1所述的一种系统安全启动方法,其特征在于,所述步骤
S4
,所述若选择所述检测模式,则所述
CPU
通过
TPM
芯片的密钥分别对所述
UBOOT、
所述
Linux
内核和所述内核模块进行解密,并且分别进行所述
UBOOT、
所述
Linux
内核和所述内...

【专利技术属性】
技术研发人员:刘天宇张亚楠马超贾先锋武智种统洪
申请(专利权)人:中汽智联技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1