CN114253597A - 固件校验方法、装置和电子设备 - Google Patents
固件校验方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114253597A CN114253597A CN202111563942.7A CN202111563942A CN114253597A CN 114253597 A CN114253597 A CN 114253597A CN 202111563942 A CN202111563942 A CN 202111563942A CN 114253597 A CN114253597 A CN 114253597A
- Authority
- CN
- China
- Prior art keywords
- nth
- level
- firmware
- public key
- hash value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出了一种固件校验方法、装置和电子设备,涉及终端技术领域。其中,上述固件校验方法包括:首先,可获取待校验的第N级固件包,第N级固件包中包含第N级固件以及第N级公钥。然后,可获取第N级公钥的第一参考散列值。其中,当N的取值大于1时,从已校验的第N‑1级固件包中获取第一参考散列值,当N的取值等于1时,从eFuse中获取第一参考散列值。进而,可利用第一参考散列值对第N级公钥进行校验。第N级公钥校验通过后,可利用第N级公钥对第N级固件进行校验。从而,实现对链式多级固件的安全校验。
Description
【技术领域】
本申请涉及终端技术领域,尤其涉及一种固件校验方法、装置和电子设备。
【背景技术】
固件(Firmware)是硬件设备内部保存的设备“驱动程序”,是担任着一个***最底层工作的软件,决定着硬件设备的功能及性能。为确保固件的完整性与可靠性,在下载、启动或执行固件之前,有必要对固件进行安全校验。
目前常见的固件校验方法通常只针对单个固件,但是,不少硬件设备中都包含有呈链式结构的多级固件,因此,有必要提供一种对链式多级固件进行校验的方法。
【发明内容】
本申请实施例提供了一种固件校验方法、装置和电子设备,以实现对链式多级固件的安全校验。
第一方面,本申请实施例提供一种固件校验方法,所述方法包括:获取待校验的第N级固件包,所述第N级固件包中包含第N级固件以及第N级公钥;获取所述第N级公钥的第一参考散列值,其中,当所述N的取值大于1时,从已校验的第N-1级固件包中获取所述第一参考散列值,当所述N的取值等于1时,从一次性可编程存储器eFuse中获取所述第一参考散列值;利用所述第一参考散列值对所述第N级公钥进行校验;第N级公钥校验通过后,利用所述第N级公钥对所述第N级固件进行校验。
其中一种可能的实现方式中,利用所述第一参考散列值对所述第N级公钥进行校验,包括:计算所述第N级公钥的第一校验散列值;将所述第一校验散列值与所述第一参考散列值进行比对;根据比对结果,对所述第N级公钥进行校验。
其中一种可能的实现方式中,根据比对结果,对所述第N级公钥进行校验,包括:如果比对结果一致,确定所述第N级公钥校验通过;如果比对结果不一致,确定所述第N级公钥校验失败。
其中一种可能的实现方式中,所述第N级固件包中还包含签名信息,所述签名信息是对待保护信息的第二参考散列值执行公钥加密算法生成的;利用所述第N级公钥对所述第N级固件进行校验,包括:利用所述第N级公钥对所述签名信息进行解密,得到所述待保护信息的第二参考散列值;根据所述第二参考散列值,对所述待保护信息进行校验;所述待保护信息校验通过后,利用所述待保护信息对所述第N级固件进行校验。
其中一种可能的实现方式中,所述待保护信息包括第N级固件的第三参考散列值;利用所述待保护信息对所述第N级固件进行校验,包括:计算所述第N级固件的第三校验散列值;将所述第三校验散列值与所述第三参考散列值进行比对;根据比对结果,对所述第N级固件进行校验。
其中一种可能的实现方式中,所述待保护信息还包括第N+1级公钥的参考散列值。
其中一种可能的实现方式中,所述待保护信息还包括第N级固件的版本信息;所述待保护信息校验通过后,所述方法还包括:根据所述第N级固件的版本信息,对当前已安装的固件进行版本升级。
第二方面,本申请实施例提供一种固件校验装置,所述装置包括:第一获取模块,用于获取待校验的第N级固件包,所述第N级固件包中包含第N级固件以及第N级公钥;第二获取模块,用于获取所述第N级公钥的第一参考散列值,其中,当所述N的取值大于1时,从已校验的第N-1级固件包中获取所述第一参考散列值,当所述N的取值等于1时,从eFuse中获取所述第一参考散列值;第一校验模块,用于利用所述第一参考散列值对所述第N级公钥进行校验;第二校验模块,用于在所述第N级公钥校验通过后,利用所述第N级公钥对所述第N级固件进行校验。
第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的方法。
上述技术方案中,首先,可获取待校验的第N级固件包,第N级固件包中包含第N级固件以及第N级公钥。然后,可获取第N级公钥的第一参考散列值。其中,当N的取值大于1时,从已校验的第N-1级固件包中获取第一参考散列值,当N的取值等于1时,从eFuse中获取第一参考散列值。进而,可利用第一参考散列值对第N级公钥进行校验。第N级公钥校验通过后,可利用第N级公钥对第N级固件进行校验。从而,实现了对链式多级固件的安全校验。
【附图说明】
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种链式多级固件的结构示意图;
图2为本申请实施例提供的一种固件包的结构示意图;
图3为本申请实施例提供的一种固件校验方法的流程图;
图4为本申请实施例提供的另一种固件校验方法的流程图;
图5为本申请实施例提供的另一种固件校验方法的流程图;
图6为本申请实施例提供的另一种固件校验方法的流程图;
图7为本申请实施例提供的一种固件校验装置的结构示意图;
图8为本申请实施例提供的一种电子设备的示意图。
【具体实施方式】
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
图1为本申请实施例提供的一种链式多级固件的结构示意图。如图1所示,本申请实施例中,链式多级固件可包括呈现链式结构的n个固件。需要说明的是,图1仅为链式多级固件的一种示例性的结构示意图,在不同的实施例中,上述链式多级固件还可以呈现为存在多个链式分支的树状结构,本申请对此不做限制。
本申请实施例中,为实现对各级固件的安全校验,上述链式多级固件中的各级固件均打包为可支持本申请提供的固件校验方法的固件包。
图2为本申请实施例提供的一种固件包的结构示意图。如图2所示,每级固件包中可包含本级固件21、本级签名信息22、本级公钥23以及待保护信息24。
其中,本级签名信息22可以是利用预先分配给本级固件21的本级私钥,对待保护信息的散列值执行公钥加密算法生成的。本级公钥23可以是与预先分配给本级固件21的本级私钥相配对的公钥,用于在校验流程对本级签名信息22进行验签,从而解密出待保护信息的散列值。待保护信息24可进一步包括下一级公钥的散列值241、本级固件的散列值242以及本级固件的版本信息243等。
特别的,当本级固件为链式多级固件中的最后一级时,固件包的待保护信息24中不包含下一级公钥的散列值241。
进一步的,在另一实现方式中,上述固件包中还可包含证书信息以及固件信息(图2中未示出)。其中,证书指的是签名信息、待保护信息以及本级公钥的合集。证书信息可包括证书的偏移、类型、size等信息。固件信息可包括本级固件的size等信息。
需要说明的是,上述固件包中各个信息的散列值均是在生成固件包时,对相应的信息执行哈希算法计算得到、并打包在固件包内的。为了与本申请后续校验流程中计算得到的各个信息的散列值进行区分,在后续说明中,将存在于固件包中的各个散列值称为参考散列值,将校验流程中计算得到的各个信息的散列值称为校验散列值。
在对链式多级固件进行校验时,可使用本申请实施例提供的固件校验方法,依次对链式多级固件中的各个固件包进行安全校验。本申请对其中各个固件包的校验方法均相同。为方便描述,本申请实施例以第N级固件包为例,对本申请实施例提供的固件校验方法进行说明。N的取值为正整数。
本申请实施例所提供的固件校验方法可执行于配置有一次性可编程存储器eFuse的任意终端设备。
图3为本申请实施例提供的一种固件校验方法的流程图。如图3所示,上述固件校验方法可以包括:
步骤101,获取待校验的第N级固件包,第N级固件包中包含第N级固件以及第N级公钥。
本申请实施例中,可按照连接次序,依次获取链式多级固件中的各个固件包,并进行校验。
步骤102,获取第N级公钥的第一参考散列值。
本申请实施例中,各个固件包中均包含有下一级公钥的参考散列值。
在获取第N级公钥的第一参考散列值时,一种可能的情况中,N的取值大于1。此时,可从已校验的第N-1级固件包获取第N级公钥的第一参考散列值。由于第N-1级固件包已校验通过,因此,可保证其中包含的第N级公钥的第一参考散列值是可信的。
另一种可能的情况中,N的取值等于1。此时,可从可信任环境中读取第一级公钥的第一参考散列值。本申请实施例中,可信任环境可以是eFuse。基于eFuse一次写入不可更改的特性,可以保证第一级公钥的第一参考散列值是可信的。
步骤103,利用第N级公钥的第一参考散列值对第N级公钥进行校验。
具体的,在执行校验操作时,可利用哈希算法,计算第N级公钥的第一校验散列值。然后,可将计算得到的第一校验散列值、与前述得到的第N级公钥的第一参考散列值进行比对。如果比对结果一致,那么,可确定校验通过,第N级公钥可信。否则,可确定校验不通过,第N级公钥不可信。
步骤104,第N级公钥校验通过后,利用第N级公钥对第N级固件进行校验。
进一步的,确定第N级固件包中的第N级公钥可信后,可利用第N级公钥对第N级固件包中的第N级固件进行校验。
具体的,首先,可利用第N级公钥对第N级固件包中的签名信息进行解密,得到待保护信息的第二参考散列值。
然后,可根据待保护信息的第二参考散列值,对第N级固件包中的待保护信息进行校验。具体的,如图4所示,可以利用哈希算法,计算第N级固件包中待保护信息的第二校验散列值。然后,可将第二校验散列值与待保护信息的第二参考散列值进行比对。当比对结果一致时,可确定待保护信息校验通过。
进而,可根据校验通过的待保护信息,对第N级固件进行校验。
具体的,可利用待保护信息中第N级固件的第三参考散列值,对第N级固件进行校验。如图5所示,可利用哈希算法,计算第N级固件的第三校验散列值。然后,可将第三校验散列值与第N级固件的第三参考散列值进行比对。当比对结果一致时,可确定第N级固件校验通过。
在上述技术方案中,将第一级公钥的参考散列值写入可信任环境中,作为信任根。进而,可基于信任根构建可信的校验链,以各级公钥的参考散列值作为信任链的可信条件,实现了对链式多级固件的安全校验。
本申请另一实施例中,上述步骤104中对待保护信息校验通过之后,还可利用待保护信息中第N级固件的版本信息,对当前安装的第N级固件进行版本升级。
具体的,本申请实施例可在eFuse中存储当前安装的第N级固件的版本信息。执行版本升级时,如图6所示,可将待保护信息中第N级固件的版本信息Va与eFuse中存储的版本信息Vb进行比较。如果待保护信息中的版本信息Va小于eFuse中存储的版本信息Vb,那么,不对当前安装的第N级固件进行版本升级。如果待保护信息中的版本信息Va等于eFuse中存储的版本信息Vb,那么,可对当前安装的第N级固件进行版本升级。如果待保护信息中的版本信息Va大于eFuse中存储的版本信息Vb,那么,可升级当前安装的第N级固件,并更新eFuse中存储的版本信息Vb。
通过上述技术方案,可在固件升级过程中,防止固件的版本回退。
图7为本申请实施例提供的一种固件校验装置的结构示意图。如图7所示,本申请实施例提供的固件校验装置可以包括:第一获取模块71、第二获取模块72、第一校验模块73和第二校验模块74。
第一获取模块71,用于获取待校验的第N级固件包,第N级固件包中包含第N级固件以及第N级公钥。
第二获取模块72,用于获取第N级公钥的第一参考散列值,其中,当N的取值大于1时,从已校验的第N-1级固件包中获取第一参考散列值,当N的取值等于1时,从eFuse中获取第一参考散列值。
第一校验模块73,用于利用第一参考散列值对第N级公钥进行校验。
第二校验模块74,用于在第N级公钥校验通过后,利用第N级公钥对第N级固件进行校验。
在具体的实现过程中,第一校验模块73具体用于:计算第N级公钥的第一校验散列值;将第一校验散列值与第一参考散列值进行比对;根据比对结果,对第N级公钥进行校验。
在具体的实现过程中,第一校验模块73具体用于:如果比对结果一致,确定第N级公钥校验通过;如果比对结果不一致,确定第N级公钥校验失败。
在具体的实现过程中,第N级固件包中还包含签名信息,签名信息是对待保护信息的第二参考散列值执行公钥加密算法生成的;第二校验模块74具体用于:利用第N级公钥对所述签名信息进行解密,得到待保护信息的第二参考散列值;根据第二参考散列值,对待保护信息进行校验;待保护信息校验通过后,利用待保护信息对第N级固件进行校验。
在具体的实现过程中,待保护信息包括第N级固件的第三参考散列值;第二校验模块74具体用于:计算第N级固件的第三校验散列值;将第三校验散列值与第三参考散列值进行比对;根据比对结果,对第N级固件进行校验。
在具体的实现过程中,待保护信息还包括第N+1级公钥的参考散列值。
在具体的实现过程中,待保护信息还包括第N级固件的版本信息;上述装置还包括:升级模块75,用于根据第N级固件的版本信息,对当前安装的固件进行版本升级。
上述技术方案中,首先,第一获取模块71可获取待校验的第N级固件包,第N级固件包中包含第N级固件以及第N级公钥。然后,第二获取模块72可获取第N级公钥的第一参考散列值,其中,当N的取值大于1时,从已校验的第N-1级固件包中获取第一参考散列值,当N的取值等于1时,从eFuse中获取第一参考散列值。进而,第一校验模块73可利用第一参考散列值对第N级公钥进行校验。最后,第二校验模块74可在第N级公钥校验通过后,利用第N级公钥对第N级固件进行校验。从而,可实现对链式多级固件的安全校验。
图8为本申请实施例提供的一种电子设备的示意图,如图8所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本申请实施例提供的固件校验方法。
其中,上述电子设备可以为固件校验设备,本实施例对上述电子设备的具体形态不作限定。
图8示出了适于用来实现本申请实施方式的示例性电子设备的框图。图8显示的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,存储器430,通信接口420,连接不同***组件(包括存储器430和处理器410)的通信总线440。
通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及***组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器430可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read Only Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read Only Memory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与通信总线440相连。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本申请所描述的实施例中的功能和/或方法。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过通信接口420进行。并且,电子设备还可以通过网络适配器(图8中未示出)与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide AreaNetwork;以下简称:WAN)和/或公共网络,例如因特网)通信,上述网络适配器可以通过通信总线440与电子设备的其它模块通信。应当明白,尽管图8中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Drives;以下简称:RAID)***、磁带驱动器以及数据备份存储***等。
处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的固件校验方法。
本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质存储计算机指令,上述计算机指令使上述计算机执行本申请实施例提供的固件校验方法。
上述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable Programmable ReadOnly Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
需要说明的是,本申请实施例中所涉及的终端可以包括但不限于个人计算机(Personal Computer;以下简称:PC)、个人数字助理(Personal Digital Assistant;以下简称:PDA)、无线手持设备、平板电脑(Tablet Computer)、手机、MP3播放器、MP4播放器等。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种固件校验方法,其特征在于,包括:
获取待校验的第N级固件包,所述第N级固件包中包含第N级固件以及第N级公钥;
获取所述第N级公钥的第一参考散列值,其中,当所述N的取值大于1时,从已校验的第N-1级固件包中获取所述第一参考散列值,当所述N的取值等于1时,从一次性可编程存储器eFuse中获取所述第一参考散列值;
利用所述第一参考散列值对所述第N级公钥进行校验;
所述第N级公钥校验通过后,利用所述第N级公钥对所述第N级固件进行校验。
2.根据权利要求1所述的方法,其特征在于,利用所述第一参考散列值对所述第N级公钥进行校验,包括:
计算所述第N级公钥的第一校验散列值;
将所述第一校验散列值与所述第一参考散列值进行比对;
根据比对结果,对所述第N级公钥进行校验。
3.根据权利要求2所述的方法,其特征在于,根据比对结果,对所述第N级公钥进行校验,包括:
如果比对结果一致,确定所述第N级公钥校验通过;
如果比对结果不一致,确定所述第N级公钥校验失败。
4.根据权利要求1所述的方法,其特征在于,所述第N级固件包中还包含签名信息,所述签名信息是对待保护信息的第二参考散列值执行公钥加密算法生成的;利用所述第N级公钥对所述第N级固件进行校验,包括:
利用所述第N级公钥对所述签名信息进行解密,得到所述待保护信息的第二参考散列值;
根据所述第二参考散列值,对所述待保护信息进行校验;
所述待保护信息校验通过后,利用所述待保护信息对所述第N级固件进行校验。
5.根据权利要求4所述的方法,其特征在于,所述待保护信息包括第N级固件的第三参考散列值;利用所述待保护信息对所述第N级固件进行校验,包括:
计算所述第N级固件的第三校验散列值;
将所述第三校验散列值与所述第三参考散列值进行比对;
根据比对结果,对所述第N级固件进行校验。
6.根据权利要求5所述的方法,其特征在于,所述待保护信息还包括第N+1级公钥的参考散列值。
7.根据权利要求5所述的方法,其特征在于,所述待保护信息还包括第N级固件的版本信息;所述待保护信息校验通过后,所述方法还包括:
根据所述第N级固件的版本信息,对当前安装的固件进行版本升级。
8.一种固件校验装置,其特征在于,包括:
第一获取模块,用于获取待校验的第N级固件包,所述第N级固件包中包含第N级固件以及第N级公钥;
第二获取模块,用于获取所述第N级公钥的第一参考散列值,其中,当所述N的取值大于1时,从已校验的第N-1级固件包中获取所述第一参考散列值,当所述N的取值等于1时,从一次性可编程存储器eFuse中获取所述第一参考散列值;
第一校验模块,用于利用所述第一参考散列值对所述第N级公钥进行校验;
第二校验模块,用于在所述第N级公钥校验通过后,利用所述第N级公钥对所述第N级固件进行校验。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111563942.7A CN114253597A (zh) | 2021-12-20 | 2021-12-20 | 固件校验方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111563942.7A CN114253597A (zh) | 2021-12-20 | 2021-12-20 | 固件校验方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253597A true CN114253597A (zh) | 2022-03-29 |
Family
ID=80796051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111563942.7A Pending CN114253597A (zh) | 2021-12-20 | 2021-12-20 | 固件校验方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253597A (zh) |
-
2021
- 2021-12-20 CN CN202111563942.7A patent/CN114253597A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9418027B2 (en) | Secure boot information with validation control data specifying a validation technique | |
US20190278583A1 (en) | Method for updating firmware, terminal and computer readable non-volatile storage medium | |
EP3291122A1 (en) | Anti-rollback version upgrade in secured memory chip | |
US20080059799A1 (en) | Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms | |
US6928548B1 (en) | System and method for verifying the integrity of stored information within an electronic device | |
US11275835B2 (en) | Method of speeding up a full antivirus scan of files on a mobile device | |
CN112231702B (zh) | 应用保护方法、装置、设备及介质 | |
CN111291339A (zh) | 一种区块链数据的处理方法、装置、设备及存储介质 | |
US20200117439A1 (en) | Systems and Methods for Reinforced Update Package Authenticity | |
CN112148314B (zh) | 一种嵌入式***的镜像验证方法、装置、设备及存储介质 | |
CN112001376B (zh) | 基于开源组件的指纹识别方法、装置、设备及存储介质 | |
US20080313475A1 (en) | Methods and systems for tamper resistant files | |
CN115248919A (zh) | 一种函数接口的调用方法、装置、电子设备及存储介质 | |
CN110545542B (zh) | 基于非对称加密算法的主控密钥下载方法、装置和计算机设备 | |
US11601283B2 (en) | Message authentication code (MAC) based compression and decompression | |
US10243583B2 (en) | CPU error remediation during erasure code encoding | |
KR101482700B1 (ko) | 해시를 이용한 프로그램의 무결성 검증 방법 | |
CN116611087A (zh) | 基本输入输出***加密方法、装置、设备及存储介质 | |
CN113127262A (zh) | 镜像文件的生成方法、装置、电子设备及存储介质 | |
CN114253597A (zh) | 固件校验方法、装置和电子设备 | |
CN113515747B (zh) | 设备升级方法、装置、设备及存储介质 | |
CN112883397B (zh) | 数据存储方法、数据读取方法、装置、设备及存储介质 | |
CN110363000B (zh) | 识别恶意文件的方法、装置、电子设备及存储介质 | |
CN112800004A (zh) | 一种车牌算法库的控制方法、装置、设备和介质 | |
KR101893504B1 (ko) | 리눅스 환경에서 파일 무결성 검증 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |