CN101719203A - Efi下可信链建立的一种方法 - Google Patents

Efi下可信链建立的一种方法 Download PDF

Info

Publication number
CN101719203A
CN101719203A CN200910241783A CN200910241783A CN101719203A CN 101719203 A CN101719203 A CN 101719203A CN 200910241783 A CN200910241783 A CN 200910241783A CN 200910241783 A CN200910241783 A CN 200910241783A CN 101719203 A CN101719203 A CN 101719203A
Authority
CN
China
Prior art keywords
efi
credible
file
trust
chain
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
Application number
CN200910241783A
Other languages
English (en)
Inventor
彭双和
韩臻
刘吉强
施炎峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jiaotong University
Original Assignee
Beijing Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jiaotong University filed Critical Beijing Jiaotong University
Priority to CN200910241783A priority Critical patent/CN101719203A/zh
Publication of CN101719203A publication Critical patent/CN101719203A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了属于信息安全可信计算技术领域的EFI下可信链建立的一种方法。通过操作系统下的初始化模块对安全U盘进行初始化,设置启动过程中需要验证的各模块的完整性校验信息。利用EFI启动U盘对机器进行启动,利用安全U盘对启动过程中的各模块进行可信验证,建立可信链,为后续操作系统的可信启动奠定基础。本发明在操作系统启动前的引导过程中对所调度的关键文件进行完整性校验,增强了系统的可信性,使用安全U盘作为可信根,增强了系统的实用性和便利性,更符合用户的使用习惯。

Description

EFI下可信链建立的一种方法
技术领域
本发明涉及信息安全可信计算技术领域,特别是指EFI下可信链建立的一种方法。在EFI(Extensible Firmware Interface:可扩展固件接口)启动过程中对启动的驱动、操作系统引导模块以及EFI shell应用命令进行可信验证,确保启动过程中被调度执行的模块可信性,为后续操作系统的可信启动提供可信支撑。
背景技术
可信是安全的基础。近年来被高度关注的可信计算平台技术从可信的角度来帮助提高系统的安全性。可信计算的核心思想是“可信传递”,TCG(TrustedComputing Group:可信计算组织)提出了两种实现可信传递的关键技术,一是在计算平台上引入“可信根”,二是利用可信根来建立可信链。对于PC平台而言,TCG定义了从计算平台加电BIOS(Basic Input/Output System:基本输入输出系统)执行开始,到引导代码的执行,再到操作系统启动和上层应用程序的执行的一系列过程,信任将通过这个过程一直传递下去,直到整个计算环境的建立。由此可见,引导过程的安全是计算机系统安全的基点,引导阶段的可信验证是建立可信链的关键一环。
从IBM于上世纪八十年代初推出了全世界第一台PC机开始,BIOS就成了个人计算机必备的系统软件。传统上的BIOS经过了长达20多年的时间,基本上没有大的特别的改进。EFI是Extensible Firmware Interface的缩写,中文意思是可扩展固件接口。本发明为克服现有技术的不足之处提出在EFI下可信链建立的一种方法,基于新的EFI情况下,结合安全U盘的认证和安全功能建立平台信任链是一个需要研究的课题,国内外目前在这方面的研究很少。
发明内容
本发明的目的在于避免上述现有技术中的不足之处而提供一种EFI下可信链建立的一种方法。EFI是Intel为了解决BIOS难于扩充的缺陷而推出的一项新技术,作为传统BIOS的接班人之一,是理论上能够很好地接替并且扩展现有BIOS功能的方案。EFI既保留了传统BIOS的所有基本功能,同时又针对传统BIOS的不足进行了必要的补充。
本发明的目的可以通过以下措施来达到:
EFI下可信链建立的一种方法,具体包括:
第一步,通过操作系统下的初始化模块对安全U盘进行初始化,设置需要验证的各调度文件的完整性校验信息;
第二步,使用TianoCore EDK中的DUET制作EFI启动U盘,使用EFI启动U盘启动系统;启动过程中,若文件的可信验证通过,则启动系统,否则终止系统的启动过程。
在新的EFI环境下使用安全U盘作为系统的一个可信硬件,根据可信计算理论利用可信根建立可信链实现系统可信的方法,设计并实现对DXE阶段的所调度执行的驱动文件、BDS阶段对操作系统引导文件、EFI Shell阶段对各种Shell应用文件进行可信校验,建立可信链。
本发明相比现有技术具有如下优点:
1.基于EFI进行可信链的建立,是对基于传统BIOS技术可信链建立的有益补充;
2.在操作系统启动前的引导过程中对所调度的关键文件进行完整性校验,若通过则启动系统,否则终止系统的启动过程,增强了系统的可信性;
3.使用安全U盘作为可信根,增强了系统的实用性和便利性,更符合用户的使用习惯。
附图说明
图1是基于EFI的系统启动过程图;
图2是DXE阶段对驱动的调度流程图;
图3是BDS阶段执行的流程图;
图4是EFI Shell阶段shell应用的执行流程图;
图5是本发明的对各调度模块的进行可信验证的流程图。
具体实施例
本发明EFI下可信链建立的一种方法具体包括:
第一步,通过操作系统下的初始化模块对安全U盘进行初始化,设置引导过程中需要验证的调度模块的完整性校验信息;
第二步,使用EFI EDK中的DUET制作EFI启动U盘,使用EFI启动U盘启动系统;
第三步,系统启动过程中,对DXE阶段的DXE驱动,BDS阶段对操作系统引导模块,以及shell阶段对各种shell应用进行可信验证,如果通过,则启动系统,否则终止系统的启动过程。
所述可信链建立过程,在新的EFI环境下使用安全U盘作为系统的一个可信硬件,根据可信计算理论,设计并实现操作系统启动前引导阶段对所调度执行的文件进行可信校验,建立引导阶段的可信链。
本发明将结合附图作进一步详述:
图1,图2,图3,图4,图5显示了本发明工作的原理。
如图1所示,基于EFI的系统引导过程跟基于传统BIOS的引导过程类似,在A点装载操作系统装载器,然后陆续进行操作系统内核的装载,系统服务的装载以及应用的装载运行。其中,从EFI启动到操作系统装载器之间又分为SEC,PEI,DXE,BDS阶段,本发明主要对A1、A2点进行可信验证。
如图2所示,黑色箭头表示调用关系,DXE阶段装载DXE驱动程序的过程。在以SEC,PEI,DXE core和DXE dispatcher作为可信根的基础上开始装载各个DXE驱动。这个阶段的任务就是要保证每一个DXE驱动的可信。
进入DXE core以后,DXE Foundation进行一些初始化工作后把控制权交给DXE Dispatcher,由Dispatcher来装载DXE驱动。Dispatcher通过hoblist搜寻关于驱动的固件卷,然后通过固件卷中优先文件来顺序搜索drivers。找到一个driver后,打开并且装载这个文件,即DXE驱动。
具体流程是:DXE阶段的入口点是Dxemain,Dxemain首先做一些初始化的工作,完成DXE Foundation阶段需要完成的一系列工作。然后调用函数CoreDispatcher()寻找并且加载DXE drivers。在CoreDispatcher()中调用CoreLoadImage(),接着在CoreLoadImage()中调用CoreLoadImageCommon(),最后在CoreLoadImageCommon中实现对映像文件的加载,通过CoreOpenImageFile()打开文件。
如图3所示,黑色箭头表示调用关系,白色箭头表示等价关系。BDS阶段的具体执行过程。当所有DXE驱动都加载完毕后就进入了BDS阶段,在BDS阶段选择运行的映像文件,选择完毕后需要通过gBS->LoadImage()对所选文件进行装载。
BDS阶段的入口点是BdsEntry(),经过层层调用关系,在UpdateFlieExplorer()函数中调用BootThisFile()来通过文件启动程序,在BootThisFile()函数中调用BdsLibBootViaBootOption()最后调用gBS->LoadImage()。gBS->LoadImage()同样是通过CoreLoadImage()来实现的,接着调用CoreLoadImageCommon(),在CoreLoadImageCommon中调用CoreOpenImageFile()来打开应用程序文件。
如图4所示,黑色箭头表示调用关系,白色箭头表示等价关系。shell环境下对shell应用的调度过程。如果在BDS阶段进入管理应用程序时选择默认continue或者通过boot from file选择shell应用程序的映像文件就进入shell应用的调度。该阶段和BDS阶段选择其他的应用程序执行没有什么区别,同样的会调用gBS->LoadImage()对shell.efi进行装载并且运行。进入shell以后,如果企图执行一个没有装载的shell命令,那么会先调用gBS->LoadImage()来装载它然后执行。
进入了shell环境以后,执行过程中首先进入shell的入口,获取敲入的shell命令,接着调用SEnvExecute(),在SEnvExecute中调用SEnvDoExecute(),在SEnvDoExecute()中先判断shell应用程序是否已经被加载,如果已经加载了则直接执行;如果没有则调用SEnvLoadImage(),在SEnvLoadImage()中调用BS->LoadImage来加载shell应用程序执行。接下来的过程与DXE和BDS阶段相同。
如图5所示,经过上面的详细分析,DXE阶段对DXE drivers的加载,BDS阶段对各种EFI应用程序以及操作系统引导模块的加载,shell环境中对shell命令程序的加载,以及Load命令对驱动程序的加载,最后都通过CoreLoadImage()来实现,然后通过CoreOpenImageFile()来打开读入文件,随后经过一些准备工作后由CoreLoadPeImage()来做对PE文件的分析加载最后执行。
因此,问题都集中在CoreLoadImage()这个函数中。在CoreOpenImage()函数之后直接对整个文件做验证。这样,在CoreLoadImageCommon()的函数中读入文件之后,CoreLoadPEimage()解析PE文件之前加入验证模块就能实现DXE阶段,BDS阶段和shell环境以及Load各个阶段对所调度的文件的可信验证。如果通过验证则继续对PE文件进行分析加载最后执行gBS->StartImages(),否则停止加载,终止系统的启动过程。

Claims (2)

1.EFI下可信链建立的一种方法,其特征在于,具体包括:
第一步,通过操作系统下的初始化模块对安全U盘进行初始化,设置需要验证的各调度文件的完整性校验信息;
第二步,使用TianoCore EDK中的DUET制作EFI启动U盘,使用EFI启动U盘启动系统;启动过程中,若文件的可信验证通过,则启动系统,否则终止系统的启动过程。
2.根据权利要求1所述的EFI下可信链建立的一种方法,其特征在于,在新的EFI环境下使用安全U盘作为系统的一个可信硬件,根据可信计算理论利用可信根建立可信链实现系统可信的方法,设计并实现对DXE阶段的所调度执行的驱动文件、BDS阶段对操作系统引导文件、EFI Shell阶段对各种Shell应用文件进行可信校验,建立可信链。
CN200910241783A 2009-12-07 2009-12-07 Efi下可信链建立的一种方法 Pending CN101719203A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910241783A CN101719203A (zh) 2009-12-07 2009-12-07 Efi下可信链建立的一种方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910241783A CN101719203A (zh) 2009-12-07 2009-12-07 Efi下可信链建立的一种方法

Publications (1)

Publication Number Publication Date
CN101719203A true CN101719203A (zh) 2010-06-02

Family

ID=42433776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910241783A Pending CN101719203A (zh) 2009-12-07 2009-12-07 Efi下可信链建立的一种方法

Country Status (1)

Country Link
CN (1) CN101719203A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722669A (zh) * 2012-05-28 2012-10-10 清华大学 操作系统的完整性验证方法
CN111241548A (zh) * 2020-01-07 2020-06-05 天津飞腾信息技术有限公司 计算机启动方法
CN112073187A (zh) * 2020-08-28 2020-12-11 江苏卓易信息科技股份有限公司 一种基于非阻塞方式加速系统可信链构建的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722669A (zh) * 2012-05-28 2012-10-10 清华大学 操作系统的完整性验证方法
CN111241548A (zh) * 2020-01-07 2020-06-05 天津飞腾信息技术有限公司 计算机启动方法
CN112073187A (zh) * 2020-08-28 2020-12-11 江苏卓易信息科技股份有限公司 一种基于非阻塞方式加速系统可信链构建的方法

Similar Documents

Publication Publication Date Title
CN103034510B (zh) 可按需要动态调整的uefi bios快速安全启动方法
CN104102506B (zh) 一种基于ARM平台的Android启动加速方法
CN103067392B (zh) 一种基于Android终端的安全访问控制方法
CN102792307B (zh) 在虚拟环境中提供网络访问控制的系统和方法
CN102332070A (zh) 一种可信计算平台的信任链传递方法
CN101645127A (zh) 一种建立基于efi的可信引导系统的方法
CN101488173B (zh) 支持零宕机的可信虚拟域启动文件完整性度量的方法
CN1869999A (zh) 一种实现计算机的开机保护方法及装置
CN102521024B (zh) 基于生物信息云平台的作业调度方法
WO2022247199A1 (zh) 一种开源组件的漏洞检测方法及装置
CN109951553B (zh) 数据处理方法、系统、电子设备以及计算机可读存储介质
US20110283098A1 (en) Electronic device with overlapped boot task fetches and boot task execution
CN101719203A (zh) Efi下可信链建立的一种方法
CN106778249B (zh) 一种Java程序可信执行环境的构建方法及构建系统
CN106951785B (zh) 一种java虚拟机及其中的信任链延伸方法
CN106250181A (zh) 一种Linux操作系统的性能优化方法及框架
CN110413335A (zh) 一种基于指纹的开机方法及装置
US9128730B2 (en) Method for executing bios tool program in non-SMI mechanism
CN102375956B (zh) 基于Unix系统调用重定向的机制构建Unix可信平台的方法
CN101488175B (zh) 基于轮询机制的防止可信客户虚拟域启动崩溃的方法
CN107194264A (zh) 一种基于uefi的带有安全认证功能的网卡
CN101539973B (zh) 完整性度量技术在可信虚拟域无缝运行的方法
CN101419654B (zh) 基于移动tpm的引导文件可信校验
CN109992933A (zh) 基于pin码授权的固件启动方法
Niu et al. Analysis and implementation of migrating real-time embedded operating system FreeRTOS kernel based on S3C44B0 processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20100602