国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      固件映象的多擁有者部署的制作方法

      文檔序號:6425850閱讀:127來源:國知局
      專利名稱:固件映象的多擁有者部署的制作方法
      技術(shù)領(lǐng)域
      本公開總體上涉及計算機系統(tǒng)中BIOS和其它固件代碼的部署。
      背景技術(shù)
      最初開發(fā)用于IBM PC兼容計算機的基本輸入/輸出系統(tǒng)(BIOS)(也稱為系統(tǒng) BIOS)是定義固件接口的事實標(biāo)準(zhǔn)。BIOS是引導(dǎo)固件,其被設(shè)計為在上電時由PC首先運行的代碼。BIOS的初始功能是識別、測試和初始化諸如視頻顯示卡、硬盤和軟盤以及其它硬件的系統(tǒng)設(shè)備。該初始化使機器進入已知狀態(tài),以使得存儲在兼容介質(zhì)上的諸如操作系統(tǒng)的軟件可以被加載、執(zhí)行以及給予對PC的控制。該過程被稱為引導(dǎo)或者啟動,其是自舉引導(dǎo)的簡稱。BIOS程序提供基本輸入/輸出函數(shù)的小型庫,可以調(diào)用該小型庫來操作和控制諸如鍵盤、文本顯示功能等的外圍設(shè)備。當(dāng)系統(tǒng)上電時,BIOS檢查系統(tǒng)配置設(shè)置并且將用作硬件部件和操作系統(tǒng)之間的翻譯器的程序加載到存儲器中。例如,當(dāng)用戶按下鍵盤上的按鍵時,信號被發(fā)送到鍵盤中斷處理程序,該鍵盤中斷處理程序告訴處理器該信號是什么并且將其傳遞到操作系統(tǒng)。當(dāng)處理器在16位處理器模式中運行并且可尋址存儲器被限制于一兆字節(jié)的時候,針對IBM PC開發(fā)了 BIOS,并且BIOS代碼反映了 IBM PC AT硬件依賴性。后來針對32 位處理器開發(fā)的操作系統(tǒng)開始包括設(shè)備驅(qū)動程序來處理1/0,而非依賴于調(diào)用BIOS提供的 16位運行時間接口。這些設(shè)備驅(qū)動程序常常由平臺固件提供,并且在加載操作系統(tǒng)之前在 BIOS初始化期間被加載到存儲器中。由于操作系統(tǒng)可以連接大量外圍設(shè)備,因此這種平臺固件常常由除了系統(tǒng)制造商之外的實體來提供。隨著大量實體介入,固件映象的分發(fā)變得復(fù)雜起來。隨著當(dāng)今計算環(huán)境中惡意軟件的擴散,驗證固件的重要性也隨之增加。數(shù)字簽名或者數(shù)字簽名方案是用于證明數(shù)字消息或者文檔的真實性的數(shù)學(xué)方案。有效的數(shù)字簽名給出了相信該消息由已知發(fā)送者創(chuàng)建并且在傳輸中沒有被改變的可接受原因。數(shù)字簽名通常用于軟件分發(fā),并且期望數(shù)字簽名用于固件映象的分發(fā)。


      圖1是現(xiàn)有技術(shù)的簽名的固件映象的框圖。圖2A是根據(jù)本發(fā)明的一個實施例的由根固件代碼擁有者簽名的固件映象的框圖。
      圖2B是示出了根據(jù)本發(fā)明的一個實施例的用于根固件代碼擁有者的訪問控制列表的圖2A中的固件映象的框圖。圖2C是根據(jù)本發(fā)明的一個實施例的由根固件代碼擁有者和OEM固件代碼擁有者二者簽名的固件映象的框圖。圖2D是示出了根據(jù)本發(fā)明的一個實施例的用于OEM固件代碼擁有者的訪問控制列表的圖2C中的固件映象的框圖。圖2E是根據(jù)本發(fā)明的一個實施例的,由根固件代碼擁有者、OEM固件代碼擁有者和渠道分銷商(channel distributor)固件代碼擁有者簽名的固件映象的框圖。圖2F是根據(jù)本發(fā)明的一個實施例的示出了用于渠道分銷商固件代碼擁有者的訪問控制列表的圖2E中的固件映象的框圖。圖3是示出了用于簽名以及授予更新圖2A至2F的簽名的固件映象的權(quán)限的處理的流程圖。圖4是根據(jù)本發(fā)明的一個實施例的用于更新圖2A至2F以及圖3的簽名的固件映象的訪問控制列表的方法的流程圖。圖5是根據(jù)本發(fā)明的一個實施例的用于更新圖2A至2F以及圖3的簽名的固件映象的方法的流程圖。圖6是根據(jù)本發(fā)明的一個實施例的被配置為使得固件映象能夠被多個承租人簽名的系統(tǒng)的框圖。
      具體實施例方式本發(fā)明的實施例可以提供用于部署簽名的根固件映象的方法、裝置、系統(tǒng)和計算機程序產(chǎn)品,其中簽名的根固件映象包括由系統(tǒng)分銷渠道中的不同實體簽名的代碼模塊。在一個實施例中,一種方法包括獲取簽名的固件映象,所述簽名的固件映象包括由第一代碼擁有者簽名的第一代碼模塊以及由第二代碼擁有者簽名的第二代碼模塊。該方法還包括獲取包括用于第一代碼模塊的更新代碼的更新的第一代碼模塊,驗證更新的第一代碼模塊是由第一代碼擁有者簽名的,以及響應(yīng)于驗證了更新的第一代碼模塊是由第一代碼擁有者簽名的,用更新的第一代碼模塊來更新簽名的固件映象。簽名的固件映象還可以包括訪問控制列表,所述訪問控制列表授權(quán)由第一代碼擁有者更新第一代碼模塊以及由第二代碼擁有者更新第二代碼模塊。 該方法還可以包括獲取訪問控制令牌,其中,所述訪問控制令牌包括用于第三代碼擁有者的公鑰以及對第三代碼擁有者更新簽名的固件映象的第三代碼模塊的授權(quán);驗證訪問控制令牌是由來自所述訪問控制列表的授權(quán)的代碼擁有者簽名的;驗證授權(quán)的代碼擁有者被授權(quán)來更新第三代碼模塊;以及更新訪問控制列表以包括用于所述第三代碼擁有者的公鑰和對第三代碼擁有者更新第三代碼模塊的授權(quán)。該方法還可以包括從第三代碼擁有者接收更新的第三代碼模塊;驗證更新的第三代碼模塊是由第三代碼擁有者簽名的;以及響應(yīng)于驗證了更新的第三代碼模塊是由第三代碼擁有者簽名的,使用更新的第三代碼模塊來更新簽名的固件映象。 本發(fā)明改進了傳統(tǒng)的BIOS/平臺固件整體映象更新處理,并且允許不同的擁有者對單獨的固件代碼模塊進行簽名。本發(fā)明使得能夠針對特定的BIOS/平臺固件代碼模塊/驅(qū)動程序或者應(yīng)用程序來執(zhí)行更新。隨著平臺固件變得日益復(fù)雜并且提供諸如安全特征的關(guān)鍵功能,現(xiàn)在BIOS和平臺固件中的缺陷可以立即被校正,并且這可以由企業(yè)管理服務(wù)器提供,而不需要原始設(shè)備制造商來為系統(tǒng)的閃速存儲器的整個BIOS/平臺固件區(qū)域提供新的整體映象。本說明書對本發(fā)明的“一個實施例”或“實施例”的引用意味著結(jié)合實施例描述的特定特征、結(jié)構(gòu)或者特性包括在本發(fā)明的至少一個實施例中。因此,貫穿說明書的各個位置出現(xiàn)的短語“在一個實施例中”、“根據(jù)一個實施例”等并不必然都指同一實施例。為了解釋的目的,闡述了特定的配置和細節(jié)以便于對本發(fā)明的透徹理解。然而,對本領(lǐng)域普通技術(shù)人員顯而易見的是,可以在沒有本文描述的具體細節(jié)的情況下實施本發(fā)明的實施例。此外,可以省略或簡化公知的特征以免模糊本發(fā)明??梢载灤┍菊f明書給出各種示例。這些僅僅是本發(fā)明的特定實施例的描述。本發(fā)明的范圍不限于給出的示例。隨著惡意軟件復(fù)雜性的提高,期望諸如固件映象的系統(tǒng)軟件的提供者證明固件映象的給出的版本是真實的并且沒有遭到篡改。這種證明通常被提供為根據(jù)諸如Rivest Shamir Adleman(RSA)加密算法的加密方案的固件映象文件的數(shù)字簽名,其中,該RSA加密算法提供公鑰和私鑰來對數(shù)據(jù)進行加密和簽名。本領(lǐng)域技術(shù)人員將理解,本文描述的本發(fā)明不限于RSA加密算法下的數(shù)字簽名,提供用于證明真實性的數(shù)字簽名的任意方法均在本發(fā)明的范圍內(nèi)。數(shù)字簽名方案通常由三種算法構(gòu)成(1)密鑰生成算法,該算法從一組可能的私鑰中均勻隨機地選擇一私鑰。該算法輸出所述私鑰和對應(yīng)的公鑰。(2)簽名算法,給定消息和私鑰,該算法產(chǎn)生一簽名。(3)簽名驗證算法,給定消息、公鑰和簽名,該算法接受或者拒絕該消息對真實性的聲明。需要兩種主要的性質(zhì)。首先,根據(jù)固定消息和固定私鑰生成的簽名應(yīng)當(dāng)通過使用對應(yīng)的公鑰來驗證該消息的真實性。其次,為不擁有私鑰的一方生成有效的簽名應(yīng)當(dāng)是計算上不可行的。圖1是現(xiàn)有技術(shù)的簽名的固件映象的框圖。由單個實體的私鑰120對根固件映象 110進行簽名。僅私鑰120的擁有者可以對根固件映象110進行更新。例如,假設(shè)系統(tǒng)制造商已經(jīng)使用系統(tǒng)制造商的私鑰120對根固件映象110進行了簽名。如果在對根固件映象 110簽名之后,部署鏈中的諸如OEM和渠道客戶的其他實體需要對包含在根固件映象110中的模塊進行更新,則這些實體必須將他們定制的固件映象代碼模塊提供給私鑰120的擁有者,以包括在根固件映象110的隨后的版本中。這種實現(xiàn)需要用于根據(jù)外部實體的計劃來維護定制的固件映象模塊并部署更新的根固件映象110的基礎(chǔ)結(jié)構(gòu)。由除了私鑰120的擁有者之外的實體提供的定制的固件映象代碼模塊所允許的安全性違反損害了整個根固件映象110的安全性。僅能夠由私鑰120的擁有者來校正這種安全性違反。由于這個原因,當(dāng)今大多數(shù)實現(xiàn)僅由位于分發(fā)渠道較低端的實體來進行簽名。 由系統(tǒng)制造商和/或OEM提供的根固件映象代碼模塊通常是沒有簽名的,以避免上述問題。 然而,在沒有許多的固件映象代碼模塊的提供者的數(shù)字簽名的情況下,系統(tǒng)的終端用戶可能認(rèn)為該固件映象是不值得信賴的。圖2A是根據(jù)本發(fā)明的一個實施例的由根固件代碼擁有者簽名的固件映象的框圖。在該示例中,諸如系統(tǒng)制造商(本文稱為“根”)的根固件映象的初始擁有者已經(jīng)用根私鑰220對五個固件卷(FVl 21UFV2 213、FV3215、FV4 217和FV5 219)中的固件映象代碼模塊中的每一個進行了簽名。對代碼模塊進行簽名可以包括將數(shù)字簽名附加至該代碼模塊。在本文示出的示例中,將針對代碼模塊的簽名說明為與包含該代碼模塊的固件卷相關(guān)聯(lián)的簽名。相似地,將對給定代碼模塊進行更新的權(quán)限描述為對包含該代碼模塊的固件卷進行更新的權(quán)限。本領(lǐng)域技術(shù)人員將理解,多于一個代碼模塊可以被包含在給定的固件卷中,并且一個固件卷中的不同代碼模塊可以具有不同的簽名和/或更新權(quán)限,但是為了簡單,在本文中將代碼模塊和固件卷描述為具有一對一的關(guān)系。表230A提供了安全信息,該安全信息包括用于根代碼擁有者“根”的公鑰231和用于代碼擁有者“根”的訪問控制列表(ACL) 232。ACL 232指示公鑰231擁有的固件映象代碼模塊(即,固件卷)。圖2B中提供了關(guān)于訪問控制列表232的進一步的細節(jié)。圖2B是顯示根據(jù)本發(fā)明的一個實施例的用于根固件代碼擁有者“根”的訪問控制列表的圖2A的固件映象的框圖。在所示出的示例中,ACL 232包含指向五個固件卷FVl 21UFV2 213、FV3 215、FV4 217和FV5 219中的每一個中的代碼模塊的指針232A到232E。 下文將參考圖3更詳細地示出和解釋這些指針。圖2C是根據(jù)本發(fā)明的一個實施例的由根固件代碼擁有者和OEM固件代碼擁有者 (本文中稱為“OEM”)二者簽名的固件映象的框圖。在該示例中,固件映象的代碼模塊的第二擁有者(諸如持有圖2A中的公鑰220的系統(tǒng)制造商的OEM客戶)已經(jīng)提供了定制的根固件組件。例如,OEM固件代碼擁有者可以將計算機系統(tǒng)提供為刀片服務(wù)器產(chǎn)品,并且由代碼擁有者“OEM”提供的固件映象代碼模塊可以將該固件配置為在刀片服務(wù)器配置中進行操作。在圖2C中,第二擁有者“OEM”已經(jīng)使用OEM私鑰240對當(dāng)前被稱為OEM固件映象 210B的固件映象中的選擇的固件卷進行了簽名。在該示例中,已經(jīng)用OEM私鑰240對固件卷FV3 215和FV5 219進行了簽名。表230B提供了新的安全信息,該新的安全信息包括用于“OEM”代碼擁有者的公鑰241和指示公鑰241擁有的固件映象代碼模塊(即,固件卷) 的訪問控制列表(ACL) 242。在圖2D中提供了關(guān)于ACL 242的進一步的細節(jié)。圖2D是顯示根據(jù)本發(fā)明的一個實施例的用于“OEM”固件代碼擁有者的訪問控制列表的圖2C的固件映象的框圖。在所示出的示例中,ACL 242包含指向兩個固件卷FV3 215 和FV5 219中的每一個的相應(yīng)的指針M2C和M2E。該新的安全信息是表230B的一部分, 表230B還包括如參考圖2A和2B描述的用于固件代碼擁有者“根”的公鑰231和ACL 232。 然而,根固件代碼擁有者“根”將對FV3 215和FV5 219進行更新的權(quán)限授權(quán)給固件代碼擁有者“0ΕΜ”,并且由ACL 242的指針242C和242E覆蓋ACL 232的指針232C和232E。下面參照圖3至圖5進一步描述將更新固件代碼模塊的權(quán)限進行授權(quán)的處理。圖2E是根據(jù)本發(fā)明的一個實施例的由根固件代碼擁有者“根”、OEM固件代碼擁有者“OEM”和渠道分銷商固件代碼擁有者“Chnl”簽名的固件映象的框圖。在該示例中,固件映象的代碼模塊的第三擁有者(諸如持有圖2B中的私鑰240的OEM的渠道客戶)已經(jīng)提供了定制的根固件組件。第三擁有者“Chnl”已經(jīng)使用信道(Chnl)私鑰250對當(dāng)前被稱為渠道客戶固件映象210C的固件映象中的一個固件卷進行了簽名。在該示例中,已經(jīng)用Chnl 私鑰250對固件卷FV5 219進行了簽名。表230C提供了新的安全信息,該新的安全信息包括用于渠道客戶擁有者“Chnl”的公鑰251和指示公鑰251擁有的固件映象代碼模塊(即, 固件卷)的訪問控制列表(ACL) 252。
      圖2F是顯示根據(jù)本發(fā)明的一個實施例的用于渠道分銷商固件代碼擁有者“Chnl” 的訪問控制列表的圖2E的固件映象的框圖。在所示出的示例中,ACL 252包含指向固件卷 FV5 219的指針252E。該新的安全信息是表230C的一部分,表230C還包括如參考圖2A和 2B描述的用于根固件代碼擁有者“根”的公鑰231和ACL 232,以及如參考圖2C和2D描述的用于固件代碼擁有者“OEM”的公鑰241和ACL 2420指針252E覆蓋用于固件代碼擁有者 “根”的ACL 232的指針232E和用于固件代碼擁有者“OEM”的ACL 242的指針242E 二者。圖3是顯示用于簽名以及將更新圖2A至2F的簽名的固件映象的權(quán)限進行授權(quán)的處理的流程圖。最初,如參照圖2A的根固件映象210A所描述的,已由根固件代碼擁有者 “根”對根固件映象310A進行了簽名。表330A指示具有公鑰331的實體(其對應(yīng)于具有私鑰320的“根”擁有者)具有包含指針332A至332E的訪問控制列表332,其允許公鑰331 的擁有者對包含在固件卷FVl 311、FV2 313、FV3 315、FV4 317和FV5 319的每一個中的代碼模塊進行更新。在動作3. 1中,私鑰320的擁有者,即“根”,創(chuàng)建簽名的令牌360,以授權(quán)隨后對根固件映象310A的更新。通過對令牌360進行簽名,私鑰320的擁有者,S卩“根”固件代碼擁有者,將“根”公鑰321與令牌360相關(guān)聯(lián)。令牌360被創(chuàng)建為包括授予權(quán)限的信息,諸如被授權(quán)來對根固件映象310A進行更新的實體的公鑰362以及指示可以通過對應(yīng)的公鑰362 更新的根固件映象310A中的固件模塊的訪問控制列表364。在該示例中,已經(jīng)將用于固件代碼擁有者“OEM”的公鑰362包括在令牌360中,訪問控制列表364允許OEM公鑰362的擁有者對固件卷FV3 315和FV5 319進行更新。在動作3. 2中,在更新根固件映象310A之前,驗證通過令牌360尋求授權(quán)的權(quán)限。 根固件映象310A查閱表330A來確保用于令牌360的公鑰的擁有者,即,令牌公鑰321的擁有者,即“根”,被授權(quán)來更新包括在令牌360中的固件卷。在該示例中,查閱表330A以確保用于令牌360的公鑰321的擁有者(“根”)出現(xiàn)在表330A中,并且用于令牌360的公鑰 321的擁有者(“根”)具有更新固件卷FV3 315和FV5 319的權(quán)限。在動作3. 3中,在確認(rèn)用于令牌360的公鑰321的擁有者“根”具有更新固件卷FV3 315和FV5 319的權(quán)限之后,對FV3 315和FV5 319中的代碼進行更新以形成OEM固件映象 310B。還對OEM固件映象310B中的表330B進行更新以包括用于“OEM”固件代碼擁有者的公鑰作為公鑰333和對應(yīng)的訪問控制列表(ACL)334。作為對表330B進行更新的結(jié)果,訪問控制列表現(xiàn)在包括用于“根”固件代碼擁有者的三個指針,即指向FVl 311的指針332A、指向FV2 313的指針332B和指向FV4 317的指針332D,以及用于“OEM”固件代碼擁有者的兩個指針,即指向FV3 315的指針334C和指向FV5 319的指針334E。在動作3. 4中,“OEM”固件代碼擁有者(私鑰340的擁有者)創(chuàng)建簽名的令牌370, 以授權(quán)隨后對OEM固件映象310B的更新。通過對令牌370進行簽名,私鑰340的擁有者, 即“OEM”固件代碼擁有者,將“OEM”公鑰341與令牌370相關(guān)聯(lián)。令牌370被創(chuàng)建為包括授予權(quán)限的信息,諸如被授權(quán)來對OEM固件映象310B進行更新的實體的公鑰372和指示可以通過對應(yīng)的公鑰372進行更新的OEM固件映象310B中的固件模塊的訪問控制列表374。 在該示例中,用于固件代碼擁有者“Chnl”的公鑰372已經(jīng)被包括在令牌370中,訪問控制列表374允許Chnl公鑰372的擁有者來更新固件卷FV5 319。在動作3. 5中,在更新OEM固件映象310B之前,驗證通過令牌370尋求授權(quán)的權(quán)限。OEM固件映象310B查閱表330B來確保用于令牌370的公鑰341的擁有者被授權(quán)來更新包括在令牌370中的固件卷。在該示例中,查閱表330B以確保用于令牌370的公鑰341 的擁有者(“OEM”)出現(xiàn)在表330B中,并且用于令牌370的公鑰341的擁有者(“OEM”) 具有更新固件卷FV5 319的權(quán)限。在動作3. 6中,在確認(rèn)用于令牌360的公鑰的擁有者“OEM”具有更新固件卷FV5 319的權(quán)限之后,對FV5 319中的代碼進行更新以形成渠道客戶固件映象310C。還對渠道客戶固件映象310C中的表330C進行更新以包括用于“Chnl”固件代碼擁有者的公鑰作為公鑰335和對應(yīng)的訪問控制列表(ACL)336。作為對表330C進行更新的結(jié)果,訪問控制列表現(xiàn)在包括用于“根”固件代碼擁有者的三個指針,即指向FV1311的指針332A、指向FV2 313 的指針332B和指向FV4 317的指針332D ;用于“OEM”固件代碼擁有者的一個指針,即指向 FV3 315的指針334C;以及用于“Chnl”固件代碼擁有者的一個指針,即指向FV5 319的指針 336E。圖4是根據(jù)本發(fā)明的一個實施例的用于對圖2A至2F以及圖3的簽名的固件映象的訪問控制列表進行更新的方法的流程圖。由諸如圖3中的簽名的根固件映象310A的現(xiàn)有固件映象的擁有者來執(zhí)行圖4中描述的步驟,以將對簽名的固件映象進行更新的權(quán)限授權(quán)給另一實體。將更新固件映象的權(quán)限進行授權(quán)的實體在本文中被稱為“授權(quán)實體”。在圖 2A至2F的先前的示例中,將由“根”固件代碼擁有者來執(zhí)行圖4中描述的步驟以在動作3. 2 和3. 3中將權(quán)限授權(quán)給“OEM”固件代碼擁有者。相似地,將由“OEM”固件代碼擁有者來執(zhí)行圖4的步驟,以在動作3. 5和3. 6中將權(quán)限授權(quán)給“Chnl”固件代碼擁有者。圖4的步驟將用來更新現(xiàn)有固件映象的訪問控制列表,諸如根固件映象310A的訪問控制列表330A或者OEM固件映象310B的訪問控制列表330B。在“獲取訪問控制(AC)轉(zhuǎn)發(fā)令牌”步驟410中,從授權(quán)實體獲取諸如圖3的令牌 360或者令牌370的訪問控制令牌。如先前參考圖2A至2F以及圖3所描述的,可以由分銷渠道中的一個實體來創(chuàng)建諸如圖3的令牌360或者令牌370的訪問控制令牌,以授權(quán)分銷渠道中的隨后的實體來修改固件映象的給定版本。使用授權(quán)實體的私鑰來對訪問控制令牌進行簽名,并且因此,授權(quán)實體的公鑰與訪問控制令牌相關(guān)聯(lián)。一旦從分銷渠道中的授權(quán)實體獲取了訪問控制令牌,則控制繼續(xù)到“識別授權(quán)實體并且將授權(quán)實體的公鑰的簽名與ACL 相匹配”步驟420。在“識別授權(quán)實體并且將授權(quán)實體的公鑰的簽名與ACL相匹配”步驟420中,授權(quán)實體被識別為已對訪問控制令牌進行簽名的實體。在圖3的示例中,在執(zhí)行動作3. 2處,授權(quán)實體是“根”固件代碼擁有者。將與訪問控制令牌相關(guān)聯(lián)的公鑰與在要授予更新權(quán)限的固件映象的訪問控制列表中出現(xiàn)的公鑰相匹配。如果與訪問控制令牌相關(guān)聯(lián)的公鑰出現(xiàn)在所述固件映象的訪問控制列表中,則控制繼續(xù)到“驗證AC轉(zhuǎn)發(fā)令牌的簽名”步驟430。在“驗證AC轉(zhuǎn)發(fā)令牌的簽名”步驟430處,使用用于授權(quán)實體的公鑰來驗證訪問控制令牌的簽名。為了執(zhí)行該簽名驗證,可以根據(jù)簽名的訪問控制令牌來計算散列值。該公鑰還可以用來對數(shù)字簽名和簽名的數(shù)據(jù)進行解密,然后可以根據(jù)解密的數(shù)據(jù)來計算另一散列值。如果兩個計算的散列值相匹配,則可以認(rèn)為該數(shù)字簽名是有效的。在驗證了訪問控制令牌的簽名之后,控制繼續(xù)到“識別需要對ACL進行改變的代碼模塊”步驟440。在“識別需要對ACL進行改變的代碼模塊”步驟440處,識別要針對其授予權(quán)限的固件卷。在動作3. 2的示例中,在訪問控制令牌360中識別的固件卷是固件卷FV3 315和 FV5 319。一旦識別了固件卷,則控制繼續(xù)到“驗證授權(quán)實體被授權(quán)來改變AC”步驟450。在“驗證授權(quán)實體被授權(quán)來改變AC”步驟450中,確定授權(quán)實體是否被授權(quán)來改變現(xiàn)有固件映象的訪問控制列表。如上所述,授權(quán)實體,即“根”固件代碼擁有者,已經(jīng)被指定為用于固件卷FVl 311至FV5 319的訪問控制列表的擁有者。因此,授權(quán)實體被授權(quán)來改變用于這些固件卷的訪問控制列表。然后,控制繼續(xù)到“更新ACL 輸入新實體的公鑰并且更新用于代碼模塊的ACL”步驟460。在“更新ACL 輸入新實體的公鑰并且更新用于代碼模塊的ACL”步驟460處,將用于被授予權(quán)限的實體(在該示例中為“OEM”固件代碼擁有者)的公鑰添加到訪問控制列表, 并且更新用于固件卷FV3 315和FV5319的訪問控制列表。對固件卷FV3 315和FV5 319 進行更新的權(quán)限已經(jīng)被授予給了 “OEM”固件代碼擁有者。圖5是根據(jù)本發(fā)明的一個實施例的用于更新圖2A至2F以及圖3的簽名的固件映象的方法的流程圖。在“處理簽名的模塊”步驟510處,諸如根固件映象310A的現(xiàn)有固件映象接收處理簽名的模塊的請求。處理簽名的模塊可以包括對諸如包括在簽名的模塊中的多個固件卷的信息進行破解和/或?qū)τ糜趯灻哪K進行簽名的密鑰進行破解。將根據(jù)圖5中的步驟來處理每個簽名的代碼模塊??刂评^續(xù)到“將公鑰的簽名與ACL相匹配并識別更新實體”步驟520。在“將公鑰的簽名與ACL相匹配并識別更新實體”步驟520中,將與用于對簽名的模塊進行簽名的私鑰對應(yīng)的公鑰與現(xiàn)有固件映象的訪問控制列表進行比較,并且識別更新實體。如果用于簽名的模塊的公鑰出現(xiàn)在現(xiàn)有固件映象的訪問控制列表中,則控制繼續(xù)到 “驗證模塊的簽名”步驟530。在“驗證模塊的簽名”步驟530處,驗證模塊的簽名。為了執(zhí)行該簽名驗證,可以根據(jù)簽名的模塊來計算散列值。公鑰還可以用來對數(shù)字簽名和簽名的數(shù)據(jù)進行解密,然后可以根據(jù)解密的數(shù)據(jù)來計算另一散列值。如果兩個計算的散列值相匹配,則可以認(rèn)為該數(shù)字簽名是有效的。在驗證了模塊的簽名之后,控制繼續(xù)到“識別用于更新的代碼模塊”步驟 540。在“識別用于更新的代碼模塊”步驟440處,識別在現(xiàn)有固件映象中要更新的固件卷中的代碼模塊。一旦識別了固件卷中的代碼模塊,則控制繼續(xù)到“驗證更新實體被授權(quán)來更新所請求的代碼模塊”步驟550。在“驗證更新實體被授權(quán)來更新所請求的代碼模塊”步驟550中,確定更新實體是否被授權(quán)來更新所請求的固件卷。如果更新實體被授權(quán),則控制繼續(xù)到“更新代碼模塊”步驟560。在“更新代碼模塊”步驟560處,更新現(xiàn)有固件映象中的代碼模塊。圖6是根據(jù)本發(fā)明的一個實施例的被配置為使得固件映象能夠被多個代碼擁有者簽名的系統(tǒng)的框圖。對應(yīng)于主計算機系統(tǒng)的平臺600包括經(jīng)由桌面管理接口(DMI)611 連接至芯片組620的處理器610。處理器610向平臺600提供處理功率,并且其可以是單核或者多核處理器,并且可以在平臺600中包括多于一個的處理器。處理器610可以經(jīng)由一個或多個系統(tǒng)總線、通信路徑或者介質(zhì)(未示出)連接至平臺600的其它部件。芯片組620包括管理引擎(ME) 630以管理平臺600的配置和操作,該管理引擎可以被實現(xiàn)為獨立于主機處理器610進行操作的嵌入式微處理器。在一個實施例中,處理器610在主機操作系統(tǒng)(未示出)的指導(dǎo)下進行操作,而管理引擎(ME) 630提供不能被主機操作系統(tǒng)訪問的安全和隔離的環(huán)境。在一個實施例中,管理引擎(ME)630鑒別用戶,控制對外圍設(shè)備的訪問,管理用于對存儲在平臺600的存儲設(shè)備上的數(shù)據(jù)進行保護的加密密鑰,以及經(jīng)由網(wǎng)絡(luò)控制器660提供到企業(yè)服務(wù)670的接口。使用企業(yè)服務(wù)670,管理引擎(ME)630 維持與用于配置和管理諸如平臺600的平臺的企業(yè)級策略的一致性,包括根據(jù)本發(fā)明的一個實施例的提供多擁有者簽名的固件更新管理器。多擁有者簽名的固件更新管理器可以被實現(xiàn)為由管理引擎(ME 630)執(zhí)行的固件。ME 630和企業(yè)服務(wù)670之間的通信經(jīng)由帶外通信信道671發(fā)生。在一個實施例中, 帶外通信信道671是主機系統(tǒng)上的管理引擎(ME) 630和管理主機系統(tǒng)的企業(yè)服務(wù)670之間的安全通信信道。在制造芯片組620和管理引擎(ME)630期間,可以將使得平臺600和企業(yè)服務(wù)670之間能夠進行安全通信的加密/解密密鑰存儲在圖6的閃速存儲器690中。在圖6中所示的實施例中,管理引擎(ME)630經(jīng)由管理引擎控制器接口(MECI)631 而耦合至微控制器640。在一個實施例中,微控制器640是執(zhí)行存儲命令解碼和其它加速操作的通用控制器。在所示的實施例中,管理引擎(ME)630控制微控制器640的行為,微控制器又控制存儲控制器650的行為。微控制器640包括用于存儲控制器650的驅(qū)動器以及與任意的磁盤加密功能有關(guān)的邏輯。存儲控制器650是用于諸如存儲設(shè)備652的存儲設(shè)備的控制器,并且使得微控制器640和ME 630能夠訪問存儲在存儲設(shè)備652上的數(shù)據(jù)。平臺600還包括諸如動態(tài)隨機存取存儲器(DRAM)612、芯片組620中的靜態(tài)隨機存取存儲器(SRAM)622、閃速存儲器690以及可經(jīng)由存儲控制器650訪問的存儲設(shè)備652 的存儲設(shè)備。這些存儲設(shè)備可以包括隨機存取存儲器(RAM)和只讀存儲器(ROM)。為了本公開的目的,術(shù)語“ROM” 一般用于指諸如可擦除可編程ROM(EPROM)、電可擦除可編程 ROM(EEPROM)、閃速ROM、閃速存儲器等的非易失性存儲設(shè)備。存儲設(shè)備652可以包括諸如集成驅(qū)動電子(IDE)硬盤驅(qū)動器的大容量存儲設(shè)備,和/或諸如軟盤、光存儲器、磁帶、閃速存儲器、存儲棒、數(shù)字視頻盤、生物學(xué)存儲器等的其它設(shè)備或者介質(zhì)。閃速存儲器690可以由芯片組620經(jīng)由閃速接口 691進行訪問??梢詫Υ鎯υ诖鎯υO(shè)備652上的和/或存儲在存儲設(shè)備DRAM 612、SRAM 622和閃速存儲器690中的數(shù)據(jù)進行加密。閃速存儲器690包含用于初始化平臺600的固件。該初始化固件包括用于識別和初始化系統(tǒng)部件硬件(諸如視頻顯示卡和硬盤)以及包括管理引擎(ME)630的一些其它硬件設(shè)備的基本輸入/輸出系統(tǒng)¢10 固件692。BIOS固件692使平臺600的系統(tǒng)部件硬件準(zhǔn)備好在已知的低能力狀態(tài)中操作,以使得存儲在各種介質(zhì)上的包括操作系統(tǒng)在內(nèi)的其它軟件程序可以被加載、執(zhí)行以及被給予對平臺600的控制。BIOS固件692包括BIOS/ΜΕ通信模塊693,該模塊支持引導(dǎo)處理期間管理引擎(ME)630的初始配置。在一個實施例中,管理引擎(ME)630向BIOS/ΜΕ通信模塊693進行注冊以剛好在操作系統(tǒng)被加載用于平臺600 之前接收到通知。該通知使得管理引擎(ME)630能夠執(zhí)行某些指令以為加載操作系統(tǒng)作準(zhǔn)備。閃速存儲器690還包括用于配置網(wǎng)絡(luò)控制器660的網(wǎng)絡(luò)控制器固件695和用于配置芯片組620的芯片組固件696。閃速存儲器690還包含數(shù)據(jù)區(qū)域698。在一個實施例中, 數(shù)據(jù)區(qū)域698是加密的并且僅可以被管理引擎(ME)630讀取。ME 630用來提供BIOS/引導(dǎo)固件多擁有者管理服務(wù)的信息可以被存儲在閃速存儲器690的數(shù)據(jù)區(qū)域698中或者存儲設(shè)備652上。處理器610還可以可通信地耦合至附加的部件,諸如視頻控制器、小型計算機系統(tǒng)接口(SCSI)控制器、網(wǎng)絡(luò)控制器、通用串行總線(USB)控制器、諸如鍵盤和鼠標(biāo)的輸入設(shè)備等。平臺600還可以包括用于將各種系統(tǒng)部件可通信地耦合起來的一個或多個橋或中心設(shè)備,諸如存儲器控制器中心、輸入/輸出(I/O)控制器中心、PCI根橋等。如本文所使用的,術(shù)語“總線”可以用來指共享的通信路徑以及點對點路徑。諸如網(wǎng)絡(luò)控制器660的一些部件可以被實現(xiàn)為具有用于與總線進行通信的接口的適配器卡(例如,PCI連接器)。在一個實施例中,可以使用諸如可編程或不可編程邏輯設(shè)備或陣列、專用集成電路(ASIC)、嵌入式計算機、智能卡等的部件,將一個或多個設(shè)備實現(xiàn)為嵌入式控制器。如本文使用的,術(shù)語“處理系統(tǒng)”和“數(shù)據(jù)處理系統(tǒng)”旨在廣泛地包括單個的機器、 或者一起操作的可通信地耦合的機器或者設(shè)備的系統(tǒng)。示例性處理系統(tǒng)包括但不限于 分布式計算系統(tǒng)、超級計算機、高性能計算系統(tǒng)、計算集群、大型計算機、小型計算機、客戶機-服務(wù)器系統(tǒng)、個人計算機、工作站、服務(wù)器、便攜式計算機、膝上型計算機、平板計算機、 電話、個人數(shù)字助理(PDA)、手持設(shè)備、諸如音頻和/或視頻設(shè)備的娛樂設(shè)備以及用于處理或者發(fā)送信息的其它設(shè)備??梢灾辽俨糠滞ㄟ^來自諸如鍵盤、鼠標(biāo)等的傳統(tǒng)輸入設(shè)備的輸入和/或通過從另一機器接收的命令、生物反饋或者其它輸入源或信號來控制平臺600。平臺600可以諸如通過網(wǎng)絡(luò)接口控制器(NIC)660、調(diào)制解調(diào)器或者其它的通信端口或者耦合,來使用到一個或多個遠程數(shù)據(jù)處理系統(tǒng)(未示出)的一個或多個連接。可以通過諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)等的物理和/或邏輯網(wǎng)絡(luò)的方式將平臺600互聯(lián)至其它的處理系統(tǒng)(未示出)。涉及網(wǎng)絡(luò)的通信可以使用各種有線和/或無線短程或遠程載波和協(xié)議,包括射頻(RF)、衛(wèi)星、微波、電氣和電子工程師協(xié)會 (IEEE) 802. 11、藍牙、光學(xué)、紅外線、線纜、激光等??梢栽谟布?、軟件、固件或者這些實現(xiàn)方法的組合中實現(xiàn)本文公開的機制的實施例。本發(fā)明的實施例可以實現(xiàn)為在可編程系統(tǒng)上執(zhí)行的計算機程序,該可編程系統(tǒng)包括至少一個處理器、數(shù)據(jù)存儲系統(tǒng)(包括易失和非易失性存儲器和/或存儲元件)、至少一個輸入設(shè)備和至少一個輸出設(shè)備??梢詫⒊绦虼a應(yīng)用于輸入數(shù)據(jù)以執(zhí)行本文描述的功能并且生成輸出信息。本發(fā)明的實施例還包括機器可訪問的介質(zhì),該介質(zhì)包含用于執(zhí)行本發(fā)明的操作的指令或者包含定義本文描述的結(jié)構(gòu)、電路、裝置、處理器和/或系統(tǒng)特征的諸如HDL的設(shè)計數(shù)據(jù)。這些實施例還可以被稱為程序產(chǎn)品。這些計算機可訪問存儲介質(zhì)可以包括但不限于由機器或者設(shè)備制造或形成的粒子的有形排列,包括諸如硬盤、任意其它類型的盤(包括軟盤、光盤、壓縮盤只讀存儲器 (CD-ROM)、可重寫壓縮盤(CD-RW)以及磁-光盤)的存儲介質(zhì);諸如只讀存儲器(ROM)、隨機存取存儲器(RAM)(諸如動態(tài)隨機存取存儲器(DRAM)、靜態(tài)隨機存取存儲器(SRAM))、可擦除可編程只讀存儲器(EPROM)、閃速可編程存儲器(FLASH)、電可擦除可編程只讀存儲器 (EEPROM)的半導(dǎo)體設(shè)備;磁或光卡;或者適合用于存儲電子指令的任意其它類型的介質(zhì)。
      可以以已知的方式將輸出信息應(yīng)用于一個或多個輸出設(shè)備。為了本申請的目的, 處理系統(tǒng)包括具有處理器的任意系統(tǒng),其中,所述處理器諸如數(shù)字信號處理器(DSP)、微控制器、專用集成電路(ASIC)或者微處理器??梢杂酶呒夁^程編程語言或者面向?qū)ο蟮木幊陶Z言來實現(xiàn)該程序,以與處理系統(tǒng)進行通信。如果期望的話,還可以用匯編語言或者機器語言來實現(xiàn)該程序。實際上,本文描述的機制的范圍不限于任意特定編程語言。在任意情況中,該語言可以是經(jīng)過編譯或者解釋的語言。本文提出的是用于部署多擁有者簽名的固件的方法和系統(tǒng)的實施例。雖然已經(jīng)示出并描述了本發(fā)明的特定實施例,但對本領(lǐng)域技術(shù)人員顯而易見的是,可以在不背離所附權(quán)利要求的范圍的情況下進行多種改變、變形和修改。因此,本領(lǐng)域技術(shù)人員將認(rèn)識到,可以在不背離本發(fā)明更廣泛方面的情況下進行改變和修改。所附權(quán)利要求旨在將落入本發(fā)明的真實范圍和精神之內(nèi)的所有這種改變、變形和修改包括在其范圍內(nèi)。
      權(quán)利要求
      1.一種計算機實現(xiàn)的方法,包括獲取簽名的固件映象,所述簽名的固件映象包括由第一代碼擁有者簽名的第一代碼模塊以及由第二代碼擁有者簽名的第二代碼模塊;獲取更新的第一代碼模塊,所述更新的第一代碼模塊包括用于所述第一代碼模塊的更新的代碼;驗證所述更新的第一代碼模塊是由所述第一代碼擁有者簽名的;以及響應(yīng)于驗證了所述更新的第一代碼模塊是由所述第一代碼擁有者簽名的,用所述更新的第一代碼模塊來更新所述簽名的固件映象。
      2.根據(jù)權(quán)利要求1所述的方法,其中 所述簽名的固件映象還包括訪問控制列表;以及所述訪問控制列表授權(quán)所述第一代碼擁有者更新所述第一代碼模塊以及授權(quán)所述第二代碼擁有者更新所述第二代碼模塊。
      3.根據(jù)權(quán)利要求2所述的方法,還包括獲取訪問控制令牌,其中,所述訪問控制令牌包括針對第三代碼擁有者的公鑰以及對所述第三代碼擁有者更新所述簽名的固件映象的第三代碼模塊的授權(quán);驗證所述訪問控制令牌是由來自所述訪問控制列表的授權(quán)的代碼擁有者簽名的; 驗證所述授權(quán)的代碼擁有者被授權(quán)更新所述第三代碼模塊;以及更新所述訪問控制列表以包括針對所述第三代碼擁有者的所述公鑰和對所述第三代碼擁有者更新所述第三代碼模塊的所述授權(quán)。
      4.根據(jù)權(quán)利要求3所述的方法,還包括 從所述第三代碼擁有者接收更新的第三代碼模塊;驗證所述更新的第三代碼模塊是由所述第三代碼擁有者簽名的;以及響應(yīng)于驗證了所述更新的第三代碼模塊是由所述第三代碼擁有者簽名的,用所述更新的第三代碼模塊來更新所述簽名的固件映象。
      5.根據(jù)權(quán)利要求1所述的方法,還包括在更新所述簽名的固件映象之前,驗證所述第一代碼擁有者被授權(quán)更新所述第一代碼模塊。
      6.一種系統(tǒng),包括用于獲取簽名的固件映象的單元,所述簽名的固件映象包括由第一代碼擁有者簽名的第一代碼模塊以及由第二代碼擁有者簽名的第二代碼模塊;用于獲取更新的第一代碼模塊的單元,所述更新的第一代碼模塊包括用于所述第一代碼模塊的更新的代碼;用于驗證所述更新的第一代碼模塊是由所述第一代碼擁有者簽名的單元;以及用于響應(yīng)于驗證了所述更新的第一代碼模塊是由所述第一代碼擁有者簽名的,用所述更新的第一代碼模塊來更新所述簽名的固件映象的單元。
      7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述簽名的固件映象還包括訪問控制列表;以及所述訪問控制列表授權(quán)所述第一代碼擁有者更新所述第一代碼模塊以及授權(quán)所述第二代碼擁有者更新所述第二代碼模塊。
      8.根據(jù)權(quán)利要求7所述的系統(tǒng),還包括用于接收訪問控制令牌的單元,其中,所述訪問控制令牌包括針對第三代碼擁有者的公鑰以及對所述第三代碼擁有者更新所述簽名的固件映象的第三代碼模塊的授權(quán);用于驗證所述訪問控制令牌是由來自所述訪問控制列表的授權(quán)的代碼擁有者簽名的單元;用于驗證所述授權(quán)的代碼擁有者被授權(quán)更新所述第三代碼模塊的單元;以及用于更新所述訪問控制列表以包括針對所述第三代碼擁有者的所述公鑰和對所述第三代碼擁有者更新所述第三代碼模塊的所述授權(quán)的單元。
      9.根據(jù)權(quán)利要求8所述的系統(tǒng),還包括用于從所述第三代碼擁有者接收更新的第三代碼模塊的單元; 用于驗證所述更新的第三代碼模塊是由所述第三代碼擁有者簽名的單元;以及用于響應(yīng)于驗證了所述更新的第三代碼模塊是由所述第三代碼擁有者簽名的,用所述更新的第三代碼模塊來更新所述簽名的固件映象的單元。
      10.根據(jù)權(quán)利要求6所述的系統(tǒng),還包括用于在更新所述簽名的固件映象之前,驗證所述第一代碼擁有者被授權(quán)更新所述第一代碼模塊的單元。
      11.一種計算機程序產(chǎn)品,包括 計算機可讀存儲介質(zhì);以及所述計算機可讀存儲介質(zhì)中的指令,其中,當(dāng)在處理系統(tǒng)中執(zhí)行所述指令時,所述指令使所述處理系統(tǒng)執(zhí)行下列操作獲取簽名的固件映象,所述簽名的固件映象包括由第一代碼擁有者簽名的第一代碼模塊以及由第二代碼擁有者簽名的第二代碼模塊;獲取更新的第一代碼模塊,所述更新的第一代碼模塊包括用于所述第一代碼模塊的更新的代碼;驗證所述更新的第一代碼模塊是由所述第一代碼擁有者簽名的;以及響應(yīng)于驗證了所述更新的第一代碼模塊是由所述第一代碼擁有者簽名的,用所述更新的第一代碼模塊來更新所述簽名的固件映象。
      12.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中 所述簽名的固件映象還包括訪問控制列表;以及所述訪問控制列表授權(quán)所述第一代碼擁有者更新所述第一代碼模塊以及授權(quán)所述第二代碼擁有者更新所述第二代碼模塊。
      13.根據(jù)權(quán)利要求12所述的計算機程序產(chǎn)品,其中,所述指令還使所述處理系統(tǒng)執(zhí)行下列操作接收訪問控制令牌,其中,所述訪問控制令牌包括針對第三代碼擁有者的公鑰以及對所述第三代碼擁有者更新所述簽名的固件映象的第三代碼模塊的授權(quán);驗證所述訪問控制令牌是由來自所述訪問控制列表的授權(quán)的代碼擁有者簽名的; 驗證所述授權(quán)的代碼擁有者被授權(quán)來更新所述第三代碼模塊;以及更新所述訪問控制列表以包括針對所述第三代碼擁有者的所述公鑰和對所述第三代碼擁有者更新所述第三代碼模塊的所述授權(quán)。
      14.根據(jù)權(quán)利要求13所述的計算機程序產(chǎn)品,其中,所述指令還使所述處理系統(tǒng)執(zhí)行下列操作從所述第三代碼擁有者接收更新的第三代碼模塊; 驗證所述更新的第三代碼模塊是由所述第三代碼擁有者簽名的;以及響應(yīng)于驗證了所述更新的第三代碼模塊是由所述第三代碼擁有者簽名的,用所述更新的第三代碼模塊來更新所述簽名的固件映象。
      15.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中,所述指令還使所述處理系統(tǒng)執(zhí)行下列操作在更新所述簽名的固件映象之前,驗證所述第一代碼擁有者被授權(quán)來更新所述第一代碼模塊。
      全文摘要
      用于固件映象的多擁有者部署的方法、裝置、系統(tǒng)和計算機程序產(chǎn)品。該方法包括獲取簽名的固件映象,所述簽名的固件映象包括由第一代碼擁有者簽名的第一代碼模塊以及由第二代碼擁有者簽名的第二代碼模塊。該方法還包括獲取更新的第一代碼模塊,所述更新的第一代碼模塊包括用于第一代碼模塊的更新的代碼;驗證更新的第一代碼模塊是由第一代碼擁有者簽名的;以及響應(yīng)于驗證了更新的第一代碼模塊是由第一代碼擁有者簽名的,用更新的第一代碼模塊來更新簽名的固件映象。簽名的固件映象還可以包括訪問控制列表,所述訪問控制列表授權(quán)第一代碼擁有者更新第一代碼模塊以及授權(quán)第二代碼擁有者更新第二代碼模塊。
      文檔編號G06F21/22GK102289627SQ20111015378
      公開日2011年12月21日 申請日期2011年6月9日 優(yōu)先權(quán)日2010年6月11日
      發(fā)明者M·A·羅思曼, M·布魯蘇, P·沙提庫馬爾, R·C·斯旺森, V·J·齊默 申請人:英特爾公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1