本公开涉及物联网,具体而言,涉及一种设备启动方法、装置、计算机设备及嵌入式设备。
背景技术:
1、随着物联网技术的快速发展,物联网设备不断增多;轻量级的嵌入式设备作为物联网设备中的主要设备,对其进行安全保护尤其重要。
2、一般的嵌入式设备的启动机制,是将硬件信任根存储于系统级芯片(system onchip,soc)内部的一次性可编程存储器模块,通过soc硬件机制确保硬件信任根的安全性;但是,对于一般的轻量级嵌入式设备,使用带有一次性可编程存储器模块的soc,在造成资源浪费的同时,会导致设备的成本较高。
技术实现思路
1、本公开实施例至少提供一种设备启动方法、装置、计算机设备及嵌入式设备。
2、第一方面,本公开实施例提供了一种设备启动方法,应用于嵌入式设备,所述嵌入式设备的快闪flash存储模块中设置有包含只读功能的第一存储区和包含有读写功能的第二存储区,并在所述第一存储区中写入有第一级启动镜像和第一级公钥信息,以及在所述第二存储区中写入有第二级启动镜像和应用程序镜像,所述方法包括:
3、响应于所述嵌入式设备的启动操作,按照所述嵌入式设备设置的启动方式,启动所述第一存储区中的第一级启动镜像;
4、控制所述第一级启动镜像,读取所述第一级公钥信息;
5、利用所述第一级启动镜像,基于所述第一级公钥信息,对从所述第二存储区中读取的第二级启动镜像的镜像内容和应用程序镜像的镜像内容进行校验,得到校验结果;
6、在所述校验结果为校验成功的情况下,控制所述嵌入式设备启动。
7、上述方法中,由于预先设置了嵌入式设备的启动方式,故响应于该嵌入式设备的启动操作,可以确保该嵌入式设备按照设置的启动方式,启动第一存储区中的第一级启动镜像;同时,由于在flash存储模块中,写入有第一级启动镜像和第一级公钥信息的第一存储区设置有只读功能,故可以确保第一级启动镜像和第一级公钥信息不被篡改,保障了第一级启动镜像和第一级公钥信息的可信性。进一步的,控制第一级启动镜像,读取第一级公钥信息,并利用第一级启动镜像,基于第一级公钥信息,对从第二存储区读取的第二级启动镜像的镜像内容和应用程序镜像的镜像内容进行校验,得到校验结果;在校验结果为校验成功的情况下,可以确保第二级启动镜像的镜像内容和应用程序镜像的镜像内容的可信性,并使得设备启动过程形成的启动链路的安全性较高,以便控制嵌入式设备能够安全启动。
8、同时,由于该方法应用于嵌入式设备,该嵌入式设备的快闪flash存储模块中设置有包含只读功能的第一存储区和包含有读写功能的第二存储区,并在第一存储区中写入有第一级启动镜像和第一级公钥信息,以及在第二存储区中写入有第二级启动镜像和应用程序镜像,使得该设备无需设置有一次性可编程存储器模块,并能够按照设置的启动方式,从flash存储模块中进行启动,在保障了设备启动安全性的同时,缓解了资源浪费和成本消耗。
9、一种可选的实施方式中,所述利用所述第一级启动镜像,基于所述第一级公钥信息,对从所述第二存储区中读取的第二级启动镜像的镜像内容和应用程序镜像的镜像内容进行校验,得到校验结果,包括:
10、控制所述第一级启动镜像,从所述第二存储区中读取所述第二级启动镜像的镜像内容;
11、利用所述第一级启动镜像,基于所述第一级公钥信息,对所述第二级启动镜像的镜像内容进行校验,得到中间校验结果;
12、在所述中间校验结果为校验成功的情况下,启动所述第二级启动镜像,并控制所述第二级启动镜像,从所述第二存储区中读取应用程序镜像的镜像内容;
13、利用所述第二级启动镜像,基于所述第二级启动镜像的镜像内容中的第二级公钥信息,对所述应用程序镜像的镜像内容进行校验,得到校验结果。
14、这里,由于第二级启动镜像的镜像内容和应用程序镜像的镜像内容存在被修改的情况,故可以先利用第一级启动镜像,基于第一级公钥信息,对第二级启动镜像的镜像内容进行校验,得到中间校验结果;在中间校验结果为校验成功的情况下,能够确定第二级启动镜像的镜像内容可信,进而,启动第二级启动镜像,利用第二级启动镜像,基于第二级启动镜像的镜像内容中的第二级公钥信息,对应用程序镜像的镜像内容进行校验,得到校验结果,能够根据校验结果判断应用程序镜像的镜像内容是否可信,保障了设备启动的安全性,提高了设备启动过程中形成的启动链路的安全性。
15、一种可选的实施方式中,所述第二级启动镜像的镜像内容包括头信息、未签名的原始镜像内容、下一级镜像的公钥信息、签名信息;
16、其中,在所述第二级启动镜像的个数为一个的情况下,所述第二级启动镜像的镜像内容中下一级镜像为应用程序镜像;在所述第二级启动镜像的个数为n个情况下,第n个第二级启动镜像的镜像内容中下一级镜像为应用程序镜像,第i个第二级启动镜像的镜像内容中下一级镜像为第i+1个第二级启动镜像,n为大于1的正整数,i为大于或等于1、且小于n的正整数。
17、一种可选的实施方式中,根据以下步骤生成所述第二级启动镜像的镜像内容中的所述签名信息:
18、对所述第二级启动镜像的镜像内容包括的所述未签名的原始镜像内容和所述下一级镜像的公钥信息进行哈希处理,生成待签名内容;
19、利用所述第二级启动镜像的上一级镜像的公钥信息匹配的私钥信息,对所述待签名内容进行签名,生成所述第二级启动镜像的镜像内容中的所述签名信息;
20、其中,在所述第二级启动镜像的个数为一个的情况下,所述第二级启动镜像的镜像内容中上一级镜像为第一级启动镜像;在所述第二级启动镜像的个数为n个情况下,第1个第二级启动镜像的镜像内容中上一级镜像为第一级启动镜像,第j个第二级启动镜像的镜像内容中上一级镜像为第j-1个第二级启动镜像,j为大于1、且小于或等于n的正整数。
21、这里,利用第二级启动镜像的上一级镜像的公钥信息匹配的私钥信息,对第二级启动镜像的镜像内容包括的未签名的原始镜像内容和下一级镜像的公钥信息进行签名,可以对其进行加密,使得生成的第二级启动镜像的镜像内容中的签名信息,可以在设备启动过程中用于校验第二级启动镜像的镜像内容的完整性和来源,提高了设备启动的安全性。
22、一种可选的实施方式中,所述利用所述第一级启动镜像,基于所述第一级公钥信息,对所述第二级启动镜像的镜像内容进行校验,得到中间校验结果,包括:
23、利用所述第一级启动镜像,对所述第二级启动镜像的镜像内容包括的所述未签名的原始镜像内容和所述下一级镜像的公钥信息进行哈希处理,得到第一待校验数据;
24、利用所述第一级启动镜像,基于所述第一级公钥信息,对所述第二级启动镜像的镜像内容包括的所述签名信息进行解密处理,得到第一基准校验数据;
25、利用所述第一级启动镜像,基于所述第一待校验数据和所述第一基准校验数据,生成中间校验结果。
26、这里,由于公钥信息和私钥信息相匹配,具有一一对应的关系,故通过私钥信息进行签名得到的签名信息,只能通过与私钥信息匹配的公钥信息可以解密成功。因此,利用第一级启动镜像,对第二级启动镜像的镜像内容包括的未签名的原始镜像内容和下一级镜像的公钥信息进行哈希处理,得到第一待校验数据;并利用第一级启动镜像,基于第一级公钥信息,对第二级启动镜像的镜像内容包括的签名信息进行解密处理,得到第一基准校验数据;进而,利用第一级启动镜像,基于第一待校验数据和第一基准校验数据,生成的中间校验结果可以用于判断第二级启动镜像的镜像内容的完整性和来源,以便保障第二级启动镜像可以安全启动,提高了嵌入式设备启动的安全性。
27、一种可选的实施方式中,所述应用程序镜像的镜像内容包括:头信息、未签名的原始镜像内容、签名信息;所述利用所述第二级启动镜像,基于所述第二级启动镜像的镜像内容中的第二级公钥信息,对所述应用程序镜像的镜像内容进行校验,得到校验结果,包括:
28、利用所述第二级启动镜像,对所述应用程序镜像的镜像内容包括的所述未签名的原始镜像内容进行哈希处理,得到第二待校验数据;
29、利用所述第二级启动镜像,基于所述第二级启动镜像的镜像内容中的第二级公钥信息,对所述应用程序镜像的镜像内容包括的所述签名信息进行解密处理,得到第二基准校验数据;
30、利用所述第二级启动镜像,基于所述第二待校验数据和所述第二基准校验数据,生成校验结果。
31、这里,在确保第二级启动镜像的镜像内容可信的情况下,利用第二级启动镜像,对应用程序镜像的镜像内容包括的未签名的原始镜像内容进行哈希处理,得到第二待校验数据;并利用第二级启动镜像,基于第二级启动镜像的镜像内容中的第二级公钥信息,对应用程序镜像的镜像内容包括的签名信息进行解密处理,得到第二基准校验数据;进而,利用第二级启动镜像,基于第二待校验数据和第二基准校验数据,生成的校验结果可以用于判断应用程序镜像的镜像内容的完整性和来源,以便保障应用程序镜像可以安全启动,提高了嵌入式设备启动的安全性。
32、第二方面,本公开实施例还提供一种嵌入式设备,包括快闪flash存储模块,所述flash存储模块中设置有包含只读功能的第一存储区和包含有读写功能的第二存储区,所述第一存储区中写入有第一级启动镜像和第一级公钥信息,所述第二存储区中写入有第二级启动镜像和应用程序镜像;
33、在启动所述第一级启动镜像后,所述第一级启动镜像,用于读取所述第一级公钥信息;并基于所述第一级公钥信息,对从所述第二存储区中读取的第二级启动镜像的镜像内容和应用程序镜像的镜像内容进行校验,得到校验结果;
34、其中,在所述校验结果为校验成功的情况下,所述嵌入式设备启动。
35、这里,通过将嵌入式设备包括的快闪flash存储模块中设置有包含只读功能的第一存储区和包含有读写功能的第二存储区,且第一存储区中写入有第一级启动镜像和第一级公钥信息,第二存储区中写入有第二级启动镜像和应用程序镜像,可以保障第一存储区中的第一级启动镜像和第一级公钥信息不被修改;同时,在启动第一级启动镜像后,第一级启动镜像读取第一级公钥信息;并基于第一级公钥信息,对从第二存储区中读取的第二级启动镜像的镜像内容和应用程序镜像的镜像内容进行校验,得到校验结果;在校验结果为校验成功的情况下,可以确保第二级启动镜像的镜像内容和应用程序镜像的镜像内容可信,使得嵌入式设备启动的安全性较高。
36、一种可选的实施方式中,所述嵌入式设备的调试端口处于屏蔽状态,且所述嵌入式设备的启动方式为从所述flash存储模块中的第一级启动镜像进行启动。
37、这里,通过预先设置,使得嵌入式设备的调试端口处于屏蔽状态,且嵌入式设备的启动方式为从flash存储模块中的第一级启动镜像进行启动,可以确保嵌入式设备启动过程中形成的启动链路的安全性较高。
38、第三方面,本公开实施例还提供一种设备启动装置,应用于嵌入式设备,所述嵌入式设备的快闪flash存储模块中设置有包含只读功能的第一存储区和包含有读写功能的第二存储区,并在所述第一存储区中写入有第一级启动镜像和第一级公钥信息,以及在所述第二存储区中写入有第二级启动镜像和应用程序镜像,所述装置包括:
39、启动模块,用于响应于所述嵌入式设备的启动操作,按照所述嵌入式设备设置的启动方式,启动所述第一存储区中的第一级启动镜像;
40、第一控制模块,用于控制所述第一级启动镜像,读取所述第一级公钥信息;
41、校验模块,用于利用所述第一级启动镜像,基于所述第一级公钥信息,对从所述第二存储区中读取的第二级启动镜像的镜像内容和应用程序镜像的镜像内容进行校验,得到校验结果;
42、第二控制模块,用于在所述校验结果为校验成功的情况下,控制所述嵌入式设备启动。
43、第四方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
44、第五方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
45、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。