CN103329095B - 用编码的信息验证管理程序 - Google Patents

用编码的信息验证管理程序 Download PDF

Info

Publication number
CN103329095B
CN103329095B CN201180066148.XA CN201180066148A CN103329095B CN 103329095 B CN103329095 B CN 103329095B CN 201180066148 A CN201180066148 A CN 201180066148A CN 103329095 B CN103329095 B CN 103329095B
Authority
CN
China
Prior art keywords
management program
electronic equipment
version
firmware
configuration
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.)
Expired - Fee Related
Application number
CN201180066148.XA
Other languages
English (en)
Other versions
CN103329095A (zh
Inventor
L.王
B.巴拉谢夫
C.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 CN103329095A publication Critical patent/CN103329095A/zh
Application granted granted Critical
Publication of CN103329095B publication Critical patent/CN103329095B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

所公开的实施例涉及用编码的管理程序信息验证管理程序。在一个实施例中,引导固件(112)包括用来确定接收到的管理程序(108)是否是可信的管理程序的指令。在一个实施例中,引导固件(112)包括用来确定所述接收到的管理程序(108)是否在选择的配置中的指令。在一个实施例中,引导固件(112)包括用来确定所述接收到的管理程序(108)是否是选择的版本的指令。

Description

用编码的信息验证管理程序
技术领域
本发明涉及用编码的信息验证管理程序。
背景技术
诸如笔记本计算机的电子设备在一些情况下也许能够运行多个虚拟机,诸如在每个虚拟机都与不同的操作***相关联的情况下。也被称作虚拟机监控器的管理程序可以发起和监控虚拟机。管理程序可以在比操作***更高的特权级上执行,因为管理程序可以控制操作***,诸如控制哪个操作***被执行。因此,威胁管理程序的安全问题可以同样地威胁虚拟机。
发明内容
本发明公开了一种用于验证管理程序的电子设备,包括:管理程序;用来进行以下的固件:在引导过程期间访问管理程序和编码的管理程序验证信息来执行一个或多个验证操作来验证所述管理程序,其中用存储在所述引导过程期间不能更新管理程序的位置的管理程序来执行所述验证;如果确定所述管理程序不是可信的管理程序,则执行终止所述引导过程或提供错误消息中的至少一个。
本发明还公开了一种用于验证管理程序的方法,包括:将新的或更新后的管理程序的版本信息与存储在电子设备上的管理程序版本策略相比较;在确定所述新的或更新后的管理程序符合所述管理程序版本策略时,将编码的版本信息存储在所述电子设备上;通过在电子设备的引导过程期间执行固件的处理器基于编码的版本信息确定接收到的管理程序是否是选择的版本;以及如果确定所述接收到的管理程序不是所述选择的版本,则通过所述处理器执行终止所述引导过程或提供错误消息中的至少一个。
本发明进一步公开了一种用于验证管理程序的设备,包括:用于分析验证的虚拟机监视器的配置以创建虚拟机监视器配置信息的装置;用于在电子设备的引导过程期间执行固件的装置,还包括:用于基于所述虚拟机监视器配置信息确定由电子设备所接收到的虚拟机监控器是否在选择的配置中的装置;以及用于如果确定所述接收到虚拟机监控器不在所述选择的配置中,则执行终止所述引导或提供错误消息中的至少一个的装置。
附图说明
在附图中,相同的标记指代相似的部件或块。图描述了示例实施例。以下具体描述参考图,其中:
图1是图示了电子设备的一个示例的方框图。
图2是图示了用来验证管理程序的方法的一个示例的流程图。
图3是图示了电子设备的一个示例的方框图。
图4是图示了电子设备的一个示例的方框图。
图5是图示了电子设备的一个示例的方框图。
图6是图示了用来验证管理程序的版本的方法的一个示例的流程图。
图7是图示了电子设备的一个示例的方框图。
图8是图示了电子设备的一个示例的方框图。
图9是图示了用来验证管理程序的配置的方法的一个示例的流程图。
图10是图示了电子设备的一个示例的方框图。
图11是图示了用来验证管理程序、管理程序配置以及管理程序版本的方法的一个示例的流程图。
具体实施方式
虚拟机可以允许电子设备运行多个操作环境。例如,电子设备可以执行一个虚拟机以与数据库和用于该电子设备上的其他工作的第二虚拟机进行通信。用于监控多个虚拟机的管理程序可以以比操作***更高的特权级运行,因为管理程序可以发起启动操作***的虚拟机。更高的特权级可以带来安全关心。例如,计算机入侵者可以安装流氓管理程序或者可以恶意地修改合法的管理程序。因为管理程序以比操作***更高的特权级运行,所以操作***可能不能够检测到安全威胁。管理程序安全威胁可以被处理,例如通过禁用虚拟化使得电子设备执行单个操作环境,或者通过将管理程序存储在其可以接收固件更新的位置中。然而,这些解决方案限制了电子设备的配置选择。
在一个实施例中,电子设备包括用于引导该电子设备的固件,并且固件包括用于在引导过程期间验证管理程序的指令。例如,电子设备可以包括与可信的管理程序相关联的编码的信息,诸如数字签名。在电子设备的引导过程期间,固件可以将诸如在磁盘分区中存储的管理程序的检索的管理程序与编码的信息相比较以确定管理程序是否是可信的管理程序。如果管理程序被验证,则电子设备可以继续引导管理程序。如果管理程序不是可信的管理程序,诸如在管理程序是流氓管理程序的情况下,电子设备可以例如终止引导过程或者提供错误消息。在一些实施例中,固件包括用来确定可信的管理程序是否已经被修改,诸如管理程序的配置是否被更改或管理程序的先前版本是否被发起的指令。例如,固件可以将编码的版本信息与引导管理程序的版本相比较或者可以将编码的配置信息与引导管理程序的配置相比较。
在引导过程期间使用固件来验证管理程序、管理程序版本、或管理程序配置可以防止对电子设备的一些管理程序有关的安全威胁。例如,在电子设备的引导过程期间执行的固件指令可以为更安全的,因为固件引导指令可以为在其他指令之前,诸如在正被发起的管理程序之前执行的受信的计算机代码。编码的数据可以被用来验证管理程序,使得流氓管理程序不太可能能够适当地复制被用来验证引导管理程序的编码的数据。此外,在引导过程期间验证管理程序可以在不用将管理程序存储在其可以接收固件更新的位置中的情况下允许管理程序被验证。例如,在磁盘分区中所存储的管理程序可以被验证。
图1是图示了电子设备102的一个示例的方框图。电子设备102可以为任何合适的电子设备,诸如服务器、个人计算机或移动计算设备。电子设备102可以包括处理器104、储存器106、以及机器可读存储介质114。
处理器104可以是任何合适的处理器,诸如中央处理单元(CPU)、基于半导体的微处理器、或适合于指令的检索和执行的任何其他设备。在一个实施例中,电子设备102包括代替或除了处理器104之外的逻辑。作为替代,或除了提取、解码以及执行指令之外,处理器104还可以包括一个或多个集成电路(IC)或包括用于执行下面描述的功能的多个电子部件的其他电子电路。在一个实施方式中,电子设备102包括多个处理器。例如,一个处理器可以执行某一功能而另一处理器可以执行其他功能。
储存器106可以包括管理程序108和编码的管理程序验证信息110。管理程序108可以为任何合适的虚拟机监控器。例如,管理程序108可以运行能够在电子设备102上执行的一个或多个虚拟机。每个虚拟机都可以与单独的操作环境相关联。管理程序108可以在电子设备102的引导过程期间被启动。
管理程序108可以在任何合适的时间被安装在电子设备102上,诸如在客户接收电子设备102之前或之后。可以例如在将电子设备102发送到客户之前提供验证管理程序。在一些情况下,用户可以安装管理程序并且指示其是受信的管理程序。在引导过程期间发起的管理程序108可以为可信的管理程序或者不同的管理程序,诸如流氓管理程序。在一些实施方式中,可能存在多个可信的管理程序。
储存器106可以包括编码的管理程序验证信息110。编码的管理程序验证信息110可以为用来确定管理程序108是否是可信的管理程序的任何合适的编码的信息,诸如哈希值或数字签名。编码的管理程序验证信息110可以被存储在与管理程序108相同的储存器中,或者在与管理程序108分开的储存器中。编码的管理程序验证信息110可以在任何合适的时间存储。例如,客户可以接收具有可信的管理程序和与可信的管理程序有关的编码的管理程序验证信息110的电子设备102。在一些情况下,编码的管理程序验证信息110是管理程序108的数字签名,并且数字签名被用公共密钥来证实。数字签名可以在任何合适的时间创建,诸如在电子设备102的引导过程之前或期间。
处理器104可以在引导过程期间发起管理程序108。管理程序108可以为可信的或恶意的管理程序。即使可信的管理程序被加载到电子设备102上,恶意的管理程序也可以被安装在电子设备102上。例如,管理程序108可以为设计成代替可信的管理程序的恶意的管理程序。然而,编码的管理程序验证信息110可以与可信的管理程序有关,使得编码的管理程序验证信息110与恶意的管理程序108的比较可以揭露恶意的管理程序108不是可信的管理程序。如果管理程序108不是可信的管理程序,则处理器104可以例如终止引导过程或者提供错误消息。
电子设备102可以包括机器可读存储介质114。机器可读存储介质114可以是任何合适的机器可读介质,诸如存储可执行的指令或其他数据的电子、磁、光或其他物理存储设备(例如,硬盘驱动器、随机存取存储器、闪速存储器等)。机器可读存储介质114可以为例如计算机可读非暂时性介质。机器可读存储介质114可以包括引导固件112。机器可读存储114介质可以包括可由处理器104执行的指令,诸如与引导固件112相关联的指令。
引导固件112可以为任何合适的固件。引导固件112可以例如包括与引导电子设备102有关的指令和设定。引导固件112可以包括由处理器104执行的用来引导电子设备102的指令。引导固件112可以例如包括基本输入输出***指令(BIOS)或统一可扩展固件接口(UEFI)指令。引导固件112可以被存储在任何合适的储存器中,诸如在只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、或闪速存储器中。
引导固件112可以包括用来将编码的管理程序验证信息110与诸如管理程序108的正被发起的管理程序相比较以确定管理程序108是否是可信的管理程序的指令。例如,引导固件112可以包括用来基于所存储的编码的管理程序验证信息110确定诸如管理程序108的接收到的虚拟机监控器是否是有效的虚拟机监控器的指令,并且如果确定接收到的虚拟机监控器不是有效的虚拟机监控器,则执行结束引导过程或者提供错误消息中的一个。
在一些情况下,软件更新可以被运行以更新管理程序108或者安装新的管理程序108,并且引导固件112可以确认被更新的管理程序108是下一次电子设备102引导时的授权的管理程序。引导固件在引导过程期间可以检查被更新的管理程序的其他方面,诸如管理程序的配置或版本。在一个实施例中,引导固件112包括当更新所存储的管理程序108时执行的指令。例如,引导固件112可以在存储被更新的管理程序以用于供电子设备102以后使用之前将被更新的管理程序与编码的管理程序验证信息110相比较。例如,引导固件112可以确定用私有密钥签名的更新的管理程序是否可以使用在电子设备102上存储的公共密钥来证实。如果被更新的管理程序不被证实,则被更新的管理程序例如可能不被存储以用于以后使用。在一些情况下,引导固件112可以检查被更新的管理程序的其他方面,诸如管理程序的版本或配置,以确认被更新的管理程序符合特定的策略。检查可以防止在引导具有更新的管理程序的电子设备102之前对于管理程序的恶意更新。
图2是图示了用来验证管理程序的方法200的一个示例的流程图。管理程序可以被存储在电子设备上。管理程序可以在电子设备的引导过程期间被接收,并且固件可以包括用来基于编码的管理程序验证信息确定接收到的管理程序是否是可信的管理程序的指令。如果接收到的管理程序是可信的管理程序,则固件可以继续引导过程。如果接收到的管理程序不是可信的管理程序,诸如因为恶意的管理程序被安装,则固件可以例如终止引导过程或提供错误消息。方法200可以例如在电子设备102上执行。
在202处开始并且移动到204,处理器诸如通过在电子设备的引导过程期间执行固件中的指令来基于编码的管理程序验证信息来确定诸如管理程序108的接收到的管理程序是否是可信的管理程序。处理器可以为任何合适的处理器,诸如中央处理单元(CPU)。在一个实施例中,处理器是处理器104。处理器可以执行固件,诸如基本输入输出***(BIOS)或统一可扩展的固件接口(UEFI)固件,以用于引导电子设备。
管理程序可以为任何合适的虚拟机监控器。管理程序可以为可信的或恶意的管理程序。管理程序可以被以任何合适的方式接收。例如,固件可以包括用于检索和发起在储存器中找到的管理程序的指令。在一些情况下,固件可以检查设定以看看虚拟化在发起管理程序之前是否被启用。
固件可以以任何合适的方式来确定管理程序是否是有效的管理程序。例如,编码的管理程序验证信息可以为与可信的管理程序有关的编码的信息,并且固件可以确定编码的管理程序验证信息是否与管理程序相对应。在一些情况下,比较可以取决于固件的类型,诸如固件是否是基本输入输出***(BIOS)固件或统一可扩展的固件接口(UEFI)固件。
在一个实施例中,编码的管理程序验证信息与引导管理程序有关。例如,编码的管理程序验证信息可以为管理程序的数字签名。固件可以估计管理程序的数字签名以确定管理程序是否是可信的。
继续到块206,如果确定接收到的管理程序不是可信的管理程序,则处理器诸如通过执行在固件中存储的指令来执行终止电子设备的引导过程或提供错误消息中的至少一个。例如,处理器可以结束电子设备的引导过程,使得电子设备不引导操作***并且不能够被使用。在一些情况下,代替或除了终止引导过程之外,处理器还可以将错误消息显示在与电子设备相关联的显示设备上,指示管理程序不是可信的管理程序。用户可以响应于错误消息而终止引导过程。
如果确定管理程序是可信的管理程序,则处理器可以继续执行固件中的指令以完成电子设备的引导过程。固件可以发起可以执行电子设备上的虚拟机的管理程序。在引导过程完成之后,电子设备可以准备使用。方法200继续到208以结束。
图3是图示了电子设备304的一个示例的方框图。电子设备304可以例如为服务器、台式机、笔记本或移动计算设备。电子设备304可以包括处理器104、储存器106、机器可读存储介质114、以及引导固件112。电子设备304图示了其中引导固件112分析管理程序108的数字签名的实施例。例如,当可信的管理程序被安装时,可以基于可信的管理程序来创建哈希值,并且可以用私有密钥来对哈希值进行签名,所述私有密钥诸如制造商能得到的、未被存储在电子设备304上的私有密钥。编码的管理程序验证信息110可以为用私有密钥创建的管理程序数字签名310。管理程序数字签名310可以例如为与引导装入程序和与可信的管理程序相关联的管理程序组件文件有关的哈希值的数字签名。
可信的管理程序验证公共密钥302可以为用于对用正确的私有密钥创建的数字签名进行解密的对应的公共密钥。当可信的管理程序被安装时可信的管理程序验证公共密钥302可以被存储,以便在确定接收到的管理程序是否是可信的中以后使用。例如,管理程序验证公共密钥302可以被存储在引导固件112中。流氓管理程序在安装时可以被数字签名,但是如果该数字签名未被用正确的私有密钥执行则该数字签名可能不是可通过管理程序验证公共密钥302证实。
在电子设备304的引导过程期间,引导固件112可以尝试用可信的管理程序验证公共密钥302对管理程序数字签名310进行解密。例如,引导固件112可以证实与在与管理程序108有关的特定位置中存储的管理程序引导装入程序和管理程序组件文件相关联的哈希值的数字签名。如果管理程序数字签名310不存在或者如果管理程序数字签名310不能够被用可信的管理程序验证公共密钥302进行解密,则管理程序108可能为恶意的管理程序。
图4是图示了电子设备404的一个示例的方框图。电子设备404可以包括储存器106、处理器104、机器可读存储介质114、以及引导固件112。引导固件112可以包括管理程序验证设定402。管理程序验证设定402可以指示管理程序108的验证是否应该被检查。例如,用户可以选择禁用管理程序验证能力。管理程序验证设定402可以例如被启用以指示管理程序108的验证应该被检查和禁用以指示管理程序108的验证不应该被检查。在一些情况下,如果管理程序验证设定402被禁用,则警告可以被提供给用户。当处理器104执行引导固件112指令以引导电子设备404时,引导固件112可以包括用来检查管理程序验证设定402以确定处理器104是否应该检查管理程序108是否是可信的指令。
图5是图示了电子设备502的一个示例的方框图。电子设备502可以包括储存器506、处理器504、以及机器可读存储介质514。电子设备502可以为任何合适的电子设备,诸如服务器、个人计算机或移动计算设备。
处理器504可以是任何合适的处理器,诸如中央处理单元(CPU)、基于半导体的微处理器、或适合于指令的检索和执行的任何其他设备。在一个实施例中,电子设备502包括代替或除了处理器504之外的逻辑。处理器504可以包括一个或多个集成电路(IC)或包括用于执行下面描述的功能的多个电子部件的其他电子电路。
储存器506可以包括管理程序508。管理程序508可以为任何合适的虚拟机监控器。例如,管理程序508可以运行能够在电子设备502上执行的一个或多个虚拟机。管理程序508可以在通过处理器504的电子设备502的引导过程期间启动。
电子设备502可以包括机器可读存储介质514。机器可读储存介质514可以是任何合适的机器可读介质,诸如存储可执行的指令或其他数据的电子、磁、光或其他物理存储设备(例如,硬盘驱动器、随机存取存储器、闪速存储器等)。机器可读存储介质514可以为例如计算机可读非暂时性介质。机器可读存储介质514可以包括引导固件512。
引导固件512可以为任何合适的固件。引导固件512可以例如包括与引导电子设备502有关的指令和设定。引导固件512可以包括由处理器504执行的用来引导电子设备502的指令。引导固件512可以例如包括基本输入输出***指令(BIOS)或统一可扩展固件接口(UEFI)指令。
引导固件512包括存储的编码的管理程序版本信息510。引导固件512可以使用编码的管理程序版本信息510来确定引导管理程序508是否是可信的管理程序的正确的版本。
编码的管理程序版本信息510可以是与可信的管理程序的版本有关的任何合适的管理程序版本信息。编码的管理程序版本信息510可以例如指示使用特定的版本、使用最近的版本、或使用在特定版本之后的任何版本。编码的管理程序版本信息510可以为指示可信的管理程序的期望的版本的哈希值。例如,编码的管理程序版本信息510可以为可信的管理程序的组件文件的链接哈希值,诸如安全哈希算法(SHA)或安全哈希算法-1(SHA1)。
编码的管理程序版本信息510可以在将其发货到客户之前在电子设备502的制造期间被存储在电子设备502中。在一些情况下,用户可以提示电子设备502创建并且存储编码的管理程序版本信息502。例如,用户可以安装管理程序的更新的版本,并且电子设备502可以创建或更新编码的管理程序版本信息510。在一些情况下,可能存在用来确保版本哈希正被可靠的源改变的一些安全性。例如,诸如哈希值的编码的管理程序版本信息510可以被通过诸如RSA密钥的密钥来加密签名,并且可以供应固件口令。
图6是图示了用于验证管理程序的版本的方法600的一个示例的流程图。例如,固件可以确定接收到的管理程序是否是可信的管理程序的预期版本。版本检查可以被完成例如以防止可能被利用的先前版本中的易损性。如果管理程序不是选择的版本,则引导过程可以被结束或者错误消息可以被提供。方法600可以例如通过电子设备502来执行。
在602处开始并且移动到604,处理器诸如通过在电子设备的引导过程期间执行固件来通过将所接收到的管理程序版本与编码的版本信息(诸如编码的管理程序版本信息510)相比较来确定接收到的管理程序是否是选择的版本。处理器可以为任何合适的过程,诸如中央处理单元(CPU)。管理程序的版本可以被以任何合适的方式来确定。处理器可以以任何合适的方式将编码的管理程序版本信息与管理程序的版本相比较。例如,处理器可以估计用哈希值编码的版本并且将其与管理程序的版本相比较。在一个实施例中,处理器将和与可信的管理程序组件文件相关联的已知的好值相关联的哈希值与从管理程序的组件文件创建的哈希值相比较,以确定与管理程序相关联的哈希值是否被发现在已知的好的哈希值的组中。
继续到606,如果确定管理程序不是选择的版本,则处理器诸如通过执行在固件中存储的指令来执行终止引导过程或提供错误消息中的至少一个。例如,如果管理程序不是选择的版本则处理器可以结束引导过程,以防止另一版本的任何问题被利用。在一个实施例中,处理器除了终止引导过程之外或者代替终止引导过程还显示错误消息,所述错误消息指示引导管理程序不是可信的管理程序的选择的版本。用户可以响应于该错误消息而终止引导过程。如果确定管理程序在选择的版本中,则处理器可以继续执行在固件中存储的指令以完成电子设备的引导过程。方法600继续到608以结束。
图7是图示了电子设备704的一个示例的方框图。电子设备704可以包括储存器506、处理器504、机器可读存储介质514、以及引导固件512。引导固件512可以包括编码的管理程序版本信息510和管理程序版本设定702。管理程序版本设定702可以为指示管理程序508的版本在电子设备502的引导过程期间是否应该被检查的设定。引导固件512可以包括用来在引导电子设备502时检查管理程序版本设定702的指令。当电子设备502被发货到客户时,管理程序版本设定702可以被启用或禁用。在一些情况下,客户可以启用或禁用管理程序版本设定702,诸如通过用户界面。
图8是图示了电子设备802的一个示例的方框图。电子设备802可以包括储存器806、处理器804、以及机器可读存储介质814。处理器804可以是任何合适的处理器,诸如中央处理单元(CPU)、基于半导体的微处理器、或适合于指令的检索和执行的任何其他设备。在一个实施例中,电子设备802包括代替或除了处理器804之外的逻辑。储存器806可以包括管理程序808。管理程序808可以为任何合适的虚拟机监控器。管理程序808可以在通过处理器804的电子设备802的引导过程期间通过处理器804来启动。
电子设备802可以包括机器可读存储介质814。机器可读储存介质814可以是任何合适的机器可读介质,诸如存储可执行的指令或其他数据的电子、磁、光或其他物理存储设备(例如,硬盘驱动器、随机存取存储器、闪速存储器等)。机器可读存储介质814可以为例如计算机可读非暂时性介质。机器可读存储介质814可以包括引导固件812。引导固件812可以为任何合适的固件。引导固件812可以例如包括与引导电子设备802有关的指令和设定。引导固件812可以例如包括基本输入输出***指令(BIOS)或统一可扩展固件接口(UEFI)指令。
引导固件812可以包括编码的管理程序配置信息810。编码的管理程序配置信息810可以被用来证实引导管理程序808在选择的配置中。证实管理程序808的配置可以防止由管理程序808的恶意配置所造成的安全威胁,所述管理程序808的恶意配置诸如配置成发起恶意虚拟机的可信的管理程序。
编码的管理程序配置信息810可以为指示管理程序的选择的配置的任何合适的信息。例如,编码的管理程序配置信息810可以为与可信的管理程序的配置文件有关的哈希值。可信的管理程序可以被配置,并且与配置有关的信息可以被保存在编码的管理程序配置信息810中。例如,引导固件812可以确定可信的管理程序的配置并且基于该配置创建编码的管理程序配置信息810。编码的管理程序配置信息810可以被存储在任何合适的位置中,诸如在引导固件812中。编码的管理程序配置信息810可以包括与可信的管理程序的配置有关的任何合适的配置信息。例如,配置信息可以包括关于特定虚拟机的列表、加密、网络接口、或哪些资源被分配给每个虚拟机的信息。
编码的管理程序配置信息810可以在诸如在制造过程期间的任何合适的时间被存储在引导固件812中。在一些实施例中,用户可以配置管理程序并且指示配置应该被编码。在一个实施例中,编码的管理程序配置信息810可以被更新。例如,可能期望添加管理程序发起附加的虚拟机的能力。
图9是图示了用来验证管理程序的配置的方法900的一个示例的流程图。例如,固件可以包括用来将管理程序的配置与编码的管理程序配置信息相比校以确定管理程序的配置是否是选择的配置的指令。如果管理程序不在选择的配置中,则其可以指示管理程序被恶意地修改,诸如用来执行不同的虚拟机或不使用加密。如果管理程序不被确定为在选择的配置中,则固件可以终止引导过程或创建错误消息。方法900可以例如通过电子设备802来执行。
在902处开始并且移动到904,处理器诸如通过执行用于引导电子设备的固件来通过将所接收到的管理程序配置与编码的管理程序配置信息相比较来确定接收到的管理程序是否在选择的配置中。管理程序配置可以被以任何合适的方式与编码的管理程序信息相比较。例如,编码的管理程序配置信息可以为与可以被与管理程序的配置相比较的配置设定有关的哈希值,或者可以为可以被与管理程序的组件文件的哈希值相比较的管理程序文件的哈希值。
继续到906,如果确定管理程序不在选择的配置中,则处理器诸如通过执行在固件中存储的指令来执行终止引导过程或提供错误消息中的至少一个。例如,电子设备可以不引导,并且因此,用户或许不能使用该电子设备。在一个实施例中,错误消息被提供,诸如显示或发送到另一设备以显示,以指示引导管理程序不在选择的配置中。如果确定管理程序在选择的配置中,则处理器可以继续执行固件中的指令以完成引导过程。电子设备然后可以准备使用。方法900继续到908以结束。
图10是图示了电子设备1004的一个示例的方框图。电子设备1004可以包括储存器806、处理器804、以及引导固件812。引导固件812包括管理程序配置设定1002。管理程序配置设定1002可以为指示管理程序808的配置是否应该被检查的任何合适的设定。例如,可以选择配置,并且编码的管理程序配置信息1002可以被存储在引导固件812中。用户可以然后决定配置应该不被估计。管理程序配置设定1002可以被禁用,使得处理器804在引导过程期间不再检查管理程序的配置。在一个实施例中,用户可以经由通过电子设备1004所显示的用户界面更新管理程序配置设定1002。
在一个实施例中,同一电子设备可以验证管理程序、管理程序配置、以及管理程序版本中的一个或这三个的任何组合,诸如验证管理程序和管理程序版本、管理程序配置和管理程序版本,或验证管理程序和管理程序配置。例如,可以组合电子设备102、502以及802的功能。验证管理程序的一个以上的特征可以提供更安全的可信设备。
图11是图示了用来验证管理程序、管理程序配置以及管理程序版本的方法1100的一个示例的流程图。例如,电子设备可以包括与管理程序有关的多个类型的编码的信息。可以以任何合适的次序来验证这三个。
在块1102处开始,处理器确定接收到的管理程序是否是可信的管理程序。如果不是,则移动到1110,处理器终止引导过程、显示错误消息、或者两者。如果接收到的管理程序是可信的管理程序,则继续到1104,处理器确定接收到管理程序是否在选择的配置中。如果不是,则处理器继续到1110以终止引导过程、显示错误消息或者两者。如果管理程序在正确的配置中,则处理器继续到1106以确定管理程序是否在选择的版本中。如果不是,则处理器继续到1110以终止引导处理器、显示错误消息或者两者。如果管理程序是选择的版本,则处理器移动到1108以继续引导过程。例如,管理程序可以被确定为正确版本和配置的可信的管理程序。
在电子设备的引导过程期间执行固件指令来验证管理程序可以防止与管理程序有关的安全威胁。例如,验证可以通过受信的固件代码来执行并且在恶意代码有执行的机会之前在引导过程中较早地发生。

Claims (14)

1.一种用于验证管理程序的电子设备,包括:
管理程序;
用来进行以下的固件:
在引导过程期间访问管理程序和编码的管理程序验证信息来执行一个或多个验证操作来验证所述管理程序,其中用存储在所述引导过程期间不能更新管理程序的位置的管理程序来执行所述验证;如果确定所述管理程序不是可信的管理程序,则执行终止所述引导过程或提供错误消息中的至少一个。
2.根据权利要求1所述的电子设备,其中,所述编码的验证信息包括数字签名。
3.根据权利要求2所述的电子设备,其中,验证所述管理程序包括用公共密钥来证实所述数字签名。
4.根据权利要求1所述的电子设备,其中,所述固件包括指示是否确定所述管理程序是否是可信的设定。
5.根据权利要求1所述的电子设备,其中,所述固件进一步:
通过将所述管理程序的配置与编码的配置信息相比较,确定所述管理程序是否在选择的配置中;并且
如果确定所述管理程序不在所述选择的配置中,则执行终止所述引导过程或提供错误消息中的至少一个。
6.根据权利要求5所述的电子设备,其中,所述固件包括指示是否确定所述管理程序是否在所述选择的配置中的设定。
7.根据权利要求1所述的电子设备,其中,所述固件进一步:
通过将所述管理程序版本与编码的版本信息相比较,确定所述管理程序是否是选择的版本;并且
如果确定所述管理程序不是所述选择的版本,则执行终止所述引导过程或提供错误消息中的至少一个。
8.根据权利要求7所述的电子设备,其中,所述固件包括指示是否确定所述管理程序是否是所述选择的版本的设定。
9.一种用于验证管理程序的方法,包括:
将新的或更新后的管理程序的版本信息与存储在电子设备上的管理程序版本策略相比较;
在确定所述新的或更新后的管理程序符合所述管理程序版本策略时,将编码的版本信息存储在所述电子设备上;
通过在电子设备的引导过程期间执行固件的处理器基于编码的版本信息确定接收到的管理程序是否是选择的版本;以及
如果确定所述接收到的管理程序不是所述选择的版本,则通过所述处理器执行终止所述引导过程或提供错误消息中的至少一个。
10.根据权利要求9所述的方法,进一步包括基于固件管理程序版本设定确定是否确定所述接收到的管理程序是否是所述选择的版本。
11.根据权利要求9所述的方法,其中所述编码的版本信息包括管理程序文件的哈希值。
12.一种用于验证管理程序的设备,包括:
用于分析验证的虚拟机监视器的配置以创建虚拟机监视器配置信息的装置;
用于在电子设备的引导过程期间执行固件的装置,还包括:
用于基于所述虚拟机监视器配置信息确定由电子设备所接收到的虚拟机监控器是否在选择的配置中的装置;以及
用于如果确定所述接收到虚拟机监控器不在所述选择的配置中,则执行终止所述引导或提供错误消息中的至少一个的装置。
13.根据权利要求12所述的设备,进一步包括用于基于固件管理程序配置设定确定是否确定所述管理程序是否是所述选择的版本的装置。
14.根据权利要求12所述的设备,其中所述虚拟机监视器配置信息包括管理程序文件的哈希值。
CN201180066148.XA 2011-01-28 2011-01-28 用编码的信息验证管理程序 Expired - Fee Related CN103329095B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/022814 WO2012102725A1 (en) 2011-01-28 2011-01-28 Authenticate a hypervisor with encoded information

Publications (2)

Publication Number Publication Date
CN103329095A CN103329095A (zh) 2013-09-25
CN103329095B true CN103329095B (zh) 2017-03-22

Family

ID=46581088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180066148.XA Expired - Fee Related CN103329095B (zh) 2011-01-28 2011-01-28 用编码的信息验证管理程序

Country Status (4)

Country Link
US (1) US9129103B2 (zh)
EP (1) EP2668566B1 (zh)
CN (1) CN103329095B (zh)
WO (1) WO2012102725A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112011105678T5 (de) 2011-09-28 2014-07-17 Hewlett-Packard Development Company, L.P. Entsperren eines Speichergeräts
JP5885851B2 (ja) 2011-10-21 2016-03-16 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 特権ドメインでの基本入出力システム(bios)機能の提供
IN2014DN03053A (zh) 2011-10-21 2015-05-08 Hewlett Packard Development Co
US20140207902A1 (en) * 2013-01-23 2014-07-24 Dell Products L.P. Systems and methods for out-of-band management of an information handling system
US9424062B1 (en) * 2014-03-24 2016-08-23 Amazon Technologies, Inc. Virtualization infrastructure support
KR102209840B1 (ko) 2014-04-22 2021-02-01 삼성전자주식회사 가상화 서비스 제공 장치 및 그 방법
JP2016018298A (ja) * 2014-07-07 2016-02-01 富士通株式会社 通知変換プログラム及び通知変換方法
US9961059B2 (en) * 2014-07-10 2018-05-01 Red Hat Israel, Ltd. Authenticator plugin interface
US9652276B2 (en) * 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
RU2609761C1 (ru) * 2015-09-30 2017-02-02 Акционерное общество "Лаборатория Касперского" Способ выполнения кода в режиме гипервизора
US9930051B1 (en) * 2015-11-06 2018-03-27 Amazon Technologies, Inc. Remote management of hardware hosts in cloud infrastructure
US9882901B2 (en) * 2015-12-14 2018-01-30 International Business Machines Corporation End-to-end protection for shrouded virtual servers
US9894051B2 (en) * 2015-12-14 2018-02-13 International Business Machines Corporation Extending shrouding capability of hosting system
US10613708B2 (en) * 2017-02-24 2020-04-07 Red Hat Israel, Ltd. Cloning a hypervisor
US20190087580A1 (en) * 2017-09-19 2019-03-21 Microsoft Technology Licensing, Llc Secure launch for a hypervisor
JP7134670B2 (ja) * 2018-03-29 2022-09-12 キヤノン株式会社 画像形成装置、及び、画像形成装置の制御方法
CN112380088A (zh) * 2020-11-09 2021-02-19 北京字节跳动网络技术有限公司 测试方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221613A (zh) * 2006-12-29 2008-07-16 英特尔公司 用于验证处理***部件的方法和装置
CN101379506A (zh) * 2006-02-10 2009-03-04 高通股份有限公司 用于从外部存储装置进行安全引导的方法和设备
CN101517587A (zh) * 2006-09-26 2009-08-26 惠普开发有限公司 持久安全***及方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103529B2 (en) * 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20080126779A1 (en) * 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
US7793090B2 (en) 2007-08-30 2010-09-07 Intel Corporation Dual non-volatile memories for a trusted hypervisor
US7962738B2 (en) * 2007-12-20 2011-06-14 Intel Corporation Hypervisor runtime integrity support
US7865712B2 (en) * 2007-12-26 2011-01-04 Intel Corporation Method and apparatus for booting a processing system
US8032942B2 (en) * 2007-12-31 2011-10-04 Intel Corporation Configuration of virtual trusted platform module
US20090287571A1 (en) 2008-03-26 2009-11-19 Robb Fujioka Hypervisor and virtual machine ware
US8726364B2 (en) 2008-06-30 2014-05-13 Intel Corporation Authentication and access protection of computer boot modules in run-time environments
US8205197B2 (en) 2008-11-12 2012-06-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for granting hypervisor privileges
US20110246719A1 (en) * 2010-03-30 2011-10-06 Lenovo (Singapore) Pte. Ltd., Singapore Provisioning a disk of a client for local cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101379506A (zh) * 2006-02-10 2009-03-04 高通股份有限公司 用于从外部存储装置进行安全引导的方法和设备
CN101517587A (zh) * 2006-09-26 2009-08-26 惠普开发有限公司 持久安全***及方法
CN101221613A (zh) * 2006-12-29 2008-07-16 英特尔公司 用于验证处理***部件的方法和装置

Also Published As

Publication number Publication date
CN103329095A (zh) 2013-09-25
US9129103B2 (en) 2015-09-08
US20130318595A1 (en) 2013-11-28
WO2012102725A1 (en) 2012-08-02
EP2668566A4 (en) 2017-12-27
EP2668566B1 (en) 2020-08-05
EP2668566A1 (en) 2013-12-04

Similar Documents

Publication Publication Date Title
CN103329095B (zh) 用编码的信息验证管理程序
US10176330B2 (en) Global platform health management
KR101190479B1 (ko) 티켓 인증 보안 설치 및 부트
CN101657792B (zh) 可信部件更新***和方法
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
US8880898B2 (en) Anti-roll-back mechanism for counter
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
US7457945B2 (en) System and method for providing a secure firmware update to a device in a computer system
US20130055335A1 (en) Security enhancement methods and systems
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
US11106798B2 (en) Automatically replacing versions of a key database for secure boots
TWI570591B (zh) 允許測試金鑰用於bios安裝之技術
US20100100966A1 (en) Method and system for blocking installation of some processes
CN104794394B (zh) 一种虚拟机启动校验的方法及装置
CN109804378A (zh) Bios安全
CN115934194A (zh) 一种控制器启动方法、装置、电子设备及储存介质
EP3338214B1 (en) Secure computation environment
US10621355B2 (en) Method for initializing a computerized system and computerized system
CN110363011A (zh) 用于验证基于uefi的bios的安全性的方法和设备
CN113111343A (zh) 一种控制方法和控制装置
US20240037216A1 (en) Systems And Methods For Creating Trustworthy Orchestration Instructions Within A Containerized Computing Environment For Validation Within An Alternate Computing Environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170322

CF01 Termination of patent right due to non-payment of annual fee