本發(fā)明涉及用編碼的信息驗證管理程序。
背景技術:諸如筆記本計算機的電子設備在一些情況下也許能夠運行多個虛擬機,諸如在每個虛擬機都與不同的操作系統(tǒng)相關聯(lián)的情況下。也被稱作虛擬機監(jiān)控器的管理程序可以發(fā)起和監(jiān)控虛擬機。管理程序可以在比操作系統(tǒng)更高的特權級上執(zhí)行,因為管理程序可以控制操作系統(tǒng),諸如控制哪個操作系統(tǒng)被執(zhí)行。因此,威脅管理程序的安全問題可以同樣地威脅虛擬機。
技術實現(xiàn)要素:本發(fā)明公開了一種用于驗證管理程序的電子設備,包括:管理程序;用來進行以下的固件:在引導過程期間訪問管理程序和編碼的管理程序驗證信息來執(zhí)行一個或多個驗證操作來驗證所述管理程序,其中用存儲在所述引導過程期間不能更新管理程序的位置的管理程序來執(zhí)行所述驗證;如果確定所述管理程序不是可信的管理程序,則執(zhí)行終止所述引導過程或提供錯誤消息中的至少一個。本發(fā)明還公開了一種用于驗證管理程序的方法,包括:將新的或更新后的管理程序的版本信息與存儲在電子設備上的管理程序版本策略相比較;在確定所述新的或更新后的管理程序符合所述管理程序版本策略時,將編碼的版本信息存儲在所述電子設備上;通過在電子設備的引導過程期間執(zhí)行固件的處理器基于編碼的版本信息確定接收到的管理程序是否是選擇的版本;以及如果確定所述接收到的管理程序不是所述選擇的版本,則通過所述處理器執(zhí)行終止所述引導過程或提供錯誤消息中的至少一個。本發(fā)明進一步公開了一種用于驗證管理程序的設備,包括:用于分析驗證的虛擬機監(jiān)視器的配置以創(chuàng)建虛擬機監(jiān)視器配置信息的裝置;用于在電子設備的引導過程期間執(zhí)行固件的裝置,還包括:用于基于所述虛擬機監(jiān)視器配置信息確定由電子設備所接收到的虛擬機監(jiān)控器是否在選擇的配置中的裝置;以及用于如果確定所述接收到虛擬機監(jiān)控器不在所述選擇的配置中,則執(zhí)行終止所述引導或提供錯誤消息中的至少一個的裝置。附圖說明在附圖中,相同的標記指代相似的部件或塊。圖描述了示例實施例。以下具體描述參考圖,其中:圖1是圖示了電子設備的一個示例的方框圖。圖2是圖示了用來驗證管理程序的方法的一個示例的流程圖。圖3是圖示了電子設備的一個示例的方框圖。圖4是圖示了電子設備的一個示例的方框圖。圖5是圖示了電子設備的一個示例的方框圖。圖6是圖示了用來驗證管理程序的版本的方法的一個示例的流程圖。圖7是圖示了電子設備的一個示例的方框圖。圖8是圖示了電子設備的一個示例的方框圖。圖9是圖示了用來驗證管理程序的配置的方法的一個示例的流程圖。圖10是圖示了電子設備的一個示例的方框圖。圖11是圖示了用來驗證管理程序、管理程序配置以及管理程序版本的方法的一個示例的流程圖。具體實施方式虛擬機可以允許電子設備運行多個操作環(huán)境。例如,電子設備可以執(zhí)行一個虛擬機以與數(shù)據(jù)庫和用于該電子設備上的其他工作的第二虛擬機進行通信。用于監(jiān)控多個虛擬機的管理程序可以以比操作系統(tǒng)更高的特權級運行,因為管理程序可以發(fā)起啟動操作系統(tǒng)的虛擬機。更高的特權級可以帶來安全關心。例如,計算機入侵者可以安裝流氓管理程序或者可以惡意地修改合法的管理程序。因為管理程序以比操作系統(tǒng)更高的特權級運行,所以操作系統(tǒng)可能不能夠檢測到安全威脅。管理程序安全威脅可以被處理,例如通過禁用虛擬化使得電子設備執(zhí)行單個操作環(huán)境,或者通過將管理程序存儲在其可以接收固件更新的位置中。然而,這些解決方案限制了電子設備的配置選擇。在一個實施例中,電子設備包括用于引導該電子設備的固件,并且固件包括用于在引導過程期間驗證管理程序的指令。例如,電子設備可以包括與可信的管理程序相關聯(lián)的編碼的信息,諸如數(shù)字簽名。在電子設備的引導過程期間,固件可以將諸如在磁盤分區(qū)中存儲的管理程序的檢索的管理程序與編碼的信息相比較以確定管理程序是否是可信的管理程序。如果管理程序被驗證,則電子設備可以繼續(xù)引導管理程序。如果管理程序不是可信的管理程序,諸如在管理程序是流氓管理程序的情況下,電子設備可以例如終止引導過程或者提供錯誤消息。在一些實施例中,固件包括用來確定可信的管理程序是否已經被修改,諸如管理程序的配置是否被更改或管理程序的先前版本是否被發(fā)起的指令。例如,固件可以將編碼的版本信息與引導管理程序的版本相比較或者可以將編碼的配置信息與引導管理程序的配置相比較。在引導過程期間使用固件來驗證管理程序、管理程序版本、或管理程序配置可以防止對電子設備的一些管理程序有關的安全威脅。例如,在電子設備的引導過程期間執(zhí)行的固件指令可以為更安全的,因為固件引導指令可以為在其他指令之前,諸如在正被發(fā)起的管理程序之前執(zhí)行的受信的計算機代碼。編碼的數(shù)據(jù)可以被用來驗證管理程序,使得流氓管理程序不太可能能夠適當?shù)貜椭票挥脕眚炞C引導管理程序的編碼的數(shù)據(jù)。此外,在引導過程期間驗證管理程序可以在不用將管理程序存儲在其可以接收固件更新的位置中的情況下允許管理程序被驗證。例如,在磁盤分區(qū)中所存儲的管理程序可以被驗證。圖1是圖示了電子設備102的一個示例的方框圖。電子設備102可以為任何合適的電子設備,諸如服務器、個人計算機或移動計算設備。電子設備102可以包括處理器104、儲存器106、以及機器可讀存儲介質114。處理器104可以是任何合適的處理器,諸如中央處理單元(CPU)、基于半導體的微處理器、或適合于指令的檢索和執(zhí)行的任何其他設備。在一個實施例中,電子設備102包括代替或除了處理器104之外的邏輯。作為替代,或除了提取、解碼以及執(zhí)行指令之外,處理器104還可以包括一個或多個集成電路(IC)或包括用于執(zhí)行下面描述的功能的多個電子部件的其他電子電路。在一個實施方式中,電子設備102包括多個處理器。例如,一個處理器可以執(zhí)行某一功能而另一處理器可以執(zhí)行其他功能。儲存器106可以包括管理程序108和編碼的管理程序驗證信息110。管理程序108可以為任何合適的虛擬機監(jiān)控器。例如,管理程序108可以運行能夠在電子設備102上執(zhí)行的一個或多個虛擬機。每個虛擬機都可以與單獨的操作環(huán)境相關聯(lián)。管理程序108可以在電子設備102的引導過程期間被啟動。管理程序108可以在任何合適的時間被安裝在電子設備102上,諸如在客戶接收電子設備102之前或之后??梢岳缭趯㈦娮釉O備102發(fā)送到客戶之前提供驗證管理程序。在一些情況下,用戶可以安裝管理程序并且指示其是受信的管理程序。在引導過程期間發(fā)起的管理程序108可以為可信的管理程序或者不同的管理程序,諸如流氓管理程序。在一些實施方式中,可能存在多個可信的管理程序。儲存器106可以包括編碼的管理程序驗證信息110。編碼的管理程序驗證信息110可以為用來確定管理程序108是否是可信的管理程序的任何合適的編碼的信息,諸如哈希值或數(shù)字簽名。編碼的管理程序驗證信息110可以被存儲在與管理程序108相同的儲存器中,或者在與管理程序108分開的儲存器中。編碼的管理程序驗證信息110可以在任何合適的時間存儲。例如,客戶可以接收具有可信的管理程序和與可信的管理程序有關的編碼的管理程序驗證信息110的電子設備102。在一些情況下,編碼的管理程序驗證信息110是管理程序108的數(shù)字簽名,并且數(shù)字簽名被用公共密鑰來證實。數(shù)字簽名可以在任何合適的時間創(chuàng)建,諸如在電子設備102的引導過程之前或期間。處理器104可以在引導過程期間發(fā)起管理程序108。管理程序108可以為可信的或惡意的管理程序。即使可信的管理程序被加載到電子設備102上,惡意的管理程序也可以被安裝在電子設備102上。例如,管理程序108可以為設計成代替可信的管理程序的惡意的管理程序。然而,編碼的管理程序驗證信息110可以與可信的管理程序有關,使得編碼的管理程序驗證信息110與惡意的管理程序108的比較可以揭露惡意的管理程序108不是可信的管理程序。如果管理程序108不是可信的管理程序,則處理器104可以例如終止引導過程或者提供錯誤消息。電子設備102可以包括機器可讀存儲介質114。機器可讀存儲介質114可以是任何合適的機器可讀介質,諸如存儲可執(zhí)行的指令或其他數(shù)據(jù)的電子、磁、光或其他物理存儲設備(例如,硬盤驅動器、隨機存取存儲器、閃速存儲器等)。機器可讀存儲介質114可以為例如計算機可讀非暫時性介質。機器可讀存儲介質114可以包括引導固件112。機器可讀存儲114介質可以包括可由處理器104執(zhí)行的指令,諸如與引導固件112相關聯(lián)的指令。引導固件112可以為任何合適的固件。引導固件112可以例如包括與引導電子設備102有關的指令和設定。引導固件112可以包括由處理器104執(zhí)行的用來引導電子設備102的指令。引導固件112可以例如包括基本輸入輸出系統(tǒng)指令(BIOS)或統(tǒng)一可擴展固件接口(UEFI)指令。引導固件112可以被存儲在任何合適的儲存器中,諸如在只讀存儲器(ROM)、可編程只讀存儲器(PROM)、可擦除可編程只讀存儲器(EPROM)、或閃速存儲器中。引導固件112可以包括用來將編碼的管理程序驗證信息110與諸如管理程序108的正被發(fā)起的管理程序相比較以確定管理程序108是否是可信的管理程序的指令。例如,引導固件112可以包括用來基于所存儲的編碼的管理程序驗證信息110確定諸如管理程序108的接收到的虛擬機監(jiān)控器是否是有效的虛擬機監(jiān)控器的指令,并且如果確定接收到的虛擬機監(jiān)控器不是有效的虛擬機監(jiān)控器,則執(zhí)行結束引導過程或者提供錯誤消息中的一個。在一些情況下,軟件更新可以被運行以更新管理程序108或者安裝新的管理程序108,并且引導固件112可以確認被更新的管理程序108是下一次電子設備102引導時的授權的管理程序。引導固件在引導過程期間可以檢查被更新的管理程序的其他方面,諸如管理程序的配置或版本。在一個實施例中,引導固件112包括當更新所存儲的管理程序108時執(zhí)行的指令。例如,引導固件112可以在存儲被更新的管理程序以用于供電子設備102以后使用之前將被更新的管理程序與編碼的管理程序驗證信息110相比較。例如,引導固件112可以確定用私有密鑰簽名的更新的管理程序是否可以使用在電子設備102上存儲的公共密鑰來證實。如果被更新的管理程序不被證實,則被更新的管理程序例如可能不被存儲以用于以后使用。在一些情況下,引導固件112可以檢查被更新的管理程序的其他方面,諸如管理程序的版本或配置,以確認被更新的管理程序符合特定的策略。檢查可以防止在引導具有更新的管理程序的電子設備102之前對于管理程序的惡意更新。圖2是圖示了用來驗證管理程序的方法200的一個示例的流程圖。管理程序可以被存儲在電子設備上。管理程序可以在電子設備的引導過程期間被接收,并且固件可以包括用來基于編碼的管理程序驗證信息確定接收到的管理程序是否是可信的管理程序的指令。如果接收到的管理程序是可信的管理程序,則固件可以繼續(xù)引導過程。如果接收到的管理程序不是可信的管理程序,諸如因為惡意的管理程序被安裝,則固件可以例如終止引導過程或提供錯誤消息。方法200可以例如在電子設備102上執(zhí)行。在202處開始并且移動到204,處理器諸如通過在電子設備的引導過程期間執(zhí)行固件中的指令來基于編碼的管理程序驗證信息來確定諸如管理程序108的接收到的管理程序是否是可信的管理程序。處理器可以為任何合適的處理器,諸如中央處理單元(CPU)。在一個實施例中,處理器是處理器104。處理器可以執(zhí)行固件,諸如基本輸入輸出系統(tǒng)(BIOS)或統(tǒng)一可擴展的固件接口(UEFI)固件,以用于引導電子設備。管理程序可以為任何合適的虛擬機監(jiān)控器。管理程序可以為可信的或惡意的管理程序。管理程序可以被以任何合適的方式接收。例如,固件可以包括用于檢索和發(fā)起在儲存器中找到的管理程序的指令。在一些情況下,固件可以檢查設定以看看虛擬化在發(fā)起管理程序之前是否被啟用。固件可以以任何合適的方式來確定管理程序是否是有效的管理程序。例如,編碼的管理程序驗證信息可以為與可信的管理程序有關的編碼的信息,并且固件可以確定編碼的管理程序驗證信息是否與管理程序相對應。在一些情況下,比較可以取決于固件的類型,諸如固件是否是基本輸入輸出系統(tǒng)(BIOS)固件或統(tǒng)一可擴展的固件接口(UEFI)固件。在一個實施例中,編碼的管理程序驗證信息與引導管理程序有關。例如,編碼的管理程序驗證信息可以為管理程序的數(shù)字簽名。固件可以估計管理程序的數(shù)字簽名以確定管理程序是否是可信的。繼續(xù)到塊206,如果確定接收到的管理程序不是可信的管理程序,則處理器諸如通過執(zhí)行在固件中存儲的指令來執(zhí)行終止電子設備的引導過程或提供錯誤消息中的至少一個。例如,處理器可以結束電子設備的引導過程,使得電子設備不引導操作系統(tǒng)并且不能夠被使用。在一些情況下,代替或除了終止引導過程之外,處理器還可以將錯誤消息顯示在與電子設備相關聯(lián)的顯示設備上,指示管理程序不是可信的管理程序。用戶可以響應于錯誤消息而終止引導過程。如果確定管理程序是可信的管理程序,則處理器可以繼續(xù)執(zhí)行固件中的指令以完成電子設備的引導過程。固件可以發(fā)起可以執(zhí)行電子設備上的虛擬機的管理程序。在引導過程完成之后,電子設備可以準備使用。方法200繼續(xù)到208以結束。圖3是圖示了電子設備304的一個示例的方框圖。電子設備304可以例如為服務器、臺式機、筆記本或移動計算設備。電子設備304可以包括處理器104、儲存器106、機器可讀存儲介質114、以及引導固件112。電子設備304圖示了其中引導固件112分析管理程序108的數(shù)字簽名的實施例。例如,當可信的管理程序被安裝時,可以基于可信的管理程序來創(chuàng)建哈希值,并且可以用私有密鑰來對哈希值進行簽名,所述私有密鑰諸如制造商能得到的、未被存儲在電子設備304上的私有密鑰。編碼的管理程序驗證信息110可以為用私有密鑰創(chuàng)建的管理程序數(shù)字簽名310。管理程序數(shù)字簽名310可以例如為與引導裝入程序和與可信的管理程序相關聯(lián)的管理程序組件文件有關的哈希值的數(shù)字簽名??尚诺墓芾沓绦蝌炞C公共密鑰302可以為用于對用正確的私有密鑰創(chuàng)建的數(shù)字簽名進行解密的對應的公共密鑰。當可信的管理程序被安裝時可信的管理程序驗證公共密鑰302可以被存儲,以便在確定接收到的管理程序是否是可信的中以后使用。例如,管理程序驗證公共密鑰302可以被存儲在引導固件112中。流氓管理程序在安裝時可以被數(shù)字簽名,但是如果該數(shù)字簽名未被用正確的私有密鑰執(zhí)行則該數(shù)字簽名可能不是可通過管理程序驗證公共密鑰302證實。在電子設備304的引導過程期間,引導固件112可以嘗試用可信的管理程序驗證公共密鑰302對管理程序數(shù)字簽名310進行解密。例如,引導固件112可以證實與在與管理程序108有關的特定位置中存儲的管理程序引導裝入程序和管理程序組件文件相關聯(lián)的哈希值的數(shù)字簽名。如果管理程序數(shù)字簽名310不存在或者如果管理程序數(shù)字簽名310不能夠被用可信的管理程序驗證公共密鑰302進行解密,則管理程序108可能為惡意的管理程序。圖4是圖示了電子設備404的一個示例的方框圖。電子設備404可以包括儲存器106、處理器104、機器可讀存儲介質114、以及引導固件112。引導固件112可以包括管理程序驗證設定402。管理程序驗證設定402可以指示管理程序108的驗證是否應該被檢查。例如,用戶可以選擇禁用管理程序驗證能力。管理程序驗證設定402可以例如被啟用以指示管理程序108的驗證應該被檢查和禁用以指示管理程序108的驗證不應該被檢查。在一些情況下,如果管理程序驗證設定402被禁用,則警告可以被提供給用戶。當處理器104執(zhí)行引導固件112指令以引導電子設備404時,引導固件112可以包括用來檢查管理程序驗證設定402以確定處理器104是否應該檢查管理程序108是否是可信的指令。圖5是圖示了電子設備502的一個示例的方框圖。電子設備502可以包括儲存器506、處理器504、以及機器可讀存儲介質514。電子設備502可以為任何合適的電子設備,諸如服務器、個人計算機或移動計算設備。處理器504可以是任何合適的處理器,諸如中央處理單元(CPU)、基于半導體的微處理器、或適合于指令的檢索和執(zhí)行的任何其他設備。在一個實施例中,電子設備502包括代替或除了處理器504之外的邏輯。處理器504可以包括一個或多個集成電路(IC)或包括用于執(zhí)行下面描述的功能的多個電子部件的其他電子電路。儲存器506可以包括管理程序508。管理程序508可以為任何合適的虛擬機監(jiān)控器。例如,管理程序508可以運行能夠在電子設備502上執(zhí)行的一個或多個虛擬機。管理程序508可以在通過處理器504的電子設備502的引導過程期間啟動。電子設備502可以包括機器可讀存儲介質514。機器可讀儲存介質514可以是任何合適的機器可讀介質,諸如存儲可執(zhí)行的指令或其他數(shù)據(jù)的電子、磁、光或其他物理存儲設備(例如,硬盤驅動器、隨機存取存儲器、閃速存儲器等)。機器可讀存儲介質514可以為例如計算機可讀非暫時性介質。機器可讀存儲介質514可以包括引導固件512。引導固件512可以為任何合適的固件。引導固件512可以例如包括與引導電子設備502有關的指令和設定。引導固件512可以包括由處理器504執(zhí)行的用來引導電子設備502的指令。引導固件512可以例如包括基本輸入輸出系統(tǒng)指令(BIOS)或統(tǒng)一可擴展固件接口(UEFI)指令。引導固件512包括存儲的編碼的管理程序版本信息510。引導固件512可以使用編碼的管理程序版本信息510來確定引導管理程序508是否是可信的管理程序的正確的版本。編碼的管理程序版本信息510可以是與可信的管理程序的版本有關的任何合適的管理程序版本信息。編碼的管理程序版本信息510可以例如指示使用特定的版本、使用最近的版本、或使用在特定版本之后的任何版本。編碼的管理程序版本信息510可以為指示可信的管理程序的期望的版本的哈希值。例如,編碼的管理程序版本信息510可以為可信的管理程序的組件文件的鏈接哈希值,諸如安全哈希算法(SHA)或安全哈希算法-1(SHA1)。編碼的管理程序版本信息510可以在將其發(fā)貨到客戶之前在電子設備502的制造期間被存儲在電子設備502中。在一些情況下,用戶可以提示電子設備502創(chuàng)建并且存儲編碼的管理程序版本信息502。例如,用戶可以安裝管理程序的更新的版本,并且電子設備502可以創(chuàng)建或更新編碼的管理程序版本信息510。在一些情況下,可能存在用來確保版本哈希正被可靠的源改變的一些安全性。例如,諸如哈希值的編碼的管理程序版本信息510可以被通過諸如RSA密鑰的密鑰來加密簽名,并且可以供應固件口令。圖6是圖示了用于驗證管理程序的版本的方法600的一個示例的流程圖。例如,固件可以確定接收到的管理程序是否是可信的管理程序的預期版本。版本檢查可以被完成例如以防止可能被利用的先前版本中的易損性。如果管理程序不是選擇的版本,則引導過程可以被結束或者錯誤消息可以被提供。方法600可以例如通過電子設備502來執(zhí)行。在602處開始并且移動到604,處理器諸如通過在電子設備的引導過程期間執(zhí)行固件來通過將所接收到的管理程序版本與編碼的版本信息(諸如編碼的管理程序版本信息510)相比較來確定接收到的管理程序是否是選擇的版本。處理器可以為任何合適的過程,諸如中央處理單元(CPU)。管理程序的版本可以被以任何合適的方式來確定。處理器可以以任何合適的方式將編碼的管理程序版本信息與管理程序的版本相比較。例如,處理器可以估計用哈希值編碼的版本并且將其與管理程序的版本相比較。在一個實施例中,處理器將和與可信的管理程序組件文件相關聯(lián)的已知的好值相關聯(lián)的哈希值與從管理程序的組件文件創(chuàng)建的哈希值相比較,以確定與管理程序相關聯(lián)的哈希值是否被發(fā)現(xiàn)在已知的好的哈希值的組中。繼續(xù)到606,如果確定管理程序不是選擇的版本,則處理器諸如通過執(zhí)行在固件中存儲的指令來執(zhí)行終止引導過程或提供錯誤消息中的至少一個。例如,如果管理程序不是選擇的版本則處理器可以結束引導過程,以防止另一版本的任何問題被利用。在一個實施例中,處理器除了終止引導過程之外或者代替終止引導過程還顯示錯誤消息,所述錯誤消息指示引導管理程序不是可信的管理程序的選擇的版本。用戶可以響應于該錯誤消息而終止引導過程。如果確定管理程序在選擇的版本中,則處理器可以繼續(xù)執(zhí)行在固件中存儲的指令以完成電子設備的引導過程。方法600繼續(xù)到608以結束。圖7是圖示了電子設備704的一個示例的方框圖。電子設備704可以包括儲存器506、處理器504、機器可讀存儲介質514、以及引導固件512。引導固件512可以包括編碼的管理程序版本信息510和管理程序版本設定702。管理程序版本設定702可以為指示管理程序508的版本在電子設備502的引導過程期間是否應該被檢查的設定。引導固件512可以包括用來在引導電子設備502時檢查管理程序版本設定702的指令。當電子設備502被發(fā)貨到客戶時,管理程序版本設定702可以被啟用或禁用。在一些情況下,客戶可以啟用或禁用管理程序版本設定702,諸如通過用戶界面。圖8是圖示了電子設備802的一個示例的方框圖。電子設備802可以包括儲存器806、處理器804、以及機器可讀存儲介質814。處理器804可以是任何合適的處理器,諸如中央處理單元(CPU)、基于半導體的微處理器、或適合于指令的檢索和執(zhí)行的任何其他設備。在一個實施例中,電子設備802包括代替或除了處理器804之外的邏輯。儲存器806可以包括管理程序808。管理程序808可以為任何合適的虛擬機監(jiān)控器。管理程序808可以在通過處理器804的電子設備802的引導過程期間通過處理器804來啟動。電子設備802可以包括機器可讀存儲介質814。機器可讀儲存介質814可以是任何合適的機器可讀介質,諸如存儲可執(zhí)行的指令或其他數(shù)據(jù)的電子、磁、光或其他物理存儲設備(例如,硬盤驅動器、隨機存取存儲器、閃速存儲器等)。機器可讀存儲介質814可以為例如計算機可讀非暫時性介質。機器可讀存儲介質814可以包括引導固件812。引導固件812可以為任何合適的固件。引導固件812可以例如包括與引導電子設備802有關的指令和設定。引導固件812可以例如包括基本輸入輸出系統(tǒng)指令(BIOS)或統(tǒng)一可擴展固件接口(UEFI)指令。引導固件812可以包括編碼的管理程序配置信息810。編碼的管理程序配置信息810可以被用來證實引導管理程序808在選擇的配置中。證實管理程序808的配置可以防止由管理程序808的惡意配置所造成的安全威脅,所述管理程序808的惡意配置諸如配置成發(fā)起惡意虛擬機的可信的管理程序。編碼的管理程序配置信息810可以為指示管理程序的選擇的配置的任何合適的信息。例如,編碼的管理程序配置信息810可以為與可信的管理程序的配置文件有關的哈希值。可信的管理程序可以被配置,并且與配置有關的信息可以被保存在編碼的管理程序配置信息810中。例如,引導固件812可以確定可信的管理程序的配置并且基于該配置創(chuàng)建編碼的管理程序配置信息810。編碼的管理程序配置信息810可以被存儲在任何合適的位置中,諸如在引導固件812中。編碼的管理程序配置信息810可以包括與可信的管理程序的配置有關的任何合適的配置信息。例如,配置信息可以包括關于特定虛擬機的列表、加密、網(wǎng)絡接口、或哪些資源被分配給每個虛擬機的信息。編碼的管理程序配置信息810可以在諸如在制造過程期間的任何合適的時間被存儲在引導固件812中。在一些實施例中,用戶可以配置管理程序并且指示配置應該被編碼。在一個實施例中,編碼的管理程序配置信息810可以被更新。例如,可能期望添加管理程序發(fā)起附加的虛擬機的能力。圖9是圖示了用來驗證管理程序的配置的方法900的一個示例的流程圖。例如,固件可以包括用來將管理程序的配置與編碼的管理程序配置信息相比校以確定管理程序的配置是否是選擇的配置的指令。如果管理程序不在選擇的配置中,則其可以指示管理程序被惡意地修改,諸如用來執(zhí)行不同的虛擬機或不使用加密。如果管理程序不被確定為在選擇的配置中,則固件可以終止引導過程或創(chuàng)建錯誤消息。方法900可以例如通過電子設備802來執(zhí)行。在902處開始并且移動到904,處理器諸如通過執(zhí)行用于引導電子設備的固件來通過將所接收到的管理程序配置與編碼的管理程序配置信息相比較來確定接收到的管理程序是否在選擇的配置中。管理程序配置可以被以任何合適的方式與編碼的管理程序信息相比較。例如,編碼的管理程序配置信息可以為與可以被與管理程序的配置相比較的配置設定有關的哈希值,或者可以為可以被與管理程序的組件文件的哈希值相比較的管理程序文件的哈希值。繼續(xù)到906,如果確定管理程序不在選擇的配置中,則處理器諸如通過執(zhí)行在固件中存儲的指令來執(zhí)行終止引導過程或提供錯誤消息中的至少一個。例如,電子設備可以不引導,并且因此,用戶或許不能使用該電子設備。在一個實施例中,錯誤消息被提供,諸如顯示或發(fā)送到另一設備以顯示,以指示引導管理程序不在選擇的配置中。如果確定管理程序在選擇的配置中,則處理器可以繼續(xù)執(zhí)行固件中的指令以完成引導過程。電子設備然后可以準備使用。方法900繼續(xù)到908以結束。圖10是圖示了電子設備1004的一個示例的方框圖。電子設備1004可以包括儲存器806、處理器804、以及引導固件812。引導固件812包括管理程序配置設定1002。管理程序配置設定1002可以為指示管理程序808的配置是否應該被檢查的任何合適的設定。例如,可以選擇配置,并且編碼的管理程序配置信息1002可以被存儲在引導固件812中。用戶可以然后決定配置應該不被估計。管理程序配置設定1002可以被禁用,使得處理器804在引導過程期間不再檢查管理程序的配置。在一個實施例中,用戶可以經由通過電子設備1004所顯示的用戶界面更新管理程序配置設定1002。在一個實施例中,同一電子設備可以驗證管理程序、管理程序配置、以及管理程序版本中的一個或這三個的任何組合,諸如驗證管理程序和管理程序版本、管理程序配置和管理程序版本,或驗證管理程序和管理程序配置。例如,可以組合電子設備102、502以及802的功能。驗證管理程序的一個以上的特征可以提供更安全的可信設備。圖11是圖示了用來驗證管理程序、管理程序配置以及管理程序版本的方法1100的一個示例的流程圖。例如,電子設備可以包括與管理程序有關的多個類型的編碼的信息??梢砸匀魏魏线m的次序來驗證這三個。在塊1102處開始,處理器確定接收到的管理程序是否是可信的管理程序。如果不是,則移動到1110,處理器終止引導過程、顯示錯誤消息、或者兩者。如果接收到的管理程序是可信的管理程序,則繼續(xù)到1104,處理器確定接收到管理程序是否在選擇的配置中。如果不是,則處理器繼續(xù)到1110以終止引導過程、顯示錯誤消息或者兩者。如果管理程序在正確的配置中,則處理器繼續(xù)到1106以確定管理程序是否在選擇的版本中。如果不是,則處理器繼續(xù)到1110以終止引導處理器、顯示錯誤消息或者兩者。如果管理程序是選擇的版本,則處理器移動到1108以繼續(xù)引導過程。例如,管理程序可以被確定為正確版本和配置的可信的管理程序。在電子設備的引導過程期間執(zhí)行固件指令來驗證管理程序可以防止與管理程序有關的安全威脅。例如,驗證可以通過受信的固件代碼來執(zhí)行并且在惡意代碼有執(zhí)行的機會之前在引導過程中較早地發(fā)生。