一种用于车载MCU的安全启动方法及装置与流程

文档序号:32416563发布日期:2022-12-02 22:18阅读:452来源:国知局
一种用于车载MCU的安全启动方法及装置与流程
一种用于车载mcu的安全启动方法及装置
技术领域
1.本发明属于信息安全技术领域,具体涉及汽车安全,尤其是一种用于车载mcu的安全启动方法及装置。


背景技术:

2.安全启动控制方法是指建立可信的启动流程,以不可变的序列启动系统,使用信任链机制和加密认证方法,来验证启动序列中涉及到的软件的来源的真实性,因此可防止任何未经授权或恶意修改的软件在设备上运行。
3.现有技术通常是基于芯片内核提供的安全机制构建可信执行环境,通过固化在bootrom中的引导程序实现固件的逐级验签,从而实现安全启动。
4.安全启动通常基于tee技术实现。tee(trusted execute environment),也就是可信执行环境;通过在处理器中设置一块安全区域,保证代码和数据的机密性和完整性;tee中的数据不会被非法访问;tee中的程序在隔离的环境中运行。
5.通过将其移植到支持trustzone的arm内核芯片,来保障软件来源的真实性,从而满足安全启动的要求。
6.中国专利“一种基于trustzone的系统可信启动方法”,申请公布号cn108287999a,申请公布日2018.07.17,公开本一种基于trustzone的系统可信启动方法,是基于具有支持trustzone技术的系统,系统的设备至少包括存储器,存储器至少包括处于安全域的rom和ram,和处于普通域的存储器c,包括如下步骤:s1:设备启动;s2:位于rom中的rom加载程序启动;s3:rom加载程序对操作系统引导程序进行加载验证,若验证通过则操作系统引导程序启动;s4:操作系统引导程序对操作系统内核程序进行加载验证,若验证通过则操作系统内核程序启动。
7.目前tee只能在支持trustzone的arm芯片上实现,然而,在汽车控制器中使用了大量不支持trustzone的mcu,这些不支持trustzone的mcu亟需一种易于实现的方法来满足安全启动的安全要求。


技术实现要素:

8.针对背景技术存在的问题,本发明的目的在于提供一种用于车载mcu的安全启动方法及装置,在不支持trustzone的mcu上,使用对称密钥算法,利用芯片内置的hsm或外置的安全芯片,以一种简单易行的方式来实现mcu的安全启动控制方法和装置。
9.为达到上述目的,本发明设计的用于车载mcu的安全启动方法,其特征在于,所述方法包括:
10.bootrom获取第二安全校验模块起始地址,并启动第二安全校验模块;
11.第二安全校验模块使用第一安全校验模块校验bootloader的真实性和完整性,得到第二结果;其中,第一安全校验模块的可行度高于第二安全校验模块;
12.bootloader中的安全启动模块使用第一安全校验模块校验待启动app的真实性和
完整性;得到第三结果;其中,第二安全校验模块的可行度高于第三安全校验模块;
13.第二结果和第三结果逐一验证通过,则启动软件,任一结果不通过,则立即终止。
14.优选的,bootrom启动后,第一安全校验模块对第二安全校验模块进行真实性和完整性验证,得到第一结果,通过则启动第二校验模块,否,则终止。
15.优选的,所述第二安全校验模块烧录至mcu的存储芯片后不再变更,且是紧随bootrom启动。
16.进一步优选的,若系统支持a/b面,第二安全校验模块负责选择活动的bootloader跳转。
17.优选的,所述第一安全校验模块为罐装有对称密匙的hsm块或者外置的安全芯片。
18.作为优选方案,得到第二结果具体方法为:
19.第二安全校验模块获取bootloader中安全模块的信息,包括cmac值;第二安全校验模块使用第一安全校验模块校验安全模块的信息,使用对称密钥对bootloader计算cmac值;将获取的cmac值与计算的cmac值比较,一致则继续,不一致则终止。
20.作为优选方案,得到第三结果具体方法为:
21.安全启动模块获取待启动app的信息,包括cmac值;安全启动模块使用第一安全校验模块校验待启动app的信息,使用对称密钥对待启动app计算cmac值;将获取的cmac值与计算的cmac值比较,一致则继续,不一致则终止。
22.为达到上述目的,本发明设计的用于车载mcu的安全启动装置,其特征在于,包括:
23.第一安全校验模块,用于配合第二安全校验模块和安全启动模块参与cmac值计算;
24.第二安全校验模块,使用第一安全模块用于校验bootloader的真实性和完整性得到第二结果;
25.安全启动模块,置于bootloader中,使用第一安全模块用于校验待启动app的真实性和完整性得到第三结果;
26.第二结果和第三结果逐一验证通过,则启动软件,任一结果不通过,则立即终止。
27.优选的,所述第二安全校验模块烧录至mcu的存储芯片后不再变更,且是紧随bootrom启动。
28.进一步优选的,bootrom启动后,第一安全校验模块对第二安全校验模块进行真实性和完整性验证,得到第一结果,通过则启动第二校验模块,否,则终止。
29.本发明的有益效果是:本发明可以为广泛应用的汽车控制器提供一种简单易行的安全启动功能实现方式,从而保障汽车控制器固件不被恶意刷写。本发明用于确保设备启动后、其加载或运行的代码都是可信的。利用加密算法、通过信任链的方式,确保固件的安全性和完整性。第二安全校验模块灵活性较高,可以根据控制器的需求,进行定制化的开发。
附图说明
30.图1是本发明的流程示意图
31.图2是图1中embedded device中的示意框图
32.图3是本发明各个模块件的交互时序图
具体实施方式
33.下面通过附图以及列举本发明的一些可选实施例的方式,对本发明的技术方案(包括优选技术方案)做进一步的详细描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.如图1所示,本发明设计的用于车载mcu的安全启动方法和装置,其流程为:
35.一、使用支持国密算法的服务器密码机生成对称密钥;
36.二、将对称密钥灌装到第一安全模块中,用于校验过程中的安全运算;第一安全模块可以是mcu的hsm(硬件安全模块)或外置的安全芯片;
37.三、将需要保护的目标软件编译生成固件;
38.四、使用对称密钥、对固件进行cmac计算;
39.五、使用脚本工具,对固件添加header,将固件的长度、cmac值等信息写入header;
40.六、将包含header的固件下载到mcu的flash中;
41.七、mcu上电时,对烧录的固件进行拆包,解析固件信息,进行合法性的校验,具体结构如图2所示。
42.securemini(轻量化安全校验模块)——第二安全校验模块
43.securemini,负责满足硬件信任链的校验,其烧入到mcu的flash后,不再进行变更。开启安全启动后,对securemini进行cmac(基于密码的消息认证码)校验。
44.securemini功能灵活性较高,可以根据控制器的需求,进行定制。其功能包括:满足硬件信任链的校验;对bootloader进行cmac校验;若系统支持a/b面,负责选择active(活动的)的bootloader跳转。
45.securemini包括manager管理器、crypto、timer。
46.manager管理器:securemini内部管理模块,负责读取securemini的起始地址、固件长度、cmac值,输入到hsm,进行cmac校验。
47.crypto:封装cmac功能,供安全校验使用。
48.timer:封装timer相关功能,供超时判断使用。
49.hardware:mcu的硬件模块,由hsm、timer、uart等子模块构成。其中,hsm中灌装有对称密钥。
50.bootloader(引导程序)负责查找和加载应该在芯片上运行的最终操作系统或固件,实现启动相关功能。本发明中添加安全启动模块,对app的完整性和合法性进行校验。
51.bootloader包括:secureboot、crypto、log、timer。
52.secureboot——安全启动模块:读取application——待启动app的起始地址、固件长度、cmac值,输入到hsm,进行cmac校验。
53.crypto:封装cmac功能,供安全校验使用。
54.log:封装log输出功能,供调试使用。
55.timer:封装timer相关功能,供超时使用。
56.上述所述需要保护的目标软件包括securemini、secureboot、app。
57.如图3所示,本发明设计的用于车载mcu的安全启动方法,工作过程为:
58.1.上电启动
59.1.1、bootrom获取securemini起始地址,并启动;bootrom获取第二安全校验模块起始地址,并启动第二安全校验模块;
60.bootrom是嵌入处理器芯片内的一小块掩模rom或写保护闪存。它包含处理器在上电或复位时执行的第一个代码。根据某些带式引脚或内部保险丝的配置,它可以决定从哪里加载要执行的代码的下一部分以及如何或是否验证其正确性或有效性。
61.在本发明的另一实施例中,包括,
62.1.2、bootrom使用hsm校验securemini信息,验证其真实性和完整性,通过则继续,未通过则终止。
63.由manager管理器读取securemini的起始地址、固件长度,cmac值,输入到hsm,进行cmac校验。具体的,使用hsm校验securemini信息,crypto使用对称密匙对securemini计算cmac值,将计算出的cmac值与securemini中存储的cmac值进行比较;如果一致则继续,不一致则终止。也即,bootrom启动后,第一安全校验模块对第二安全校验模块进行真实性和完整性验证,得到第一结果,通过则启动第二校验模块,否,则终止。
64.1.3、securemini启动
65.1.3.1、第二安全校验模块获取bootloader中安全模块的信息,包括cmac值;具体的,securemini获取secureboot信息,包含起始地址、固件长度、cmac值等;
66.1.3.2、第二安全校验模块使用第一安全校验模块校验安全模块的信息,使用对称密钥对bootloader计算cmac值;具体的,securemini使用hsm校验secureboot信息,使用对称密钥对bootloader计算cmac值;将获取的cmac值与计算的cmac值比较,具体的,将secureboot信息中保存的cmac值与securemini中的crypto计算出的cmac值进行比较,一致则继续,不一致则终止。本发明在bootloader里新增植入了secureboot模块,它们作为一个整体,只需验证
67.1.3.3、secureboot启动。
68.以上1.3.1~1.3.3中,第二安全校验模块使用第一安全校验模块校验bootloader的真实性和完整性,得到第二结果;其中,第一安全校验模块的可行度高于第二安全校验模块。所述第二安全校验模块烧录至mcu的存储芯片后不再变更,且是紧随bootrom启动。若系统支持a/b面,第二安全校验模块负责选择活动的bootloader跳转。如此,可以根据控制器的需求,进行定制化的开发,实现securemini较高的功能灵活性。
69.1.3.3.1、安全启动模块获取app信息,具体的,secureboot获取app信息,包含起始地址、固件长度、cmac值等。
70.1.3.3.2、bootloader中的安全启动模块使用第一安全校验模块校验待启动app的真实性和完整性;得到第三结果;其中,第二安全校验模块的可行度高于第三安全校验模块。具体的,secureboot使用hsm校验app信息,使用对称密钥对app计算cmac值,与app信息中保存的cmac值进行比较,一致则继续,不一致则终止。更具体的,将bootloader中保存的cmac值与bootloader中的crypto计算出的cmac值进行比较,一致则继续,不一致则终止。
71.1.3.3.3.1、启动app。
72.第一结果、第二结果、第三结果是逐一验证通过的,一次都通过则启动软件,任一结果不通过,则立即终止。如此,由securemini——第二安全校验模块负责满足硬件信任链的校验。
73.所述第一安全校验模块为罐装有对称密匙的hsm块或者外置的安全芯片。
74.本领域技术人员容易理解,以上仅为本发明的较佳实施例而已,并不以限制本发明,凡在本发明的精神和原则下所做的任何修改、组合、替换、改进等均包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1