System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及服务器,具体涉及固件安全启动方法、装置、计算机设备、存储介质及程序产品。
技术介绍
1、目前采购大量服务器的企业为降低成本和确保供应链稳定,会选择多家供应商进行服务器供应。在这种选择多家供应商进行服务器供应的情况下,往往采用联合设计制造(join design manufacture,简称:jdm)模式进行服务器产品的定制化开发,该模式是由一家厂商主导设计服务器产品,多家厂商复制生产服务器产品。
2、随着信息技术的发展,计算机系统安全性受到重视,安全启动成为保障系统启动过程免受恶意软件侵扰的重要技术。相关技术中,安全启动方案只支持一家厂商的根密钥作为服务器固件安全启动的基础。
3、而在jdm模式下,多家厂商都使用自己的根密钥作为服务器固件安全启动的基础,使得多家厂商生成的服务器产品相同,固件相同,但利用根密钥进行数字签名后的安全启动固件不同,固件安全启动的兼容性较差,导致固件维护困难。
技术实现思路
1、有鉴于此,本专利技术提供了一种固件安全启动方法、装置、计算机设备及存储介质,以解决在jdm模式下,固件安全启动的兼容性较差,导致固件维护困难的问题。
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、将所述第一组本文档来自技高网...
【技术保护点】
1.一种固件安全启动方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述对该待验证公钥进行验证,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述利用所述待验证公钥对多个数字签名进行验证,包括:
6.根据权利要求1所述的方法,其特征在于,在从固件存储区获取固件包之前,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述生成认证块,包括:
8.一种固件安全启动装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的固件安全启动方法。
【技术特征摘要】
1.一种固件安全启动方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述对该待验证公钥进行验证,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述利用所述待验证公钥对多个数字签名进行验证,包括:
6.根据权利要求1所述的方...
【专利技术属性】
技术研发人员:刘波,
申请(专利权)人:苏州元脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。