專利名稱:安全bios的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及本發(fā)明涉及計算機(jī)固件安全領(lǐng)域,尤其在普通計算系統(tǒng),如個人計算機(jī)(“PCs”)的一般計算系統(tǒng)中的基本輸入和輸出系統(tǒng)(“BIOS”)領(lǐng)域。
2.相關(guān)技術(shù)說明計算機(jī)系統(tǒng)中最關(guān)鍵的元件之一是自舉(boot-up)固件,如基本輸入和輸出系統(tǒng)(“BIOS”)。特別地存儲于某種形式的非易失性存儲器中的BIOS是機(jī)器代碼,通常為一種操作系統(tǒng)(“OS”)的一部分,它允許中央處理單元(“CPU”)執(zhí)行這些任務(wù),如初始化,診斷,從海量存儲器加載操作系統(tǒng)內(nèi)核,及常規(guī)的輸入/輸出(“I/O”)功能。
一旦通電,CPU將通過獲取駐存在BIOS中的指令代碼而“自舉”。由于其內(nèi)部特性,BIOS有二個互相沖突的要求(1)它應(yīng)被很好地保護(hù),這是因為如果它被修改或被破壞,整個系統(tǒng)將無法工作,(2)它應(yīng)很容易地修改,從而允許現(xiàn)場升級,以進(jìn)行性能提高或清除軟件故障。
一般來說,BIOS應(yīng)用于可擦除可編程只讀存儲器(“EPROM”)。EPROM有一個優(yōu)點不能在電路中進(jìn)行修改。要修改EPROM的內(nèi)容,該器件必須先從插座中拔出并暴露于紫外線中一個較長的時間進(jìn)行擦除。在該方面,應(yīng)用于EPROM的BIOS可以抵抗病毒侵?jǐn)_和其他的電子破壞。然而,EPROM器件不支持“現(xiàn)場升級”,這是因為這些器件不能在電路中進(jìn)行編程,在電路中編程是現(xiàn)場升級的必要的特性?,F(xiàn)場升級允許用戶對現(xiàn)場的BIOS升級,以避免價值昂貴的延時和部件更換。由于現(xiàn)場升級的重要性,現(xiàn)在實際上所有的BIOS固件是使用閃速存儲器來完成的。然而,由于可進(jìn)行現(xiàn)場修改,BIOS閃速存儲器易受病毒侵?jǐn)_,該侵?jǐn)_可能在敏感的應(yīng)用程序如財政事務(wù)處理中引起毀壞的結(jié)果。
在沒有安全保護(hù)的情況下,應(yīng)用于BIOS閃速存儲器的傳統(tǒng)的計算機(jī)結(jié)構(gòu)容易受多種侵入的侵?jǐn)_,如病毒侵?jǐn)_。在一種典型的病毒侵?jǐn)_中,該病毒代碼執(zhí)行一個代碼序列來修改該BIOS閃速存儲器。在BIOS閃速存儲器中的代碼,沒有保護(hù),當(dāng)該系統(tǒng)下一次自舉時,或當(dāng)某種情況或事件發(fā)生時,就被毀壞,其破壞的結(jié)果可能立即變成有效。該被感染的代碼可能還傳播到該BIOS代碼或該操作系統(tǒng)內(nèi)核的其他區(qū)域。因為當(dāng)計算機(jī)系統(tǒng)通電時,該BIOS是該第一程序代碼,先于任何系統(tǒng)或網(wǎng)絡(luò)病毒掃描軟件執(zhí)行,基于BIOS的病毒的檢查和根除是非常困難的。該基于BIOS的病毒可以“隱藏在磁道中”而逃避掃描軟件,從而有效地隱藏。
因此,本發(fā)明的主要目的,是防止計算機(jī)病毒。對BIOS的破壞,這是通過在該BIOS閃速存儲器的內(nèi)容被修改以前強(qiáng)加一個授權(quán)和確認(rèn)過程來實現(xiàn)的。
應(yīng)用在本發(fā)明中的方法是建立在BIOS授權(quán)這個概念之上,即利用授權(quán)特性如加密協(xié)處理器將BIOS閃速存儲器結(jié)合到現(xiàn)存的硬件之中。由于加密協(xié)處理器既存儲該BIOS又執(zhí)行BIOS更新的授權(quán),侵?jǐn)_者就沒有辦法破壞該BIOS內(nèi)容。
發(fā)明概述本發(fā)明描述了一種安全更新可執(zhí)行代碼的系統(tǒng)。該系統(tǒng)包含一種存儲代碼更新的第一存儲器元件,一種存儲需要更新的可執(zhí)行代碼的第二存儲器元件,一種識別第一存儲器元件和代碼更新的識別代碼,及一種安全處理器。該安全處理器耦合到第二存儲器元件,利用器件識別來授權(quán)和確認(rèn)第一存儲器元件和代碼更新。
附圖的簡要說明通過下面的詳細(xì)描述,本發(fā)明的特點和優(yōu)點將變得顯而易見。
圖1是本發(fā)明的一個圖解。其中BIOS閃速存儲器駐存在加密協(xié)處理器內(nèi)部,加密協(xié)處理器可以與PCI總線連結(jié)。
圖2是一個操作流程圖,這些操作發(fā)生在本發(fā)明中通過主處理器對BIOS程序進(jìn)行正常讀訪問期間。
圖3是一個操作流程圖,這些操作發(fā)生在本發(fā)明中BIOS程序的現(xiàn)場升級期間。
優(yōu)選實施例的說明本發(fā)明提供了一種過程來授權(quán)和確認(rèn)代碼更新,如使用加密技術(shù)的BIOS升級。在下面的描述中,某些術(shù)語用于討論某種加密特點。“密鑰”是一種編碼和/或譯碼參數(shù),利用傳統(tǒng)的加密算法如Rivest,Shamir和Adlem(“RSA”),Data Encryption Standard(“DES”)中說明的DataEncryption Algorithms(“DEA”)等等?!白C明”定義為與某個實體相關(guān)的由其他的實體如一個制造商或一個廣泛公開的可信的權(quán)威機(jī)構(gòu)(例如,銀行,政府實體,貿(mào)易協(xié)會等。)掌握的私人的密鑰進(jìn)行加密的任何數(shù)字信息(特別地是一個公共的密鑰)。一個“數(shù)字簽名”類似于一個證明,但一般只用于授權(quán)數(shù)據(jù)。這里,詞“安全”表示對一個侵入者來說,不可能成功地穿過系統(tǒng)屏障。安全處理器是一種電子器件,它能執(zhí)行安全功能,從而給該系統(tǒng)提供安全保護(hù)。
該授權(quán)和確認(rèn)是由安全處理器來執(zhí)行,安全處理器包含BIOS固件。這樣一種安全處理器的實例是加密協(xié)處理器。該加密處理器使用秘密的信息如嵌于BIOS升級的數(shù)字簽名來授權(quán)和確認(rèn)BIOS固件。
參考圖1,圖示了一個應(yīng)用于本發(fā)明的計算機(jī)系統(tǒng)的實施例。該計算機(jī)系統(tǒng)10包括芯片組31,它作為一個接口,以支持主處理器30之間的連接;系統(tǒng)存儲器32,和耦合到系統(tǒng)總線33的器件。系統(tǒng)存儲器32可以包括,但不局限于傳統(tǒng)的存儲器如不同類型的隨機(jī)訪問存儲器(“RAM”),例如,DIAM,VRAM,SRAM,等。以及映射存儲器I/O器件。系統(tǒng)總線33可以按照任何類型的總線結(jié)構(gòu)包括外圍部件互連(“PCI”),通用串行總線(“USB,”)等等進(jìn)行應(yīng)用。
可以耦合到系統(tǒng)總線33的一種器件包括加密協(xié)處理器34。加密協(xié)處理器34包含總線接口40,處理單元41和局部非易失性存儲器42??偩€接口40用于建立一種與系統(tǒng)總線33的電連接。處理單元41用作加密協(xié)處理器34的主控制器。處理單元41與它自己的局部非易失性存儲器42連接。自舉程序43儲存于非易失性存儲器42中。非主要的元件未示出,以避免使本發(fā)明發(fā)生混淆??墒褂迷谠摷用軈f(xié)處理器34中的非主要的元件實例包括RAM,一種隨機(jī)數(shù)字發(fā)生器,和不同的加密算法加速器。而且,盡管在圖1中顯示主處理器30與加密協(xié)處理器34是分開的,但加密協(xié)處理器34可以是主處理器30的部件,在該情形下,主處理器30直接訪問BIOS程序而不通過系統(tǒng)總線33。
圖2中,圖示了與系統(tǒng)的“自舉”過程相關(guān)聯(lián)的一些步驟。首先,在步驟50中,該主處理器發(fā)出一個關(guān)于BIOS程序的地址讀請求。該加密協(xié)處理器響應(yīng)對有關(guān)BIOS指令的請求(步驟60)。最后,該主處理器處理步驟70中的數(shù)據(jù)。為了繼續(xù)處理BIOS指令,該順序重復(fù)進(jìn)行。
在典型的現(xiàn)場BIOS升級中,該軟件制造商(BIOS銷售商)會送給用戶一張包含新的BIOS代碼和執(zhí)行升級操作代碼的磁盤,對BI0S銷售商來說,建立一個公報交換機(jī)系統(tǒng),或一個數(shù)據(jù)高速公路接口如因特網(wǎng),以允許用戶通過電子遠(yuǎn)程卸載該BIOS升級是可能的。BIOS升級主要包括對BIOS閃速存儲器的擦除和寫入。
在圖3中,圖示了與修改BIOS程序相關(guān)的步驟。在步驟110中,主處理器發(fā)出一個“替換BIOS”命令給加密協(xié)處理器。該命令一般由某些類型的BIOS管理實用軟件產(chǎn)生,這些BIOS管理實用軟件在主處理器本身或者遠(yuǎn)程系統(tǒng)上運(yùn)行。該命令的目的是為新的BIOS程序準(zhǔn)備加密協(xié)處理器(步驟120)。在步驟130中,加密協(xié)處理器或者被動地從主處理器接收新的BIOS程序代碼或主動地從特定的來源(例如。系統(tǒng)存儲器)中恢復(fù)新的BIOS程序代碼。步驟140中,新的BIOS程序在內(nèi)部或以一種保護(hù)方式儲存,以保證將來的授權(quán)操作在這特定的“新的BIOS程序”中執(zhí)行。在步驟150中,加密協(xié)處理器按照內(nèi)部儲存的BIOS程序的版本執(zhí)行適當(dāng)?shù)氖跈?quán)操作。有很多方法如授權(quán)可以執(zhí)行,包括利用秘密信息,這些信息僅為BIOS提供者和配置的加密協(xié)處理器所知。這是考慮到公共的/私人的密鑰加密術(shù)可能用作授權(quán)過程的一部分,特別地,使用該眾所周知的數(shù)字簽名和證明技術(shù)以使該新的BIOS程序的整體性和有效性生效。不管使用什么授權(quán)技術(shù),其顯著特點是它是在加密協(xié)處理器內(nèi)按新的BIOS程序的局部版本執(zhí)行。一旦執(zhí)行了授權(quán)操作,在步驟160中,加密協(xié)處理器可以確定關(guān)于該新的BIOS程序的有效性。例如,該“新的BIOS程序”提供的數(shù)字簽名可能是有效的,但是該修訂數(shù)據(jù)可能是不適當(dāng)?shù)?例如。比當(dāng)前安裝的BIOS更早)。如果該新的BIOS已確定是無效的,它就被加密協(xié)處理器刪除并且再也不能使用(步驟170)。如果該新的BIOS是有效的,該新的BIOS程序進(jìn)行操作并刪除先有的BIOS程序(步驟180)。注意在這一點上,重新自舉(reboot)該計算機(jī)系統(tǒng)是正常的,以確保系統(tǒng)范圍內(nèi)的一致性。
為了支持基于數(shù)字簽名的BIOS授權(quán)方法,嵌于銷售BIOS軟件升級中的數(shù)字簽名應(yīng)當(dāng)由一個工業(yè)協(xié)會,或一個類似的組織或程序批準(zhǔn)或同意。該工業(yè)協(xié)會的參加者是想能現(xiàn)場升級他們的BIOS代碼的BIOS銷售商。該工業(yè)協(xié)會的功能之一是發(fā)行數(shù)字證明給它的BIOS銷售商成員,實際上是簽發(fā)一個數(shù)字證明給每個使用BIOS升級軟件的銷售商。該協(xié)會在BIOS的授權(quán)過程中提供它的用于加密協(xié)處理器的公共密碼。該加密協(xié)處理器應(yīng)預(yù)裝有BIOS銷售商的工業(yè)協(xié)會的公共的密碼,以便它能證明嵌于該BIOS升級代碼的任何數(shù)字簽名。另一方面,加密協(xié)處理器可以預(yù)裝入其他的公共的密碼,它可以用于授權(quán)一個證明鏈從而獲取該工業(yè)協(xié)會公共的密碼。必要時,BIOS升級代碼可以是加密的(例如保護(hù)該代碼不被顛倒管理)。由于該工業(yè)協(xié)會發(fā)表的數(shù)字簽名或證明一般代表一個有信譽(yù)的或可靠的BIOS銷售商權(quán)威性,一個侵犯者不能直接或間接地用病毒侵?jǐn)_來破壞該BIOS代碼(除非是他或她自己以某種方式取得秘密的私人的用于產(chǎn)生簽名或證明的密碼)。
在另一實施例中(未圖示),加密協(xié)處理器是主處理器的一部分。主處理器包含加密協(xié)處理器和BIOS程序。當(dāng)作它自己的安全處理器的主處理器執(zhí)行與以上描述的BIOS升級中授權(quán)和有效,該主處理器預(yù)裝入BIOS銷售商工業(yè)協(xié)會的公共密碼,以便能校驗嵌于BIOS升級代碼中的任何數(shù)字簽名。
在另一實施例中(未圖示),BIOS程序位于插入系統(tǒng)的擴(kuò)展槽中的印刷電路板(“PCB”)或卡中。加密協(xié)處理器可以位于同一PCB或卡或另一個PCB或卡上,甚至在主處理器內(nèi)。不管它位于系統(tǒng)的什么地方,只要加密協(xié)處理器能訪問該BIOS程序,它可以完成以上描述的授權(quán)和有效操作。
盡管本發(fā)明參考圖示的實施例進(jìn)行了描述,但這種描述不是解釋為一種限制。圖示的實施例以及本發(fā)明的其他實施例的各種修改,對于本領(lǐng)域的人來說是顯而易見的,則認(rèn)為落入本發(fā)明的精神和范圍之內(nèi)。
權(quán)利要求
1.一種安全地更新可執(zhí)行代碼的系統(tǒng),包括存儲代碼更新的第一存儲器裝置,存儲所述的可執(zhí)行代碼的第二存儲器裝置,以及授權(quán)和確認(rèn)所述的第一存儲器裝置和所述的基于器件識別的代碼更新的第一處理裝置,所述的第一處理裝置耦合到所述的第二存儲器裝置。
2.權(quán)利要求1中所述的系統(tǒng),其中的可執(zhí)行代碼是一種基本輸入和輸出系統(tǒng)。
3.權(quán)利要求1中所述的系統(tǒng),其中的第一存儲器裝置是海量存儲器器件和能在計算機(jī)網(wǎng)絡(luò)中通過電子方法傳送的文件之一。
4.權(quán)利要求1中所述的系統(tǒng),其中的第二存儲器裝置是一種可修改的非易失性存儲器器件。
5.權(quán)利要求1中所述的系統(tǒng),其中的第一處理裝置包括一種加密處理器。
6.權(quán)利要求1中所述的系統(tǒng),其中的器件識別由包括一數(shù)字簽名的第一處理裝置接收。
7.權(quán)利要求1中所述的系統(tǒng),其中所述的可執(zhí)行代碼被加密以生成加密的代碼。
8.權(quán)利要求1中所述的系統(tǒng),還包括為執(zhí)行所述的可執(zhí)行代碼而與所述的第一處理裝置通訊的第二處理裝置。
9.權(quán)利要求7中所述的系統(tǒng),其中所述的加密代碼被解密以生成解密代碼。
10.一種安全的更新可執(zhí)行代碼的系統(tǒng),包括一種包含代碼更新的第一存儲器元件;一種包含所述的可執(zhí)行代碼的第二存儲器元件;一種耦合到所述的第二存儲器元件的安全處理器,所述的安全處理器授權(quán)和確認(rèn)所述的第一存儲器元件和所述的基于器件識別的代碼更新。
11.權(quán)利要求10中所述的系統(tǒng),其中的可執(zhí)行代碼是一個基本輸入和輸出系統(tǒng)。
12.權(quán)利要求10中所述的系統(tǒng),其中的第一存儲器元件是海量存儲器器件和能在計算機(jī)網(wǎng)絡(luò)中通過電子方法傳送的文件之一。
13.權(quán)利要求10中所述的系統(tǒng),其中的第二存儲器元件是一種可修改非易失性存儲器器件。
14.權(quán)利要求10中所述的系統(tǒng),其中的安全處理器是一種加密處理器。
15.權(quán)利要求10中所述的系統(tǒng),其中的所述的器件識別由所述的包括數(shù)字簽名的所述安全處理器接收。
16.權(quán)利要求10中所述的系統(tǒng),其中的所述的可執(zhí)行代碼被加密以生成一種加密的代碼。
17.權(quán)利要求10中所述的系統(tǒng)。還包括一為執(zhí)行所述的可執(zhí)行代碼而與所述的安全處理器通信的主處理器。
18.權(quán)利要求16中所述的系統(tǒng),其中所述的加密的代碼被解密以生成解密代碼。
19.一種安全地更新可執(zhí)行代碼的方法,該方法包含以下步驟提供第一存儲器元件以存儲代碼更新;提供第二存儲器元件以存儲所述的可執(zhí)行代碼;配置所述的第一存儲器元件以使其包含一個器件識別;提供安全處理器以訪問所述的第二存儲器元件;通過所述的安全處理器授權(quán)所述的基于器件識別的第一存儲器元件;以及如果所述的第一存儲器元件已授權(quán),則通過所述的代碼更新來更新所述的可執(zhí)行代碼。
20.權(quán)利要求19中所述的方法,在所述的更新步驟前,該方法還包含一個步驟確認(rèn)所述的在第一存儲器元件中的代碼更新。
21.權(quán)利要求19中所述的方法,其中的可執(zhí)行代碼是一種基本輸入和輸出系統(tǒng)。
22.權(quán)利要求19中所述的方法,其中的所述的第二存儲器元件提供的可執(zhí)行代碼是一種加密格式。
23.權(quán)利要求19中所述的方法,還包括提供為執(zhí)行所述的可執(zhí)行代碼而與所述的安全處理器通信的主處理器。
全文摘要
一種子系統(tǒng),防止對嵌于可修改的非易失性存儲器器件如閃速存儲器中的BIOS程序代碼進(jìn)行非授權(quán)的修改。包含存儲器裝置(42)的加密協(xié)處理器(34)根據(jù)公共的/私人的密鑰協(xié)議對BIOS升級執(zhí)行授權(quán)和生效。通過驗證嵌于BIOS升降中的數(shù)字簽名來執(zhí)行授權(quán)。
文檔編號G06F21/00GK1231787SQ97198335
公開日1999年10月13日 申請日期1997年7月30日 優(yōu)先權(quán)日1996年9月30日
發(fā)明者D·L·達(dá)維斯 申請人:英特爾公司