CN112800429B - 一种基于基础性的uefi bios固件系统中驱动程序保护的方法 - Google Patents
一种基于基础性的uefi bios固件系统中驱动程序保护的方法 Download PDFInfo
- Publication number
- CN112800429B CN112800429B CN202110121999.5A CN202110121999A CN112800429B CN 112800429 B CN112800429 B CN 112800429B CN 202110121999 A CN202110121999 A CN 202110121999A CN 112800429 B CN112800429 B CN 112800429B
- Authority
- CN
- China
- Prior art keywords
- hard disk
- protocol stack
- trusted
- firmware
- driver
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000005259 measurement Methods 0.000 claims abstract description 70
- 230000006870 function Effects 0.000 claims abstract description 36
- 238000004891 communication Methods 0.000 claims description 42
- 238000013507 mapping Methods 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 20
- 108010028984 3-isopropylmalate dehydratase Proteins 0.000 claims description 13
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 7
- 238000011161 development Methods 0.000 claims description 4
- 238000005192 partition Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种基于基础性的UEFI BIOS固件系统中驱动程序保护的方法属于BIOS中固件文件驱动程序保护技术领域,其特征在于,基于现有的UEFI BIOS固件系统中硬盘文件协议栈驱动程序易受外来攻击的现实,基于驱动文件可信度量技术,同时提出了一个具有可信度量基准值储备功能的基础版BMC固件系统和一个既能度量现有UEFI BIOS系统闪存中硬盘文件协议栈驱动程序基准值,又能动态地量测可信启动时从所述固件文件系统中提取的所述驱动程序是否被攻击过的基础版UEFI BIOS固件系统,然后再借助于所述的基准值来判别对应文件协议栈驱动程序的动态度量值,就能判断出所述驱动文件再可信启动前是否被攻击过,从而达到了提前从固件层面对UEFI BIOS系统的块设备文件可信驱动检验的目的。
Description
技术领域:
基础版UEFI BIOS固件系统中保护驱动程序的方法属于UEFI BIOS系统驱动程序安全技术领域。
背景技术:
目前,在计算机应用领域,统一可扩展固件接口UEFI(下同)已经成为了主流基础输入输出系统BIOS(下同)实现方式并逐渐取代了传统BIOS,作为一个越来越成熟的BIOS系统,UEFI环境就包括了对硬盘文件加载和运行的功能,其中包括:在调试关键驱动程序时,可能需要把驱动文件放入硬盘并在UEFI环境中手动加载;操作系统启动需要经过UEFI环境,并在其中加载硬盘中的操作系统引导程序完成启动。在UEFI初始化完成后,可完整使用UEFI提供的系统功能,其中就包括了硬盘中的可扩展固件接口系统分区ESP(下同)分区数据操作。这块UEFI可访问到的硬盘空间上会存储一些UEFI编译过程中重要的可扩展固件接口可执行文件.efi(下同)文件,其中就包括了操作系统启动引导文件 start_kernel.efi这样的关键文件,因此如何在UEFI环境中安全的加载硬盘设备文件就成了关键问题。
因为在UEFI环境下访问硬盘文件,所以这些文件存在通过硬盘被篡改和通过UEFI文件系统被篡改的可能性。现有技术中有针对硬盘文件的硬件攻击方法,通过硬件手段修改硬盘中关键文件的内容起到注入木马程序的效果。还有一种现有技术中针对存放BIOS驱动程序的闪存flash(下同)芯片提出了一种攻击手段,其攻击原理为通过硬件手段和flash中数据存储格式,修改其中的驱动程序内容起到注入木马程序的效果。因为UEFI中访问硬盘文件需要经过UEFI文件系统协议栈,因此通过现有技术手段可修改协议栈相关驱动,从UEFI固件层面达到攻击效果。因此对于BIOS固件层面的块设备文件系统的可信验证是极其具有必要性的。
房强等在“基于固件文件系统的UEFI安全机制研究”一文中通过对UEFI安全威胁研究的分析与总结,提出了基于可信平台模块TPM(下同)的静态度量固件文件系统中驱动程序的方法。该方案以TPM为可信锚点,此信任根可根据如基板管理控制器BMC(下同)这样的底层硬件进行替代和改进;其次对于固件文件系统FFS(下同)中的驱动文件度量为静态度量过程,及在UEFI初始化阶段结束后再进行度量,这样就无法保证初始化过程中的安全性。段晨辉等在“UEFI BIOS安全增强机制及完整性度量的研究“一文中通过对UEFI启动阶段中信任链的设计和底层基于可信计算组织TCG(下同)的可信链构建方案,提出了在UEFI完整启动阶段过程中通过逐个阶段度量后面阶段的内容起到可信启动的效果。但该方案在整个度量过程中需要涉及到驱动加载准备阶段PEI阶段(下同)核心代码、所有PEI模块程序、驱动加载阶段DXE(下同)核心代码、DXE调度器代码、所有DXE驱动程序代码的度量工作,缺少对于特定如硬盘设备文件的固件文件系统的针对性安全验证,并且整个度量过程繁琐耗时,虽然做到了动态度量效果,但具有相当大的局限性,可行性不高。
专利公开号为CN 104573499 B专利名称为“一种基于UEFI的可执行程序文件保护系统和方法”的专利提出了一种通过UEFI固件层面的文件安全存储策略,来保证硬盘文件受到攻击和恶意篡改时可通过BIOS固件中的文件信息进行复原。但是该专利忽略了对于固件硬件平台的攻击可能性,无法保证固件中备份文件的安全性,即文件的硬件安全防护能力并不突出。
专利公开号为CN 110020562 A专利名称为“基于UEFI的硬盘全加密方法及装置”的专利提出了一种通过检测硬盘设备是否安全可信的机制完成硬盘文件的安全加载。但是该方案忽略了通过篡改BIOS固件中文件系统相关驱动达到修改硬盘文件的手段,一旦固件中的文件系统被恶意篡改,在UEFI环境中加载硬盘文件不存在可信而言。
大部分基于UEFI的文件加载方案,没有对固件层面的UEFI文件系统驱动可信度量的过程,无法保证固件层面针对硬盘文件内容的攻击;而且提出的固件驱动的度量局限于静态度量,无法做到真实运行环境中的动态度量。不能有效保证硬盘文件的可信性,不能保证UEFI环境中硬盘文件的安全加载。
发明内容:
本发明实例目的为提供一种基础性的UEFI BIOS固件系统中驱动程序保护的方法,用以解决现有技术中对硬盘文件访问时,UEFI文件系统协议栈驱动程序容易受到BIOS闪存flash硬件的攻击,安全性和实用性不高的缺点。
基础版UEFI BIOS固件系统中保护驱动程序的方法,其特征在于,是一种针对现有的基础版UEFI BIOS固件系统在对硬盘文件访问时防止非法人员借助硬件手段或用现有的UEFI BIOS固件系统的硬件闪存中的数据存储格式来修改所述闪存中的驱动程序,尤其是UEFI文件系统协议栈的驱动程序,而提出的一种保护驱动程序的方法,是在一个由具有可信驱动度量功能,以下简称可信度量功能的基础版UEFI BIOS固件系统和一个起辅助可信度量作用的BMC固件系统彼此连接而成的基础版UEFI BIOS固件系统的驱动程序保护系统,以下简称系统,其中依次按以下步骤实现:
步骤(1),系统构建:
步骤(1.1),构建一个基础版BMC固件系统:
它是把具有辅助可信度量作用的基准值存储模块和BIOS通信模块组合集成到现有的BMC固件系统中而构成的,所述的现有的BMC固件系统包括一个 BMC处理器CPUBMC以下简称CPUBMC,和一个BMC固件文件系统存储模块,所述的基准值是指下述四种硬盘文件协议栈驱动程序的可信度量基准值,在集合而成的基础版BMC固件系统中,所述基准值存储模块与BIOS通信模块互连,所述CPUBMC分别与所述基准值存储模块和BIOS通信模块互连,以便把在 CPUBMC控制下取出的烧写在BMC闪存中的所述基准值存储模块和BIOS通信模块加载到BMC芯片中,并把相关文件复制到固件文件系统中,
所述四种硬盘文件协议栈驱动程序是指用全局标识信息GUID作为各自前缀的:硬盘接口驱动程序AtaatapiPassThruDxe,硬盘分区驱动程序PartitionDxe,硬盘输入输出驱动程序DiskIoDxe,硬盘文件系统驱动程序FileSysDxe,
所述四种硬盘文件驱动程序是在产品出厂时烧入到所述现有的UEFI BIOS 系统闪存中的,各自配有自己的全局标识信息GUID;
步骤(1.2),构建基础版UEFI BIOS固件系统:
这是一个在现有的UEFI BIOS固件系统中集成了一个具有可信度量功能的可信度量模块组合后形成的基础版UEFI BIOS固件系统,其中:
现有的UEFI BIOS固件系统是由UEFI BIOS固件系统处理器CPUU.B,以下简称CPUU.B,以及UEFI BIOS固件文件系统组成,
所述可信度量模块组合由基准值存储模块、BMC通信模块、动态可信度量计算模块、驱动程序可信度量值顺序映射模块以及固件文件系统访问模块组成,其中:
动态可信度量值计算模块,在CPUU.B控制下,既能把在现有的UEFI BIOS 系统中闪存内的四种所述,各自带有全局标识信息的硬盘文件协议栈驱动程序用可信度量顺序号-GUID-在硬盘文件协议栈驱动程序三个参数依次串接而成的映射表送到动态可信度量值计算模块,计算出四种所述各自带有全局标识信息的硬盘文件协议栈驱动程序的基准值,也能把在后继的存储在固件文件系统里的硬盘文件协议栈驱动程序在依照可信启动过程中按上述步骤计算得到的动态可信度量值,送往CPUU.B,
BMC通信模块,既能把所述动态可信度量值计算模块计算出的对应于四种硬盘文件协议栈驱动程序的四个基准值通过基础版BMC固件系统中的UEFI BIOS通信模块传送到基准值存储模块,也能在CPUU.B控制下反向把四个所述基准值按可信度量值计算的顺序号逐个取出,经基准值缓存模块缓存后,按可信度量顺序,由CPUU.B逐个地判别动态度量值与基准值是否相等来判断各所述硬盘文件协议栈地可信驱动程序地安全可靠性以便从固件层面对硬盘文件中地协议栈驱动程序进行保护;
步骤(2),系统初始化:
动态可信度量值计算模块初始化设置由:
BIOS可扩展开发工具集EDKII中地读取固件文件的工具,以便分别获取到四个所述硬盘问及那协议栈驱动程序的特征值,
加解密数据库OpenSSL,以便利用其中的散列函数SHA1把CPUU.B从基础版UEFIBIOS系统的闪存中提取到的各硬盘文件协议栈驱动程序的可执行程序即二进制文件,用散列函数SHA1扩展成对应的摘要值列以形成基准值,如果某一个硬盘文件协议栈驱动程序被非法人员利用硬件手段或数据存储格式进行了篡改,则得到的是其在可信驱动度量过程中的动态可信度量值,而不是基准值,
BMC通信模块,存储有发给BIOS通信模块的所述四种硬盘文件协议栈驱动程序各自的全局标识号GUID-基准值的映射表、统一的可扩展接口IPMI协议、 KCS键盘控制访问模式、发给CPUU.B的全局标识号GUID-动态可信度量值映射表;
BIOS通信模块,设有所述IPMI协议;
驱动程序可信度量值顺序映射模块,设有:可信度量顺序号-全局标识号-硬盘文件协议栈驱动程序名称;
CPUU.B设有:可信度量顺序号-全局标识号GUID-硬盘文件协议栈驱动程序名称;
步骤(3),基础版UEFI BIOS固件系统计算四种所述硬盘文件协议栈驱动程序的可信驱动度量基准值,以下简称基准值,并由BMC通信模块发送到基础版 BMC固件系统中的基准值存储模块,并由CPUBMC复制到BMC固件文件系统,同时也烧入到BMC闪存中,步骤如下:
步骤(3.1),CPUU.B从所述基础版UEFI BIOS系统闪存中调取四种已预先烧入的四种带有GUID标识的硬盘文件协议栈驱动程序并输入到UEFI BIOS固件文件系统存储模块中;
步骤(3.1.2),CPUU.B通过所述UEFI BIOS固件文件访问模块从所述UEFI BIOS固件文件系统存储模块取出四种所述硬盘文件协议栈程序输入到所述驱动程序可信度量值顺序映射模块中,形成可信度量顺序号-全局标识号GUID-硬盘文件协议栈驱动程序映射表,输入到动态可信度量值计算模块中;
步骤(3.1.3),所述动态可信度量值计算模块按步骤(2)中系统初始化过程中提出的基准值计算方法,取四个对应的硬盘文件协议栈驱动程序基准值,再通过 BMC通信模块按所述IPMI协议以KCS键盘控制方式发向基准值存储模块;
步骤(3.2),再可信启动阶段,按步骤(3.1.2)~步骤(3.1.3)中所述的方法计算出固件文件系统中待判断其是否经过攻击的四种所述硬盘文件协议栈驱动程序的动态可信度量值,并把所述动态可信度量值变成可信度量顺序号-全局标识号 GUID-对应的硬盘文件协议栈驱动文件名组成的映射表送往CPUU.B后,再与 CPUU.B从基准值缓存模块中前期由BMC通信模块输入并缓存的对应的基准值相比,若动态可信度量值等于基准值,则可信启动,否则,UEIF BIOS对应的固件文件中对应的硬盘文件协议栈驱动程序在可信启动进程开始前已被非法篡改,发出停止可信启动的信号。
本发明摒弃了以往如“基于固件文件系统的UEFI安全机制研究”一文中只针对UEFI驱动程序的静态度量方法,重点考虑了在固件系统运行过程中对驱动程序的动态度量过程;此系统相较于专利“一种基于UEFI的可执行程序文件保护系统和方法”和专利“基于UEFI的硬盘全加密方法及装置”,提出了针对硬盘文件在UEFI环境中通过文件系统协议栈加载过程,重点考虑文件系统相关驱动的可信度量;同时底层度量平台选用BMC平台,相较于“UEFI BIOS安全增强机制及完整性度量的研究”一文中使用传统TPM底层平台,提供了UEFI运行环境中与BMC通信的方法。
附图说明:
图1为本发明实例提供的基础版UEFI BIOS固件系统的模块结构图;
图2为本发明实例提供的程序流程图。
具体实施方式:
一种基于基础性UEFI BIOS固件系统中驱动程序保护的方法属于BIOS中固件文件驱动程序保护技术领域,其特征在于,基于现有的UEFI BIOS固件系统中硬盘文件协议栈驱动程序易受外来攻击的现实,基于驱动文件可信度量技术,同时提出了一个具有可信度量基准值储备功能的基础版BMC固件系统和一个既能度量现有UEFI BIOS系统闪存中硬盘文件协议栈驱动程序基准值,又能动态地量测可信启动时从所述固件文件系统中提取的所述驱动程序是否被攻击过的基础版UEFI BIOS固件系统,然后再借助于所述的基准值来判别对应文件协议栈驱动程序的动态度量值,就能判断出所述驱动文件再可信启动前是否被攻击过,从而达到了提前从固件层面对UEFI BIOS系统的块设备文件可信驱动检验的目的。
本发明实例提出了基础性UEFI BIOS固件系统中驱动程序保护的方法,可以有效保证UEFI BIOS完整运行时加载或运行硬盘设备文件过程的安全性。
本发明实例中驱动程序的保护方法是通过基础性UEFI BIOS固件系统中的可信度量功能和基础性BMC固件系统中的辅助可信度量功能实现的,其中BMC 部分完成完整性度量基准值的存储工作,并保证BMC中有与BIOS的通信模块,所述通信模块可完成智能平台管理接口IPMI(下同)指令的解析、完成模块全局标识号GUID(下同)和模块度量基准值的映射和存储、根据UEFI传来的提取基准值指令传回与GUID对应的度量基准值,BMC中的UEFIBIOS通信模块与UEFI中的BMC通信模块通信,完成基准值传入基础性UEFI BIOS固件系统中的基准值缓存模块,并由动态可信度量值计算模块计算四个硬盘文件系统协议栈驱动程序的度量值,并和基准值进行比较,如图1中BMC通信模块与BMC 之间的关系所示,基础版UEFIBIOS中通过IPMI通信协议和键盘控制访问方式 KCS访问模式实现BMC驱动程序。
需要说明的是,UEFI BIOS中协议是设备控制器如硬盘控制器调用驱动功能的接口,并不包括驱动功能函数的具体实现,它只是以指针的方式,对各个环节的DXE驱动加载时驻留在内存的功能函数进行的引用。因此,不存在度量协议的问题,需要进行安全验证的只是DXE驱动代码中功能函数的具体实现。
图1所示为此发明的整体系统结构示意图,其中包括:
驱动文件可信度量顺序映射模块,此模块负责通过固件文件系统FFS从UEFI BIOSflash芯片中加载AtaAtapiPassThruDxe、PartitionDxe、DiskIoDxe、 FileSystemDxe驱动代码得到各个驱动在内存中对应的内存映像Image(下同) 的基地址和Image大小,从而得到各个驱动的数据内容。其中获取flash芯片中数据过程通过调用固件文件系统访问模块完成。并通过BMC通信模块获取基准值,存储于基准值缓存模块中。此模块中通过调用动态可信度量值计算模块计算驱动的SHA1值,并在驱动文件可信度量顺序映射模块中进行对比得到验证结果。
动态可信度量值计算模块,此模块通过在固件编译时加载进去的opensslpkg 包中的安全相关SHA1功能函数,对驱动文件可信度量顺序映射模块中的四个 UEFI文件系统协议栈驱动程序AtaAtapiPassThruDxe、PartitionDxe、DiskIoDxe、 FileSystemDxe的内容进行SHA1值计算,以获取运行过程中的驱动度量值,用以和基础性BMC固件系统中的基准值存储模块中存入的基准值比对。
固件文件系统访问模块,此模块用于调用现有UEFI BIOS固件系统中的固件文件系统模块,为可信度量功能提供一个中间层,用以匹配出所需进行可信度量的硬盘文件系统协议栈驱动程序。其中访问固件中文件数据过程中,此模块封装了UEFI服务提供的访问固件文件系统FFS的功能函数,将文件系统协议栈相关驱动程序加载进UEFI系统内存中。具体调用函数为 MdeModulePkg\Core\Dxe\Dispatcher\Dispatcher.c中的CoreLoadImage()函数,此函数进行了固件中特定驱动程序的加载。LOADED_IMAGE_PRIVATE_DATA数据结构里包含了该驱动的私有信息其中信息Info类型包含了度量此驱动所需的数据。
BMC通信模块,此模块负责实现BMC的UEFI驱动程序,其中通信协议为 IPMI协议,访问模式遵循KCS方式,实现向BMC发送IPMI格式的命令信息,并实现获取BMC返回基准值的函数。从而实现UEFI环境中与BMC设备通信的功能,完成可信度量模块中获取基准值的工作。其中调用传递IPMI协议命令 IpmiSendCommand()函数并通过其中的关键参数命令数据*CommandData作为命令参数,传递给SendDataToBmc()函数,此函数用于向特定BMC端口写入数据。其中用于取回驱动程序基准值的命令号需要通过自定义,需要BIOS端和BMC 端两端配合进行。调用IpmiReceivePacket()函数取回BMC返回的数据,并存储于8位的PacketData指针中,这个数据就是用于度量对比的基准值。
在图1的整体系统结构示意图中,深色模块为此基础性UEFI BIOS固件系统和基础性BMC固件系统的添加模块,白色模块为原有的UEFI BIOS固件系统和原有的BMC固件系统模块内容。此系统主要通过原有UEFI BIOS固件系统和原有BMC固件系统的基础上,向UEFIBIOS和BMC中添加可信度量功能,以达到基础性UEFI BIOS环境中硬盘设备文件安全加载的效果。其中UEFI BIOS 中的可信度量功能内容分为:动态可信度量计算模块、驱动文件可信度量顺序映射模块、BMC通信模块、固件文件系统和硬盘文件系统访问模块。各个模块具体功能如前所述。需要说明的是原有UEFI BIOS固件系统包含了固件文件系统,还包括驱动文件可信度量顺序映射模块中包含的DXE核心代码程序和DXE分派器程序,关于原有的UEFIBIOS固件系统的相关信息可从戴正华编写的《UEFI 原理与编程》和《BIOS到UEFI原理与开发》第七版中获得,具体参照代码为开源实现的符合UEFI标准的EDKII开发工具集。需要详细说明的是,DXE核心代码程序是UEFI启动阶段中DXE阶段,也就是驱动加载阶段的主要运行程序,DXE核心代码通过调用DXE分派器来加载存储于BIOS闪存芯片中的各个系统所需的驱动程序,加载后的驱动程序贮存于原有UEFI BIOS固件系统的内存中。
其中基础性BMC固件系统中的辅助可信度量功能分为:BIOS通信模块和基准值存储模块。当BIOS通信模块收到遵循IPMI协议的命令请求时,通信模块请求CPUBMC资源,调用基准值存储模块,再由基准值存储模块通过驱动的 GUID标识进行内容匹配,调用BMC固件系统原有的固件文件系统,获取到存储在BMC闪存中的基准值数据,并将此基准值数据由固件文件系统返回给基准值存储模块,再返回给BIOS通信模块,再由BIOS通信模块通过IPMI协议,将基准值内容传递给基础性UEFI BIOS固件系统中的BMC通信模块,以此来完成基准值的调取过程。
Claims (1)
1.一种基于基础性的UEFIBIOS固件系统中驱动程序保护的方法,其特征在于,依次按以下步骤实现:
步骤(1),系统构建:
步骤(1.1),构建一个基础版BMC固件系统:
它是把具有辅助可信度量作用的基准值存储模块和BIOS通信模块组合集成到BMC固件系统中而构成的,所述的BMC固件系统包括一个BMC处理器CPUBMC以下简称CPUBMC,和一个BMC固件文件系统存储模块,所述的基准值是指下述四种硬盘文件协议栈驱动程序的可信度量基准值,在集合而成的基础版BMC固件系统中,所述基准值存储模块与BIOS通信模块互连,所述CPUBMC分别与所述基准值存储模块和BIOS通信模块互连,以便把在CPUBMC控制下取出的烧写在BMC闪存中的所述基准值存储模块和BIOS通信模块加载到BMC芯片中,并把相关文件复制到BMC固件文件系统存储模块中,
四种硬盘文件协议栈驱动程序是指用全局标识信息GUID作为各自前缀的:硬盘接口驱动程序AtaatapiPassThruDxe,硬盘分区驱动程序PartitionDxe,硬盘输入输出驱动程序DiskIoDxe,硬盘文件系统驱动程序FileSysDxe,
所述四种硬盘文件协议栈驱动程序是在产品出厂时烧入到UEFI BIOS固件系统闪存中的,各自配有自己的全局标识信息GUID;
步骤(1.2),构建基础版UEFI BIOS固件系统:
这是一个在UEFI BIOS固件系统中集成了一个具有可信度量功能的可信度量模块组合后形成的基础版UEFI BIOS固件系统,其中:
UEFI BIOS固件系统是由UEFI BIOS固件系统处理器CPUU.B,以下简称CPUU.B,以及UEFIBIOS固件文件系统组成,
所述可信度量模块组合由基准值存储模块、BMC通信模块、动态可信度量值计算模块、驱动程序可信度量值顺序映射模块以及UEFI BIOS固件文件系统访问模块组成,其中:
动态可信度量值计算模块,在CPUU.B控制下,既能把在UEFI BIOS固件系统中闪存内的四种所述各自配有全局标识信息的硬盘文件协议栈驱动程序用可信度量顺序号-GUID-硬盘文件协议栈驱动程序名称三个参数依次串接而成的映射表送到动态可信度量值计算模块,计算出四种所述各自配有全局标识信息的硬盘文件协议栈驱动程序的基准值,也能把在后继的存储在UEFI BIOS固件系统里的硬盘文件协议栈驱动程序在依照可信启动过程中按上述步骤计算得到的动态可信度量值,送往CPUU.B,
BMC通信模块,既能把所述动态可信度量值计算模块计算出的对应于四种硬盘文件协议栈驱动程序的四个基准值通过基础版BMC固件系统中的BIOS通信模块传送到基准值存储模块,也能在CPUU.B控制下反向把四个所述基准值按可信度量值计算的顺序号逐个取出,经基准值缓存模块缓存后,按可信度量顺序,由CPUU.B逐个地判别动态度量值与基准值是否相等来判断各所述硬盘文件协议栈驱动程序安全可靠性,以便从固件层面对硬盘文件中的协议栈驱动程序进行保护;
步骤(2),系统初始化:
动态可信度量值计算模块初始化设置由:
BIOS可扩展开发工具集EDKII读取固件文件的工具,以便分别获取到四个所述硬盘文件协议栈驱动程序的特征值,
加解密数据库OpenSSL,以便利用其中的散列函数SHA1把CPUU.B从基础版UEFI BIOS固件系统的闪存中提取到的各硬盘文件协议栈驱动程序的可执行程序,用散列函数SHA1扩展成对应的摘要值列以形成基准值,如果某一个硬盘文件协议栈驱动程序被非法人员利用硬件手段或数据存储格式进行了篡改,则得到的是其在可信驱动度量过程中的动态可信度量值,而不是基准值,
BMC通信模块,存储有发给BIOS通信模块的所述四种硬盘文件协议栈驱动程序各自的全局标识号GUID-基准值的映射表、统一的可扩展接口IPMI协议、KCS键盘控制访问模式、发给CPUU.B的全局标识号GUID-动态可信度量值映射表;
BIOS通信模块,设有所述IPMI协议;
驱动程序可信度量值顺序映射模块,设有:可信度量顺序号-全局标识号GUID-硬盘文件协议栈驱动程序名称;
CPUU.B设有:可信度量顺序号-全局标识号GUID-硬盘文件协议栈驱动程序名称;
步骤(3),基础版UEFI BIOS固件系统计算四种所述硬盘文件协议栈驱动程序的可信驱动度量基准值,以下简称基准值,并由BMC通信模块发送到基础版BMC固件系统中的基准值存储模块,并由CPUBMC复制到BMC固件文件系统,同时也烧入到BMC闪存中,步骤如下:
步骤(3.1),CPUU.B从所述基础版UEFI BIOS固件系统闪存中调取四种已预先烧入的四种带有GUID标识的硬盘文件协议栈驱动程序并输入到UEFI BIOS固件文件系统存储模块中;
步骤(3.1.2),CPUU.B通过UEFI BIOS固件文件系统访问模块从所述UEFI BIOS固件文件系统存储模块取出四种硬盘文件协议栈驱动程序输入到所述驱动程序可信度量值顺序映射模块中,形成可信度量顺序号-全局标识号GUID-硬盘文件协议栈驱动程序映射名称,输入到动态可信度量值计算模块中;
步骤(3.1.3),所述动态可信度量值计算模块按步骤(2)中系统初始化过程中提出的基准值计算方法,取四个对应的硬盘文件协议栈驱动程序基准值,再通过BMC通信模块按所述IPMI协议以KCS键盘控制方式发向基准值存储模块;
步骤(3.2),在可信启动阶段,按步骤(3.1.2)~步骤(3.1.3)中的方法计算出UEFIBIOS固件文件系统中待判断其是否经过攻击的四种所述硬盘文件协议栈驱动程序的动态可信度量值,并把所述动态可信度量值变成可信度量顺序号-全局标识号GUID-硬盘文件协议栈驱动程序名称组成的映射表送往CPUU.B后,再与CPUU.B从基准值缓存模块中前期由BMC通信模块输入并缓存的对应的基准值相比,若动态可信度量值等于基准值,则可信启动,否则,UEFIBIOS对应的固件文件中对应的硬盘文件协议栈驱动程序在可信启动进程开始前已被非法篡改,发出停止可信启动的信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110121999.5A CN112800429B (zh) | 2021-01-28 | 2021-01-28 | 一种基于基础性的uefi bios固件系统中驱动程序保护的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110121999.5A CN112800429B (zh) | 2021-01-28 | 2021-01-28 | 一种基于基础性的uefi bios固件系统中驱动程序保护的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112800429A CN112800429A (zh) | 2021-05-14 |
CN112800429B true CN112800429B (zh) | 2024-05-24 |
Family
ID=75812656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110121999.5A Active CN112800429B (zh) | 2021-01-28 | 2021-01-28 | 一种基于基础性的uefi bios固件系统中驱动程序保护的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112800429B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114462044B (zh) * | 2021-12-30 | 2024-06-25 | 中国科学院信息工程研究所 | 一种基于污点分析的uefi固件漏洞静态检测方法及装置 |
CN114611109B (zh) * | 2022-01-06 | 2023-07-07 | 四川大学 | 一种基于单分类的uefi固件安全审计方法 |
CN114528544A (zh) * | 2022-02-21 | 2022-05-24 | 北京工业大学 | 一种基于统一可扩展固件接口的固件文件可信验证方法 |
CN114911488B (zh) * | 2022-04-27 | 2024-04-09 | 北京计算机技术及应用研究所 | 一种基于国产处理器平台的uefi固件logo更换及恢复方法 |
CN114579495B (zh) * | 2022-05-06 | 2022-09-30 | 成都前锋信息技术股份有限公司 | 基于飞腾处理器的通用计算机固件的实现方法 |
CN116149759B (zh) * | 2023-04-20 | 2023-07-14 | 深圳市吉方工控有限公司 | Uefi驱动卸载方法、装置、电子设备及可读存储介质 |
CN116755727B (zh) * | 2023-08-21 | 2023-11-03 | 湖南博匠信息科技有限公司 | 一种嵌入式设备固件智能升级方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436566A (zh) * | 2012-01-12 | 2012-05-02 | 冶金自动化研究设计院 | 一种动态可信度量方法及安全嵌入式系统 |
CN103927490A (zh) * | 2014-04-25 | 2014-07-16 | 华为技术有限公司 | 操作系统安全启动方法及装置 |
CN109743319A (zh) * | 2019-01-03 | 2019-05-10 | 北京工业大学 | 一种联网式专用服务器的可信启动和安全运行方法 |
CN111159700A (zh) * | 2019-12-03 | 2020-05-15 | 北京工业大学 | 一种基于uefi系统的计算机远程安全启动方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298524B2 (en) * | 2013-03-22 | 2016-03-29 | Insyde Software Corp. | Virtual baseboard management controller |
-
2021
- 2021-01-28 CN CN202110121999.5A patent/CN112800429B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436566A (zh) * | 2012-01-12 | 2012-05-02 | 冶金自动化研究设计院 | 一种动态可信度量方法及安全嵌入式系统 |
CN103927490A (zh) * | 2014-04-25 | 2014-07-16 | 华为技术有限公司 | 操作系统安全启动方法及装置 |
CN109743319A (zh) * | 2019-01-03 | 2019-05-10 | 北京工业大学 | 一种联网式专用服务器的可信启动和安全运行方法 |
CN111159700A (zh) * | 2019-12-03 | 2020-05-15 | 北京工业大学 | 一种基于uefi系统的计算机远程安全启动方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112800429A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112800429B (zh) | 一种基于基础性的uefi bios固件系统中驱动程序保护的方法 | |
US11093258B2 (en) | Method for trusted booting of PLC based on measurement mechanism | |
US9989043B2 (en) | System and method for processor-based security | |
US7653819B2 (en) | Scalable paging of platform configuration registers | |
TWI544356B (zh) | 用於在隱藏式執行環境中提供完整性驗證與認證之技術的裝置、方法及系統 | |
US7836299B2 (en) | Virtualization of software configuration registers of the TPM cryptographic processor | |
US9288155B2 (en) | Computer system and virtual computer management method | |
US7921286B2 (en) | Computer initialization for secure kernel | |
EP3869332B1 (en) | Roots-of-trust for measurement of virtual machines | |
US11714910B2 (en) | Measuring integrity of computing system | |
US7937575B2 (en) | Information processing system, program product, and information processing method | |
US8122514B2 (en) | Software enhanced trusted platform module | |
US20110246778A1 (en) | Providing security mechanisms for virtual machine images | |
US8261063B2 (en) | Method and apparatus for managing a hierarchy of nodes | |
US8689318B2 (en) | Trusted computing entities | |
WO2009051471A2 (en) | Trusted computer platform method and system without trust credential | |
CN107704308B (zh) | 虚拟平台vTPM管理系统、信任链构建方法及装置、存储介质 | |
US11803639B2 (en) | Measuring integrity of computing system using jump table | |
Brunel et al. | Secbus, a software/hardware architecture for securing external memories | |
CN108595981B (zh) | 加密安卓系统的方法 | |
Muramoto et al. | Improving Hardware Security on Talos II Architecture Through Boot Image Encryption | |
CN118484813B (zh) | 动态可信度量实现方法、装置、设备、介质及可信系统 | |
Haas et al. | The State of Boot Integrity on Linux-a Brief Review | |
CN118410493A (zh) | 内核安全加固系统 | |
CN115982699A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |