升级签名固件的方法、电子设备和存储介质技术

技术编号:36946123 阅读:66 留言:0更新日期:2023-03-22 19:07
本发明专利技术公开了升级签名固件的方法、电子设备和存储介质,将公钥参数信息、数字签名算法类型和消息摘要算法类型保存在启动引导程序固件中,在对固件校验之前,对公钥参数信息进行了三次验证,并将数字摘要、消息摘要算法类型和数字签名算法类型写入命令行参数,实现了公钥参数信息合法性和正确性的多重验证,在确保了公钥信息本身是合法正确的前提下再对待升级固件进行校验,且无需依赖启动引导程序传递公钥参数,既解决了升级没签名或者错误签名的固件导致升级后设备无法启动问题,也解决了设备启动引导程序和系统之间没有额外的软硬资源而无法有效传递公钥信息的问题,从而提高了签名固件升级的可靠性。了签名固件升级的可靠性。了签名固件升级的可靠性。

【技术实现步骤摘要】
升级签名固件的方法、电子设备和存储介质


[0001]本专利技术涉及嵌入式设备
,特别涉及升级签名固件的方法、电子设备和存储介质。

技术介绍

[0002]支持安全启动(Secure Boot)的设备需要对固件进行签名,固件中的签名信息是作为固件不可分割的一部分实际存储在设备存储介质中,并在设备启动过程中对固件进行逐级校验,实际升级的固件必须是包含签名信息的完整签名固件。已有的针对安全启动设备的固件升级方案主要有如下两类:(1)直接升级,不区分固件是否签名,这类方案需用户确保固件本身是正确签名过的;(2)针对签名固件进行特殊处理,这类方案要求设备本身提供某种机制,如设备树,以便可以将签名固件对应的公钥信息从启动引导程序安全地传递到系统,从而使得固件程序升级程序可以使用。这类方法通常复杂性较高,同时在某些情况下,设备启动引导程序和系统之间无法有效传递这种公钥信息,例如没有额外的软硬资源的情况下。

技术实现思路

[0003]本专利技术提供升级签名固件的方法、电子设备和存储介质,其能够提高签名固件升级的可靠性。
[0004]在本专利技术的一个方面,提供一种升级签名固件的方法。该方法包括步骤:从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息、数字签名算法类型和消息摘要算法类型,并根据所述消息摘要算法类型计算与所述公钥参数信息相对应的数字摘要;根据所述数字摘要与预存数字摘要对所述公钥参数信息进行第一次验证,若所述第一次验证的结果为通过,则将所述数字摘要、所述消息摘要算法类型和所述数字签名算法类型写入命令行参数;根据所述命令行参数与所述预存数字摘要对所述公钥参数信息进行第二次验证,若所述第二次验证的结果为通过,则根据所述启动引导程序固件与所述命令行参数对所述公钥参数信息进行第三次验证;以及若所述第三次验证的结果为通过,则获取系统标记,基于所述系统标记对所述签名后的待升级固件进行升级。
[0005]在本专利技术的又一方面,提供一种电子设备。该电子设备包括存储器,被配置为存储计算机程序;以及处理器,被配置为执行所述计算机程序以执行上述的升级签名固件的方法。
[0006]在本专利技术的再一方面,提供一种计算机可读介质。该介质上存储有计算机程序,所述计算机程序被处理器执行以实现上述的升级签名固件的方法。
[0007]根据本专利技术,将公钥参数信息、数字签名算法类型和消息摘要算法类型保存在启动引导程序固件中,在对固件校验之前,对公钥参数信息进行了三次验证,并将数字摘要、消息摘要算法类型和数字签名算法类型写入命令行参数,实现了公钥参数信息合法性和正确性的多重验证,在确保了公钥信息本身是合法正确的前提下再对待升级固件进行校验,
且无需依赖启动引导程序传递公钥参数,既解决了升级没签名或者错误签名的固件导致升级后设备无法启动问题,也解决了设备启动引导程序和系统之间没有额外的软硬资源而无法有效传递公钥信息的问题,从而提高了签名固件升级的可靠性。
附图说明
[0008]图1为根据本专利技术实施例的升级签名固件的方法的步骤流程图;
[0009]图2为根据本专利技术实施例的升级签名固件的方法的流程示意图;
[0010]图3为根据本专利技术实施例的电子设备的结构示意图。
具体实施方式
[0011]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0012]在已有技术中,针对安全启动设备的固件升级方案为直接升级,不区分固件是否签名,这类方案需用户确保固件本身是正确签名过的;或者针对签名固件进行特殊处理,这类方案要求设备本身提供某种机制,如设备树,以便可以将签名固件对应的公钥信息从启动引导程序安全地传递到系统,需要依赖设备树和相关技术设施。
[0013]为了解决至少上述技术问题,本公开提供了升级签名固件的方法。根据本公开,将公钥参数信息、数字签名算法类型和消息摘要算法类型保存在启动引导程序固件中,在对固件校验之前,对公钥参数信息进行了三次验证,并将数字摘要、消息摘要算法类型和数字签名算法类型写入命令行参数。以此方式,根据本公开的实施例能够实现公钥参数信息合法性和正确性的多重验证,在确保了公钥信息本身是合法正确的前提下再对待升级固件进行校验,且无需依赖启动引导程序传递公钥参数,既解决了升级没签名或者错误签名的固件导致升级后设备无法启动问题,也解决了设备启动引导程序和系统之间没有额外的软硬资源而无法有效传递公钥信息的问题,从而提高了签名固件升级的可靠性。
[0014]下文中,将参考具体实施例并且结合附图描述根据本公开的技术方案。
[0015]图1是示出根据本公开的实施例的升级签名固件的方法100的流程图。参照图1,该方法100包括以下步骤102至步骤108。
[0016]在步骤102,从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息、数字签名算法类型和消息摘要算法类型,并根据所述消息摘要算法类型计算与所述公钥参数信息相对应的数字摘要。在一些实施例中,设备启动,并从启动存储介质(如eMMC,embedded Multi Media Card,嵌入式多媒体卡)逐级加载对应签名后的待升级固件并校验,当校验通过后,引导对应签名后的待升级固件执行,当启动引导程序固件校验成功和引导后,从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息、数字签名算法类型和消息摘要算法类型,并根据所述消息摘要算法类型计算所述公钥参数信息对应的数字摘要。
[0017]在一些实施例中,在从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息、数字签名算法类型和消息摘要算法类型之前,还包括:对待升级固件进行签名,得到所述签名后的待升级固件;将所述公钥参数信息、所述数字签名算法类型和所述消息摘要算法类型写入所述签名后的待升级固件中的所述启动引导程序固件的预设位置;以及将
所述签名后的待升级固件存储至固件升级包。以此方式,确保可通过启动引导程序固件获取到固件签名的相关信息。
[0018]在步骤104,根据所述数字摘要与预存数字摘要对所述公钥参数信息进行第一次验证,若所述第一次验证的结果为通过,则将所述数字摘要、所述消息摘要算法类型和所述数字签名算法类型写入命令行参数。在一些实施例中,将计算出的所述数字摘要与设备中存储的所述预存数字摘要进行比较;若所述比较的结果为一致,则确定所述第一次验证的结果为通过;以及若所述比较的结果为不一致,则退出升级流程,并确定所述第一次验证的结果为不通过。在一些实施例中,所述预存数字摘要为设备SoC芯片的OTP(One Time Programmable,一种特殊类型的非易失性存储器)或者efuse(一次性可编程存储器)中保存的公钥参数信息对应的数字摘要。以此方式,确保启动引导程序固件中的公钥参数信息的安全性和有效性。
[0019]在步骤106,根据所述命令行参数与所述预存数字摘要对所述公钥参数信息进行第二次验证,若所述第二次验证的结果为通过,则根据所述启动引导程序固件与所述命令行参数对所述公钥参数信息进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种升级签名固件的方法,其特征在于,包括:从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息、数字签名算法类型和消息摘要算法类型,并根据所述消息摘要算法类型计算与所述公钥参数信息相对应的数字摘要;根据所述数字摘要与预存数字摘要对所述公钥参数信息进行第一次验证,若所述第一次验证的结果为通过,则将所述数字摘要、所述消息摘要算法类型和所述数字签名算法类型写入命令行参数;根据所述命令行参数与所述预存数字摘要对所述公钥参数信息进行第二次验证,若所述第二次验证的结果为通过,则根据所述启动引导程序固件与所述命令行参数对所述公钥参数信息进行第三次验证;以及若所述第三次验证的结果为通过,则获取系统标记,基于所述系统标记对所述签名后的待升级固件进行升级。2.根据权利要求1所述的方法,其特征在于,在从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息、数字签名算法类型和消息摘要算法类型之前,还包括:对待升级固件进行签名,得到所述签名后的待升级固件;将所述公钥参数信息、所述数字签名算法类型和所述消息摘要算法类型写入所述签名后的待升级固件中的所述启动引导程序固件的预设位置;以及将所述签名后的待升级固件存储至固件升级包。3.根据权利要求1所述的方法,其特征在于,根据所述数字摘要与预存数字摘要对所述公钥参数信息进行第一次验证包括:将计算出的所述数字摘要与设备中存储的所述预存数字摘要进行比较;若所述比较的结果为一致,则确定所述第一次验证的结果为通过;以及若所述比较的结果为不一致,则退出升级流程,并确定所述第一次验证的结果为不通过。4.根据权利要求1所述的方法,其特征在于,根据所述命令行参数与所述预存数字摘要对所述公钥参数信息进行第二次验证包括:在检测到固件需要升级时,读取所述命令行参数中的数字摘要、消息摘要算法类型和数字签名算法类型,并读取设备中存储的所述预存数字摘要;将所述命令行参数中的数字摘要与所述预存数字摘要进行比较;若所述比较的结果为一致,则确定所述第二次验证的结果为通过;以及若所述比较的结果为不一致,则退出升级流程,并确定所述第二次验证的结果为不通过。5.根据权利要求1所述的方法,其特征在于,根据所述启动引导程序固件与所述命令行参数对所述公钥参数信息进行第三次验证包括:读取所述启动引导程序固件,以获取所述启动引导程序固件中的公钥参数信息、数字签名算法类型和消息摘要算法类型;将所述启动引导程序固件中的所述数字签名算法类型和所述消息摘要算法类型与所述命令行参数中的所述数字签名算法类型和所述消息摘要算法类型进行比较;若所述比较的结果为一致,则使用所述启动引导程序固件中的所述数字签名算法类型
和所述公钥参数信息对所述启动引导程序固件进行签名校验,若所述校验的结果为成功,则确定所述第三次验证的结果为通过,若所述校验的结果为失败,则退出升级流程,并确定所述第三次验证的结果为不通过;以及若所述比...

【专利技术属性】
技术研发人员:纪大峣
申请(专利权)人:瑞芯微电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1