本技术涉及服务器应用技术,特别是涉及一种主机引导程序的启动方法、装置、系统和处理器。
背景技术:
1、主机引导程序hostboot是中央处理器(central processing unit,cpu)中央处理器在上电时首先执行的一段引导程序。例如,hostboot是基本输入输出系统(basic inputoutput system,bios)中固件(firmware,fw)的一部分。cpu使用bios fw启动时,最先被执行的程序就是hostboot。
2、然而目前,hostboot在被启动时很容易被篡改,导致cpu无法安全启动。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够保证cpu安全启动的主机引导程序的启动方法、装置、系统、处理器、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种主机引导程序的启动方法,所述主机引导程序包括多个依次启动的子引导程序。方法包括:
3、根据各所述子引导程序依次对应获取各所述子引导程序的目标哈希值;
4、将各所述目标哈希值分别输出至第一存储单元进行存储;
5、根据所述第一存储单元中存储的目标哈希值,与对应所述子引导程序的目标哈希值,确定所述主机引导程序的启动环境是否正常;
6、在所述启动环境正常的情况下,根据所述第一存储单元中存储的目标哈希值,与所述主机引导程序的标准哈希值的比对结果,确定是否启动所述主机引导程序。
7、在其中一个实施例中,所述根据各所述子引导程序依次对应获取各所述子引导程序的目标哈希值,包括:
8、采用预设哈希算法获取各所述子引导程序的当前哈希值;
9、根据所述子引导程序的当前哈希值和所述子引导程序对应的初始哈希值,获取所述子引导程序的目标哈希值;
10、其中,启动次序相邻的两个所述子引导程序中,启动次序在先的所述子引导程序的目标哈希值作为启动次序在后的所述子引导程序对应的初始哈希值,首先启动的所述子引导程序对应的初始哈希值为预设值。
11、在其中一个实施例中,所述根据各所述子引导程序依次对应获取各所述子引导程序的目标哈希值,包括:
12、采用预设哈希算法获取各所述子引导程序的当前哈希值;
13、确定所述子引导程序的当前哈希值为所述子引导程序的目标哈希值。
14、在其中一个实施例中,所述主机引导程序包括第一子引导程序、第二子引导程序和第三子引导程序,其中,所述第一子引导程序、所述第二子引导程序和所述第三子引导程序依次启动,所述根据各所述子引导程序依次对应获取各所述子引导程序的目标哈希值,包括:
15、采用预设哈希算法获取所述第一子引导程序的当前哈希值;
16、根据所述第一子引导程序对应的初始哈希值和所述第一子引导程序的当前哈希值确定所述第一子引导程序的目标哈希值,其中,所述第一子引导程序对应的初始哈希值为预设值;
17、采用所述预设哈希算法获取所述第二子引导程序的当前哈希值;
18、根据所述第一子引导程序的目标哈希值和所述第二子引导程序的当前哈希值确定所述第二子引导程序的目标哈希值;
19、采用所述预设哈希算法获取所述第三子引导程序的当前哈希值;
20、根据所述第二子引导程序的目标哈希值和所述第三子引导程序的当前哈希值确定所述第三子引导程序的目标哈希值。
21、在其中一个实施例中,所述第一子引导程序为hbl程序、所述第二子引导程序为hbb程序以及所述第三子引导程序为payload程序,其中,所述hbl程序用于加载并执行所述hbb程序,所述hbb程序用于初始化芯片与外设元件,所述payload程序用于初始化外设驱动参数配置。
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、上述主机引导程序的启动方法,主机引导程序包括多个依次启动的子引导程序,可根据各子引导程序依次对应获取各子引导程序的目标哈希值,将各目标哈希值分别输出至第一存储单元进行存储,进而根据第一存储单元中存储的目标哈希值与对应子引导程序的目标哈希值,确定主机引导程序的启动环境时否正常,以实现对主机引导程序的启动环境的安全验证;以及在确定启动环境正常的情况下,进一步根据第一存储单元中存储的目标哈希值与主机引导程序的标准哈希值进行对比的比对结果,确定是否启动主机引导程序,例如,若对比结果一致则表明其主机引导程序启动过程中是完整可信的,若对比结果不一致,则表明主机引导程序启动过程中可能被篡改破坏;其本技术实施例提供的主机引导程序的启动方法,可实现对主机引导程序的启动环境和对主机引导程序的完整可信的两道安全验证,从而确保在主机引导程序未被篡改破坏、完整可信的情况下,正常启动主机引导程序,进而保证cpu安全启动。