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