CN112099855B - 一种信息处理方法、电子设备和计算机存储介质 - Google Patents
一种信息处理方法、电子设备和计算机存储介质 Download PDFInfo
- Publication number
- CN112099855B CN112099855B CN202010778033.4A CN202010778033A CN112099855B CN 112099855 B CN112099855 B CN 112099855B CN 202010778033 A CN202010778033 A CN 202010778033A CN 112099855 B CN112099855 B CN 112099855B
- Authority
- CN
- China
- Prior art keywords
- embedded
- firmware
- embedded firmware
- signature verification
- result
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种信息处理方法,该方法包括:在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息;从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息;确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果;确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。本申请的实施例同时还公开了一种电子设备和计算机存储介质。
Description
技术领域
本申请涉及但不限于计算机技术领域,尤其涉及一种信息处理方法、电子设备和计算机存储介质。
背景技术
当前电子设备的安全问题日益受到人们的关注,黑客以及病毒的攻击不单单限定在操作系统及软件层面,针对硬件固件(Hardware firmware)的攻击也变得越发频繁,且无法被杀毒软件识别、有效查杀。故而,如何确保系统开启运行的第一条执行指令的有效性已成为亟待解决的问题。
发明内容
本申请实施例期望提供一种信息处理方法、电子设备和计算机存储介质。
本申请的技术方案是这样实现的:
一种信息处理方法,所述方法包括:
在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息;
从所述嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息;
确定所述第一加密信息与所述第二加密信息匹配,获取对所述第一嵌入式固件进行签名校验的第一结果;
确定所述第一结果表征对所述第一嵌入式固件进行签名校验通过,执行所述第一嵌入式固件,并通过固件系统引导操作系统启动。
在上述方案中,所述获取对所述第一嵌入式固件进行签名校验的第一结果之前,所述方法包括:
确定所述嵌入式闪存中不存在所述第一嵌入式固件,获取对第一外存储器中的第二嵌入式固件进行签名校验的第二结果;
确定所述第二结果表征对所述第二嵌入式固件进行签名校验通过,将所述第二嵌入式固件复制到所述嵌入式闪存中。
在上述方案中,所述确定所述第一结果表征对所述第一嵌入式固件进行签名校验通过之后,所述方法包括:
获取对第一外存储器中的第二嵌入式固件进行签名校验的第三结果;
获取所述第二嵌入式固件对应的版本信息;
确定所述第三结果表征对所述第二嵌入式固件进行签名校验通过,且所述版本信息符合目标版本信息,基于所述第二嵌入式固件更新所述嵌入式闪存中的嵌入式固件;
相应的,执行所述第一嵌入式固件包括:执行所述嵌入式闪存中更新后的嵌入式固件。
在上述方案中,所述获取所述第二嵌入式固件对应的版本信息之后,所述方法包括:
确定所述第三结果表征对所述第二嵌入式固件进行签名校验未通过,和/或所述版本信息不符合目标版本信息,执行所述第一嵌入式固件,并通过所述固件系统引导操作系统启动。
在上述方案中,所述获取对所述第一嵌入式固件进行签名校验的第一结果之前,所述方法还包括:
获取对所述嵌入式闪存中的第三嵌入式固件进行签名校验的第三结果;
确定所述第三结果表征对所述第三嵌入式固件进行签名校验未通过,获取对所述嵌入式闪存中的第四嵌入式固件进行签名校验的第四结果,所述第四嵌入式固件作为所述第三嵌入式固件的备份固件;
确定所述第四结果表征对所述第四嵌入式固件进行签名校验通过,基于所述第四嵌入式固件更新所述嵌入式闪存中的第三嵌入式固件,更新后的第三嵌入式固件为所述第一嵌入式固件。
在上述方案中,所述通过所述固件系统引导操作系统启动,包括:
获取对所述固件系统的区域中的第一文件进行签名校验的第五结果;
确定所述第五结果表征对所述第一文件进行签名校验通过,通过所述固件系统引导操作系统启动。
在上述方案中,所述获取对所述固件系统的区域中的第一文件进行签名校验的第五结果之后,所述方法包括:
确定所述第五结果表征对所述第一文件进行签名校验未通过,基于第二外存储器中的第二文件更新所述固件系统的区域中的第一文件,所述第二文件作为所述第一文件的备份文件,所述第二外存储器与所述第一外存储器不同。
在上述方案中,所述从所述嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息之后,所述方法包括:
确定所述第一加密信息与所述第二加密信息不匹配,生成提示信息并输出所述提示信息,所述提示信息用于提示所述第一加密信息被篡改。
一种电子设备,所述电子设备包括:处理器、存储器、嵌入式控制器和通信总线;
所述通信总线用于实现处理器、存储器和嵌入式控制器之间的通信连接;
所述处理器用于执行存储器中存储的信息处理程序,以实现上述的信息处理方法的步骤。
一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个控制器响应,以实现上述的信息处理方法的步骤。
本申请实施例所提供的信息处理方法、电子设备和计算机存储介质,在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息;从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息;确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果;确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动;也就是说,在电子设备上电后,确定第一加密信息与第二加密信息匹配即确定第一加密信息没有被篡改,并且在对第一嵌入式固件进行签名校验通过的情况下,才执行第一嵌入式固件进而通过固件系统引导操作系统启动,由此形成一条信任链,保证整个系统开启运行的第一条执行指令的固件的有效性,从而确保整个系统的安全性。
附图说明
图1为本申请的实施例提供的信息处理方法的流程示意图一;
图2为本申请的实施例提供的信息处理方法的流程示意图二;
图3为本申请的实施例提供的信息处理方法的流程示意图三;
图4为本申请的实施例提供的信息处理方法的流程示意图四;
图5为本申请的实施例提供的信息处理方法的流程示意图五;
图6为本申请的实施例提供的电子设备的结构示意图一;
图7为本申请的实施例提供的信息处理方法的流程示意图六;
图8为本申请的实施例提供的电子设备的结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请的实施例提供一种信息处理方法,应用于电子设备,参照图1所示,该方法包括以下步骤:
步骤101、在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息。
本申请实施例中,嵌入式控制器内部固化的代码可以称为只读存储器代码(Read-Only Memory Code,ROM Code),ROM Code包括启动引导程序(Boot Loader),Boot Loader是在操作系统内核运行之前运行的一段小程序。通过这段小程序,初始化硬件设备,将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。本申请中嵌入式控制器包括但不限于传统的嵌入式控制器(Embedded Controller,EC),或者结合了输入输出功能以及嵌入式控制器的功能的控制器(Embedded controller SuperInput/Output,ESIO)。为了便于说明,本申请后续以嵌入式控制器为传统的EC为例进行描述。
这里,ROM Code可以固化在EC的嵌入式闪存(Embed Flash)中。
在电子设备上电后,电子设备执行ROM Code以读取给EC固件(Firmware,FW)加密的第一加密信息;这里,读取第一加密信息可以确定第一加密信息是否被篡改。示例性的,第一加密信息包括公钥(Pub-key);电子设备在上电后执行EC内部固化的ROM Code,在确定用于私钥签名对应的Pub-key没有被篡改的情况下,才讲控制权交给EC执行后续操作。
需要说明的是,本申请利用硬件固化技术将ROM Code固化到嵌入式控制器内部,确保执行的ROM code是存硬件逻辑,黑客和病毒是无法改变硬件逻辑的特性确保运行的根的安全性。
步骤102、从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息。
本申请实施例中,一次性可编程(One Time Programmable,OTP)模块中预先写入的第二加密信息被烧入OTP模块后将不可再次更改和清除。第二加密信息的作用是验证第一加密信息是否被篡改,例如验证用于私钥签名的Pub-key没有被篡改。
这里,第二加密信息包括原始设备制造商(Original Equipment Manufacturer,OEM)在工厂出货之前烧入OTP模块中的加密信息,例如公钥的第一哈希值,即OEM KeyHash。
步骤103、确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果。
本申请实施例中,电子设备基于先校验后运行的策略,先确定第一加密信息与第二加密信息匹配,进一步的,再对第一EC FW进行签名校验,得到对第一嵌入式固件进行签名校验的第一结果。
步骤104、确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
本申请实施例中,电子设备确定第一结果表征对第一嵌入式固件进行签名校验通过的情况下,才将控制权交给EC,执行第一嵌入式固件,之后再将控制权交给固件系统,通过固件系统引导操作系统启动。
固件系统是能引导操作系统启动的系统。固件系统包括固定电子设备如个人计算机(Personal Computer,PC)的基本输入输出系统(Basic Input Output System,BIOS),统一的可扩展固件接口系统(Unified Extensible Firmware Interface,UEFI)、可扩展固件接口系统(Extensible Firmware Interface,EFI)等。
由上述可知,在一种实施例中,本申请的信息处理方法可以形成如下的一条信任链:ROM(Boot Loader)—OEM Pub-key—EC—BIOS,信任链上的一环扣一环的信任根都是通过硬件实现的,不仅保证整个系统开启运行的第一条执行指令的固件的有效性,而且确保每一环的有效性,从而确保整个系统的安全性。
本申请实施例所提供的信息处理方法,在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息;从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息;确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果;确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动;也就是说,在电子设备上电后,确定第一加密信息与第二加密信息匹配即确定第一加密信息没有被篡改,并且在对第一嵌入式固件进行签名校验通过的情况下,才执行第一嵌入式固件进而通过固件系统引导操作系统启动,由此形成一条信任链,信任链上的一环扣一环的信任根都是通过硬件实现的,不仅保证整个系统开启运行的第一条执行指令的固件的有效性,而且确保每一环的有效性,从而确保整个系统的安全性。
本申请的实施例提供一种信息处理方法,应用于电子设备,参照图2所示,该方法包括以下步骤:
步骤201、在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息。
步骤202、从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息。
步骤203、确定第一加密信息与第二加密信息匹配。
步骤204、确定嵌入式闪存中不存在第一嵌入式固件,获取对第一外存储器中的第二嵌入式固件进行签名校验的第二结果。
本申请实施例中,电子设备在确定第一加密信息与第二加密信息匹配的情况下,将控制权交给嵌入式控制器。接下来,电子设备通过嵌入式控制器确定其内部的嵌入式闪存中是否存在第一嵌入式固件,若嵌入式闪存中不存在第一嵌入式固件,获取对第一外存储器中的第二嵌入式固件进行签名校验的第二结果。
电子设备的存储器分为内部存储器和外部存储器。内部存储器包括嵌入式控制器上的存储器,外部存储器包括第一外部存储器。存储在第一外存储器中的第二嵌入式固件用于更新嵌入式闪存中的嵌入式固件,或者在嵌入式闪存中不存在嵌入式固件的情况下,将第一外部存储器中的嵌入式固件写入嵌入式闪存中。
在一些实施例中,第一外部存储器包括串行外围设备接口(Serial PeripheralInterface,SPI)Flash,第一SPI Flash是一种长寿命的非易失性的存储器,在断电情况下仍能保持所存储的数据信息,支持读写、擦除等操作。
步骤205、确定第二结果表征对第二嵌入式固件进行签名校验通过,将第二嵌入式固件复制到嵌入式闪存中。
本申请实施例中,电子设备确定对第一外存储器中的第二嵌入式固件进行签名校验通过的情况下,将第二嵌入式固件复制到嵌入式闪存中,此时,嵌入式闪存中就有了第一嵌入式固件。当然,在执行复制嵌入式固件到嵌入式闪存的过程中,不仅可以复制得到第一嵌入式固件,还可以复制得到一份第一嵌入式固件的备份固件。
需要说明的是,本申请其他实施例中,电子设备一旦发现第一EC FW被篡改,也可以通过自恢复auto recovery(自恢复)技术利用事先备份好用户恢复的image实现自救援。
步骤206、获取对第一嵌入式固件进行签名校验的第一结果。
步骤207、确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请的实施例提供一种信息处理方法,应用于电子设备,参照图3所示,该方法包括以下步骤:
步骤301、在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息。
步骤302、从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息。
步骤303、确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果。
步骤304、确定第一结果表征对第一嵌入式固件进行签名校验通过,获取对第一外存储器中的第二嵌入式固件进行签名校验的第三结果。
本申请实施例中,电子设备确定第一结果表征对第一嵌入式固件进行签名校验通过,则电子设备确定第一嵌入式固件有效,进而获取对第一外存储器中的第二嵌入式固件进行签名校验的第三结果。
步骤305、获取第二嵌入式固件对应的版本信息。
本申请实施例中,第二嵌入式固件对应的版本信息是用于确定第一外部存储器中存储的第二嵌入式固件是否是最新版本的嵌入式固件。
步骤306、确定第三结果表征对第二嵌入式固件进行签名校验通过,且版本信息符合目标版本信息,基于第二嵌入式固件更新嵌入式闪存中的嵌入式固件,执行嵌入式闪存中更新后的嵌入式固件,通过固件系统引导操作系统启动。
本申请实施例中,电子设备确定第三结果表征对第二嵌入式固件进行签名校验通过,且版本信息符合目标版本信息,则说明第二嵌入式固件有效,且第二嵌入式固件比第一嵌入式固件的版本新,因此,电子设备基于第二嵌入式固件更新嵌入式闪存中的嵌入式固件,以确保电子设备执行的嵌入式闪存中的嵌入式固件是最新版本的,进一步的,电子设备通过固件系统引导操作系统启动。
步骤307、确定第三结果表征对第二嵌入式固件进行签名校验未通过,和/或版本信息不符合目标版本信息,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
本申请实施例中,电子设备确定第三结果表征对第二嵌入式固件进行签名校验未通过,和/或版本信息不符合目标版本信息,则说明嵌入式闪存中的第一嵌入式固件是最新的且有效的,则执行第一嵌入式固件,并通过固件系统引导操作系统启动。
需要说明的是,电子设备执行步骤306中的基于第二嵌入式固件更新嵌入式闪存中的嵌入式固件的步骤后,还可以执行全局重置(Global Reset)的操作,然后循环执行步骤301至步骤305,并且在满足步骤307中确定第三结果表征对第二嵌入式固件进行签名校验未通过,和/或版本信息不符合目标版本信息的情况下,执行嵌入式闪存中的第一嵌入式固件,并通过固件系统引导操作系统启动。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请的实施例提供一种信息处理方法,应用于电子设备,参照图4所示,该方法包括以下步骤:
步骤401、在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给代码加密的第一加密信息。
步骤402、从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息。
步骤403、确定第一加密信息与第二加密信息匹配,获取对嵌入式闪存中的第三嵌入式固件进行签名校验的第三结果。
步骤404、确定第三结果表征对第三嵌入式固件进行签名校验未通过,获取对嵌入式闪存中的第四嵌入式固件进行签名校验的第四结果,第四嵌入式固件作为第三嵌入式固件的备份固件。
本申请实施例中,嵌入式闪存中不仅存储有第三嵌入式固件,还存储有第三嵌入式固件的备份固件即第四嵌入式固件。在电子设备确定第三结果表征对第三嵌入式固件进行签名校验未通过,获取对嵌入式闪存中的第四嵌入式固件进行签名校验的第四结果。
步骤405、确定第四结果表征对第四嵌入式固件进行签名校验通过,基于第四嵌入式固件更新嵌入式闪存中的第三嵌入式固件,更新后的第三嵌入式固件为第一嵌入式固件。
本申请实施例中,电子设备确定第四结果表征对第四嵌入式固件进行签名校验通过,则基于第四嵌入式固件更新嵌入式闪存中的第三嵌入式固件,更新后的第三嵌入式固件为第一嵌入式固件。也就是说,在嵌入式闪存中备份的嵌入式固件有效的情况下,电子设备可以利用有效的备份固件快速地对嵌入式闪存中默认的嵌入式固件进行恢复,进而得到有效的第一嵌入式固件,以确保后续对第一嵌入式固件的验证能够通过。
步骤406、获取对第一嵌入式固件进行签名校验的第一结果。
步骤407、确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请的实施例提供一种信息处理方法,应用于电子设备,参照图5所示,该方法包括以下步骤:
步骤501、在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息。
步骤502、从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息。
步骤503、确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果。
步骤504、确定第一结果表征对第一嵌入式固件进行签名校验通过,获取对固件系统的区域中的第一文件进行签名校验的第五结果。
本申请实施例中,在电子设备确定对第一嵌入式固件进行签名校验通过的情况下,电子设备将对固件系统的安全性进行验证,获取对固件系统的区域中的第一文件进行签名校验的第五结果。
步骤505、确定第五结果表征对第一文件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
本申请实施例中,电子设备确定第五结果表征对第一文件进行签名校验通过,说明对固件系统的安全性验证通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
步骤506、确定第五结果表征对第一文件进行签名校验未通过,基于第二外存储器中的第二文件更新固件系统的区域中的第一文件,第二文件作为第一文件的备份文件,第二外存储器与第一外存储器不同。
本申请实施例中,电子设备确定第五结果表征对第一文件进行签名校验未通过,说明对固件系统的安全性验证未通过,那么,电子设备先基于第二外存储器中的第二文件更新固件系统的区域中的第一文件,确保更新后的第一文件进行签名校验能够通过,才将控制权交给固件系统。
这里,第二文件作为第一文件的备份文件;第二外存储器与第一外存储器不同,第二外存储器作为第一外存储器的备份,为第一外存储器提供备份文件。
本申请其他实施例中,在步骤502从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息之后,还可以执行如下步骤:确定第一加密信息与第二加密信息不匹配,生成提示信息并输出提示信息,提示信息用于提示第一加密信息被篡改。
这里,在电子设备确定第一加密信息与第二加密信息不匹配的情况下,生成提示信息并输出提示信息,提示信息用于提示第一加密信息被篡改。此时,电子设备不再执行后续操作,不会将控制权交给EC,保证系统的安全性。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种信息处理方法,该信息处理方法应用于电子设备,参见图6所示,该电子设备包括:嵌入式控制器EC61、总线控制器PCH62、SPI Flash63以及SPI FlashBackup64,EC61分别与PCH62、SPI Flash63以及SPI Flash Backup64连接,PCH62与SPIFlash63连接。其中,嵌入式控制器EC61上设置有嵌入式闪存Embed Flash、SRAM、BootLoader和OTP Pub-key Hash。Embed Flash中存储有Active EC FW和Backup EC FW。SPIFlash63中存储有Active EC FW和Active BIOS。SPI Flash Backup64中存储有BackupBIOS。
结合图6所示的结构,对本申请的信息处理方法进行进一步的说明,参见图7所示,该方法包括以下步骤:
步骤701、电子设备上电后,执行嵌入式控制器内部固化的代码;例如,电子设备执行ROM code was running的指令。
步骤702、电子设备读取OEM Pub-key;例如,电子设备执行Read OEM Pub-keyFrom EC Key manifest的指令,以得到OEM Pub-key。进一步的,电子设备还可以基于SHA256 Pub-key,确定OEM Pub-key对应的哈希值。
步骤703、电子设备读取OTP中的哈希值;例如,电子设备执行Read OEM key HashFrom OTP的指令,以得到OTP中的哈希值。
步骤704、电子设备判断读取到的OEM Pub-key是否有效;这里,电子设备比对OEMPub-key对应的哈希值与OTP中的哈希值是否一致,若OEM Pub-key对应的哈希值与OTP中的哈希值一致,则确定Pub-key有效valid;若OEM Pub-key对应的哈希值与OTP中的哈希值不一致,则确定Pub-key无效。
步骤705、电子设备判断Embed Flash中是否为空,即判断Embed Flash中是否存在嵌入式固件。
步骤706、电子设备确定Embed Flash中存在嵌入式固件的情况下,判断EmbedFlash中的嵌入式固件Active EC FW是否有效。
步骤707、电子设备确定Embed Flash中的Active EC FW有效的情况下,确定SPIFlash中存储的Active EC FW是否有效且SPI Flash中存储的Active EC FW的版本是否是最新的。
步骤708、电子设备确定SPI Flash中存储的Active EC FW无效,和/或,SPI Flash中存储的Active EC FW的版本不是最新的,则电子设备执行Embed Flash中的Active ECFW。
步骤709、电子设备判断对固件系统的区域中的文件进行签名校验是否通过,例如,电子设备执行All BIOS regions valid defined in system BIOS signature的指令。
步骤710、电子设备确定对固件系统的区域中的文件进行签名校验通过的情况下,通过EC向PCH发送Release RSMRST指令,通过BIOS引导操作系统启动。
本申请实施例中,该方法还包括,步骤705中电子设备确定Embed Flash中不存在嵌入式固件的情况下,电子设备转向执行步骤711、判断SPI Flash中存储的Active EC FW是否有效。
步骤712、电子设备确定SPI Flash中存储的Active EC FW有效的情况下,将SPIFlash中存储的Active EC FW复制到嵌入式闪存中,例如,电子设备执行copy/Upgrade ECFW to Embed Flash的指令。
需要说明的是,电子设备在执行步骤712之后,还可以转向执行步骤705。
步骤713、电子设备执行Global Reset的指令,然后,转向执行步骤701。
本申请实施例中,该方法还包括,步骤706中电子设备确定Embed Flash中的嵌入式固件Active EC FW无效的情况下,电子设备转向执行步骤714、电子设备确定EmbedFlash中的嵌入式固件Backup EC FW是否有效。
步骤715、电子设备确定Embed Flash中的嵌入式固件Backup EC FW有效的情况下,基于Embed Flash中存储的Backup EC FW恢复Embed Flash中Active EC FW。
步骤716、电子设备执行Global Reset的指令,然后,转向执行步骤701。
需要说明的是,电子设备在执行步骤715之后,还可以转向执行步骤706。
本申请实施例中,该方法还包括,步骤709中电子设备确定对固件系统的区域中的文件进行签名校验未通过的情况下,电子设备转向执行步骤717、电子设备基于SPI FlashBackup中存储的Backup BIOS恢复SPI Flash中的Active BIOS。
本申请实施例中,该方法还包括,步骤704中电子设备判断读取到的OEM Pub-key无效的情况下,电子设备将将程序挂起pending,不执行后续操作。
由上述可知,本申请利用硬件信任根(Root Of Trust)ROM Code技术的协处理器,此协处理器是整个系统接上电源之后最先响应并执行的处理器芯片,在PC上可以是EC,保证整个系统开启运行的第一条执行指令的FW有效性,从而确保整个系统的安全。本申请的信息处理方法具有如下有益效果:利用硬件固化技术确保执行的ROM code是存硬件逻辑,黑客和病毒是无法改变硬件逻辑的特性确保运行的根的安全性。通过可信任的硬件根,对接下来将会运行的FW实现先校验后运行的策略,确保FW的有效性,防止篡改;一旦发现FW被篡改,可以通过auto recovery技术利用事先备份好用户恢复的image实现自救援。该方法实现了对FW的保护,诊断和自恢复需求。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请的实施例提供一种电子设备,该电子设备可以应用于图1~5对应的实施例提供的一种信息处理方法中,参照图8所示,该电子设备8包括:处理器81、存储器82、嵌入式控制器83和通信总线84,其中:
通信总线84用于实现处理器81、存储器82和嵌入式控制器83之间的通信连接。
处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给代码加密的第一加密信息;
从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息;
确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果;
确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
在本申请的其他实施例中,处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
确定嵌入式闪存中不存在第一嵌入式固件,获取对第一外存储器中的第二嵌入式固件进行签名校验的第二结果;
确定第二结果表征对第二嵌入式固件进行签名校验通过,将第二嵌入式固件复制到嵌入式闪存中。
在本申请的其他实施例中,处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
获取对第一外存储器中的第二嵌入式固件进行签名校验的第三结果;
获取第二嵌入式固件对应的版本信息;
确定第三结果表征对第二嵌入式固件进行签名校验通过,且版本信息符合目标版本信息,基于第二嵌入式固件更新嵌入式闪存中的嵌入式固件;执行所述嵌入式闪存中更新后的嵌入式固件。
在本申请的其他实施例中,处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
确定第三结果表征对第二嵌入式固件进行签名校验未通过,和/或版本信息不符合目标版本信息,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
在本申请的其他实施例中,处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
获取对嵌入式闪存中的第三嵌入式固件进行签名校验的第三结果;
确定第三结果表征对第三嵌入式固件进行签名校验未通过,获取对嵌入式闪存中的第四嵌入式固件进行签名校验的第四结果,第四嵌入式固件作为第三嵌入式固件的备份固件;
确定第四结果表征对第四嵌入式固件进行签名校验通过,基于第四嵌入式固件更新嵌入式闪存中的第三嵌入式固件,更新后的第三嵌入式固件为第一嵌入式固件。
在本申请的其他实施例中,处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
获取对固件系统的区域中的第一文件进行签名校验的第五结果;
确定第五结果表征对第一文件进行签名校验通过,通过固件系统引导操作系统启动。
在本申请的其他实施例中,处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
确定第五结果表征对第一文件进行签名校验未通过,基于第二外存储器中的第二文件更新固件系统的区域中的第一文件,第二文件作为第一文件的备份文件,第二外存储器与第一外存储器不同。
在本申请的其他实施例中,处理器81用于执行存储器82中存储的信息处理程序,以实现以下步骤:
确定第一加密信息与第二加密信息不匹配,生成提示信息并输出提示信息,提示信息用于提示第一加密信息被篡改。
需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图1~5对应的实施例提供的信息处理方法中的实现过程,此处不再赘述。
本申请的实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如下步骤:
在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给代码加密的第一加密信息;
从嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息;
确定第一加密信息与第二加密信息匹配,获取对第一嵌入式固件进行签名校验的第一结果;
确定第一结果表征对第一嵌入式固件进行签名校验通过,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
确定嵌入式闪存中不存在第一嵌入式固件,获取对第一外存储器中的第二嵌入式固件进行签名校验的第二结果;
确定第二结果表征对第二嵌入式固件进行签名校验通过,将第二嵌入式固件复制到嵌入式闪存中。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
获取对第一外存储器中的第二嵌入式固件进行签名校验的第三结果;
获取第二嵌入式固件对应的版本信息;
确定第三结果表征对第二嵌入式固件进行签名校验通过,且版本信息符合目标版本信息,基于第二嵌入式固件更新嵌入式闪存中的嵌入式固件;
相应的,执行所述第一嵌入式固件包括:执行所述嵌入式闪存中更新后的嵌入式固件。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
确定第三结果表征对第二嵌入式固件进行签名校验未通过,和/或版本信息不符合目标版本信息,执行第一嵌入式固件,并通过固件系统引导操作系统启动。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
获取对嵌入式闪存中的第三嵌入式固件进行签名校验的第三结果;
确定第三结果表征对第三嵌入式固件进行签名校验未通过,获取对嵌入式闪存中的第四嵌入式固件进行签名校验的第四结果,第四嵌入式固件作为第三嵌入式固件的备份固件;
确定第四结果表征对第四嵌入式固件进行签名校验通过,基于第四嵌入式固件更新嵌入式闪存中的第三嵌入式固件,更新后的第三嵌入式固件为第一嵌入式固件。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
获取对固件系统的区域中的第一文件进行签名校验的第五结果;
确定第五结果表征对第一文件进行签名校验通过,通过固件系统引导操作系统启动。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
确定第五结果表征对第一文件进行签名校验未通过,基于第二外存储器中的第二文件更新固件系统的区域中的第一文件,第二文件作为第一文件的备份文件,第二外存储器与第一外存储器不同。
在本申请的其他实施例中,该一个或者多个程序可被一个或者多个处理器执行,还可以实现以下步骤:
确定第一加密信息与第二加密信息不匹配,生成提示信息并输出提示信息,提示信息用于提示第一加密信息被篡改。
需要说明的是,本实施例中处理器所执行的步骤的具体实现过程,可以参照图1~5对应的实施例提供的信息处理方法中的实现过程,此处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器响应的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上响应一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上响应的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (10)
1.一种信息处理方法,所述方法包括:
在电子设备上电后,执行嵌入式控制器内部固化的代码,以读取给嵌入式控制器上的第一嵌入式固件加密的第一加密信息;
从所述嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息,所述第二加密信息包括在所述电子设备出货之前烧入一次性可编程模块中的加密信息;
如果确定所述第一加密信息与所述第二加密信息匹配,则获取对所述第一嵌入式固件进行签名校验的第一结果;
如果确定所述第一结果表征对所述第一嵌入式固件进行签名校验通过,则执行所述第一嵌入式固件,并通过固件系统引导操作系统启动。
2.根据权利要求1所述的方法,所述获取对所述第一嵌入式固件进行签名校验的第一结果之前,所述方法包括:
如果确定所述嵌入式控制器内部的嵌入式闪存中不存在所述第一嵌入式固件,则获取对第一外存储器中的第二嵌入式固件进行签名校验的第二结果;
如果确定所述第二结果表征对所述第二嵌入式固件进行签名校验通过,则将所述第二嵌入式固件复制到所述嵌入式控制器内部的嵌入式闪存中。
3.根据权利要求1所述的方法,所述确定所述第一结果表征对所述第一嵌入式固件进行签名校验通过之后,所述方法包括:
获取对第一外存储器中的第二嵌入式固件进行签名校验的第三结果;
获取所述第二嵌入式固件对应的版本信息;
如果确定所述第三结果表征对所述第二嵌入式固件进行签名校验通过,且所述版本信息符合目标版本信息,则基于所述第二嵌入式固件更新所述嵌入式控制器内部的嵌入式闪存中的嵌入式固件;
相应的,执行所述第一嵌入式固件包括:执行所述嵌入式控制器内部的嵌入式闪存中更新后的嵌入式固件。
4.根据权利要求3所述的方法,所述获取所述第二嵌入式固件对应的版本信息之后,所述方法包括:
如果确定所述第三结果表征对所述第二嵌入式固件进行签名校验未通过,和/或所述版本信息不符合目标版本信息,则执行所述第一嵌入式固件,并通过所述固件系统引导操作系统启动。
5.根据权利要求1所述的方法,所述获取对所述第一嵌入式固件进行签名校验的第一结果之前,所述方法还包括:
获取对所述嵌入式控制器内部的嵌入式闪存中的第三嵌入式固件进行签名校验的第三结果;
如果确定所述第三结果表征对所述第三嵌入式固件进行签名校验未通过,则获取对所述嵌入式控制器内部的嵌入式闪存中的第四嵌入式固件进行签名校验的第四结果,所述第四嵌入式固件作为所述第三嵌入式固件的备份固件;
如果确定所述第四结果表征对所述第四嵌入式固件进行签名校验通过,则基于所述第四嵌入式固件更新所述嵌入式控制器内部的嵌入式闪存中的第三嵌入式固件,更新后的第三嵌入式固件为所述第一嵌入式固件。
6.根据权利要求2至4中任一项所述的方法,所述通过所述固件系统引导操作系统启动,包括:
获取对所述固件系统的区域中的第一文件进行签名校验的第五结果;
如果确定所述第五结果表征对所述第一文件进行签名校验通过,则通过所述固件系统引导操作系统启动。
7.根据权利要求6所述的方法,所述获取对所述固件系统的区域中的第一文件进行签名校验的第五结果之后,所述方法包括:
如果确定所述第五结果表征对所述第一文件进行签名校验未通过,则基于第二外存储器中的第二文件更新所述固件系统的区域中的第一文件,所述第二文件作为所述第一文件的备份文件,所述第二外存储器与所述第一外存储器不同。
8.根据权利要求1至5中任一项所述的方法,所述从所述嵌入式控制器上的一次性可编程模块中读取预先写入的第二加密信息之后,所述方法包括:
如果确定所述第一加密信息与所述第二加密信息不匹配,则生成提示信息并输出所述提示信息,所述提示信息用于提示所述第一加密信息被篡改。
9.一种电子设备,所述电子设备包括:处理器、存储器、嵌入式控制器和通信总线;
所述通信总线用于实现处理器、存储器和嵌入式控制器之间的通信连接;
所述处理器用于执行存储器中存储的信息处理程序,以实现如权利要求1至8中任一项所述的信息处理方法的步骤。
10.一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个控制器响应,以实现如权利要求1至8中任一项所述的信息处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010778033.4A CN112099855B (zh) | 2020-08-05 | 2020-08-05 | 一种信息处理方法、电子设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010778033.4A CN112099855B (zh) | 2020-08-05 | 2020-08-05 | 一种信息处理方法、电子设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112099855A CN112099855A (zh) | 2020-12-18 |
CN112099855B true CN112099855B (zh) | 2022-01-14 |
Family
ID=73749999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010778033.4A Active CN112099855B (zh) | 2020-08-05 | 2020-08-05 | 一种信息处理方法、电子设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112099855B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347332A (zh) * | 2017-06-06 | 2018-07-31 | 清华大学 | 验证固件签名的方法及装置 |
CN108595198A (zh) * | 2018-04-18 | 2018-09-28 | 南京方寸微电子科技有限公司 | 一种安全的固件更新方法 |
CN109766134A (zh) * | 2019-01-08 | 2019-05-17 | 四川虹微技术有限公司 | 系统启动方法、装置、电子设备及存储介质 |
CN111159717A (zh) * | 2019-12-25 | 2020-05-15 | 合肥联宝信息技术有限公司 | 一种用于电子设备的启动方法及装置 |
-
2020
- 2020-08-05 CN CN202010778033.4A patent/CN112099855B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347332A (zh) * | 2017-06-06 | 2018-07-31 | 清华大学 | 验证固件签名的方法及装置 |
CN108595198A (zh) * | 2018-04-18 | 2018-09-28 | 南京方寸微电子科技有限公司 | 一种安全的固件更新方法 |
CN109766134A (zh) * | 2019-01-08 | 2019-05-17 | 四川虹微技术有限公司 | 系统启动方法、装置、电子设备及存储介质 |
CN111159717A (zh) * | 2019-12-25 | 2020-05-15 | 合肥联宝信息技术有限公司 | 一种用于电子设备的启动方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112099855A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399339B (zh) | 一种基于安全芯片的可信启动方法 | |
US11520894B2 (en) | Verifying controller code | |
US9898368B1 (en) | Computing device with recovery mode | |
US9880908B2 (en) | Recovering from compromised system boot code | |
US9703635B2 (en) | Method, computer program, and computer for restoring set of variables | |
JP5014726B2 (ja) | 無許可のブートローダの実行を防止することによって安全性を高めた実行環境 | |
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
US11163886B2 (en) | Information handling system firmware bit error detection and correction | |
US20210149681A1 (en) | Secure Firmware Management with Hierarchical Boot Sequence using Last Known Good Firmware | |
TWI760805B (zh) | 具有雙重安全啟動之自動駕駛系統 | |
CN112181513B (zh) | 一种基于硬件板卡的控制主机系统引导的可信度量方法 | |
TWI760752B (zh) | 應用加速驗證映像檔方法的系統 | |
CN115543694A (zh) | Flash器件切换方法、装置、计算机设备和存储介质 | |
US20200159929A1 (en) | Basic input/output system updates | |
CN107657170B (zh) | 支持智能修复的可信加载启动控制系统和方法 | |
JP5465738B2 (ja) | システム・ファームウェアの更新方法およびコンピュータ | |
CN114692160A (zh) | 计算机安全可信启动的处理方法及装置 | |
CN112099855B (zh) | 一种信息处理方法、电子设备和计算机存储介质 | |
CN111597560A (zh) | 一种安全可信模组启动方法及系统 | |
CN116991622A (zh) | 一种可信dcs控制器系统无法启动时的恢复方法及系统 | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method | |
CN117193863B (zh) | 主机引导程序的启动方法、装置、系统和处理器 | |
US20170017794A1 (en) | Method and device for protecting a computing apparatus against manipulation | |
CN113051579A (zh) | 一种控制方法及装置 | |
EP3620944A1 (en) | Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |