CN101645127A - 一种建立基于efi的可信引导系统的方法 - Google Patents

一种建立基于efi的可信引导系统的方法 Download PDF

Info

Publication number
CN101645127A
CN101645127A CN200910086668A CN200910086668A CN101645127A CN 101645127 A CN101645127 A CN 101645127A CN 200910086668 A CN200910086668 A CN 200910086668A CN 200910086668 A CN200910086668 A CN 200910086668A CN 101645127 A CN101645127 A CN 101645127A
Authority
CN
China
Prior art keywords
efi
module
elilo
kernel
safe
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
CN200910086668A
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 CN200910086668A priority Critical patent/CN101645127A/zh
Publication of CN101645127A publication Critical patent/CN101645127A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了属于信息安全认证系统范围的一种建立基于EFI的可信引导系统的方法。通过Linux操作系统下的初始化模块对安全U盘进行初始化,设置需要验证的操作系统内核模块的完整性校验信息。对系统固件支持EFI的机器进行启动,将ELilo以及操作系统内核模块和相关的initrd模块存放在EFI启动U盘上,使用EFI Shell命令装载EFI下的安全U盘驱动程序;利用安全U盘对启动用户进行认证并对操作系统内核进行可信验证。在Linux系统启动前对启动用户进行认证并对关键的配置文件以及操作系统内核文件进行校验,确保启动的Linux操作系统是一个干净、可信的操作系统。

Description

一种建立基于EFI的可信引导系统的方法
技术领域
本发明属于信息安全认证系统范围,具体涉及利用安全U盘的认证功能和安全可信存储功能,在Linux系统启动前对启动用户进行认证并对关键的配置文件以及操作系统内核文件进行校验,确保启动的Linux操作系统是一个干净、可信的操作系统。
背景技术
可信是安全的基础.近年来被高度关注的可信计算平台技术从可信的角度来帮助提高系统的安全性.可信计算的核心思想是“可信传递”,TCG(Trusted ComputingGroup:可信计算组织)提出了两种实现可信传递的关键技术,一是在计算平台上引入“可信根”,二是利用可信根来建立可信链.对于PC平台而言,TCG定义了从计算平台加电BIOS(Basic Input/Output System:基本输入输出系统)执行开始,到引导代码的执行,再到操作系统启动和上层应用程序的执行的一系列过程,信任将通过这个过程一直传递下去,直到整个计算环境的建立.由此可见,引导过程的安全是计算机系统安全的基点,引导阶段的可信验证是建立可信链的关键一环.根据TCG相关规范,建立平台信任链的关键硬件是TPM(Trusted Platform Module).TPM是一块类似于智能卡的芯片,是整个终端的信任根.我们也可以制作安全U盘(具有智能卡和U盘的双重功能)作为系统可信根。
怎样基于TPM建立系统的可信引导环境,国内外的学者对此进行了研究。Enforcer是Danmouth大学开发的一个Linux安全模块,它修改了LILO(Linux Loader)以支持TPM,使用TPM封装了一个加密文件系统的加密密码,引导过程中若发现指定文件的完整性与预期的不符则拒绝释放该密钥.AEGIS系统是基于嵌入式的安全模块,将系统引导分为多个层次,在引导过程的每一层之间转移的时候都进行完整性验证,转移间完整性验证失败时涉及到了一个恢复过程.德国波鸿大学的Trusted Grub和IBM的TCG Grub都是利用系统的TPM芯片,遵循了TCG规范,但只提供了简单的引导过程的度量.德国的Drseden大学的Bemhard Kauer开展了基于TPM和L4操作系统的认证启动研究工作.然而,上述的研究都是基于传统BIOS进行的。
从IBM于上世纪八十年代初推出了全世界第一台PC机开始,BIOS就成了个人计算机必备的系统软件。传统上的BIOS经过了长达20多年的时间,基本上没有大的特别的改进。EFI是Extensible Firmware Interface的缩写,中文意思是可扩展固件接口。EFI是Intel为了解决BIOS难于扩充的缺陷而推出的一项新技术,作为传统BIOS的接班人之一,是理论上能够很好地接替并且扩展现有BIOS功能的方案。EFI既保留了传统BIOS的所有基本功能,同时又针对传统BIOS的不足进行了必要的补充。
在基于新的EFI情况下,结合安全U盘的认证和安全功能建立平台信任链是一个需要研究的课题,国内外目前在这方面的研究很少。
发明内容
本发明的目的是提供一种建立基于EFI的可信引导系统的方法,其特征在于,具体包括:
第一步,通过Linux操作系统下的初始化模块对安全U盘进行初始化,设置需要验证的启动用户认证信息和操作系统内核模块的完整性校验信息;
第二步,对支持EFI的机器进行启动,当通过EFI引导管理器提示选择启动模块时,选择从文件ELilo.efi启动;若机器不支持EFI启动,则需要使用EFI EDK中的DUET制作EFI启动U盘,并将ELilo.efi以及操作系统内核模块和相关的initrd模块存放在EFI启动U盘上;使用EFI启动U盘启动系统到EFI Shell环境;
第三步,使用EFI Shell环境下的命令load装载EFI下的安全U盘驱动程序;
第四步,使用ELilo启动操作系统内核。ELilo利用安全U盘对启动用户进行认证并对操作系统内核进行可信验证,如果通过,则启动系统,否则终止系统的启动过程。
所述Linux操作系统,在新的EFI环境下使用安全U盘作为系统的一个可信硬件,根据可信计算理论,设计并实现对引导阶段文件的可信校验,建立引导阶段的可信链。
所述ELilo启动内核是使用Elilo引导模块,利用安全U盘提供的安全功能对Elilo模块进行安全增强,对启动阶段的文件进行检验,完成引导阶段的可信启动。
所述支持EFI的机器为长城安全电脑二代、惠普RX2600等。
所述不支持EFI的机器为普通基于传统BIOS的PC机等。
本发明相比现有技术有如下优点:
1.基于EFI进行引导阶段文件的可信检验,是对基于传统BIOS技术可信引导的有益补充.
2.在引导阶段对启动过程中的关键文件进行完整性校验,若通过则启动系统,否则终止系统的启动过程,增强了系统的可信性.
3.在启动阶段对启动用户进行认证增强了系统的安全性。
4.使用安全U盘作为可信根,增强了系统的实用性和便利性,更符合用户的使用习惯。
附图说明
图1是基于EFI的Linux操作系统引导流程图
图2是本发明的基于EFI的操作系统可信引导流程图
图3是ELilo系统中Linux内核模块探测功能bzImage_probe()的流程图
图4是本发明的Linux内核模块探测功能bzImage_probe()的流程图
图5是ELilo系统中Linux内核模块装载功能do_kernel_load()的流程图
图6是本发明的基于安全U盘的Linux内核模块可信装载功能do_kernel_load()流程图
图7是本发明的基于EFI的安全U盘驱动栈示意图
具体实施方式
本发明提供一种建立基于EFI的可信引导系统的方法,下面结合附图作对本发明作进一步详述:
图1,图2,图3,图4,图5,图6显示了本发明的工作原理.,
如图1所示,基于EFI的操作系统引导流程。整个EFI引导系统的主要模块是EFI引导管理器和EFI Loader。基于传统BIOS的Linux操作系统引导模块主要有Lilo和Grub。目前支持EFI的开源Linux操作系统引导模块有ELilo和Grub2,本发明使用ELilo。Linux引导过程中,我们假定EFI以及其中的引导管理器都是可信的,首先由引导管理器选择ELilo引导系统。由ELilo查找并装载内核,然后将系统控制权交给装载的操作系统内核,从而启动操作系统.
如图2所示,基于EFI的操作系统可信引导过程中,主要对ELilo进行了安全增强,由ELilo调度操作系统内核运行前对操作系统内核模块进行可信验证,若符合可信的条件,则继续引导操作系统,从而启动操作系统;否则,停止操作系统的调度和运行。具体流程如下:
第一步,通过Linux操作系统下的初始化模块对安全U盘进行初始化,设置需要验证的内核模块的完整性校验信息。
第二步,对系统固件支持EFI的机器进行启动,当通过EFI引导管理器提示选择启动模块时,选择从文件ELilo.efi启动;若系统固件不支持EFI启动,则需要使用TianoCore EDK中的DUET制作EFI启动U盘,并将ELilo以及操作系统内核和相关的initrd模块存放在EFI启动U盘上。使用EFI启动U盘启动系统到EFI Shell环境下,假设操作系统内核模块为vmlinuz-2.6.18-8.10WS,Initrd模块为initrd-2.6.18-8.10WS.img,Linux安装的根分区为/dev/sda10,则使用ELilo命令ELilo-i initrd-2.6.18-8.10WS.img vmlinuz-2.6.18-8.10WS roroot=/dev/sda10启动内核运行。
第三步,ELilo利用安全U盘对操作系统内核以及相关的配置文件进行可信验证,若通过,则启动系统,否则终止系统的启动过程。
图3所示,Elilo原有的启动流程中,首先要探测操作系统内核的存在,即通过读取并分析引导扇区,根据相关的配置数据对内核进行读取。
图4所示,我们修改了Elilo启动流程中探测操作系统内核,其中增加了对内核文件内容的完整性值的计算,并将计算结果存放在V1中,并在后续的功能模块中对其进行检查.
图5所示,Elilo原有的启动流程中操作系统内核探测成功后,便对操作系统内核进行装载,装载成功后,通过调用EFI的引导服务接口BS->ExitBootServices()终止EFI的引导服务,将系统控制权转交给操作系统内核,进而调用启动操作系统内核的函数start_kernel()启动整个系统。
图6所示,我们修改了Elilo启动流程中对操作系统内核的装载模块,在操作系统内核真正加载之前,通过EFI下的安全U盘协议接口EFI_SECURE_DISK中的相关函数指针访问安全U盘模块。首先对启动用户进行认证,若认证不通过,停止操作系统的装载过程;若认证通过,则将原来存放在安全U盘模块内的操作系统内核完整性校验值V2读出并与V1进行比较,若相等,则对操作系统内核的完整性校验成功,立即终止EFI的引导服务,并将系统控制权转交给操作系统内核,进而调用启动操作系统内核的函数start_kernel()启动整个系统;否则停止操作系统内核的装载,系统停止运行。
图7所示为EFI下的安全U盘驱动栈。为了在操作系统内核被装载运行前对操作系统内核文件进行完整性校验,需要使用一个安全设备作为可信存储,本发明使用一个安全存储U盘,安全U盘为该发明提供信息的安全可信存储功能。安全存储U盘的使用需要EFI下的驱动。最下层的是USB主机控制器设备驱动,其上是USB总线驱动,然后是USB块传输设备驱动,最上层是USB大容量设备驱动和智能卡设备驱动。

Claims (3)

1.一种建立基于EFI的可信引导系统的方法,其特征在于,具体包括:
第一步,通过Linux操作系统下的初始化模块对安全U盘进行初始化,设置需要验证的启动用户认证信息和Linux操作系统内核模块的完整性校验信息;
第二步,对支持EFI的机器进行启动,当通过EFI引导管理器提示选择启动模块时,选择从文件ELilo.efi启动;若机器不支持EFI启动,则需要使用TianoCoreEDK中的DUET制作EFI启动U盘,并将ELilo以及操作系统内核模块和相关的initrd模块存放在EFI启动U盘上;使用EFI启动U盘启动系统到EFI Shell环境下;
第三步,使用EFI Shell命令load装载EFI下的安全U盘驱动程序;
第四步,使用ELilo启动内核,ELilo利用安全U盘对启动用户进行认证并对操作系统内核进行可信验证,如果通过,则启动系统,否则终止系统的启动过程。
2.根据权利要求1所述建立基于EFI的可信引导系统的方法,其特征在于,所述Li nux操作系统,在新的基于EFI的BIOS环境下使用安全U盘作为系统的一个可信硬件,根据可信计算理论利用可信根建立可信链实现系统可信的方法,设计并实现对引导阶段文件的可信校验,建立引导阶段的可信链。
3.根据权利要求1所述建立基于EFI的可信引导系统的方法,其特征在于,所述ELilo启动操作系统内核是使用Elilo引导模块,利用安全U盘提供的安全功能对Elilo模块进行安全增强,对启动阶段的文件进行检验,完成引导阶段的可信启动。
CN200910086668A 2009-06-17 2009-06-17 一种建立基于efi的可信引导系统的方法 Pending CN101645127A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910086668A CN101645127A (zh) 2009-06-17 2009-06-17 一种建立基于efi的可信引导系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910086668A CN101645127A (zh) 2009-06-17 2009-06-17 一种建立基于efi的可信引导系统的方法

Publications (1)

Publication Number Publication Date
CN101645127A true CN101645127A (zh) 2010-02-10

Family

ID=41657010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910086668A Pending CN101645127A (zh) 2009-06-17 2009-06-17 一种建立基于efi的可信引导系统的方法

Country Status (1)

Country Link
CN (1) CN101645127A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024114A (zh) * 2011-01-14 2011-04-20 上海交通大学 基于统一可扩展固定接口的恶意代码防范方法
CN102244684A (zh) * 2011-07-29 2011-11-16 电子科技大学 基于usbkey的efi可信云链引导方法
CN102456111A (zh) * 2011-07-12 2012-05-16 中标软件有限公司 一种Linux操作系统许可控制的方法及系统
CN102457541A (zh) * 2010-10-25 2012-05-16 鸿富锦精密工业(深圳)有限公司 无盘工作站启动过程中避免发生资源竞争的系统及方法
CN102508682A (zh) * 2011-11-10 2012-06-20 北京交通大学 一种系统预引导阶段硬件辅助cpu虚拟化环境建立的方法
CN102722669A (zh) * 2012-05-28 2012-10-10 清华大学 操作系统的完整性验证方法
CN103353929A (zh) * 2013-07-31 2013-10-16 山东超越数控电子有限公司 一种在bios启动过程中添加检验id卡信息的方法
CN103514399A (zh) * 2012-06-19 2014-01-15 鸿富锦精密工业(深圳)有限公司 固件验证方法及系统
US10445504B2 (en) 2014-08-11 2019-10-15 Red Hat, Inc. Secure remote kernel module signing
CN110704339A (zh) * 2019-09-12 2020-01-17 苏州浪潮智能科技有限公司 一种数据销毁方法、装置、设备、介质
US11714910B2 (en) 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102457541A (zh) * 2010-10-25 2012-05-16 鸿富锦精密工业(深圳)有限公司 无盘工作站启动过程中避免发生资源竞争的系统及方法
CN102024114B (zh) * 2011-01-14 2012-11-28 上海交通大学 基于统一可扩展固定接口的恶意代码防范方法
CN102024114A (zh) * 2011-01-14 2011-04-20 上海交通大学 基于统一可扩展固定接口的恶意代码防范方法
CN102456111A (zh) * 2011-07-12 2012-05-16 中标软件有限公司 一种Linux操作系统许可控制的方法及系统
CN102456111B (zh) * 2011-07-12 2014-04-09 中标软件有限公司 一种Linux操作系统许可控制的方法及系统
CN102244684A (zh) * 2011-07-29 2011-11-16 电子科技大学 基于usbkey的efi可信云链引导方法
CN102244684B (zh) * 2011-07-29 2013-07-17 电子科技大学 基于usbkey的efi可信云链引导方法
CN102508682B (zh) * 2011-11-10 2014-05-28 北京交通大学 一种系统预引导阶段硬件辅助cpu虚拟化环境建立的方法
CN102508682A (zh) * 2011-11-10 2012-06-20 北京交通大学 一种系统预引导阶段硬件辅助cpu虚拟化环境建立的方法
CN102722669A (zh) * 2012-05-28 2012-10-10 清华大学 操作系统的完整性验证方法
CN103514399A (zh) * 2012-06-19 2014-01-15 鸿富锦精密工业(深圳)有限公司 固件验证方法及系统
CN103353929A (zh) * 2013-07-31 2013-10-16 山东超越数控电子有限公司 一种在bios启动过程中添加检验id卡信息的方法
US10445504B2 (en) 2014-08-11 2019-10-15 Red Hat, Inc. Secure remote kernel module signing
US11714910B2 (en) 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
CN110704339A (zh) * 2019-09-12 2020-01-17 苏州浪潮智能科技有限公司 一种数据销毁方法、装置、设备、介质
CN110704339B (zh) * 2019-09-12 2021-11-19 苏州浪潮智能科技有限公司 一种数据销毁方法、装置、设备、介质

Similar Documents

Publication Publication Date Title
CN101645127A (zh) 一种建立基于efi的可信引导系统的方法
CN100454324C (zh) 一种可信机制上的嵌入式平台引导方法
EP2962241B1 (en) Continuation of trust for platform boot firmware
US8086839B2 (en) Authentication for resume boot path
CN105205401B (zh) 基于安全密码芯片的可信计算机系统及其可信引导方法
US9734339B2 (en) Retrieving system boot code from a non-volatile memory
CN107665308B (zh) 用于构建和保持可信运行环境的tpcm系统以及相应方法
CN106127057A (zh) 一种基于tpm构建可信启动控制的方法
EP2737429A1 (en) Firmware-based trusted platform module for arm® trustzone implementations
KR20080108526A (ko) 제1 및 제2 처리 유닛을 포함하는 처리 장치, 이를 부팅하는 방법 및 이 방법을 수행하게 하도록 적응되는 컴퓨터 실행가능 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품
US9292664B2 (en) Key injection tool
US11200065B2 (en) Boot authentication
CN100504897C (zh) 一种启动受保护分区的方法
EP3701411A1 (en) Software packages policies management in a securela booted enclave
CN104182242A (zh) 一种系统启动方法及装置
CN104657644B (zh) 一种指纹采集认证方法及装置
US10599848B1 (en) Use of security key to enable firmware features
CN207281744U (zh) 操作系统启动装置和系统主板
US8473747B2 (en) Secure boot with minimum number of re-boots
CN104346572A (zh) 一种通用的外置式智能终端安全运行环境构建方法
CN110688235B (zh) Uefi固件与os间共享无线连接信息的系统及方法
CN103455750B (zh) 一种嵌入式设备的高安验证方法及装置
CN102236751A (zh) 具有安全锁的电脑系统与执行安全锁的方法
CN114510751A (zh) 一种基于处理器安全核的硬件防替换装置和方法
RU129674U1 (ru) Компьютер с защитой от несанкционированного доступа

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100210