CN103890717B - 在特权域中提供基本输入/输出系统(bios)的功能 - Google Patents

在特权域中提供基本输入/输出系统(bios)的功能 Download PDF

Info

Publication number
CN103890717B
CN103890717B CN201180074271.6A CN201180074271A CN103890717B CN 103890717 B CN103890717 B CN 103890717B CN 201180074271 A CN201180074271 A CN 201180074271A CN 103890717 B CN103890717 B CN 103890717B
Authority
CN
China
Prior art keywords
bios
request
electronic equipment
virtual machine
function
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
Application number
CN201180074271.6A
Other languages
English (en)
Other versions
CN103890717A (zh
Inventor
瓦柳丁·Y·阿里
约瑟·保罗·泽维尔·皮雷斯
詹姆斯·M·曼
波利斯·巴拉切夫
克里斯·I·道尔顿
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN103890717A publication Critical patent/CN103890717A/zh
Application granted granted Critical
Publication of CN103890717B publication Critical patent/CN103890717B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

一种特权域包括基本输入/输出系统(BIOS)的功能。访问BIOS的功能的请求被路由至该特权域。

Description

在特权域中提供基本输入/输出系统(BIOS)的功能
背景技术
像计算机或其它类型的设备这样的电子设备能够包括负责启动该电子设备的基本输入/输出系统(BIOS)。在启动期间,BIOS初始化并配置该电子设备的组件,并且加载该电子设备中的操作系统。此外,BIOS还能够提供其它服务,如电源管理服务、热管理服务、BIOS更新服务等等。
附图说明
一些实施例是关于下面的附图描述的:
图1、图3、图4和图5是根据各个实现方式的布置的框图;以及
图2和图6是根据各个实现方式的过程的流程图。
具体实施方式
基本输入/输出系统(BIOS)通常是在电子设备启动时由该电子设备运行的最初代码。电子设备的示例包括计算机(例如台式计算机、笔记本计算机、平板计算机、服务器计算机等)、手持设备(例如个人数字助理、智能电话等)、电子装置、游戏控制台或任何其它类型的电子设备。BIOS对该电子设备的多个硬件组件进行初始化和配置,并且加载和启动该电子设备的操作系统(OS)。用于BIOS 的代码通常存储在非易失性存储器上,如闪存设备或其它类型的可编程只读存储器(ROM)。
BIOS还提供能够在电子设备中启用的其它功能。BIOS的这种其它功能中的许多功能经常在电子设备中通过进入系统管理模式(SMM)来运行,该系统管理模式是OS运行被暂停的操作模式。此外,在具有多个处理器或多个处理器核的电子设备中,在SMM模式中可以禁用这些处理器或处理器核中除一个处理器或处理器核以外的全部处理器或处理器核。为了进入SMM模式,生效(assert)系统管理中断(SMI),并且运行(经常在相对高特权模式下)SMI处理程序(handler) 来执行各功能,该SMI处理程序是BIOS的一部分。
可能存在伴随进入SMM模式来执行BIOS功能的各种问题。首先,由于OS 运行被暂停,所以不能执行正常的电子设备操作。此外,在SMM模式期间禁用处理器(多个处理器)或处理器核(多个处理器核)的电子设备中,该电子设备的处理能力的一部分被临时地解激活,这意味着处理能力的这一部分不可用来执行其它任务。而且,预测SMM处理可能占用多长时间可能是困难的,这能够造成电子设备操作的不确定性。而且,由于特定BIOS功能可能花费相对长的一段时间来完成(例如大约数分钟),所以状态信息可能不可被该电子设备的使用者获得,这能够导致用户的不安体验,因为用户不能够确定该电子设备是否正在正常工作。
安全性也可能是个问题,因为在SMM操作期间恶意软件可能进行攻击,这能够导致系统出错。为避免任何对SMM操作的这种攻击而采取的安全措施可能导致电子设备设计方面的增加复杂度。这种安全措施的示例包括锁定特定存储区,该特定存储区包括寄存器和/或非易失性存储器的一部分,如闪存设备或其它类型的可编程只读存储器,这样能够提供保护以免受不想要的或未经授权的BIOS改变。然而,这些安全措施可能对特定BIOS功能(如BIOS代码更新)的性能施加限制,这能够迫使仅在特定时间(如系统重启动时)执行这种BIOS功能。
SMM中经常执行的各种功能的示例能够包括以下任意一个或以下的组合:更新BIOS代码的服务,访问或修改BIOS设置的服务,执行热管理(例如控制电子设备中的冷却设备,如风扇)的热管理服务,功率管理服务(移除或恢复对特定硬件组件的供电),使电子设备在不同功率状态(例如休眠状态、睡眠状态、完全开机状态等等)之间转变的服务,处理电子设备中的按键或按键序列的激活(包括多个按键的某一组合的激活)的服务(例如开启/关闭无线接口组件的按键、执行某一预限定的任务的热键序列等等),与电子设备的环境光传感器关联的服务 (用于检测该电子设备周围的环境光),修改BIOS设置的服务,修改电子设备中的硬件组件的设置的服务,改变电子设备的可启动设备的启动顺序的服务,用于处理OS和BIOS之间的特定类型调用(例如中断15调用)的服务,运行嵌入式控制器的命令的服务,以及在特定条件下支持过时外围设备(例如通用串行总线设备)的服务。
尽管上面列出各种示例BIOS功能,但是注意到在其它实现方式中能够使用其它或可替代的BIOS功能。
根据一些实现方式,为了更强健的系统行为,能够在电子设备的特权域中提供BIOS的功能,其中该特权域是该电子设备的域,该域相对安全并且具有不可由该电子设备中的其它实体利用的特定预限定的特权。一般而言,“特权域”指具有预限定的特权的域,该预限定的特权允许该域中的实体执行该电子设备中其它实体(例如OS、应用程序等)不被允许执行的功能。此外,特权域还具有安全机制,以保护该特权域不受未经授权的访问或攻击的影响。
通过将BIOS的功能移动至该特权域,该电子设备可以不必进入SMM模式来执行已经被移动到该特权域内的上述BIOS的功能。在一些实现方式中,能够完全消除SMM操作。在其它实现方式中,仍能够启用SMM操作来执行特定BIOS功能,同时通过该特权域执行剩余的BIOS功能。在后者情况中,想法是仅对一小组 BIOS功能启用SMM,使得能够采取有效措施来提供安全和/或提高效率。
特权域的示例包括以下任意一种或某一组合:域0,其经常是由虚拟机监视器 (还被称为管理程序(hypervisor))启动来执行管理任务的第一域;虚拟机监视器(或管理程序)的一部分;来宾虚拟机,其具有向来宾虚拟机提供增强的特权和/或安全的预限定的设置;或者具有预限定的特定特权和/或安全机制的电子设备中的另一种域。
“虚拟机”(还被称为“虚拟装置”或“虚拟部分”)指物理机器(电子设备)的、被提供来虚拟化或仿真物理机器的某一部分或某一片段。从用户或应用的角度看,虚拟机看上去像物理机器。虚拟机包括操作系统(被称为来宾操作系统)和至少一个应用程序。
还被称为管理程序的虚拟机监视器(VMM)管理电子设备的包括硬件组件在内的物理资源中由虚拟机进行的共享。VMM对物理资源进行虚拟化。每个虚拟机具有由VMM管理的关联的虚拟化物理资源。VMM处理对物理资源的请求。
图1是根据一些实现方式的示例电子设备100的框图。电子设备100包括VMM 102,VMM 102创建包括至少一个BIOS功能106(上面列出的BIOS功能的任意一种或者组合,或者其它BIOS功能)的特权域104。尽管接下来的介绍从单数意义上将“BIOS功能”认为是特权域104的一部分,但是注意“BIOS功能”能够指单个BIOS功能或多个BIOS功能。
在一些示例中,特权域104是域0,其是在系统启动时由VMM 102启动的管理域并且具有增强的特权和安全机制。由域0执行的任务的示例包括创建和配置来宾域。域0和来宾域中每个域都被认为是对应的虚拟机。
在其它实现方式中,特权域104可以是另一种虚拟机,如来宾虚拟机。特权域104能够与VMM 102分离,如根据图1的布置。在替代实现方式中,特权域 104可以是VMM 102的一部分。在这种替代实现方式中,BIOS功能106是VMM 102的一部分。
在特权域104中提供BIOS功能106实现“云中BIOS”,该“云中BIOS”也被称为“BIOS.v”。该“云”可以指特权域104(或某一其它受信任的环境)。该云能够位于电子设备100中或者电子设备100外部。例如,如下面进一步介绍的,包含BIOS功能的云能够由电子设备100经由网络访问。
BIOS功能106可由该电子设备中的实体108访问。在一些示例中,能够访问特权域104中的BIOS功能106的实体108是来宾虚拟机110的一部分。例如,这种实体108可以是来宾虚拟机110中的来宾操作系统或另一种实体。在其它示例中,实体108能够位于任何来宾虚拟机110的外部,如在主机操作系统(图1中未示出)或应用程序想要访问BIOS功能106的场景中。“主机操作系统”不同于“来宾操作系统”,因为来宾操作系统是虚拟机的一部分,而主机操作系统不是虚拟机的一部分。
有两种用于实体108访问特权域104中的BIOS功能106的替代机制。第一机制涉及实体108直接发送访问特权域104中的BIOS功能106的请求(112)。如下面进一步介绍的,这能够通过来宾虚拟机110中的虚拟BIOS的存在来支持。
根据第二机制,访问BIOS功能106的请求(114)被VMM 102截获并且被 VMM 102路由(沿路径116)至特权域104。在一些实现方式中,VMM 102能够截获访问BIOS功能106的请求(来自实体108)并将该请求路由至特权域104,而不必用虚拟BIOS配置VMM 102。这降低VMM 102的设计的复杂度。
图1还示出电子设备100中的硬件资源116。作为示例,硬件资源116包括处理器(或多个处理器)、I/O设备、易失性存储器、第二存储器、闪存、网络接口控制器、图形适配器等等。来宾虚拟机(如110)对硬件资源116的访问由VMM 102管理。
图2是根据一些实现方式的过程的流程图。图2的过程能够由例如图1所示的实体执行。该过程接收(在202处)启用BIOS功能(例如图1中的BIOS功能 106)的请求。该请求能够由VMM 102从例如实体108接收。
该过程将该请求路由(在204处)至特权域104。这种路由能够由VMM 102 执行,或者可替代地,该路由能够由来宾虚拟机110中的虚拟BIOS执行。在具有虚拟BIOS的实现方式中,来宾虚拟机110中想要访问BIOS(如BIOS功能106) 的实体(例如108,该实体可以是来宾操作系统)向来宾虚拟机110中的虚拟BIOS 发出访问请求。然后,虚拟BIOS将该访问请求路由至特权域104。
然后,特权域104基于对该请求的源进行识别或者对该请求的背景进行识别或者对该请求的源和背景进行识别,确定(在206处)是否运行所请求的BIOS功能。在特权域基于对该请求的源进行识别而做出确定(206)的实现方式中,于是如果特权域104确定该请求的源被授权来访问所请求的BIOS功能,则运行所请求的BIOS功能。另一方面,在这种实现方式中,如果特权域104确定该请求的源未被授权来访问所请求的BIOS功能(如在恶意软件发出该请求的场景中),那么特权域104能够拒绝对所请求的BIOS功能的访问。以此方式,特权域104能够安全地运行BIOS功能。
可替代地或此外,特权域104基于对该请求的背景进行识别来做出确定(206)。该请求的“背景(context)”指在需处理该请求时该电子设备(或者该电子设备的一部分)的当前状态或环境。基于该请求在背景上是否正确(换言之,基于该电子设备(或该电子设备的一部分)的当前状态或环境是否满足用于该请求的运行的规则),特权域104确定是否能够运行该请求。例如,假设该电子设备能够合法地依次从状态S1变化至状态S2、至状态S3以及至状态S4。还假设运行所请求的BIOS功能会将该电子设备置于状态S4。在这种示例中,只有当该电子设备处于状态S3(换言之,该请求的背景正确)时,特权域104才会允许该请求运行该BIOS功能。另一方面,如果该电子设备处于状态S2,那么特权域104不会允许该请求的运行,因为这将是不合法的转变(背景不正确)。
运行BIOS功能的请求的背景是否正确的另一示例如下。假设系统规定执行动作的命令涉及以下命令顺序:(1)锁定系统,(2)执行动作,以及(3)解锁系统。如果在锁定该系统的命令以后接收用于运行的请求,那么运行BIOS功能的该请求将在背景上是正确的。然而,如果在接收锁定该系统的命令以前接收请求,那么该请求将在背景上是不正确的,并且该请求不能够被特权域运行。
根据一些实现方式,在不必进入SMM的情况下所请求的BIOS功能,换言之,能够绕过SMM来执行传统上在SMM中由SMM BIOS处理程序执行的特定BIOS 功能。通过使用根据一些实现方式的技术或机制,传统上会在SMM中执行的BIOS 功能能够作为替代在由特权域提供的受信任运行时环境中执行。
此外,能够简化电子设备的总体设计,因为能够省略传统上使用的安全机制 (如对寄存器或非易失性存储器的多个部分的锁定),因为正是特权域现在控制对BIOS功能的请求是否被允许执行。
除了运行所请求的BIOS功能以外,特权域104还能够在运行该BIOS功能以前执行特定任务。作为示例,特权域104能够确定是否恰当地形成了访问或执行 BIOS功能的请求,或者待写数据(如在BIOS代码更新的情况中)或者BIOS策略的设置是否正确(例如正确的大小,正确的核验码等)。这能够提供保护来防止以下情况:恶意软件能够使用恶意形成的访问BIOS功能的请求以图导致由处理该恶意形成的命令请求带来BIOS故障。特权域104还能够确定是否能够在执行该 BIOS功能以前执行待修改的数据(例如BIOS代码)的备份。特权域104能够进一步确定是否有充足的电池电力来完成所请求的BIOS功能。通常来说,在该特权域开始实际上对启用BIOS功能的请求进行处理并且将该请求路由至实际的物理 BIOS去进一步处理以前,该特权域能够首先验证与该请求关联的请求输入,以及该请求和其输入的背景。
在更新BIOS代码的背景中,特权域104还能够处理与BIOS更新关联的元数据和/或元代码。该元数据能够提供关于要更新BIOS代码的哪个(哪些)部分的策略或描述以及与执行该更新关联的条件(如与保证与用于更新BIOS代码的更新代码镜像具有正确签名有关的条件,与在更新失败时还原至较旧的BIOS代码版本有关的条件,等等)。该元代码能够限定关于将如何更新BIOS的变量和设置的步骤。特权域104能够实现解释器(interpreter)来处理该元数据和/或元代码。
图3是根据替代实现方式的电子设备300的框图。电子设备300包括多个来宾虚拟机302A、302B,尽管在图3中示出两个虚拟机302A、302B,但是注意,在替代实现方式中,能够仅存在一个来宾虚拟机或者能够存在两个以上的来宾虚拟机。
每个来宾虚拟机302A或302B包括各自的来宾操作系统304A或304B,以及各自的应用程序306A或306B。在一些实现方式中,每个来宾虚拟机302A或302B 进一步包括虚拟BIOS308A或308B。被设计来访问BIOS的服务的来宾操作系统 304A或304B会进行对各自的虚拟BIOS 308A或308B(而不是实际的BIOS)的调用。在一些实现方式中,于是虚拟BIOS 308A或308B能够将该请求直接路由至包括BIOS功能106的特权域320。就根据图1的实现方式而言,特权域320能够用域0或另一虚拟机实现,或者能够在VMM 102中实现。
在替代实现方式中,虚拟BIOS 308A或308B能够替代地通过VMM 102路由该访问BIOS功能的请求。在又一替代实现方式中,能够从来宾虚拟机302A或302B 中省略虚拟BIOS308A或308B,在这种实现方式中,访问BIOS功能的请求能够被VMM 102截获。
电子设备300进一步包括硬件资源116和固件层310,固件层310具有包括实际BIOS312(在接下来的介绍中被称为“物理BIOS”)的机器可读指令。“物理 BIOS”或“实际BIOS”指BIOS代码,该BIOS代码驻留在非易失性存储器(如闪存或其它可编程只读存储器)中并且会在电子设备300启动时运行。物理BIOS 312可以是典型的物理BIOS的缩小(简化)版本,因为BIOS的一个或多个功能已经被移动至特权域320,使得从特权域320运行这些功能,从而不必执行对物理 BIOS 312的访问。然而,存在仍属于物理BIOS 312的物理BIOS 312的特定功能,访问这种BIOS功能涉及启用物理BIOS 312。这种启用能够通过VMM 102从特权域104实现,如图3中的路径314所示。
还应注意,传统上不对在操作系统和BIOS之间交换的数据进行保护,因此,一些系统可以采用各种专有的方案来提供在操作系统和BIOS之间交换的数据的某一程度保护。这种保护被执行,因为在操作系统和BIOS之间转移的数据可能包括敏感信息,如用户姓名、密码、认证哈希和/或授权策略。所使用的一个示例常规保护方案是对在操作系统和BIOS之间交换的信息进行加密。由于使用加密的保护会涉及在BIOS(以及操作系统)中使用和存储密钥,并且由于通常没有对该密钥进行足够的保护,所以对在操作系统和BIOS之间交换的信息提供的保护可能弱。由于与物理BIOS 312的通信是通过特权域320执行的,所以将不必实现用于保护与物理BIOS 312传递的数据的机密性和/或完整性(如通过对该数据进行加密)的传统机制。这提供解决方案的简单和性能增强,同时对向物理BIOS传递的数据提供更高保护,而实际上不必提供特殊的专有保护机制。
除来宾虚拟机302A、来宾虚拟机302B和特权域320以外,电子设备300还能够包括服务域虚拟机316,该服务域虚拟机316包括可运行来提供用户界面的用户界面(UI)代码318。在服务域虚拟机316中由UI代码318提供的用户界面能够由用户用来监视特权域104的状态,使得用户能够在BIOS功能106的运行期间被提供反馈。此外,该用户界面还被用来配置特权域320的设置。
如图3中进一步描绘的,根据一些示例,特权域320还能够包括网页(web) 服务322,以允许来自位于电子设备300外部的实体324经由安全连接326的网页访问。“安全连接”指一种网络连接,在该网络连接中应用安全机制(例如数据加密、安全隧道的建立等)来防止经由该网络连接传递的数据的未经授权的访问。例如,在企业环境中(其中企业可以是公司、教育机构或政府部门),安全连接 326允许电子设备300建立与受信任的服务器(324)的通信,如与被配置为提供预限定的服务的服务器的通信。服务器324能够提供的预限定的服务的示例可以包括更新物理BIOS 312或BIOS功能106的服务。在其它示例中,服务器324能够提供其它服务。受信任的特权域320的使用允许调用从电子设备300外部提供的BIOS功能。
在一些实现方式中,云中的BIOS建立在基于VMM的体系结构的以下前提基础上:物理BIOS知道并且信任该物理BIOS正在启动的主运行时实体(图1或图3的VMM 102),并且BIOS信任的VMM有能力捕获并且关闭除来自该特权域的那些I/O请求以外的所有I/O请求(访问BIOS功能的I/O请求)。在一些实现方式中,能够提供BIOS核验机制来认证要被该电子设备启动的VMM的来源。这种核验机制的示例在美国专利申请No.PCT/US2011/022814中描述。这种核验机制允许管理员或其它用户指定在电子设备100或电子设备300中只能够启动经授权的VMM。核验机制确保该电子设备内的VMM镜像未被恶意修改,并且该VMM 能够被信任。物理BIOS能够可视地核验该VMM镜像,并且确保用事先已经规定的已知一组受控操作设置启动该VMM。
在核验已经启动了经授权的VMM以后,物理BIOS能够推迟或省略物理BIOS 会正常执行以防止被未经授权的或恶意的代码破坏的多种安全措施的运行。例如,物理BIOS能够选择不锁定BIOS快闪寄存器和/或闪存的多个部分。
图1和图3示出在电子设备(100或300)内部提供云中BIOS(例如BIOS功能106)的实现方式。然而注意,从来宾虚拟机或电子设备的想要访问BIOS服务的其它实体的角度看,包括BIOS服务的该云能够位于任何位置,包括位于该电子设备外部的位置。
根据一些实现方式,为了允许经由网络的有效BIOS功能访问,特权域能够用来提供基于网页的网络通信功能。图4示出这种布置的示例。图4示出电子设备 400,电子设备400具有来宾虚拟机402、VMM 404以及硬件资源406。电子设备 400进一步包括特权域408,特权域408具有基于网页的网络通信功能410。基于网页的网络通信功能410提供基于网页的接口411,该基于网页的接口411能够将 BIOS访问请求路由至内部BIOS功能412(其可以是特权域408的一部分)或者外部BIOS功能414(其可通过网络416访问)。请求实体(例如VMM404或来宾虚拟机402)能够将BIOS访问请求提交至由基于网页的网络通信功能410提供的基于网页的网络接口411。
在一些实现方式中,网络416是用安全机制实现的安全网络,以防止经由网络416在网络要素之间传递的信息的未经授权的访问。
外部BIOS功能414可以是服务器计算机420中的受信任的环境418的一部分。在一些实现方式中,受信任的环境418还能够在服务器计算机420中的特权域(例如域0、安全的来宾虚拟机、虚拟机监视器等)中实现。服务器计算机420具有一个或多个处理器422、存储介质424以及经由网络416与电子设备400通信的网络接口426。
在一些实现方式中,由基于网页的网络通信功能410提供的基于网页的接口411是服务请求者-服务提供者模型的一部分,该服务请求者-服务提供者模型允许请求者(例如电子设备400)经由网络从提供者(例如服务器计算机420)请求服务(例如BIOS服务)。作为示例,基于网页的接口可以是网页服务接口。网页服务指被设计来支持经由网络的可互操作的机器对机器交互的机制。网页服务接口能够根据由网络服务描述语言(WSDL)描述的格式,该网页服务描述语言(WSDL) 由万维网联盟(W3C)定义。可替代地,网页服务接口能够根据(也由W3C定义的)简单对象访问协议(SOAP),该简单对象访问协议是用于通过网络在网页服务实现方式中交换结构化信息的协议。
作为另一替代,基于网页的接口411能够根据表述性状态转移(REST)体系结构,该体系结构包括客户机和服务器,其中客户机能够向服务器提交请求且服务器能够向客户机提供响应。请求和响应是围绕资源的表述的转移建立的。资源可以是可以被寻址的任何连贯的且有意义的概念。资源的表述通常是捕获资源的当前状态或预期状态的文档。在REST体系结构中,由客户机(例如电子设备400) 提交的请求能够在一些示例中是超文本传输协议(HTTP)获得(Get)请求。服务器(例如服务器计算机420)能够对该HTTP获得请求提供HTTP响应。
在基于网页的接口411中,通过发出包含所请求的资源的地址的BIOS访问请求,能够访问资源(例如,内部BIOS功能412或外部BIOS功能414)。该地址可以是网页地址,如统一资源定位器(URL)、互联网协议(IP)地址、或能够唯一地识别所请求的资源的某一其它地址。
响应于包含在基于网页的接口411处接收的地址的BIOS访问请求,基于网页的网络通信功能410能够将该请求送往内部BIOS功能和外部BIOS功能中合适的一个BIOS功能。在一些情况中,基于网页的网络通信功能410能够将该请求送往内部BIOS功能和外部BIOS功能。
在外部位置(如服务器计算机420)提供BIOS功能能够提供特定益处。例如,与服务器计算机420关联的服务提供者能够在不牵涉客户机设备(如电子设备400) 的情况下执行BIOS更新的自动检查。该服务提供者还能够控制BIOS至前一版本的还原,如在检测到故障或错误时。还能够存在与BIOS相关的能够以更有效且更经济的方式在服务器计算机420处执行的更多服务。
提供基于网页的接口的另一益处是能够存在对在访问BIOS功能时涉及的通信所用特定芯片组或操作系统体系结构的降低的依赖性。例如,在采用来自微软的操作系统的一些系统中,WMI((Windows Management Instrumentation,视窗管理规范)机制(其是WBEM(Web Based Enterprise Management,基于网页的企业管理)的实现)能够用来从操作系统访问BIOS功能。然而,在其它操作环境(如使用Linux或其它操作系统的环境)中,对WMI 的支持可能是不可用的或者可能是稀少的。作为进一步的示例,特定中断机制,如int15或int1A,能够与特定类型的芯片组一起使用。使用更开放的接口,如根据一些实现方式的基于网页的接口,减少对特定芯片组和操作系统体系结构的依赖性。此外,使用上面提到的WMI或其它机制访问BIOS功能所用的命令格式可能是过时的并且可能缺乏灵活性。基于网页的接口允许使用根据更广泛使用的标准(如XML(ExtensibleMarup Language,可扩展标记语言)或其它标准)的命令来进行启用BIOS功能的通信,这能够允许更开放的且可扩展的命令格式并且允许采用基于标准的验证机制(例如基于XML的验证机制)。
图5是根据一些实现方式的电子设备500的简化框图。电子设备500包括请求实体502(例如VMM 404、来宾虚拟机402或某一其它实体),请求实体502 能够提交BIOS访问请求504。BIOS访问请求504被提交至基于网页的接口506 (该基于网页的接口506类似于图4的基于网页的接口411)。然后,提供基于网页的接口506的功能能够将BIOS访问请求504送至云510中的对应BIOS功能508,其中云510能够位于电子设备500内部,或者位于可经由网络访问的外部位置。
图6是根据一些实现方式的过程的流程图。该过程能够由电子设备400或电子设备500执行。该过程接收(在602处)访问BIOS功能的请求。该请求能够由基于网页的接口(例如411或506)接收。然后,该过程通过基于网页的接口将该请求路由(在604处)至包括该BIOS功能的域。该域可以是以下任一种:图4中的特权域408、图4中的受信任的环境418或者图5中的云510。
各种模块,如在图1、图3、图4和图5中绘出的那些模块,能够被实现为能够在一个或多个处理器上运行的机器可读指令。处理器能够包括微处理器、微控制器、处理器模块或子系统、可编程集成电路、可编程门阵列或者别的控制设备或计算设备。
该机器可读指令能够存储在机器可读存储介质或计算机可读存储介质中,该机器可读存储介质或计算机可读存储介质能够被实现为一个或多个计算机可读存储介质或机器可读存储介质。存储介质能够包括不同形式的存储器,包括诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)和闪存之类的半导体存储器设备,诸如硬盘、软盘和可换式磁盘之类的磁盘,包括磁带的其它磁性介质,诸如光盘(CD)或数字视频盘(DVD)之类的光学介质,或其它类型的存储设备。注意,上面论述的指令能够提供在一个计算机可读存储介质或机器可读存储媒介上,或者可替代地,能够提供在分布于可能具有多个节点的大型系统中的多个计算机可读存储介质或机器可读存储介质上。这种计算机可读存储媒介或介质,或机器可读存储媒介或介质被认为是物品(或制品)的一部分。物品或制品能够指任意被制造的单个组件或多个组件。存储媒介或存储介质能够位于运行该机器可读指令的机器内或者位于能够通过网络下载用于运行的机器可读指令的远程位置。
在前面的描述中,阐述许多细节,以提供对本文公开的主题的理解。然而,实现方式可以在没有这些细节中的一些细节或全部细节的条件下实践。其它实现方式可以包括上面介绍的细节的改变和变型。希望所附权利要求覆盖上述改变和变型。

Claims (15)

1.一种在电子设备的特权域中提供基本输入/输出系统BIOS的功能的方法,包括:
接收启用所述BIOS的所述功能的请求;
将所述请求路由至包括所述BIOS的所述功能的所述特权域,其中所述请求在不通过虚拟机监视器的情况下被虚拟BIOS路由至所述特权域;以及
由所述特权域基于对从所述请求的源和所述请求的背景中选择的至少一种的识别,确定是否运行所述功能,其中,所述特权域由所述电子设备的所述虚拟机监视器启用并且与所述虚拟机监视器分离。
2.根据权利要求1所述的方法,其中接收启用BIOS的功能的请求包括接收启用对所述BIOS的代码进行更新的服务的请求。
3.根据权利要求1所述的方法,其中接收启用BIOS的功能的请求包括接收启用从由以下组成的组中选择的服务的请求:
更新所述BIOS的设置的服务;
执行所述电子设备中的热管理的热管理服务;
使所述电子设备在不同功率状态之间转变的服务;
控制所述电子设备中的组件的功率的功率管理服务;
处理所述电子设备的按键或按键序列的激活的服务;
与所述电子设备的环境光传感器关联的服务;
修改所述BIOS的设置的服务;
修改所述电子设备中的硬件组件的设置的服务;
改变所述电子设备的能启动设备的启动顺序的服务;
用于处理操作系统和所述BIOS之间的调用的服务;
运行嵌入式控制器的命令的服务;以及
支持过时外围设备的服务。
4.根据权利要求1所述的方法,进一步包括:
由在所述电子设备上运行的物理BIOS,启用所述虚拟机监视器。
5.根据权利要求4所述的方法,进一步包括:
所述物理BIOS核验所述虚拟机监视器的镜像,并且响应于所述核验,选择不运行被用来防止对所述电子设备的特征的未经授权的访问的安全措施。
6.根据权利要求4所述的方法,进一步包括:
接收第二BIOS访问请求;
将所述第二BIOS访问请求路由至所述特权域;以及
响应于所述第二BIOS访问请求,执行所述特权域和所述物理BIOS之间的通信。
7.根据权利要求1所述的方法,进一步包括:
响应于确定要运行所述功能,访问所述特权域中的所述功能来运行所述功能。
8.根据权利要求7所述的方法,其中运行所述功能是在不进入系统管理模式(SMM)的情况下执行的。
9.根据权利要求1所述的方法,进一步包括:
接收第二BIOS访问请求;
由所述特权域将所述第二BIOS访问请求送至位于所述电子设备外部的位置,以启用位于该外部的位置处的第二BIOS功能。
10.根据权利要求1所述的方法,进一步包括:
提供用户界面来监视所述功能的运行状态,其中所述用户界面是由虚拟机提供的。
11.一种在电子设备的特权域中提供基本输入/输出系统BIOS的功能的方法,包括:
由实体生成访问所述BIOS的所述功能的请求;以及
由虚拟BIOS将所述请求路由至包括所述BIOS的所述功能的所述特权域,其中所述请求在不通过虚拟机监视器的情况下被所述虚拟BIOS路由至所述特权域,其中所述虚拟机监视器不具有任何虚拟BIOS功能,并且所述特权域由所述虚拟机监视器启动并且与所述虚拟机监视器分离。
12.根据权利要求11所述的方法,其中所述特权域是域0和来宾虚拟机之一。
13.根据权利要求11所述的方法,其中所述电子设备进一步包括启动所述虚拟机监视器的物理BIOS,并且其中所述电子设备在不访问所述物理BIOS的情况下运行所述特权域中的所述BIOS的所述功能。
14.一种电子设备,包括:
至少一个处理器;
实体,发出访问基本输入/输出系统BIOS的功能的请求;
在所述至少一个处理器上可运行的虚拟机监视器;以及
将由所述虚拟机监视器启用的并且与所述虚拟机监视器分离的特权域,其中所述特权域包括所述BIOS的所述功能,并且其中来自所述实体的所述请求在不通过所述虚拟机监视器的情况下被虚拟BIOS路由至所述特权域。
15.根据权利要求14所述的电子设备,进一步包括:
来宾虚拟机,包括所述实体,其中所述来宾虚拟机包括在不通过所述虚拟机监视器的情况下将来自所述实体的所述请求路由至所述特权域的所述虚拟BIOS。
CN201180074271.6A 2011-10-21 2011-10-21 在特权域中提供基本输入/输出系统(bios)的功能 Active CN103890717B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/057258 WO2013058766A1 (en) 2011-10-21 2011-10-21 Providing a function of a basic input/output system (bios) in a privileged domain

Publications (2)

Publication Number Publication Date
CN103890717A CN103890717A (zh) 2014-06-25
CN103890717B true CN103890717B (zh) 2018-03-27

Family

ID=48141214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180074271.6A Active CN103890717B (zh) 2011-10-21 2011-10-21 在特权域中提供基本输入/输出系统(bios)的功能

Country Status (9)

Country Link
US (1) US9753738B2 (zh)
JP (1) JP5885851B2 (zh)
CN (1) CN103890717B (zh)
BR (1) BR112014009445B1 (zh)
DE (1) DE112011105745B4 (zh)
GB (1) GB2510281B (zh)
IN (1) IN2014DN03052A (zh)
TW (1) TWI478062B (zh)
WO (1) WO2013058766A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013058768A1 (en) 2011-10-21 2013-04-25 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
GB2531844B (en) * 2014-10-31 2019-06-26 Hewlett Packard Development Co Hardware-protective data processing systems and methods using an application executing in a secure domain
US9740492B2 (en) * 2015-03-23 2017-08-22 Intel Corporation System management mode trust establishment for OS level drivers
US10095891B2 (en) * 2015-06-08 2018-10-09 Nuvoton Technology Corporation Secure access to peripheral devices over a bus
US10867045B2 (en) 2015-09-30 2020-12-15 Hewlett-Packard Development Company, L.P. Runtime verification using external device
EP3220262B1 (en) * 2016-03-15 2018-06-13 Axis AB Device which is operable during firmware upgrade
US10838707B2 (en) 2018-07-20 2020-11-17 Dell Products L.P. Runtime update of intel server platform services' node manager settings in bios EEPROM
JP7384900B2 (ja) 2018-08-03 2023-11-21 エヌビディア コーポレーション 仮想マシン・メモリの安全なアクセス
CN110096888B (zh) * 2019-04-18 2021-02-09 苏州浪潮智能科技有限公司 一种加快验证及分析smm安全隐患的方法及系统
US11847483B2 (en) * 2020-12-03 2023-12-19 International Business Machines Corporation Secure virtual machine software management

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063496A (en) 1988-06-01 1991-11-05 International Business Machines Corporation Signaling attempted transfer to protected entry point bios routine
US6081664A (en) 1996-09-30 2000-06-27 Intel Corporation Method for monitoring a BIOS
US6401198B1 (en) * 1999-03-09 2002-06-04 Texas Instruments Incorporated Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use
TW448406B (en) 1999-10-19 2001-08-01 Inventec Corp BIOS updating method performed through the network
US6711675B1 (en) * 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US7213152B1 (en) 2000-02-14 2007-05-01 Intel Corporation Modular bios update mechanism
US7370324B2 (en) 2003-09-30 2008-05-06 Intel Corporation Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
US7930378B2 (en) * 2003-12-24 2011-04-19 Intel Corporation Method to support XML-based consoles in pre-boot and post operating system execution environments
US7234054B2 (en) 2004-02-09 2007-06-19 Intel Corporation Method and apparatus for enabling platform configuration
TWI231427B (en) 2004-03-04 2005-04-21 Quanta Comp Inc Method and system for controlling remote computers
CN1680920B (zh) 2004-04-07 2011-06-15 纬创资通股份有限公司 远端更新数据处理系统中基本输入输出系统的方法及其装置
US7937700B1 (en) * 2004-05-11 2011-05-03 Advanced Micro Devices, Inc. System, processor, and method for incremental state save/restore on world switch in a virtual machine environment
US7797707B2 (en) 2005-03-02 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of a domain in which a shared resource's device driver resides
US8799891B2 (en) 2005-03-02 2014-08-05 Hewlett-Packard Development Company, L.P. System and method for attributing CPU usage of a virtual machine monitor to a corresponding virtual machine
US7334076B2 (en) 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US20070169076A1 (en) 2005-10-28 2007-07-19 Desselle Bernard D Methods and systems for updating a BIOS image
US7676666B2 (en) 2006-02-02 2010-03-09 Dell Products L.P. Virtual BIOS firmware hub
CN100561923C (zh) 2006-02-28 2009-11-18 联想(北京)有限公司 一种bios刷新升级的系统和方法
CN101034994A (zh) 2006-03-07 2007-09-12 环达电脑(上海)有限公司 基于远程的bios刷新方法
JP4358217B2 (ja) * 2006-10-31 2009-11-04 株式会社東芝 キャッシュサーバ、ネットワークブート方法、及びプログラム
US7779243B2 (en) 2006-12-29 2010-08-17 Intel Corporation Dual operating system computing system
WO2008149412A1 (ja) * 2007-06-04 2008-12-11 Fujitsu Limited 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
US7925802B2 (en) 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
TW200907804A (en) 2007-08-15 2009-02-16 Inventec Corp Method for updating BIOS and computer and system using the same
US7809985B2 (en) 2007-09-28 2010-10-05 Microsoft Corporation Offline hardware diagnostic environment
US8281303B2 (en) * 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
JP4982347B2 (ja) * 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
US7987353B2 (en) 2008-01-09 2011-07-26 International Business Machines Corporation Remote BIOS for servers and blades
TW200931315A (en) * 2008-01-09 2009-07-16 Inventec Corp A verification method for the update content of BIOS
US8078792B2 (en) * 2008-01-22 2011-12-13 Advanced Micro Devices, Inc. Separate page table base address for minivisor
US20090193106A1 (en) 2008-01-24 2009-07-30 Christophe Bouten System and method for managing message transport in a virtual environment
US20100122197A1 (en) 2008-09-26 2010-05-13 Robb Fujioka Hypervisor and webtop in a set top box environment
US8117435B2 (en) 2008-06-30 2012-02-14 Intel Corporation Method and system for secured dynamic bios update
WO2010017517A1 (en) 2008-08-08 2010-02-11 Phoenix Technologies Ltd. Secure computing environment using a client heartbeat to address theft and unauthorized access
US9026824B2 (en) * 2008-11-04 2015-05-05 Lenovo (Singapore) Pte. Ltd. Establishing power save mode in hypervisor system
US8205197B2 (en) * 2008-11-12 2012-06-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for granting hypervisor privileges
US20100161844A1 (en) 2008-12-23 2010-06-24 Phoenix Technologies Ltd DMA compliance by remapping in virtualization
US8799691B2 (en) * 2009-01-07 2014-08-05 Hewlett-Packard Development Company, L.P. Hierarchical power management
US8166288B2 (en) 2009-01-30 2012-04-24 Hewlett-Packard Development Company, L.P. Managing requests of operating systems executing in virtual machines
US20100205420A1 (en) 2009-02-09 2010-08-12 Inventec Corporation System and method for realizing remote test on computer apparatus without storage device
US8069228B2 (en) * 2009-05-08 2011-11-29 Hewlett-Packard Development Company, L.P. Preventing access of a network facility in response to an operation
CN101599022B (zh) 2009-07-07 2012-07-04 武汉大学 用于虚拟机系统的可信计算基裁剪方法
US8286164B2 (en) 2009-08-07 2012-10-09 International Business Machines Corporation Secure recursive virtualization
US8397167B2 (en) 2009-08-18 2013-03-12 Dell Products, Lp System and method for a remote console preview of a server
US8918779B2 (en) 2009-08-27 2014-12-23 Microsoft Corporation Logical migration of applications and data
CN101751284B (zh) 2009-12-25 2013-04-24 华为技术有限公司 一种分布式虚拟机监控器的i/o资源调度方法
US9003001B2 (en) 2010-03-15 2015-04-07 Cisco Technology, Inc. Bios parameter virtualization via BIOS configuration profiles
US8589702B2 (en) * 2010-05-28 2013-11-19 Dell Products, Lp System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system
WO2012102725A1 (en) 2011-01-28 2012-08-02 Hewlett-Packard Development Company, L.P. Authenticate a hypervisor with encoded information
WO2013032495A1 (en) 2011-08-30 2013-03-07 Hewlett-Packard Development Company , L.P. Communication with a virtual trusted runtime bios
CN103827811A (zh) 2011-09-30 2014-05-28 惠普发展公司,有限责任合伙企业 管理基本输入/输出系统(bios)的访问
WO2013058768A1 (en) 2011-10-21 2013-04-25 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system

Also Published As

Publication number Publication date
GB2510281A (en) 2014-07-30
JP5885851B2 (ja) 2016-03-16
GB2510281B (en) 2020-08-12
DE112011105745T5 (de) 2014-08-14
TW201329866A (zh) 2013-07-16
JP2014531083A (ja) 2014-11-20
BR112014009445B1 (pt) 2021-10-13
BR112014009445A2 (pt) 2017-04-25
IN2014DN03052A (zh) 2015-05-08
DE112011105745B4 (de) 2021-09-23
US20140281469A1 (en) 2014-09-18
US9753738B2 (en) 2017-09-05
GB201406678D0 (en) 2014-05-28
TWI478062B (zh) 2015-03-21
CN103890717A (zh) 2014-06-25
WO2013058766A1 (en) 2013-04-25

Similar Documents

Publication Publication Date Title
CN103890716B (zh) 用于访问基本输入/输出系统的功能的基于网页的接口
CN103890717B (zh) 在特权域中提供基本输入/输出系统(bios)的功能
CN104982005B (zh) 实施虚拟化环境中的特权加密服务的计算装置及方法
KR102110273B1 (ko) 체인 보안 시스템들
Sun et al. TrustOTP: Transforming smartphones into secure one-time password tokens
US11843705B2 (en) Dynamic certificate management as part of a distributed authentication system
CN102208001B (zh) 硬件支持的虚拟化密码服务
CN110785759B (zh) 用于多核处理器的远程认证
Mirzamohammadi et al. Ditio: Trustworthy auditing of sensor activities in mobile & IoT devices
JP6293133B2 (ja) 被保護データー集合のネットワーク・ベース管理
US20230134324A1 (en) Managing storage of secrets in memories of baseboard management controllers
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
Hein et al. Securing mobile agents for crisis management support

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant