專利名稱:對變更bios中的至少一項的請求的驗證和與bios相關聯的設置的制作方法
對變更BIOS中的至少一項的請求的驗證和與BIOS相關聯的設置
背景技術:
確保計算機系統的安全是所期望的。例如,流氓應用程序可以試圖改變計 算機的基本輸A/輸出系統(BIOS)代碼和/或與BIOS相關的參數。例如這樣做 可以使計^m變得不起作用或者損害計算機的安全。
為了詳細描述本發明的示范性實施例,現在將參考附圖,其中 圖1示出根據本發明實施例的系統圖;以及 圖2示出根據本發明實施例的方法。 符號以及命名法
貫穿齡下列描述和權利要求書4頓特定術語來表示特定系統元件。作為
本領域技術人員應當理解計算機公司可以用不同名稱表示一個元件。本文件不 打算區分名稱不同但功能相同的元件。在以下論述以及權利要求書中,術語"包 括"和"包含"以開放式的方式使用,并從而應解釋為指"包括但不限于…"。 同樣,術語"耦合"或"連接"意在指或者間接的、直接的、光學的或者無線 的電連接。這樣,如果第一裝置耦合到第二裝置,那么該耦合就可以是通過直 接電連接、通過經由其他裝置和連接的間接電連接、通過光電連接、或通過無 線電連接。
具體實施例方式
參見圖l,根據本發明例示性實施例的系統50包括處理器52、北橋54、 存儲器56、南橋58和非易失性存儲器60。在一些實施例中,系統50包括計算 機(例如服務器、筆記本、臺式機等等),但在其他實施例中可以不同于計^m。 在至少一個實施例中,非易失性存儲器60包括只讀存儲器(ROM)。處理器52 操作以執行包含在ROM60或諸如存儲器56的其他存儲器中的代碼。如圖所示, 橋54和58把處理器52、存儲器56和ROM60耦合在一起。系統50的其他體 系結構也是可能的。
ROM 60包括基本輸A/輸出系統(BIOS)代碼62。BIOS代碼62來自ROM60由處理器52執行,或復制到存儲器56用于從其中執行。,少一個實施例中, BIOS代碼62包括允許在弓l導操作期間初始化和測試系統50,也被稱為通電自 檢(POST)過程的代碼。在至少一些實施例中,弓l導過程從包括在直接源自 ROM60的BIOS代碼62內的POST代碼的執行開始。在POST期間的一些點, 如果不是所有,那么BIOS代碼62中的至少一些被復制到存儲器56并從存儲器 56中執行。存儲器56包括任何合適類型的非易失存儲器,諸如多種類型的隨機 存取存儲器(RAM)中的任何隨機存取存儲器。除執行POST過程之外,BIOS 代碼62還可用于訪問系統的各種相對低級功能,諸如訪問存儲器驅動(例如硬 盤驅動、軟盤驅動等等)、輸入裝置(例如鍵盤、鼠標)以及其他輸入和/^f俞出 裝置。
ROM 60還包括一個或多個BIOS設置64 。 BIOS設置64包括諸如設置弓I 導命令,驅動鎖定啟用/禁用,以及各種5更件項(例如輸A/輸出端口、可信平 臺管理等等)啟用/禁用。BIOS設置64可以獨立于BIOS代碼62,但可以訪問 BIOS代碼62,或可以^ABIOS代碼本身。
ROM60的內容可依期望而修改,這種修改禾,被稱為"刷新(flashing)" (或"重刷新(reflashing)") ROM。在一些實施例中,刷新實用禾聘執行。實 用禾號接收將被刷新到ROM中的新"圖像(image)",讀取ROM的當前內容, 必要時變更檢索內容以便與新圖像一致,并利用新信息重寫ROM。用于刷新 ROM的特殊過程可以是任何合適的刷新過程。如果不是ROM60的所有內容, 至少BIOS代碼62禾口/或BIOS設置64可以用此方式修改。
本發明的實施例包括控制ROM60的一些或所有內容的修改的技術。在一 個實施例中,在請求被驗證以前,對修改部分^^f有BIOS代碼62禾口/或BIOS 設置64的請求不允許被執行。用于驗證這種請求的一個合適技術在圖2中被例
不o
現在參見圖2,驗證過程100被顯示包括動作102-1160所描述的動作可 以依照任何^)^被執行,諸如在圖2中示出的次序或不同的次序。 一些動作可 以被結合到一起成為單個動作。在圖2中所描述的動作由系統50執行。根據本 發明的至少一些實施例, 一些i^;f有動作由處理器52執行的代碼執行。這種代 碼的實例是在圖l中示出的BIOS訪問控制(BAC)應用程序57。
在至少一些實施例中,在圖2中所描述的過程100包括"散列(hash)"函數的使用。散列是由例如一串文本(在此情況下,對修改ROM 60的內容的請 求)產生的數。散列值是由散列數學公式朋艮難從散列俊咴復原文的這種方式 產生的。
以下所述的例示性的過程100還涉及出于加密與解密目的的私鑰和相應 公鑰的使用。在公鑰/私鑰加密協議的例示性實施例中,公鑰是已知的自經加 密消息的所有期望接受者來說是可獲得的而私鑰只對消息的始發者來說是可訪 問的。私鑰用于加密消息。正確的公鑰用于角軍密經加密消息。在公鑰/私鑰協議 里,公共和私鑰是以這種方式在數學上相互關聯,即只有私鑰可用于加密消息 并且只有相應公鑰可用于解密消息,或反之亦然。除基于公鑰/私鑰的技術之外 的加密技術也是可能的。
在102,系統50接收消息。在一些實施例中,消息源于在系統50上執行 的軟件,而在其他實施例中,消息源于除系統50之外的源。消息可以根據各種 格式或協議中的任何格式或協議。消息是或包含請求(例如命令字節)來變更 BIOS代碼62中的至少一項和一個或多個BIOS設置64 。在至少一些實施例里, 加密包括在消息中的請求(即未經加密),而在其他實施例中,不對請求加密, 再在其他實施例中,可以加密請求中的一個或多個部分。在一些實施例中,消 息包含未加密請求和加密值,該加密值包括請求的散列的加密版本。也就是說, 請求己經被散列函數散列(hash)并且散列函數的輸出被加密。根據本發明的實 施例,加密過程使用私鑰。與私鑰相對應的公鑰66 (圖l)存儲在ROM 60或 其他存儲器中。在一些實施例中,公鑰66被^A BIOS代碼62中。
在104,例如從ROM 60檢索與用于加密請求的散列的私鑰相對應的公鑰 66。經檢索的公鑰66在106用于解密消息以恢復命令的散列。在108,處理器 52或其他邏輯從消息計算請求的散列,在110,將最新計算的散列與源自解密 過程的經恢復散列相比。如果正確的私鑰被用于加密請求散列(即系統50中的 公鑰與其相對應的私鋼)并且在108中使用與用于fflii消息的源形成原始消息 的散列算法相同的t^列算法,那么兩個散列值應該匹配。
動作112確定散列值是否匹配。如果散列值匹配,那么包含在消息中的請 求在動作114中被執行。如上文所解釋的并且根據本發明的各禾中實施例,請求 使BIOS代碼62中的至少部分和一個或多個BIOS設置64中的任一或二者被變 更。然而如果散列不匹配,那么執行安全動作。安全動作不允i頓行被傳輸到 系統50的消息中的請求,并且從而不變更BIOS代碼62和/或BIOS設置64中 的一個或多個。作為代替,安全動作可以產生表示驗證過程失敗的安全警告表 示。警告可以是寫入寄存器或存儲器itM示在顯示器上的消息或值(例如位) 的形式。可選地,安全動作可以簡單地什么也不做。
根據本發明的各種實施例,消息還包括與請求相關聯的變元(argument) 來更改BIOS 62和/或一個或多個BIOS設置64。所述變元包括一個或多個數據 值,假定所述請求被成功地驗證,系統5(K頓該數據it^執^i青求。這種頓 的實例包括先前(即當前)驅動鎖定密碼和新驅動鎖定密碼(如果期望改變密 碼)、弓f導命令裝置飾l,歹i康(如果期望改變裝置弓l導命令)和裝置的標識符 (例如名字)以及這種裝置的新狀態(例如啟用、禁用)。在一些實施例中,變 元包括指定待修改的BIOS設置和用于經指定設置的新值的標識符。
,論述意在例示本發明的原理和各種實施例。 一旦,公開內容被完全 地理解,對本領域技術人員來說許多變化和修改將變得顯而易見。在至少一個 實施例中,對變更BIOS/BIOS設置的請求可以在不需要重新弓l導計^m盼瞎況 下執行。所附權利要求書意在被解釋為包含所有這種變化和修改。
權利要求
1、一種系統(50),包括存儲器(60);以及存儲在所述存儲器(60)中并適于由處理器(52)執行的基本輸入/輸出系統(BIOS)(62),所述BIOS(62)具有與其關聯的設置(64);以及其中所述系統(50)接收加密值,該加密值包括請求的經加密散列以變更所述BIOS和所述設置中的至少一個,第一密鑰被用于加密所述值;以及其中所述處理器(52)使用與所述第一密鑰相對應的第二密鑰來驗證所述請求。
2、 如禾又利要求1所述的系統,其中如果所述處理器不能成功地驗證所述請 求,貝iJ所述處理器(52)執行安^i力作。
3、 如權利要求l所述的系統,其中如果所述請求被成功地驗證,所述處理 器(52)就執行所述請求。
4、 如權利要求l所述的系統,其中所述處理器(52) 4頓所述第二密鑰解 密所述加密值。
5、 如權利要求1所述的系統,其中所述第一密鑰包括私鑰以及所述第二密 鑰包括公鑰。
6、 一禾中方 封IOO),包括接收(102)加密值,該加密值包括請求的經加密散列以變更基本輸A/車俞 出系統(BIOS) (62)和與所述BIOS相關聯的設置(64)中的至少一個,第一 密鑰被用于加密所述值;以及使用第二密鑰解密(106)所述加密值以恢復所述請求的散列,所述第二密 鑰與所述第一密鑰相關聯。
7、 如權利要求6所述的方法,還包括基于所述請求的經恢復的散列確定 (112)是否執行所述請求。
8、 如權利要求7所述的方法,還包括確定請求不應執行時執行(116)安 全動作。
9、 如權利要求6所述的方法,還包括接收未經加密的形式的請求。
10、 如木又利要求9所述的方法,還包括計算未經加密的請求的新散列并比 !^f述新散列和恢復的散列。
全文摘要
一種系統(50),包括存儲器(60)和存儲在存儲器中并適于由處理器(52)執行的基本輸入/輸出系統(BIOS)(62)。BIOS(62)具有相關聯的設置(64)。系統(50)接收加密值,該加密值包括請求的經加密散列以變更BIOS(62)和設置(64)中的至少一個。第一密鑰被用于加密值。處理器(52)使用與第一密鑰相對應的第二密鑰來驗證所述請求。
文檔編號G06F21/00GK101421739SQ200780013113
公開日2009年4月29日 申請日期2007年1月30日 優先權日2006年4月13日
發明者J·里奧斯, L·王, M·諾沃亞, V·Y·阿利 申請人:惠普開發有限公司