[发明专利]一种基于统一可扩展固件接口的固件文件可信验证方法在审
| 申请号: | 202210155238.6 | 申请日: | 2022-02-21 |
| 公开(公告)号: | CN114528544A | 公开(公告)日: | 2022-05-24 |
| 发明(设计)人: | 张建标;张硕;韩现群;刘燕辉 | 申请(专利权)人: | 北京工业大学 |
| 主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F21/57;G06F21/64 |
| 代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 楼艮基 |
| 地址: | 100124 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 统一 扩展 接口 文件 可信 验证 方法 | ||
1.一种基于统一可扩展固件接口的固件文件可信验证方法,其特征在于,这是一种在UEFI BIOS系统可信启动全过程中保护固件文件模块在相互衔接的初始化准备阶段PEI和驱动程序执行环境阶段DXE的固件文件模块动态安全性的可信验证方法,是在一个固件文件可信验证系统中按如下步骤依次实现的,
步骤(1),系统构建,所述系统包括,一个PEI阶段的文件加载模块,简称PEI文件加载模块,一个DXE阶段文件加载模块,简称DXE文件加载模块,一个供上述两个文件加载模块共用且位于UEFI BIOS系统内的扩展度量模块以及一个受可信根基板管理控制器BMC主控制器CPUS控制的标准基准值表存储模块,其中:
标准基准值表存储模块模块,其中:标准基准值是将固件文件存储到所述标准基准值表时的初始基准值,每个固件文件的标准基准值有两个,一个是每一个UEFI的固件文件对应的全局唯一标识符GUID,用于唯一指认每一个被加载的固件文件;另一个为被加载固件文件的hash标准值,用于将其与当前被加载文件的hash计算值比对,以保证当前被加载固件文件的可信性;
扩展度量模块,其中包括:控制子模块,判定子模块,度量子模块及BMC通信模块,其中:
BMC通信模块,通过BMC中与UEFI的接口与BMC中的BMC主控制器CPUS互连,同时又与所述判定子模块相连,用于在对当前固件文件可信验证时,先后把所述标准基准值表中的GUID、hash标准值传送到所述判定子模块与当前固件文件的GUID与hash计算值对比,此外所述BMC通信模块又与所述控制子模块互连,以便控制子模块在完成PEI阶段的固件文件加载后经所述BMC主控制器CPUS向UEFI BIOS系统的主控制器发出请求激活DXE阶段的DXE核心,调用对应的接口开始加载DXE阶段需要加载的文件;
度量子模块,使用国密SM3算法作为hash值计算方法,将当前加载文件即当前固件文件的内容进行度量,得到当前加载文件的hash计算值,
判定子模块,先判断GUID,将当前加载文件的GUID与标准基准值表中的GUID值比对,若GUID比对通过,再将当前加载文件的hash计算值与标准基准值表中的hash标准值进行比对,并将GUID比对结果和hash值比对结果传递给控制子模块,
控制子模块,根据判定子模块的GUID与hash值比对结果,若二者皆比对通过,则允许文件加载模块加载该文件,反之,则拒绝文件加载模块加载该文件;
PEI文件加载模块,包括PEI调度器子模块和PEI文件入口子模块,其中:
PEI调度器子模块,所述的PEI调度器,是所述PEI阶段的PEI核心从数据包MdeModulePkg\Core\Pei\Dispatcher\Dispatcher.c中获得的接口,所述PEI调度器子模块包括以下执行步骤:
步骤1.PEI调度器把当前固件文件以PEI模块PEIM的形式加载,
步骤2.PEI调度器调用PEI加载映像接口PeiLoadImage获得PEI文件句柄PeimFileHandle结构体,以获得其中固件文件的GUID,并把GUID的值送往所述扩展度量模块中的判定子模块,
步骤3.所述PEI加载映像接口PeiLoadImage打开所述PEIM获取固件文件地址,送往文件入口子模块,从文件入口子模块获取固件文件内容,送往所述扩展度量模块中的度量子模块;
DXE阶段文件加载模块,包括DXE调度器子模块和DXE文件入口子模块,其中:
DXE调度器子模块,所述的DXE调度器,是所述DXE阶段的DXE核心从数据包MdeModulePkg\Core\Dxe\Dispatcher\Dispatcher.c中获得的接口,所述DXE调度器子模块包括以下执行步骤:
步骤1.DXE调度器根据预定队列mScheduledQueue的顺序加载固件文件,
步骤2.DXE调度器将当前加载固件文件从mScheduledQueue中读入驱动入口DriverEntry结构体,并从DriverEntry中获取当前固件文件的GUID,
步骤3.DXE调度器把当前固件文件的GUID送入所述扩展度量模块中的判定子模块,
步骤4.DXE调度器再经DXE加载映像接口CoreLoadImage,打开当前固件文件的映像句柄ImageHandle,获取当前固件文件地址,送往文件入口子模块,获取当前固件文件内容,送入所述扩展度量模块中的度量子模块;
步骤(2)依次按以下步骤实现基于统一可扩展固件接口UEFI的固件文件可信验证方法:
步骤(2.1)在PEI阶段:
步骤(2.1.1)PEI核心首先调用所述PEI调度器加载PEI固件文件,所述BMC通信模块在可信根BMC的主控制器控制下逐一地从标准基准值表存储模块中提取表中的GUID,送往判定子模块,同步地,所述文件加载模块把当前加载文件的GUID送往判定子模块,逐个地实现一对多的比较,若找到一个GUID的标准值与所述当前加载的固件文件的GUID度量值相同时,则证明当前文件具有可信验证的必要性,执行步骤(2.1.2),否则,拒绝加载当前文件,
步骤(2.1.2)若必要条件通过的那个当前加载文件同时也用步骤(2.1.1)所述方法满足了充分条件,即hash计算值与标准基准值表中相同的GUID对应的hash标准值相同,则系统必要又充分地实现了当前固件文件的可信验证,允许加载该文件,当控制子模块在完成PEI阶段的固件文件加载后经所述BMC主控制器CPUS向UEFI BIOS系统的主控制器发出请求激活DXE阶段的DXE核心;
步骤(2.2)在DXE阶段,按步骤(2.1)同样处理,在完成DXE阶段固件文件加载后,程序终止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210155238.6/1.html,转载请声明来源钻瓜专利网。





