用于提供系统完整性和遗留环境模拟的方法

文档序号:6428185阅读:153来源:国知局
专利名称:用于提供系统完整性和遗留环境模拟的方法
技术领域
本发明一般地涉及具有可扩展固件体系结构的计算系统,更具体地说,本发明涉及在具有可扩展固件体系结构的计算系统中,用以模拟遗留固件和环境并提供被保护的存储和执行的虚拟机监视器(VMW)的使用。
背景技术
计算系统固件方面的一个近期发展是可扩展固件接口(EFI)框架,其允许软件卖主开发可以与多种中央处理单元(CPU)一起使用的操作系统程序。包括应用二进制接口(ABI),其规定对于给定的CPU类型如何在堆栈上传递数据。通过抽象平台,该框架提供了优于使用遗留体系结构的系统的许多优点。关于元件体系结构发展的这一概念,正在形成在整个系统初始化过程中使用ABI和软件抽象的系统体系结构。这不仅包括CPU初始化,而且也包括芯片集和I/O设备的初始化。提供有一种软件框架,其允许多方写入抽象芯片集或I/O复合体如何工作的小片段代码。在这种框架中,来自多个卖主的产品将交互工作。来自各个卖主的代码片段包含在初始化模块中。在系统初始化阶段(在CPU重起之后,但在存储器初始化之前)期间,核心初始化代码顺序地调度初始化模块以提供基本服务。初始化阶段对系统进行足够的初始化以启动后续阶段,例如负责算法上更复杂的初始化过程的驱动器执行阶段,如扫描I/O总线、列举资源和安装驱动器。
允许来自多方的驱动器和应用程序的贡献的这一概念产生了几个问题。由单个卖主提供的系统固件的安全是卖主默认的。来自多种资源的代码模块的并入危及了系统完整性,因为没有提供沙箱处理(sandbox)或验证代码。EFI平台以物理模式执行。以物理模式执行意味着所有的地址对应于实际存储位置。虽然以物理模式的执行为OS加载程序提供了对所有平台资源的全部入口,但是它也妨碍了虚拟存储器页表的使用以及它们在预启动中提供的保护。因为启动固件具有全部机器入口,核心EFI的敏感数据结构和代码通过驱动器和应用程序访问的访问将会受损。在系统状态已经被坏代码损坏时,例如代码标识的用以验证驱动器和应用程序来源的技术不能保证故障隔离。
另一个困难是遗留代码支持。很多年来,软件一直被写成与PC/AT平台相兼容。很多遗留操作系统和可选ROM要求PC/AT存储器映射的硬件/软件。这种遗留代码以将处理器限制在1Mb存储器的实时模式执行,并且不提供存储器管理或存储器保护特征。


通过举例图示了本发明,但是本发明不意于由附图限制,在附图中相似的标号指示相似的元件,在附图中图1图示了用于实现本发明的VMM的示例性计算系统100;图2图示了根据本发明一个实施例的遗留模拟;图3是描绘根据本发明一个实施例用于沙箱处理非受信程序的VMM操作的处理流程图;以及图4描绘了根据本发明一个实施例通过使用VMM的安全应用的实现。
具体实施例方式
本发明在一个实施例中,提供了以运行遗留兼容代码或为了安全与保密而保护密钥数据为目的,用于提供系统状态的虚拟化的方法和装置。
VMM是模拟器软件,其提供包括所有CPU指令和系统资源(例如存储器和I/O设备)的原型机的有效复制品。在一个实施例中,VMM被用于为基于元件的体系结构平台维护预启动的安全和完整性策略。
使用虚拟机监视器(VMM)来模拟遗留硬件和环境,以提供遗留代码支持。VMM允许表面上有特权的代码(例如BIOS代码)被模拟和运行而无需该代码实现其模拟。
在驱动器执行阶段,安装有VMM的驱动器可以被加载。然后,遗留应用程序(例如遗留OS加载程序)可以在VMM内被运行。在一个实施例中,只有在启动变量被设定为指示遗留OS可以被启动时,才加载VMM。VMM的使用可以帮助保护存储器和系统结构不受应用程序的干扰。可以给予应用程序到系统资源的子集的访问,并且对内存映射未被指定用于更新的部分的访问将捕捉(程序中断)到VMM中。然后,VMM预启动策略代理可以保护状态并卸载有问题的软件。VMM透明地公开了一种环境,其似乎是物理模式环境但却具有对非法行为的防卫;它甚至可以为实际上不译码物理地址范围的系统映射内存,使得软件看见低于一兆字节的遗留内存映射。这种透明性保持了与遗留PC/AT BIOS模块、可选ROM、EFI驱动器和应用程序的兼容。
在一个实施例中,本发明虚拟化整个PC/AT环境,以提供对遗留OS和遗留硬件的支持,所述遗留硬件如82XX系列定时计数器、串行端口和主/从中断控制器。VM允许具有可扩展固件体系结构的系统简化了不使用其本地接口的预启动可选ROM或运行时环境。例如,VM模拟允许遗留可选ROM运行并使其I/O服务有效的PC/AT环境。然后,VMM将结果转变成本地API。即,VMM将I/O捕捉到本地环境中语义等价体。
在可替换实施例中,VMM可以被用于模拟本地32位/64位环境,以向以物理模式执行的平台提供被保护的存储器和被保护的执行。EFI系统体系结构不允许页表和对指定页的只读指定,因为OS加载程序可以使用页表来自引导OS内核。VMM的使用提供了一种在OS加载程序下产生并存储与安全有关的信息的方法,大多数驱动器和应用程序不能访问所述与安全有关的信息。
图1图示用于实现本发明的VMM的示例性计算系统100。这里所描述的以运行遗留兼容代码或保护密钥数据和代码区域的安全和保密性为目的的系统状态的虚拟化,可以在计算系统100内实现和使用,所述计算系统100可以表示通用的计算机、便携式计算机或其他类似的设备。计算系统100的组件是示例性的,可以在其中省略或添加一个或多个组件。例如,计算系统100可以使用一个或多个存储设备。
参照图1,计算系统100包括中央处理单元102和经由总线101耦合到显示电路105、主存储器104、静态存储器106和大容量存储设备107的信号处理器103。计算系统100还可以经由总线101耦合到显示器121、键盘输入122、光标控制123、硬拷贝设备124、输入/输出(I/O)设备125和音频/语音设备126。
总线101是标准系统总线,用于传送信息和信号。CPU102和信号处理器103是计算系统100的处理单元。CPU102和信号处理器103两者或两者之一可以被用于为计算系统100处理信息和/或信号。CPU102包括控制单元131、算术逻辑单元(ALU)132和几个寄存器133,它们被用于处理信息和信号。信号处理器103如CPU102一样也可以包括类似的组件。
主存储器104可以是例如随机访问存储器(RAM)或某种其他的动态存储器设备,用于存储由CPU102或信号处理器103使用的信息或指令(程序代码)。主存储器104可以存储在CPU102或信号处理器103执行指令期间的临时变量或其他中间信息。静态存储器106可以是例如只读存储器(ROM)和/或其他静态存储器设备,用于存储也可以由CPU102或信号处理器103使用的信息或指令。大容量存储设备107可以是例如硬盘或软盘或光盘驱动,用于存储用于计算系统100的信息或指令。
显示器121可以是例如阴极射线管(CRT)或液晶显示器(LCD)。显示设备121向用户显示信息或图像。计算系统100可以经由显示电路105与显示器121接口。键盘输入122是具有模数转换器的字母数字输入设备。光标控制123可以是例如鼠标、跟踪球或光标方向键,用于控制目标在显示器上121上的移动。硬拷贝设备124可以是例如激光打印机,用于在纸、胶片或某种其他类似的介质上打印信息。多个输入/输出设备125可以被耦合到计算系统100。通过计算系统100内包含的硬件和/或软件,可以实现根据本发明的用于支持遗留操作系统和遗留可选ROM的遗留环境的模拟,以及用于提供被保护的执行和存储的物理模式环境的模拟。例如,CPU102或信号处理器103可以执行存储在如主存储器104的机器可读介质中的代码或指令。
机器可读介质可以包括以由例如计算机或数字处理设备的机器可读的形式提供(即存储和/或传输)信息的机构。例如,机器可读介质可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备。代码或指令可以由载波信号、红外信号、数字信号和其他类似的信号表示。
图2图示了根据本发明一个实施例的遗留模拟。一般地,个人计算机母板将支持遗留8259中断控制器,即使只有遗留可选ROM预先假定它们的存在;现代操作系统使用APIC(IA32)或SAPIC(IPF)用于它们的中断支持,从而使得在机器启动的几秒期间如成对的8259的母板硬件可用。
在图2中示出的系统200,包括EFI核心205、遗留执行映像210、EFI驱动器215和VMM220。遗留执行映像210可以是不使用本地EFI接口的预启动可选ROM或运行时环境。一发生从遗留执行映像210到遗留8529中断控制基的写入,例如,指令就被捕捉到VMM220中。VMM220可以捕捉接触系统状态(例如中断标记)或改变保护的任何指令。如果系统正在以遗留模式执行,则VMM220将到遗留中断(PIC)屏蔽的访问映射到相关联的本地中断控制寄存器。例如,系统可以尝试访问未被包含的遗留硬件。VMM可以将I/O捕捉到本地环境中的语义等价体。这时,EFI驱动器215中的一个可以与相关联的芯片集寄存器通信,并将结果提供给虚拟机。这提供了从遗留环境的迁移路径。
通过沙箱处理来自第三方的程序,VMM可以被用于提供预启动的安全性。以沙箱模式运行程序防止程序对系统其余部分的访问。代码可以被受信,因为其不能损害系统的其余部分。可以给予应用程序到系统资源的子集的访问,并且对未被指定用于更新的内存映射的部分的访问将捕捉到VMM中。然后,VMM预启动策略代理可以保护状态并卸载有问题的软件。
图3是描绘根据本发明一个实施例的用于沙箱处理非受信程序的VMM操作的处理流程图。在图3中示出的处理300,从操作305开始,其中非受信程序尝试非法写访问。在操作310,指令被捕捉到VMM。如果程序由EFI核心代码开始,并且如果程序可以访问EFI核心数据结构,那么访问是合法的。如果不是,则在操作320拒绝访问,并且控制返回到核心。
在一个实施例中,VMM可以沙箱处理从适配卡并经由第三方驱动器引入的代码可能受损的状态。这种软件技术的小代码脚本对成本敏感的基于闪存的系统来说是很有利的。
VMM以优先模式执行并模拟优先模式以执行EFI环境直到OS加载。因为VMM抽象这个次优先模式,所以VMM可以隐藏地址空间段。虚拟化被保护模式所允许的被保护存储和执行,变成安全基础结构的一部分。
图4描绘了根据本发明一个实施例通过使用VMM的安全应用的实现。在图4中示出的系统400,包括评价模块410的预启动认证驱动器405。模块410可以包含卖主的数字签名。签名可以是MD5或SHA-1签名。预启动认证驱动器405可以调用到VMM420的签名逻辑421的入口点来确认签名。VMM420提供安全存储器422,其可以在证明日志(attestation log)中包含合法驱动器和模块的签名。证明日志可以包含系统已经加载的代码的签名。如果这样,则VMM将确认代码,即平台将证实已经运行代码。这在进行控制之前向OS提供了代码可以被受信的保证。
这样,VMM提供了实现受信平台的预启动安全性(即API和框架),直到并包括OS加载。这时,OS加载程序可以提供它自己的安全性。
在上述说明书中,已经参照其特定的示例性实施例描述了本发明。但是很清楚,可以在不脱离由所附权利要求给出的本发明的更宽的精神和范围的情况下做出多种修改和改变。因此,说明书和附图将被认为是说明性的而不是限制性的。
权利要求
1.一种方法,包括在具有以物理模式执行的本地环境的计算系统上实现虚拟机监视器;以及以最优先模式执行所述虚拟机监视器,所述虚拟机监视器模拟物理模式使得所述本地环境以次优先模式被执行。
2.如权利要求1所述的方法,其中,所述本地环境从包括32位环境、64位环境和PC/AT环境的列表中选择。
3.如权利要求2所述的方法,其中,所述VMM包含代码以提供从由PC/AT硬件模拟、PC/AT环境模拟、安全存储和安全执行构成的列表中选择的功能。
4.如权利要求3所述的方法,其中,所述安全存储被用于存储与安全有关的信息。
5.如权利要求4所述的方法,其中,所述与安全有关的信息是签名认证和加密哈希信息。
6.如权利要求5所述的方法,其中,所述与安全有关的信息被用于建立证明日志。
7.一种方法,包括在具有可扩展固件体系结构的计算系统上实现虚拟机监视器,使得以沙箱处理模式执行非受信代码,因此防止所述代码损坏系统。
8.如权利要求7所述的方法,其中,所述代码是遗留BIOS代码。
9.一种机器可读介质,其提供可执行指令,当所述可执行指令被处理器执行时使得处理器执行一种方法,所述方法包括在具有以物理模式执行的本地环境的计算系统上实现虚拟机监视器;以及以最优先模式执行所述虚拟机监视器,所述虚拟机监视器模拟物理模式使得所述本地环境以次优先模式被执行。
10.如权利要求9所述的机器可读介质,其中,所述本地环境从包括32位环境、64位环境和PC/AT环境的列表中选择。
11.如权利要求10所述的机器可读介质,其中,所述VMM包含代码以提供从由PC/AT硬件模拟、PC/AT环境模拟、安全存储和安全执行构成的列表中选择的功能。
12.如权利要求11所述的机器可读介质,其中,其中,所述安全存储被用于存储与安全有关的信息。
13.如权利要求12所述的机器可读介质,其中,所述与安全有关的信息是签名认证和加密哈希信息。
14.如权利要求13所述的机器可读介质,其中,所述与安全有关的信息被用于建立证明日志。
15.一种装置,包括具有以物理模式执行的本地执行环境的计算系统;以及在所述计算系统上实现的、以最优先模式执行的虚拟机监视器,所述虚拟机监视器模拟物理模式使得本地环境以次优先模式被执行。
16.如权利要求15所述的装置,其中,所述本地环境从包括32位环境、64位环境和PC/AT环境的列表中选择。
17.如权利要求16所述的装置,其中,所述VMM包含代码以提供从由PC/AT硬件模拟、PC/AT环境模拟、安全存储和安全执行构成的列表中选择的功能。
18.如权利要求17所述的装置,其中,所述安全存储被用于存储与安全有关的信息。
19.如权利要求18所述的装置,其中,所述与安全有关的信息是签名认证和加密哈希信息。
20.如权利要求19所述的装置,其中,所述与安全有关的信息被用于建立证明日志。
全文摘要
本发明描述了一种用于为具有可扩展固件体系结构的计算系统提供预启动安全性和遗留硬件和环境支持的方法和装置。使用虚拟机监视器来提供对系统状态的虚拟化,以运行遗留兼容代码或保护密钥数据和代码区域的安全。可以给予应用程序到系统资源的子集的访问,并且到未被指定用于更新的内存映射的部分的访问将捕捉(程序中断)到VMM。然后,VMM预启动策略代理将保护状态并卸载任何有问题的软件。
文档编号G06F21/22GK1585927SQ02819232
公开日2005年2月23日 申请日期2002年9月27日 优先权日2001年9月27日
发明者文森特·齐默 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1