本技术涉及控制器启动,特别是一种控制器的固件启动方法、系统、车辆以及电子设备。
背景技术:
1、目前,在车载控制器启动的过程中,往往使用安全密码算法对车载控制器的固件进行离线签名,并在控制器启动时强制对固件验签来保证固件的真实性、完整性。
2、但是,车载控制器固件单单被签名和强制验签还不足够保证控制器的启动安全。例如发现车辆某一个版本的控制器固件出现了高危漏洞,攻击者可利用该漏洞攻击控制器从而攻击整车。在此种场景下,车辆主机厂会更新固件版本来修复漏洞。但攻击者可以在发现漏洞之际,利用专用设备焊下车载控制器的ecu(electronic control unit,电子控制单元),从ecu中读取到被签名的存在漏洞的固件版本。由于该固件是被车辆主机厂合法签名过的,攻击者可以刷写存在漏洞的版本到新发布ota版本的车辆ecu上,从而展开回滚攻击,这严重影响到车辆的安全性和稳定性。
3、因此,亟需一种新的控制器的固件启动方法。
技术实现思路
1、鉴于上述问题,本技术实施例提供了一种控制器的固件启动方法、系统、车辆以及电子设备,以便克服上述问题或者至少部分地解决上述问题。
2、本技术第一方面,提供了一种控制器的固件启动方法,所述方法包括:
3、在目标控制器上电后,分别调用预先存储于所述目标控制器的第一存储区的第一预设代码和第二预设代码;
4、执行所述第一预设代码,从所述目标控制器的第二存储区获取目标固件的第一版本信息,所述第一版本信息为所述目标固件当前的版本信息;
5、执行所述第二预设代码,从所述目标控制器的第三存储区获取所述目标固件的第二版本信息,所述第二版本信息为所述目标固件的预存版本信息;
6、以所述第二版本信息为基准,对所述第一版本信息进行第一校验;
7、在所述第一版本信息与所述第二版本信息相同,或者,所述第一版本信息为基于所述第二版本信息进行更新后的版本信息的情况下,对所述目标固件的启动配置信息进行第二校验;
8、在所述第二校验通过后,启动所述目标固件。
9、可选地,所述以所述第二版本信息为基准,对所述第一版本信息进行第一校验,包括:
10、根据所述第一版本信息,确定所述第一版本信息对应的第一版本号;
11、根据所述第二版本信息,确定所述第二版本信息对应的第二版本号;
12、以所述第二版本号为基准,对所述第一版本号进行第一校验,所述第一校验为判断所述第一版本号与所述第二版本号的大小关系。
13、可选地,所述对所述目标固件的启动配置信息进行第二校验,包括:
14、根据所述启动配置信息,生成启动校验值;
15、根据所述启动校验值,对所述目标固件进行启动校验;
16、所述在所述第二校验通过后,启动所述目标固件,包括:
17、在所述目标固件的启动校验通过后,对所述目标固件进行验签,并在验签通过后,启动所述目标固件。
18、可选地,所述对所述目标固件进行验签的步骤,包括:
19、获取所述目标固件的固件信息以及所述固件信息对应的签名信息;
20、根据所述固件信息,计算所述固件信息对应的哈希值;
21、对所述签名信息进行解密,得到所述签名信息对应的初始哈希值;
22、将所述固件信息对应的哈希值与所述签名信息对应的初始哈希值进行比较,以完成对所述目标固件的验签。
23、可选地,所述第一版本信息为基于所述第二版本信息进行更新后的版本信息的情况下,所述方法还包括:
24、获取所述第三存储区的多个存储位,并从多个所述存储位中确定第一目标存储位;
25、将所述第一版本信息对应的第一版本号写入到所述第一目标存储位,并将所述第一目标存储位熔断,以使存储于所述第三存储区的第二版本信息对应的第二版本号更新为所述第一版本号。
26、可选地,所述从所述目标控制器的第三存储区获取所述目标固件的第二版本信息,包括:
27、从所述第三存储区获取预先存储的所述目标固件的版本配置文件;
28、对所述目标固件的版本配置文件进行解析,并从解析后的版本配置文件中提取所述第二版本信息。
29、可选地,所述版本配置文件通过如下步骤存储于所述第三存储区:
30、从云端服务器获取所述版本配置文件,所述版本配置文件是在所述云端服务器内对所述目标固件的版本配置信息进行预处理得到的;
31、获取所述第三存储区的多个存储位,并从多个所述存储位中确定第二目标存储位;
32、将所述版本配置文件存储于所述第二目标存储位。
33、本技术第二方面,提供了一种控制器的固件启动系统,所述系统包括:
34、调用模块,用于在目标控制器上电后,分别调用预先存储于所述目标控制器的第一存储区的第一预设代码和第二预设代码;
35、第一执行模块,用于执行所述第一预设代码,从所述目标控制器的第二存储区获取目标固件的第一版本信息,所述第一版本信息为所述目标固件当前的版本信息;
36、第二执行模块,用于执行所述第二预设代码,从所述目标控制器的第三存储区获取所述目标固件的第二版本信息,所述第二版本信息为所述目标固件的预存版本信息;
37、第一校验模块,用于以所述第二版本信息为基准,对所述第一版本信息进行第一校验;
38、第二校验模块,用于在所述第一版本信息与所述第二版本信息相同,或者,所述第一版本信息为基于所述第二版本信息进行更新后的版本信息的情况下,对所述目标固件的启动配置信息进行第二校验;
39、启动模块,用于在所述第二校验通过后,启动所述目标固件。
40、可选的,所述以所述第二版本信息为基准,对所述第一版本信息进行第一校验,所述第一校验模块,包括:
41、第一确定子模块,用于根据所述第一版本信息,确定所述第一版本信息对应的第一版本号;
42、第二确定子模块,用于根据所述第二版本信息,确定所述第二版本信息对应的第二版本号;
43、第一校验子模块,用于以所述第二版本号为基准,对所述第一版本号进行第一校验,所述第一校验为判断所述第一版本号与所述第二版本号的大小关系。
44、可选地,所述对所述目标固件的启动配置信息进行第二校验,所述第二校验模块,包括:
45、生成子模块,用于根据所述启动配置信息,生成启动校验值;
46、启动校验子模块,用于根据所述启动校验值,对所述目标固件进行启动校验;
47、所述在所述第二校验通过后,启动所述目标固件,所述启动模块,包括:
48、启动子模块,用于在所述目标固件的启动校验通过后,对所述目标固件进行验签,并在验签通过后,启动所述目标固件。
49、可选地,所述系统还包括:
50、第一获取子模块,用于获取所述目标固件的固件信息以及所述固件信息对应的签名信息;
51、计算子模块,用于根据所述固件信息,计算所述固件信息对应的哈希值;
52、解密子模块,用于对所述签名信息进行解密,得到所述签名信息对应的初始哈希值;
53、比较子模块,用于将所述固件信息对应的哈希值与所述签名信息对应的初始哈希值进行比较,以完成对所述目标固件的验签。
54、可选地,以使存储于所述第三存储区的第二版本信息对应的第二版本号更新为所述第一版本号,所述系统还包括:
55、第二获取子模块,用于获取所述第三存储区的多个存储位,并从多个所述存储位中确定第一目标存储位;
56、第一存储子模块,用于将所述第一版本号写入到所述第一目标存储位,并将所述第一目标存储位熔断,以使存储于所述第三存储区的第二版本信息对应的第二版本号更新为所述第一版本号。
57、可选地,所述从所述目标控制器的第三存储区获取所述目标固件的第二版本信息,所述第二执行模块,包括:
58、第三获取子模块,用于从所述第三存储区获取预先存储的所述目标固件的版本配置文件;
59、提取子模块,用于对所述目标固件的版本配置文件进行解析,并从解析后的版本配置文件中提取所述第二版本信息。
60、可选地,所述系统还包括:
61、第四获取子模块,用于从云端服务器获取所述版本配置文件,所述版本配置文件是在所述云端服务器内对所述目标固件的版本配置信息进行预处理得到的;
62、第五获取子模块,用于获取所述第三存储区的多个存储位,并从多个所述存储位中确定第二目标存储位;
63、第二存储子模块,用于将所述版本配置文件存储于所述第二目标存储位。
64、本技术第三方面,提供了一种车辆,所述车辆包括如本技术第二方面所述的控制器的固件启动系统,和/或用于执行如本技术第一方面所述的控制器的固件启动方法。
65、本技术第四方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现如本技术第一方面所述的控制器的固件启动方法。
66、本技术的有益效果:
67、本技术提供了一种控制器的固件启动方法,所述方法包括:在目标控制器上电后,分别调用预先存储于所述目标控制器的第一存储区的第一预设代码和第二预设代码;执行所述第一预设代码,从所述目标控制器的第二存储区获取目标固件的第一版本信息,所述第一版本信息为所述目标固件当前的版本信息;执行所述第二预设代码,从所述目标控制器的第三存储区获取所述目标固件的第二版本信息,所述第二版本信息为所述目标固件的预存版本信息;判断所述第一版本信息对应的第一版本号是否大于或等于所述第二版本信息对应的第二版本号;在所述第一版本号大于或等于所述第二版本号的情况下,对所述目标固件的启动配置信息进行校验,并在校验通过后,启动所述目标固件。本技术在目标控制器的目标固件启动之前,通过对目标固件的版本信息进行校验,并在版本信息校验通过后,继续对目标固件的启动配置信息进行校验,并在启动配置信息校验通过之后,启动该目标固件,能够有效解决针对版本信息存在漏洞的固件的回滚攻击,确保目标固件的顺利启动,从而维持车辆的安全性和稳定性。
1.一种控制器的固件启动方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种控制器的固件启动方法,其特征在于,所述以所述第二版本信息为基准,对所述第一版本信息进行第一校验,包括:
3.根据权利要求1所述的一种控制器的固件启动方法,其特征在于,所述对所述目标固件的启动配置信息进行第二校验,包括:
4.根据权利要求3所述的一种控制器的固件启动方法,其特征在于,所述对所述目标固件进行验签的步骤,包括:
5.根据权利要求1所述的一种控制器的固件启动方法,其特征在于,在所述第一版本信息为基于所述第二版本信息进行更新后的版本信息的情况下,所述方法还包括:
6.根据权利要求1所述的一种控制器的固件启动方法,其特征在于,所述从所述目标控制器的第三存储区获取所述目标固件的第二版本信息,包括:
7.根据权利要求6所述的一种控制器的固件启动方法,其特征在于,所述版本配置文件通过如下步骤存储于所述第三存储区:
8.一种控制器的固件启动系统,其特征在于,所述系统包括:
9.一种车辆,其特征在于,所述车辆包括如权利要求8所述的控制器的固件启动系统,和/或用于执行如权利要求1-7中任一项所述的控制器的固件启动方法。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如权利要求1-7中任一项所述的控制器的固件启动方法。
