《可信链度量与测评》课件第2章_第1页
《可信链度量与测评》课件第2章_第2页
《可信链度量与测评》课件第2章_第3页
《可信链度量与测评》课件第2章_第4页
《可信链度量与测评》课件第2章_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章可信启动完整性度量2.1可信启动完整性度量分析2.2基于PMBR的SBA设计2.3基于PMBR的SBA实现2.4实验2.5本章小结

2.1可信启动完整性度量分析

为了解决可信启动完整性度量问题,本章提出了一个基于PMBR(PreMBR)的安全启动架构(SecureBootstrapArchitecture,SBA),该架构的基本思想是:在BIOS和主引导扇区MBR之间插入一个名为PMBR的组件,利用PMBR作为完整性度量代理,实现对操作系统启动流程的完整性度量。与已有的工作相比,SBA具有以下特点:

(1)SBA能够度量从BIOS自检结束开始到操作系统启动完毕的整个流程上所有关键扇区、代码、文件和数据的完整性,达到“全程覆盖”。

(2)虽然SBA最初是为可信计算平台所开发的,但是本质上,SBA的唯一硬/软件要求是BIOS的可信性。

(3)SBA引入了一个新的组件PMBR。2.1.1

Linux启动流程分析

以第一代可信计算机为例,具体而言,可信计算平台上Linux的启动步骤如下(参见图2.1):

(1)用户插入开机身份认证卡。

(2)ESM加电,ESM首先复位并进行初始化。

(3)平台CPU将CS段寄存器设置为FFFFH,将所有其他的寄存器清零,然后执行CS:IP处的指令(CS:IP=FFFFH:0000H地址也就是BIOS地址F000H:FFF0H地址)。该处的指令实际上是BIOS的入口指令。之后,BIOS进行自检,并对平台其他硬件设备进行启动和初始化的工作。

(4)BIOS搜寻磁盘的主引导扇区MBR,并把MBR的BootLoader调至内存的CS:IP=0000H:7C00H处。MBR共512字节,分为两个部分:第一部分是PreBoot部分,占446字节;第二部分是分区表信息,占64字节。最后两个字节是55AA的标志。

(5)BIOS把控制权转交给MBR。

(6)引导扇区执行初始化工作,将控制权转交给操作系统加载器OSLoader,执行操作系统内核的加载,直到最后操作系统核心加载完毕。图2.1普通Linux启动流程2.1.2

Linux启动流程的完整性度量因素

弄清了Linux启动流程之后,下一步需要分析对Linux启动流程进行完整性度量时考虑的因素。

(1)Linux启动过程的完整性。

·单个组件的完整性:

·过程所需组件的完整性:

·启动顺序的完整性:

(2)Linux启动的模式分类。按照Linux启动的流程,可以把启动的过程分为三种基本模式:

·单组件过程(SingleComponentProcedure,SCP)。

·多组件过程(MultipleComponentsProcedure,MCP)。如果已知能够确保启动顺序的可信性,则上述公式可以简化为

·并发多组件过程(ParallelProcedureofMultipleComponents,PPMC)。那么,对于这种情况的完整性应该表示为

PPMC这种情形通常比较少见。

2.1.3

Linux启动流程需要度量的内容

(1)主引导扇区MBR。

(2)Grub或者Lilo等中间引导系统。

(3)操作系统启动流程上的特殊扇区。

(4)操作系统内核。

(5)所有进程的起点init。init的进程号是1,它是所有进程的起点。

(6)mingetty。

(7)与启动流程相关的其他文件。

(8)用户自定义文件。

2.2基于PMBR的SBA设计

本节将对安全启动架构(SecureBootstrapArchitecture,

SBA)的总体设计进行介绍。SBA的基本思想是:通过在BIOS和MBR之间插入称为PMBR(Pre-MBR)的组件,利用PMBR作为完整性度量代理,实现对操作系统启动流程上所有需要度量的内容(包括文件、数据、程序、代码块、

扇区等)进行完整性度量,并在度量完成之后转交控制权

给MBR,以实现正常启动。图2.2引入PMBR以后的启动流程图2.3安全启动架构SBA

2.3基于PMBR的SBA实现

2.3.1

BIOS安全增强与MP驱动

根据文献[14],在可信计算机中,BIOS应该进行如下安全增强:

(1)BIOS中需要加入哈希引擎,以便计算平台硬件/软件信息(例如PMBR等)的哈希值。

(2)BIOS需要有与ESM通信的输入输出模块。BIOS需要从ESM中读取PMBR,并将PMBR加载到可信计算平台主机内存的特定物理地址。

MP驱动主要包括如下四个函数:

(1)MPInitTPM函数:BIOS调用该函数对ESM和驱动进行初始化。

(2)MPCloseTPM函数:BIOS调用该函数关闭与ESM的链接。

(3)MPGetTPMStatusInfo函数:BIOS调用该函数从ESM读取当前错误和状态信息。

(4)MPTPMTransmit函数:BIOS调用该函数把输入缓存中的数据传送给ESM,并读取ESM的相应数据到输出缓存中。2.3.2

PMBR详细设计与实现

当BIOS进行安全增强之后,BIOS就能够执行对PMBR的完整性度量(不过,由于PMBR存储在ESM中,并受到ESM“保护性存储”功能的严格保护,因而这一步并不是必需的)、与ESM进行双向通信以及读取PMBR到内存特定地址等操作。本节中将对PMBR的详细设计与实现进行说明。图2.4

PMBR结构

PMBR运行时包含如下几个步骤(参见图2.3的执行顺序):

(1)PMBR从BIOS获取控制权,准备进行完整性度量。

当BIOS自检结束以后,安全增强的BIOS自动读取PMBR,并把PMBR存放在内存某个特定区域,例如:起始地址为CS:IP=1111H:2222H(假设地址)的内存中。

(2)PMBR分析校验表,执行完整性度量。当PMBR获取控制权以后,开始分析校验表区域,执行完整性度量。校验表的格式如表2.1所示。

(3)PMBR交出控制权给MBR,执行普通操作系统启动流程(参见图2.2)。当PMBR度量完毕之后将把控制权转交给MBR,执行正常的启动流程。这是分两步完成的。第一步:将MBR读入到起始地址为CS:IP=7C00H:0000H(真实地址)的内存中;第二步,执行一个跨段跳转,交出控制权给MBR。

(4)PMBR读取磁盘扇区。扩展int13h功能与老的int13h功能相比,差别在于它采用了新的“磁盘地址数据包(DiskAddressPacket,DAP)”数据结构和新的入口参数

形式。2.3.3从绝对路径文件名到磁盘扇区地址的转换

1.EXT3文件系统简介

·block。

·superblock。

·blockgroup。

·groupdescriptor。

·inode。

2.从绝对路径文件名到磁盘扇区号转换的算法

不失一般性,在介绍算法2.1之前,先以一个具体的例子来获得算法的直观说明。2.3.4

PMBR安全性证明与形式化开发

与PMBR一样,已有的安全启动(可信启动)方法往往也引入了新的组件。那么,引入这些新的组件是否会带来新的安全问题呢?已有的工作较少对这个问题进行研究。在本节我们将对PMBR的安全性证明与形式化开发做一个探讨。

定理2.1如果在引入PMBR之前系统启动是安全的,则在引入PMBR之后系统启动仍然是安全的。

2.4实验

2.4.1

EXT3文件系统实验

本节将会验证算法2.1和算法2.2的正确性,即在不使用任何系统调用或者第三方工具支持的情况下,完全依据算法2.1和算法2.2来获取文件信息。

(1)读取根目录“/”的inode结构体。在Linux当中,“/”的inode号固定为2。利用2.3.3节中的公式计算可得group_

num=0,offset_num=2。读取0号Group的groupdescriptor结构体如下:分析得到Group0的inodetable地址:0x00000283=643,也就是第643号block。读取第643号block,由于offset_num=2,读取第2个inode结构(第一个inode结构的128个字节省略),得到数据如下:

(2)分析根目录“/”的内容。读取1155号block,共有4096个字节。为了节省篇幅,这里不全部列出,只列出root子目录的目录入口结构(xx表示不相关的被忽略数据):

(3)通过上面的分析,得到/root的inode号为753665。重复上面的操作读取/root的inode结构体,分析得到/root/TrustChain的inode号。再读取其结构体,分析得到/root/TrustChain/v_table.c的inode号。具体过程限于篇幅,这里不再赘述。最后得到v_table.c的inode号为757111。得到“/root/TrustChain/v_table.c”的inode号之后,下一步需要计算该文件在硬盘上存储时所对应的block。其计算过程如下:根据inode=757111,利用2.3.3节中的公式计算得到group_num=46,offset_num=3447。读取该inode结构体如下,并从中进一步读取i_block[15]数组即可:第13个地址是0x002699c3,即2529731。打开2529731号block,可以读取其索引地址如下:图2.5从绝对路径文件名到block号的转换工具对比2.4.2

SBA实验

实现了PMBR对EXT3文件系统的解析之后,基于PMBR的SBA就可以正常运行了。图2.6和图2.7给出了

SBA运行的截屏结果。图2.6发现不可信OSLoader图2.7所有OSLoader文件都是可信的2.4.3性能分析

引入PMBR以后,启动将会引入一定的时间延迟,体现在如下几个方面:

(1)BIOS从ESM读取PMBR并调入内存:TLoadPMBR;

(2)PMBR分析校验表,查询需要度量的文件名:TAnalyzeVT;

(3)PMBR分析文件,获取磁盘扇区地址,读取文件内容:TReadSectors;

(4)计算当前文件的HASH值:TCalHASH。由于度量的文件和代码有多个,因此(2)~(4)会多次运行。假设总共有n个文件和代码需要被度量,那么总的时间开销为

(1)如果假设需要度量n个文件,每个文件的大小取平均值,设需要度量的总大小为M兆字节,则单位文件的大小为size=M/n兆字节;若实验得到PMBR读取大小为size的文件需要花费的时间为则(1)式可以化简为

(2)

2.5本章小结

为了解决可信链起始段“CRTM→BIOS→OSLoader→

OS”的完整性问题,本章提出一种基于PMBR的安全启动架构(Secu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论