CN114594975A - 固件管理方法、装置、存储介质及电子设备 - Google Patents
固件管理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114594975A CN114594975A CN202210261894.4A CN202210261894A CN114594975A CN 114594975 A CN114594975 A CN 114594975A CN 202210261894 A CN202210261894 A CN 202210261894A CN 114594975 A CN114594975 A CN 114594975A
- Authority
- CN
- China
- Prior art keywords
- firmware
- core
- storage unit
- target level
- configuration parameter
- 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/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
本申请提出一种固件管理方法、装置、存储介质及电子设备,应用于多核处理器,多核处理器包括运行于TEE侧的可信核和运行于REE侧的计算核,计算核处于第一目标等级,可信核处于第二目标等级,第二目标等级高于第一目标等级,在目标核获取到固件参数修改请求时,调用参数修改接口,以跳转至第三目标等级,跳转前的目标核为可信核或计算核中的任意一种,第三目标等级高于第二目标等级;在跳转前的目标核为运行于TEE侧的可信核时,依据固件参数修改请求中的待修改参数信息,完成固件参数更新,更新后的固件参数作为重启时的启动配置参数。避免出现REE侧的计算核运行的操作***的权限被破解,固件参数被恶意修改的可能性。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种固件管理方法、装置、存储介质及电子设备。
背景技术
固件(Firmware)一般存储于设备的FLASH芯片中,固件是担任***最基础、最底层工作的软件,操作***需要通过固件才能按照标准的设备驱动协议实现特定机器的运行动作。在硬件设备中,固件就是硬件设备的灵魂,例如部分硬件设备除了固件以外没有其他软件,因此固件也就决定着硬件设备的功能和性能。应理解,固件是为控制硬件设备所设计的。固件包括BIOS(基出输入/输出***)和UEFI(统一可扩展固件接口。
在计算机中,BIOS(基出输入/输出***)或UEFI(统一可扩展固件接口)是计算机上电后第一个启动的程序,是设备内部保存的设备驱动程序。以BIOS为例,BIOS可以与硬件交互,并检查它是否有任何错误。BIOS可以调用bootloader程序,以唤醒沉睡在硬盘驱动器内的操作***,并将操作***放入随机存取存储器中。由此可知,固件在设备运行过程中扮演者十分重要的角色。
因此,固件的管理也成为了本领域技术人员持续关注的难题。
发明内容
本申请的目的在于提供一种固件管理方法、装置、存储介质及电子设备,以至少部分改善上述问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种固件管理方法,所述方法应用于多核处理器,所述多核处理器包括运行于TEE侧的可信核和运行于REE侧的计算核,所述多核处理器中配置有软件类型的参数修改接口,所述计算核处于第一目标等级,所述可信核处于第二目标等级,所述第二目标等级高于所述第一目标等级,所述方法包括:
在目标核获取到固件参数修改请求时,调用所述参数修改接口,以跳转至第三目标等级,其中,跳转前的目标核为所述可信核或所述计算核中的任意一种,所述第三目标等级高于所述第二目标等级;在跳转前的目标核为运行于所述TEE侧的可信核时,依据所述固件参数修改请求中的待修改参数信息,完成固件参数更新,其中,更新后的固件参数作为重启时的启动配置参数。
本申请实施例提供的固件管理方法可以直接进行线上更新,更新步骤简单、更新效率高、更新成本低、缩减调试时间并且应用场景更广阔。并且,在跳转前的目标核为运行于TEE侧的可信核时,依据固件参数修改请求中的待修改参数信息,完成固件参数更新。在跳转前的目标核为运行于REE侧的计算核时,不更新固件参数。计算核处于第一目标等级,可信核处于第二目标等级,第二目标等级高于第一目标等级,应理解,处于第二目标等级的可信核运行的操作***(Trust OS)的root权限被破解的可能性低于处于第一目标等级的计算核运行的操作***(Guest OS)的root权限被破解的可能性。即使REE侧的操作***(Guest OS)的root权限被破解,也不更新固件参数,降低固件参数被恶意修改的可能性。固件参数的正确性对于设备能否正常运行,起着关键性的作用。为了进一步提升固件参数的安全性,限定了只有处于跳转后的第三目标等级(高于第二目标等级)才可以依据固件参数修改请求中的待修改参数信息,完成固件参数更新。从而避免出现REE侧的操作***(GuestOS)的root权限被破解后,固件参数被随意更改的情况。可选地,所述多核处理器还包括第一存储单元和第二存储单元,所述可信核分别与所述第一存储单元和所述第二存储单元相连;其中,所述第一存储单元用于存储所述固件参数,所述第二存储单元用于作为运行内存;所述固件参数包括至少一个配置参数列表,所述待修改参数信息包括列表标识、偏移地址以及更新内容,所述依据所述固件参数修改请求中的待修改参数信息,完成固件参数更新,包括:
将第一存储单元中的所述至少一个配置参数列表提取至第二存储单元中;依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新;将更新后的所述至少一个配置参数列表写入所述第一存储单元中。
应理解,在一次固件参数更新的过程中,可能只会涉及部分配置参数列表,通过列表标识和偏移地址可以快速确定需要更新参数的列表中的替换,从而避免对所有的配置参数列表进行调整,减少了调整工作量。
可选地,所述依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新,包括:依据所述列表标识和所述偏移地址确定待替换内容;将所述待替换内容替换为所述更新内容,以完成所述第二存储单元中的所述至少一个配置参数列表的更新。从而快速准确的完成至少一个配置参数列表的更新。
可选地,在所述依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新之后,所述方法还包括:依据更新后的所述至少一个配置参数列表生成校验码;将所述校验码写入所述第一存储单元中;其中,所述校验码用于在所述至少一个配置参数列表被调用时,对所述至少一个配置参数列表进行验证。通过校验码进一步提升固件参数的安全性,在固件参数被篡改时,可以及时发现固件参数发生了不合理的变化。
可选地,在所述依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新之后,所述方法还包括:依据更新后的所述至少一个配置参数列表生成校验码;
所述将更新后的所述至少一个配置参数列表写入所述第一存储单元中,包括:对更新后的所述至少一个配置参数列表和所述校验码进行配对,生成参数文件;将所述参数文件写入所述第一存储单元中。
通过参数文件对至少一个配置参数列表和所述校验码进行配对,便于后续调用,避免分开调用至少一个配置参数列表和所述校验码进行配对。
可选地,所述对所述至少一个配置参数列表进行验证包括:对调用得到的至少一个配置参数列表进行解算,以获得对应的验证码;在所述验证码与所述校验码匹配的情况下,确定所述至少一个配置参数列表通过验证;在所述验证码与所述校验码不匹配的情况下,报错。保障了固件参数的合理性,避免篡改后的固件参数影响固件启动。
第二方面,本申请实施例提供一种固件管理装置,所述装置应用于多核处理器,所述多核处理器包括运行于TEE侧的可信核和运行于REE侧的计算核,所述多核处理器中配置有软件类型的参数修改接口,所述计算核处于第一目标等级,所述可信核处于第二目标等级,所述第二目标等级高于所述第一目标等级,所述装置包括:
接收单元,用于接收固件参数修改请求;
处理单元,用于在目标核获取到固件参数修改请求时,调用所述参数修改接口,以跳转至第三目标等级,其中,跳转前的目标核为所述可信核或所述计算核中的任意一种,所述第三目标等级高于所述第二目标等级;
所述处理单元,还用于在跳转前的目标核为运行于所述TEE侧的可信核时,依据所述固件参数修改请求中的待修改参数信息,完成固件参数更新,其中,更新后的固件参数作为重启时的启动配置参数。
可选地,所述处理单元还用于在跳转前的目标核为运行于所述REE侧的计算核时,不更新固件参数。
可选地,所述多核处理器包括第一存储单元和第二存储单元,所述可信核分别与所述第一存储单元和所述第二存储单元相连;其中,所述第一存储单元用于存储所述固件参数,所述第二存储单元用于作为运行内存;所述固件参数包括至少一个配置参数列表,所述待修改参数信息包括列表标识、偏移地址以及更新内容;
所述处理单元还用于将第一存储单元中的所述至少一个配置参数列表提取至第二存储单元中;依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新;将更新后的所述至少一个配置参数列表写入所述第一存储单元中,以完成所述固件参数更新。
第三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的固件管理方法。
第四方面,本申请实施例提供一种电子设备,所述电子设备包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现上述的固件管理方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的等级架构示意图;
图2为本申请实施例提供的片上***示意图;
图3为本申请实施例提供的固件管理方法的流程示意图;
图4为本申请实施例提供的第一存储单元、第二存储单元与可信性核的连接关系示意图;
图5为本申请实施例提供的S103的子步骤示意图;
图6为本申请实施例提供的S103-2的子步骤示意图;
图7为本申请实施例提供的固件管理方法的流程示意图之一;
图8为本申请实施例提供的验证过程示意图;
图9为本申请实施例提供的启动固件组成示意图;
图10为本申请实施例提供的S103-4的子步骤示意图;
图11为本申请实施例提供的固件管理装置的单元示意图;
图12为本申请实施例提供的电子设备的结构示意图。
图中:10-处理器;11-存储器;12-总线;13-通信接口;301-接收单元;302-处理单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
随着移动通信和互联网技术的飞速发展,智能设备在各个领域扮演着越来越重要的角色。智能设备都会用到通用的操作***(Guest OS)。然而由于部分黑客能够破解智能设备的root权限,进而盗取用户数据或其他关键信息,造成数据的泄露和滥用。因此,如何保障数据的安全越来越重要。为了消除这类威胁,可在***中提供一个相对可信赖的运行环境(Trusted Execution Environment,TEE)运行相对安全的操作***(Trust OS),使用户的关键数据或应用在相对可信赖的环境中运行。如此,即便通用的操作***被攻破,入侵者也无法直接获取用户的重要信息。
为了提供一个安全的运行环境,Arm从Armv6的架构开始引入了TrustZone技术。TrustZone是Arm一套可信框架。在此框架中,Arm核将配合安全扩展组件,将片上***(System on Chip,SoC)的硬件和软件资源划分为安全世界和非安全世界,当处理器核处于安全世界时,只能运行可信执行环境TEE侧的代码,且具有访问通用执行环境REE(RichExecution Environment)侧地址空间的访问权限。当处理器核处于非安全世界时,只能运行REE侧的代码。
在一种可能的实现方式中,采用执行等级(Execution Level,EL)EL0—EL3来定Arm核的运行等级,其中EL0—EL2等级分为安全世界(TEE侧)(Secure world)和正常世界(REE侧)(Normal world),如图1所示。
EL0为用户模式,运行应用程序。
EL1为操作***内核模式(OS Kernel mode),运行操作***,分为在正常世界(REE侧)运行的通用操作***(Guest OS)(等级为EL1)和在安全世界(TEE侧)运行的可信操作***(Trust OS)(等级为S-EL1)。在实际应用中,本申请实施例提出的第一目标等级相当于等级EL1,第二目标等级相当于等级S-EL1。
EL2为虚拟机监视器模式,运行虚拟机。
EL3为TrustZone monitor mode,运行安全管理,负责处理器安全世界和正常世界的切换。而SMC(secure monitor call,安全监控模式调用)指令交互主要指CPU调用SMC指令在可信执行环境和通用执行环境间切换,并通过CPU通用寄存器传递参数。实际应用中,本申请实施例提出的第三目标等级相当于等级EL3。
应理解,第二目标等级高于第一目标等级,第三目标等级高于第二目标等级。
如图2所示,片上***包括多核处理器(即图2中的核1至核n),多核处理器包括运行于TEE侧的可信核和运行于REE侧的计算核。需要说明的是,每一个核都均有可配的运行态,即可信态(表示核运行于TEE侧)和计算态(表示核运行于REE侧)。每一个核的运行态是可变的,例如图2中的核1当前为运行于REE侧的计算核,在其运行态发生变化时,核1可以改变为运行于TEE侧的可信核。计算核处于第一目标等级,可信核处于第二目标等级,第二目标等级高于第一目标等级。
可选地,多核处理器中配置有软件类型的参数修改接口,参数修改接口可以为SMC接口,用于实现更新固件参数。
需要说明的是,多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时,处理器能支持***总线上的多处理器核,由总线控制器提供所有总线控制信号和命令信号。本申请实施例中,多核处理器至少包括一个主核(运行于REE侧的计算核)和一个运行于TEE侧的可信核,当然地,多核处理中的可信核和计算核的数量均可以大于或等于1,当计算核的数量大于1时,其中一个计算核作为主核,其他的计算核作为从核。
主核,上电时只允许主核工作,进行一系列初始化,并在EL3启可信核,而后主核运行处在REE环境的Guest OS。可信核:处在TEE环境,启核成功后运行Trust OS。软件部分***需包含双***,即运行在REE的Guest OS和运行在TEE的Trust OS。
正如前文所述的,在***中提供一个相对可信赖的运行环境(Trusted ExecutionEnvironment,TEE)运行相对安全的操作***(Trust OS),使用户的关键数据或应用在相对可信赖的环境中运行。而固件在设备运行过程中也扮演者十分重要的角色。如何在该场景下,对固件进行管理,是本申请所想要解决的技术问题。
本申请实施例提供的一种多核处理器,可以包括但不限于应用于如图2所示的片上***,具体的流程,请参考图3,固件管理方法的实现步骤可以包括:S101、S102、S103以及S104,下面对其进行具体阐述。
S101,在目标核获取到固件参数修改请求时,调用参数修改接口,以跳转至第三目标等级。
其中,跳转前的目标核为可信核或计算核中的任意一种。跳转前的计算核处于第一目标等级,可信核处于第二目标等级,第二目标等级高于第一目标等级,第三目标等级高于第二目标等级。
应理解,可信核和计算核(包括主核和从核)均可以获取固件参数修改请求。固件参数修改情况可以为用户通过人机交互设备输入的或其他终端通过通信网络传输的。
应理解,不论目标核是运行于TEE侧的可信核或运行于REE侧的计算核,在跳转后,目标核运行于TEE侧。
S102,确定跳转前的目标核的运行态。
运行态包括可信态(表示核运行于TEE侧)和计算态(表示核运行于REE侧)。正如前文所记载的,TEE侧相对于REE侧的运行环境更加安全。
S103,在跳转前的目标核为运行于TEE侧的可信核时,依据固件参数修改请求中的待修改参数信息,完成固件参数更新。
其中,更新后的固件参数作为重启时的启动配置参数。
应理解,在多核处理器启动时,固件运行时需要调用一系列的启动配置参数。
S104,在跳转前的目标核为运行于REE侧的计算核时,不更新固件参数。
可选地,若跳转前的目标核为运行于REE侧的计算核,则表示固件参数修改请求属于非法调用请求,可以直接丢弃,也可以进行报警,提示用户:固件参数正被非法修改。
应理解,固件参数包括固件运行时需要用到的一系列的重要参数,当固件参数被恶意篡改时,会影响固件运行,从而可能导致设备启动失败。因此,需要保障固件参数安全性,当获取到固件参数修改请求,并跳转至第三目标等级时,需要确定跳转前的目标核的运行态。在跳转前的目标核为运行于TEE侧的可信核时,依据固件参数修改请求中的待修改参数信息,完成固件参数更新。在跳转前的目标核为运行于REE侧的计算核时,不更新固件参数。应理解,计算核处于第一目标等级,可信核处于第二目标等级,第二目标等级高于第一目标等级,应理解,处于第二目标等级的可信核运行的操作***(Trust OS)的root权限被破解的可能性低于处于第一目标等级的计算核运行的操作***(Guest OS)的root权限被破解的可能性。即使REE侧的操作***(Guest OS)的root权限被破解,也不更新固件参数,降低固件参数被恶意修改的可能性。正如前文所述,固件参数的正确性对于设备能否正常运行,起着关键性的作用。为了进一步提升固件参数的安全性,限定了只有处于跳转后的第三目标等级(高于第二目标等级)才可以依据固件参数修改请求中的待修改参数信息,完成固件参数更新。从而避免出现REE侧的操作***(Guest OS)的root权限被破解后,固件参数被随意更改的情况。
需要说明的是,S103和S104之间的“和/或”关系,即本申请实施例提供的固件管理方法可以同时包含S103和S104,或者,仅包含S103和S104中的任一步骤,若包含S103,则不包含S104,若包含S104,则不包含S103,以上均属于本申请实施例提供的可能的实现方式。
在一种可能的实现方式中,在开发调试阶段,开发人员可能需频繁更新存于flash芯片的启动固件,或者固件发布后,可能需要对固件升级。一种固件更新方式是线下烧写flash,如果是flash芯片,需要将flash芯片取下来,再放入烧录器烧录,烧录完成后再将flash芯片放回去,重新启动,烧录时间长,浪费大量时间;或者开发调试阶段可使用flash仿真器,烧录快,但价格昂贵,且只能用于开发调试,实际应用还是需要flash芯片。
相对于上述的更新方式,本申请实施例提供的固件管理方法可以直接进行线上更新,更新步骤简单、更新效率高、更新成本低、缩减调试时间并且应用场景更广阔。并且,在跳转前的目标核为运行于TEE侧的可信核时,依据固件参数修改请求中的待修改参数信息,完成固件参数更新。在跳转前的目标核为运行于REE侧的计算核时,不更新固件参数。即使REE侧的操作***(Guest OS)的root权限被破解,也不更新固件参数,降低固件参数被恶意修改的可能性。从而避免出现REE侧的操作***(Guest OS)的root权限被破解后,固件参数被随意更改的情况,进一步保障了固件参数的安全性。
综上所述,本申请实施例提供了一种固件管理方法,应用于多核处理器,多核处理器包括运行于TEE侧的可信核和运行于REE侧的计算核,多核处理器中配置有软件类型的参数修改接口,计算核处于第一目标等级,可信核处于第二目标等级,第二目标等级高于第一目标等级,包括:在目标核获取到固件参数修改请求时,调用参数修改接口,以跳转至第三目标等级,跳转前的目标核为可信核或计算核中的任意一种,第三目标等级高于第二目标等级;在跳转前的目标核为运行于TEE侧的可信核时,依据固件参数修改请求中的待修改参数信息,完成固件参数更新,更新后的固件参数作为重启时的启动配置参数。本申请实施例提供的固件管理方法可以直接进行线上更新,更新步骤简单、更新效率高、更新成本低、缩减调试时间并且应用场景更广阔。
可选地,在完成固件参数更新之后,固件管理方法还包括:重新启动固件。应理解,重新启动后的配置参数就是修改后的固件参数了。
可选地,多核处理器还包括第一存储单元和第二存储单元。第一存储单元和第二存储单元可以为图2中的安全内存、共享内存以及普通内存中的任意一种。可选地,第一存储单元为安全内存,第二存储单元为共享内存或普通内存。
例如,第一存储单元为FLASH闪存,FLASH闪存是属于内存器件的一种,"Flash"。闪存则是一种非易失性(Non-Volatile)内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。第二存储单元为运行内存。
请参考图4,在运行于TEE侧的可信核分别与第一存储单元和第二存储单元相连;其中,第一存储单元用于存储固件参数,第二存储单元用于作为运行内存;固件参数包括至少一个配置参数列表,待修改参数信息包括列表标识、偏移地址以及更新内容的情况下,关于图3中的S103,本申请实施例还提供了一种可能的实现方式,请参考图5,S103包括:S103-1、S103-2以及S103-4,下面对其进行具体阐述。
S103-1,将第一存储单元中的至少一个配置参数列表提取至第二存储单元中。
可选地,可以将启动配置数据(例如配置的频率)固定为一个格式固定的列表,称之为配置参数列表。固件参数以配置参数列表的形式存储于第一存储单元。在一种可能的实现方式中,配置参数列表的数量大于或等于1,每一个配置参数列表分别用于存储对应的固件参数。
可选地,至少一个配置参数列表存储于第一存储单元的第一指定地址区间内。在固件启动时,可以第一指定地址区间提取至少一个配置参数列表,从而完成参数配置。
因为,任何flash器件(第一存储单元)的写操作都只能在空或者已擦除的单元内进行,所以更新固件参数时需要先将第一存储单元中的至少一个配置参数列表提取至第二存储单元中。
S103-2,依据列表标识、偏移地址以及更新内容对第二存储单元中的至少一个配置参数列表进行更新。
可选地,列表标识可以为索引号,用于指示存储有需要更新的参数的列表,偏移地址表示需要更新的参数与该列表的头部地址或尾部地址之间的偏移距离,更新内容可以为新的值。
应理解,在一次固件参数更新的过程中,可能只会涉及部分配置参数列表,通过列表标识和偏移地址可以快速确定需要更新参数的列表中的替换,从而避免对所有的配置参数列表进行调整,减少了调整工作量。
S103-4,将更新后的至少一个配置参数列表写入第一存储单元中。
可选地,在S103-4之前,需要将第一存储单元中原存储的至少一个配置参数列表擦除,再将更新后的至少一个配置参数列表写入第一存储单元中,以完成固件参数更新。
关于图5中的S103-2,本申请实施例还提供了一种可能的实现方式,请参考图6,S103-2包括:S103-2A和S103-2B,下面对其进行具体阐述。
S103-2A,依据列表标识和偏移地址确定待替换内容。
可选地,首先依据列表标识确定需要调整的配置参数列表,例如表K;其次,通过偏移地址确定表K中的目标地址区间,目标地址区间对应的内容即为待替换内容。
S103-2B,将待替换内容替换为更新内容,以完成第二存储单元中的至少一个配置参数列表的更新。
可选地,更新后的至少一个配置参数将被写入第一存储单元中,以完成固件参数更新。
在图5的基础上,关于如何进一步提升固件参数的安全性,本申请实施例还提供了一种可能的实现方式,请参考图7,在S103-2之后,固件管理方法还包括:S105和S106,下面对其进行具体阐述。
S105,依据更新后的至少一个配置参数列表生成校验码。
可选地,调用预先配置的校验码生成规则(例如哈希算法),对更新后的至少一个配置参数列表进行处理,从而生成校验码。应理解,在黑客通过破解***的方式对固件参数进行修改时,因为其不了解校验码生成规则,将无法对校验码进行适应性调整,甚至其可能会遗漏校验码。
其中,校验码用于在至少一个配置参数列表被调用时,对至少一个配置参数列表进行验证。关于校验码验证的过程,请参考下文图8中的表述。
S106,将校验码写入第一存储单元中。
可选地,校验码存储于第一存储器中的第二指定地址区间,第二指定地址区间可以与第一指定地址区间相邻,也可以不相邻,在此不做限定。
可选地,在S106之前,还需要将第一存储单元中的第二指定地址区间原存储的校验码进行擦除,再更新后的配置参数列表对应的校验码写入第二指定地址区间。
可选地,请参考图8,对至少一个配置参数列表进行验证的步骤,包括:S201、S202、S203以及S204,下面对其进行阐述。
S201,对调用得到的至少一个配置参数列表进行解算,以获得对应的验证码。
可选地,在上电启动固件时,需要从第一存储单元中提取的配置参数列表和对应的校验码。再依据预先配置的验证码解算规则对配置参数列表进行处理,从而生成验证码。需要说明书的,验证码解算规则与校验码生成规则对应,二者可以相同,也可以不同。
S202,确定验证码与校验码是否匹配。若是,则执行S203;若否,则执行S204。
可选地,当验证码与校验码的匹配度大于预设的匹配度阈值,即可确定验证码与校验码匹配。其中,匹配度阈值可以为95%或者100%,可以根据应用场景进行提前设定。
应理解,当通过本申请实施例提供的固件管理方法更新固件参数时,校验码也会对应更改,调用固件参数时,所生成的验证码与第一存储单元中的校验码应该是匹配的,此时表示验证通过,即执行S203,可以通过获取到的固件参数,完成固件启动。当出现验证码与校验码不匹配的情况时,表示固件参数可能被恶意篡改,此时不能进行固件启动,所以需要进行报错,即执行S204。通过这一实现方式,可以提高固件的安全性。
S203,确定至少一个配置参数列表通过验证。
可选地,在通过验证后,采用参数接口中获取本次执行需要配置的参数配置进行一系列初始化,启核,加载Trust OS镜像起Trust OS,加载Guest OS镜像起Guest OS。
S204,报错。
请参考图9,关于第一存储单元(Flash芯片)中存储的启动固件组成部分,本申请实施例还提供了一种可能的实现方式。如图9所示,启动固件组成包括:固件(Firmware,为上电启动后运行的第一个程序),参数文件以及OS镜像。参数文件包括所有配置参数列表(为固件运行时需要调用的一系列的重要参数,如配置的频率等)和校验码。
在图5的基础上,关于如何进一步提升固件参数的安全性,本申请实施例还提供了一种可能的实现方式,请参考图10,在S103-2之后,S103还包括:S103-3,S103-4包括:S103-4A和S103-4B,下面对其进行具体阐述。
S103-3,依据更新后的至少一个配置参数列表生成校验码。
具体地,与前文中S105同理。
S103-4A,对更新后的至少一个配置参数列表和校验码进行配对,生成参数文件。
可选地,配对生成的参数文件。应理解,每一个配置参数列表可以分别对应不同的校验码,也可以是至少一个配置参数列表共同对应一个校验码。参数文件可以包括多个配置参数列表、多个校验码以及配置参数列表与校验码之间的对应关系,也可以是包括多个配置参数列表和一个校验码,此处不多加限定。
S103-4B,将参数文件写入第一存储单元中。
可选地,将参数文件写入第一存储单元的第三指定地址区间。在S103-4B之前,需要对第一存储单元的第三指定地址区间进行擦除,从而擦掉原存储的参数文件。
应理解地,至少一个配置参数列表和校验码配对的参数文件存储至第一存储单元后,在调取参数文件时,可以同时获取到至少一个配置参数列表和校验码,而不需要分开2次调取,简化了固件参数的获取过程。
请参阅图11,图11为本申请实施例提供的一种固件管理装置,可选的,该固件管理装置被应用于上文所述的多核处理器。
固件管理装置包括:接收单元301和处理单元302。
接收单元301,用于接收固件参数修改请求;
处理单元302,用于在目标核获取到固件参数修改请求时,调用参数修改接口,以跳转至第三目标等级,其中,跳转前的目标核为可信核或计算核中的任意一种,第三目标等级高于第二目标等级;
处理单元302,还用于在跳转前的目标核为运行于TEE侧的可信核时,依据固件参数修改请求中的待修改参数信息,完成固件参数更新,其中,更新后的固件参数作为重启时的启动配置参数。
可选地,处理单元302,还用于在跳转前的目标核为运行于REE侧的计算核时,不更新固件参数。
可选地,多核处理器包括第一存储单元和第二存储单元,可信核分别与第一存储单元和第二存储单元相连;其中,第一存储单元用于存储固件参数,第二存储单元用于作为运行内存;固件参数包括至少一个配置参数列表,待修改参数信息包括列表标识、偏移地址以及更新内容;
处理单元302,还用于将第一存储单元中的至少一个配置参数列表提取至第二存储单元中;依据列表标识、偏移地址以及更新内容对第二存储单元中的至少一个配置参数列表进行更新;将更新后的至少一个配置参数列表写入第一存储单元中。
可选地,处理单元302可以执行上述的S101-S106。
需要说明的是,本实施例所提供的固件管理装置,其可以执行上述方法流程实施例所示的方法流程,以实现对应的技术效果。为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
本申请实施例还提供了一种存储介质,该存储介质存储有计算机指令、程序,该计算机指令、程序在被读取并运行时执行上述实施例的固件管理方法。该存储介质可以包括内存、闪存、寄存器或者其结合等。
下面提供一种电子设备,该电子设备包括如图2所示的多核处理器,可以实现上述的固件管理方法;具体的,请参考图12,该电子设备包括:多核处理器10,存储器11、总线12。多核处理器10可以是CPU。存储器11用于存储一个或多个程序,当一个或多个程序被多核处理器10执行时,执行上述实施例的固件管理方法。
如图12所示,电子设备包括多核处理器10、存储器11、总线12。多核处理器10、存储器11通过总线12连接,多核处理器10用于执行存储器11中存储的可执行模块,例如计算机程序。
存储器11可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
总线12可以是ISA(Industry Standard Architecture)总线、PCI(PeripheralComponent Interconnect)总线或EISA(Extended Industry Standard Architecture)总线等。图7中仅用一个双向箭头表示,但并不表示仅有一根总线12或一种类型的总线12。
存储器11用于存储程序,例如固件管理装置对应的程序。固件管理装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中或固化在电子设备的操作***(operating system,OS)中的软件功能模块。多核处理器10在接收到执行指令后,执行所述程序以实现固件管理方法。
可能地,本申请实施例提供的电子设备还包括通信接口13。通信接口13通过总线与多核处理器10连接。电子设备可以通过通信接口13与其他终端进行交互。
应当理解的是,图12所示的结构仅为电子设备的部分的结构示意图,电子设备还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。图12中所示的各组件可以采用硬件、软件或其组合实现。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种固件管理方法,其特征在于,所述方法应用于多核处理器,所述多核处理器包括运行于TEE侧的可信核和运行于REE侧的计算核,所述多核处理器中配置有软件类型的参数修改接口,所述计算核处于第一目标等级,所述可信核处于第二目标等级,所述第二目标等级高于所述第一目标等级,所述方法包括:
在目标核获取到固件参数修改请求时,调用所述参数修改接口,以跳转至第三目标等级,其中,跳转前的目标核为所述可信核或所述计算核中的任意一种,所述第三目标等级高于所述第二目标等级;
在跳转前的目标核为运行于所述TEE侧的可信核时,依据所述固件参数修改请求中的待修改参数信息,完成固件参数更新,其中,更新后的固件参数作为重启时的启动配置参数。
2.如权利要求1所述的固件管理方法,其特征在于,所述方法还包括:
在跳转前的目标核为运行于所述REE侧的计算核时,不更新固件参数。
3.如权利要求1所述的固件管理方法,其特征在于,所述多核处理器还包括第一存储单元和第二存储单元,所述可信核分别与所述第一存储单元和所述第二存储单元相连;其中,所述第一存储单元用于存储所述固件参数,所述第二存储单元用于作为运行内存;所述固件参数包括至少一个配置参数列表,所述待修改参数信息包括列表标识、偏移地址以及更新内容,所述依据所述固件参数修改请求中的待修改参数信息,完成固件参数更新,包括:
将第一存储单元中的所述至少一个配置参数列表提取至第二存储单元中;
依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新;
将更新后的所述至少一个配置参数列表写入所述第一存储单元中。
4.如权利要求3所述的固件管理方法,其特征在于,在所述依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新之后,所述方法还包括:
依据更新后的所述至少一个配置参数列表生成校验码;
将所述校验码写入所述第一存储单元中;其中,所述校验码用于在所述至少一个配置参数列表被调用时,对所述至少一个配置参数列表进行验证。
5.如权利要求4所述的固件管理方法,其特征在于,所述对所述至少一个配置参数列表进行验证包括:
对调用得到的至少一个配置参数列表进行解算,以获得对应的验证码;
在所述验证码与所述校验码匹配的情况下,确定所述至少一个配置参数列表通过验证;
在所述验证码与所述校验码不匹配的情况下,报错。
6.一种固件管理装置,其特征在于,所述装置应用于多核处理器,所述多核处理器包括运行于TEE侧的可信核和运行于REE侧的计算核,所述多核处理器中配置有软件类型的参数修改接口,所述计算核处于第一目标等级,所述可信核处于第二目标等级,所述第二目标等级高于所述第一目标等级,所述装置包括:
接收单元,用于接收固件参数修改请求;
处理单元,用于在目标核获取到固件参数修改请求时,调用所述参数修改接口,以跳转至第三目标等级,其中,跳转前的目标核为所述可信核或所述计算核中的任意一种,所述第三目标等级高于所述第二目标等级;
所述处理单元,还用于在跳转前的目标核为运行于所述TEE侧的可信核时,依据所述固件参数修改请求中的待修改参数信息,完成固件参数更新,其中,更新后的固件参数作为重启时的启动配置参数。
7.如权利要求6所述的固件管理装置,其特征在于,所述处理单元还用于在跳转前的目标核为运行于所述REE侧的计算核时,不更新固件参数。
8.如权利要求6所述的固件管理装置,其特征在于,所述多核处理器包括第一存储单元和第二存储单元,所述可信核分别与所述第一存储单元和所述第二存储单元相连;其中,所述第一存储单元用于存储所述固件参数,所述第二存储单元用于作为运行内存;所述固件参数包括至少一个配置参数列表,所述待修改参数信息包括列表标识、偏移地址以及更新内容;
所述处理单元还用于将第一存储单元中的所述至少一个配置参数列表提取至第二存储单元中;依据所述列表标识、所述偏移地址以及所述更新内容对所述第二存储单元中的所述至少一个配置参数列表进行更新;将更新后的所述至少一个配置参数列表写入所述第一存储单元中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
10.一种电子设备,其特征在于,包括:多核处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述多核处理器执行时,实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210261894.4A CN114594975A (zh) | 2022-03-16 | 2022-03-16 | 固件管理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210261894.4A CN114594975A (zh) | 2022-03-16 | 2022-03-16 | 固件管理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114594975A true CN114594975A (zh) | 2022-06-07 |
Family
ID=81808908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210261894.4A Pending CN114594975A (zh) | 2022-03-16 | 2022-03-16 | 固件管理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114594975A (zh) |
-
2022
- 2022-03-16 CN CN202210261894.4A patent/CN114594975A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776488B2 (en) | Extend root of trust to include firmware of individual components of a device | |
JP6318425B2 (ja) | リードオンリメモリのブートコードパッチ | |
US11281768B1 (en) | Firmware security vulnerability verification service | |
US11762987B2 (en) | Systems and methods for hardening security systems using data randomization | |
US20190236279A1 (en) | Perform security action based on inventory comparison | |
CN101276389B (zh) | 单个物理可信平台模块内的多个逻辑可信平台模块的分离 | |
CN114462051A (zh) | 一种基于可信计算环境的可信计算***及方法 | |
WO2012038211A1 (en) | Attesting use of an interactive component during a boot process | |
CN110162429B (zh) | ***修复方法、服务器及存储介质 | |
EP3138041A1 (en) | Verified boot | |
CN115017497B (zh) | 信息处理方法、装置及存储介质 | |
WO2016062146A1 (zh) | 序列号信息的更新方法、装置及终端 | |
US20170154184A1 (en) | Operating system agnostic validation of firmware images | |
CN111177703B (zh) | 操作***数据完整性的确定方法及装置 | |
CN113946854A (zh) | 一种文件访问控制方法、装置及计算机可读存储介质 | |
US20230359741A1 (en) | Trusted boot method and apparatus, electronic device, and readable storage medium | |
US11520891B1 (en) | Secure boot of an integrated circuit | |
CN113448681B (zh) | 一种虚拟机监控器公钥的注册方法、设备和存储介质 | |
CN116339908A (zh) | 虚拟机启动方法、装置、计算机设备和存储介质 | |
CN114594975A (zh) | 固件管理方法、装置、存储介质及电子设备 | |
US11822668B2 (en) | Systems and methods for authenticating configurations of an information handling system | |
CN111158771B (zh) | 处理方法、装置及计算机设备 | |
CN112054895A (zh) | 可信根构建方法及应用 | |
CN112784276A (zh) | 可信度量的实现方法及装置 | |
CN117234544B (zh) | 服务器设备进行***恢复的方法和装置 |
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 |