System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种基于bmc启动的代码安全更新方法、装置、设备及介质。
技术介绍
1、随着信息安全的不断发展,可信启动逐渐成为研究热点。当前大部分的可信启动研究都是基于x86和高级精简指令集计算机(advanced risc machine,arm)架构的芯片设计进行的,这两种架构是当前最广泛使用的处理器架构,涵盖了各种应用领域。相比于x86和arm等架构受到专利和授权限制,risc-v这种开源、开放的指令集架构开始受到关注。可信启动依赖于可信链的建立,在启动代码中选择一个可靠的可信根,以其作为信任源点,嵌入式存储器芯片(trusted computing module chip,tcm)密码模块对启动过程中运行的固件进行逐级度量,并记录度量结果,实现可信链的建立,通过良好的信任链路径来确保服务器的可信启动。当固件代码被篡改时,度量校验失败,此时无法正常建立可信链来确保系统安全,管理人员需要执行相关操作,修复被篡改的固件代码。
2、现有的可信启动场景中的固件更新方案提供的固件更新方法大多数基于x86和arm架构的芯片设计,且应用场景默认为用户对固件代码没有更新需求,即更新的固件代码与原固件代码一致,这种方法无法维持现有的可信链来保证系统启动过程的安全性。
3、总上可知,现有的固件代码更新方案不能保证系统启动过程的安全性。
技术实现思路
1、本专利技术提供一种基于bmc启动的代码安全更新方法、装置、设备及介质,用以解决现有技术中固件代码更新方案
2、第一方面,本专利技术提供一种基于bmc启动的代码安全更新方法,包括:
3、当主板管理控制器bmc处于不安全状态时,从所述bmc的第一闪存中,获取预先存储的备用固件代码;其中,所述bmc处于不安全状态是基于目标固件代码的第一基准值和第一度量值确定的,所述目标固件代码为更新后的固件代码;
4、基于所述备用固件代码和嵌入式存储器芯片tcm,清除所述tcm中所述目标固件代码的第一基准值;
5、基于所述tcm和所述目标固件代码,确定所述目标固件代码的第二度量值;
6、将所述第二度量值作为所述目标固件代码的第二基准值存储至所述tcm中,确定所述目标固件代码更新安全。
7、根据本专利技术提供一种的基于bmc启动的代码安全更新方法,确定所述第一基准值和所述第一度量值,包括:
8、从所述bmc的第二闪存中,获取所述目标固件代码;
9、确定所述bmc处于安全状态时,基于所述tcm和所述目标固件代码,读取所述目标固件代码的第一基准值;
10、基于所述tcm和所述目标固件代码,对所述目标固件代码进行哈希运算,将运算得到的哈希值作为所述第一度量值。
11、根据本专利技术提供一种的基于bmc启动的代码安全更新方法,所述基于所述备用固件代码和嵌入式存储器芯片tcm,清除所述tcm中所述目标固件代码的第一基准值之后,还包括:
12、将所述bmc的安全启动标志位的数值设置为安全值,并重启所述bmc,确定所述目标固件代码为首次启动,并执行所述基于所述tcm和所述目标固件代码,确定所述目标固件代码的第二度量值的步骤;其中,所述安全值表征所述bmc处于安全状态。
13、根据本专利技术提供一种的基于bmc启动的代码安全更新方法,确定所述bmc处于安全状态之后,所述方法还包括:
14、若读取不到所述第一基准值,确定所述目标固件代码为首次启动;
15、基于所述tcm,对所述目标固件代码进行哈希运算,将运算得到的哈希值作为所述目标固件代码的第三度量值;
16、将所述第三度量值作为所述目标固件代码的第三基准值,存储所述第三基准值后,确定所述目标固件代码更新安全。
17、根据本专利技术提供一种的基于bmc启动的代码安全更新方法,所述基于所述备用固件代码和嵌入式存储器芯片tcm,清除所述tcm中所述目标固件代码的第一基准值,包括:
18、基于所述备用固件代码和tcm接口,调用所述tcm,并清除非易失性存储器nv空间中存储的所述第一基准值;其中,所述nv空间设置于所述tcm中,用于存储所述目标固件代码的基准值。
19、根据本专利技术提供一种的基于bmc启动的代码安全更新方法,确定所述bmc处于安全状态,包括:
20、获取所述bmc的安全启动标志位的数值;
21、当所述数值为安全值时,确定所述bmc处于安全状态。
22、根据本专利技术提供一种的基于bmc启动的代码安全更新方法,所述目标固件代码包括第一目标固件代码、第二目标固件代码和第三目标固件代码,所述基于所述tcm和所述目标固件代码,确定所述目标固件代码的第二度量值,包括:
23、基于所述第一目标固件代码和所述tcm,对所述第二目标固件代码进行哈希运算,将运算得到的哈希值作为所述第二目标固件代码的度量值;
24、基于所述第二目标固件代码和所述tcm,对所述第三目标固件代码进行哈希运算,得到所述第三目标固件代码的度量值;
25、基于所述第二目标固件代码和所述tcm,对所述第一目标固件代码进行哈希运算,得到所述第一目标固件代码的度量值;
26、所述第一目标固件代码的度量值、所述第二目标固件代码的度量值和所述第三目标固件代码的度量值组成所述第二度量值。
27、第二方面,本专利技术还提供一种基于bmc启动的代码安全更新装置,包括:
28、获取模块,用于当主板管理控制器bmc处于不安全状态时,从所述bmc的第一闪存中,获取预先存储的备用固件代码;其中,所述bmc处于不安全状态是基于目标固件代码的第一基准值和第一度量值确定的,所述目标固件代码为更新后的固件代码;
29、清除模块,用于基于所述备用固件代码和嵌入式存储器芯片tcm,清除所述tcm中所述目标固件代码的第一基准值;
30、度量模块,用于基于所述tcm和所述目标固件代码,确定所述目标固件代码的第二度量值;
31、确定模块,用于将所述第二度量值作为所述目标固件代码的第二基准值存储至所述tcm中,确定所述目标固件代码更新安全。
32、第三方面,本专利技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于bmc启动的代码安全更新方法的步骤。
33、第四方面,本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于bmc启动的代码安全更新方法的步骤。
34、本专利技术提供的基于bmc启动的代码安全更新方法、装置、设备及介质,当主板管理控制器bmc处于不安全状态时,从所述bmc的第一闪存中,获取预先存储的备用固件本文档来自技高网...
【技术保护点】
1.一种基于BMC启动的代码安全更新方法,其特征在于,包括:
2.根据权利要求1所述的基于BMC启动的代码安全更新方法,其特征在于,确定所述第一基准值和所述第一度量值,包括:
3.根据权利要求1所述的基于BMC启动的代码安全更新方法,其特征在于,所述基于所述备用固件代码和嵌入式存储器芯片TCM,清除所述TCM中所述目标固件代码的第一基准值之后,还包括:
4.根据权利要求1所述的基于BMC启动的代码安全更新方法,其特征在于,确定所述BMC处于安全状态之后,所述方法还包括:
5.根据权利要求1所述的基于BMC启动的代码安全更新方法,其特征在于,所述基于所述备用固件代码和嵌入式存储器芯片TCM,清除所述TCM中所述目标固件代码的第一基准值,包括:
6.根据权利要求2所述的基于BMC启动的代码安全更新方法,其特征在于,确定所述BMC处于安全状态,包括:
7.根据权利要求1所述的基于BMC启动的代码安全更新方法,其特征在于,所述目标固件代码包括第一目标固件代码、第二目标固件代码和第三目标固件代码,所述基于所述TCM和所
8.一种基于BMC启动的代码安全更新装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述基于BMC启动的代码安全更新方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于BMC启动的代码安全更新方法的步骤。
...【技术特征摘要】
1.一种基于bmc启动的代码安全更新方法,其特征在于,包括:
2.根据权利要求1所述的基于bmc启动的代码安全更新方法,其特征在于,确定所述第一基准值和所述第一度量值,包括:
3.根据权利要求1所述的基于bmc启动的代码安全更新方法,其特征在于,所述基于所述备用固件代码和嵌入式存储器芯片tcm,清除所述tcm中所述目标固件代码的第一基准值之后,还包括:
4.根据权利要求1所述的基于bmc启动的代码安全更新方法,其特征在于,确定所述bmc处于安全状态之后,所述方法还包括:
5.根据权利要求1所述的基于bmc启动的代码安全更新方法,其特征在于,所述基于所述备用固件代码和嵌入式存储器芯片tcm,清除所述tcm中所述目标固件代码的第一基准值,包括:
6.根据权利要求2所述的基于bmc启动的代码安全更新...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。