專利名稱:在預(yù)引導(dǎo)環(huán)境中提供安全執(zhí)行模式的制作方法
背景本發(fā)明涉及計(jì)算機(jī)系統(tǒng)的操作,更具體地說涉及預(yù)引導(dǎo)(pre-boot)環(huán)境中這一系統(tǒng)的操作。
當(dāng)打開計(jì)算機(jī)系統(tǒng)時(shí),在被初始化并且能夠與用戶通信之前,它不能執(zhí)行用戶期望的功能。這一初始化處理通常包括引導(dǎo)過程,一般由啟動(dòng)(boot-up)固件執(zhí)行。啟動(dòng)固件可以是操作系統(tǒng)(“OS”)、OS的一部分、基本輸入/輸出系統(tǒng)(“BIOS”)或其他軟件。
啟動(dòng)固件通常存儲(chǔ)在某種形式的非易失性存儲(chǔ)器中,并允許中央處理單元(“CPU”)執(zhí)行各種任務(wù),例如初始化、診斷、從大容量存儲(chǔ)裝置加載操作系統(tǒng)內(nèi)核以及例程式的輸入/輸出(“I/O”)功能。啟動(dòng)固件可以存儲(chǔ)在可擦除可編程只讀存儲(chǔ)器(“EPROM”)或快閃半導(dǎo)體存儲(chǔ)器中。
在這一預(yù)引導(dǎo)環(huán)境中,通常只可獲得極少的或者沒有安全措施(所有的代碼運(yùn)行在原始的環(huán)0物理模式中),也不能在預(yù)引導(dǎo)環(huán)境中存儲(chǔ)機(jī)密。而且,當(dāng)從預(yù)引導(dǎo)環(huán)境進(jìn)入OS環(huán)境時(shí),不能建立所謂的從預(yù)引導(dǎo)環(huán)境到OS環(huán)境的信任根(root of trust)。根據(jù)2002年2月22日發(fā)布的可信(trusted)計(jì)算平臺(tái)聯(lián)盟(TCPA)主規(guī)范版本1.16,這種信任根對于可信計(jì)算平臺(tái)是所期望的,以提供與它自身以及它的當(dāng)前軟件處理有關(guān)的可靠信息,并提供對它的軟件處理的操作的證明。
圖1是根據(jù)本發(fā)明一種實(shí)施方案的示例性程序流程的流程圖。
圖2是根據(jù)本發(fā)明一種實(shí)施方案的示例性固件操作的流程圖。
圖3是根據(jù)本發(fā)明一種實(shí)施方案的預(yù)引導(dǎo)環(huán)境的操作的流程圖。
圖4是根據(jù)本發(fā)明一種實(shí)施方案的系統(tǒng)的方框圖。
具體實(shí)施例方式
在一種實(shí)施方案中,本發(fā)明可用來建立計(jì)算機(jī)系統(tǒng)的安全的預(yù)引導(dǎo)執(zhí)行環(huán)境。在這里使用時(shí),術(shù)語“計(jì)算機(jī)系統(tǒng)”可指任何類型的基于處理器的系統(tǒng),例如桌面計(jì)算機(jī)、膝上型計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、電器(appliance)或機(jī)頂盒等等。在特定的實(shí)施方案中,計(jì)算機(jī)系統(tǒng)可包括所謂的英特爾體系結(jié)構(gòu)(IA)處理器,例如IA-32處理器,可從加州圣·克拉拉的英特爾公司獲得。但是,應(yīng)理解到在其他實(shí)施方案中,本發(fā)明可與當(dāng)前已知或?qū)頃?huì)出現(xiàn)的其他CPU微體系結(jié)構(gòu)結(jié)合使用。
在一種實(shí)施方案中,安全預(yù)引導(dǎo)執(zhí)行環(huán)境可實(shí)現(xiàn)在遵從由加州圣·克拉拉的英特爾公司于2000年12月12日發(fā)布的可擴(kuò)展固件接口(EFI)規(guī)范(版本1.02)的固件中。
根據(jù)一種實(shí)施方案的計(jì)算機(jī)系統(tǒng)的安全預(yù)引導(dǎo)執(zhí)行環(huán)境可用來執(zhí)行安全操作,例如機(jī)密存儲(chǔ)和后續(xù)對該機(jī)密的訪問;這也公知為安全存儲(chǔ)或隔絕存儲(chǔ)。在這里使用時(shí),“機(jī)密(secret)”意味著當(dāng)未在安全預(yù)引導(dǎo)環(huán)境中時(shí),對計(jì)算機(jī)系統(tǒng)和用戶隱藏的任何信息(無論是數(shù)據(jù)、指令或其他)。例如,這樣的機(jī)密可包括密鑰、密碼、財(cái)務(wù)信息、醫(yī)療記錄等等。另外,安全預(yù)引導(dǎo)模式可用于隔絕執(zhí)行。這提供了一種手段將非可信的、錯(cuò)誤的或惡意的代碼(統(tǒng)稱為“有害代碼”)與其他可信的可驗(yàn)證的代碼隔離開來。
圖1是根據(jù)本發(fā)明一種實(shí)施方案的示例性程序流程的流程圖。如圖1所示,計(jì)算機(jī)系統(tǒng)重啟后(方框5),固件確定CPU是否能夠適應(yīng)安全預(yù)引導(dǎo)模式操作,即CPU是否是安全性使能的(菱形10)。如果存在這樣的CPU,則可運(yùn)行安全性初始化軟件(方框15)。然后,可安裝BIOS安全虛擬機(jī)監(jiān)視器(SVMM)(方框20),并可進(jìn)入SVMM預(yù)引導(dǎo)環(huán)境。在這里使用時(shí),術(shù)語“安全虛擬機(jī)監(jiān)視器”或“SVMM”意味著一種安全環(huán)境,其中在單個(gè)平臺(tái)上存在一個(gè)或多個(gè)操作環(huán)境。在SVMM期間,可執(zhí)行任何期望的安全操作,例如機(jī)密存儲(chǔ)/訪問、閃存更新等等。
應(yīng)理解到,“虛擬機(jī)”不是必需的;相反,所述軟件可以是安全監(jiān)視器,其中所述“監(jiān)視器”方面涉及檢測并限制非可信代碼的訪問的能力。在某些實(shí)施方案中,SVMM可形成可信計(jì)算基(TCB);TCB是一個(gè)小的經(jīng)驗(yàn)證的代碼子集,其可從其余代碼隔絕開來,并控制其余代碼的行為。TCB可設(shè)計(jì)成很小,以具有對安全性和保險(xiǎn)性屬性的形式上的第三方審查。
然后,或者,如果沒有安全模式處理器可用,則可完成自加電檢測(POST),并且預(yù)引導(dǎo)環(huán)境預(yù)備加載OS(方框25)。然后確定進(jìn)行可信OS加載是否可能(菱形30)。如果這樣的加載是可能的,則卸載BIOS SVMM(方框35)。無論是哪種方式,OS然后都可取得對計(jì)算機(jī)系統(tǒng)的控制(方框40)。
應(yīng)理解到,安全CPU運(yùn)行模式的早期調(diào)用并不局限于虛擬機(jī)監(jiān)視器(VMM)設(shè)計(jì)例如SVMM,而是可以和其他CPU安全性模式結(jié)合使用。
在一種實(shí)施方案中,固件可以在一系列階段中執(zhí)行預(yù)引導(dǎo)操作。圖2是根據(jù)本發(fā)明一種實(shí)施方案的示例性固件操作的流程圖。如圖2所示,機(jī)器起動(dòng)或重啟后,可執(zhí)行安全性階段(方框110)。在安全性階段中,可執(zhí)行平臺(tái)復(fù)位或加電后的初始操作來確保固件完整性是完好無缺的。然后,可執(zhí)行預(yù)EFI(PEI)初始化階段(方框120)。在PEI階段中,代碼可執(zhí)行最小的處理器芯片集和平臺(tái)配置以支持存儲(chǔ)器發(fā)現(xiàn)。
然后,可執(zhí)行驅(qū)動(dòng)器執(zhí)行(DXE)階段(方框130)。正是在這一階段中,大多數(shù)固件代碼可運(yùn)行在預(yù)引導(dǎo)環(huán)境中。在一種實(shí)施方案中,所述代碼可實(shí)現(xiàn)為多個(gè)驅(qū)動(dòng)器,其完成平臺(tái)和設(shè)備的初始化。最終,可執(zhí)行操作系統(tǒng)加載階段(方框140)。在這一階段中加載操作系統(tǒng),該階段結(jié)束時(shí)操作系統(tǒng)取得對平臺(tái)的控制。
在一種實(shí)施方案中,固件可發(fā)起虛擬機(jī)監(jiān)視器(VMM)驅(qū)動(dòng)器。該驅(qū)動(dòng)器可發(fā)布VMM協(xié)議的實(shí)例。在某些實(shí)施方案中,所述驅(qū)動(dòng)器可早在DXE階段中發(fā)起,并可執(zhí)行SENTER命令來訪問安全環(huán)境發(fā)起。
在一種實(shí)施方案中,VMM驅(qū)動(dòng)器可具體化SVMM,在某些實(shí)施方案中,SVMM可具有可擴(kuò)縮(scalable)的能力。該可擴(kuò)縮性來源于VMM驅(qū)動(dòng)器的下述能力,即允許將后續(xù)驅(qū)動(dòng)器加載到安全執(zhí)行模式中(這里稱為“虛擬機(jī)擴(kuò)展”或“VMX”)。在某些實(shí)施方案中,SVMM可執(zhí)行在最高特權(quán)級(jí)(例如IA32處理系統(tǒng)中的環(huán)0P)。任何后續(xù)加載的驅(qū)動(dòng)器都可執(zhí)行在較低的特權(quán)級(jí)(例如IA32處理系統(tǒng)中的環(huán)3P)。而且,設(shè)計(jì)來運(yùn)行在安全預(yù)引導(dǎo)環(huán)境中的任何其他代碼(例如客戶容宿系統(tǒng)管理模式(SMM)驅(qū)動(dòng)器等等)也可執(zhí)行在環(huán)3P中。
在各種實(shí)施方案中,這些后續(xù)驅(qū)動(dòng)器可通過經(jīng)過認(rèn)證的驅(qū)動(dòng)器加載機(jī)制來發(fā)起,以確保只有可信驅(qū)動(dòng)器才被加載到SVMM所管理的安全預(yù)引導(dǎo)環(huán)境中。在一個(gè)這樣的實(shí)施方案中,所述認(rèn)證處理可包括使用公鑰基礎(chǔ)設(shè)施(PKI)來確保只有可信驅(qū)動(dòng)器才被加載到VMX環(huán)境中。或者,可使用核心信任根維護(hù)來發(fā)起SVMM,包括但不局限于從復(fù)位向量到安全性階段,到PEI階段,再到DXE階段的過渡性信任轉(zhuǎn)交,如上所述。
在某些實(shí)施方案中,發(fā)布VMM協(xié)議的SVMM驅(qū)動(dòng)器可具有若干職能。首先,它可以是平臺(tái)上發(fā)射SENTER命令的首個(gè)代理,因此它還可來負(fù)責(zé)接收后續(xù)系統(tǒng)管理中斷(SMI)激活。在某些實(shí)施方案中(例如遺留操作系統(tǒng)),這一職能可在OS運(yùn)行時(shí)間期間被保持,而在其他實(shí)施方案(例如EFI敏感的OS)中,這一職能可轉(zhuǎn)換成操作系統(tǒng)提供的SVMM。
在某些實(shí)施方案中,SVMM可加載附加的VMX驅(qū)動(dòng)器。這些驅(qū)動(dòng)器可以是期望利用VMX的隔絕存儲(chǔ)和執(zhí)行屬性的代碼序列;這些驅(qū)動(dòng)器可包括可從英特爾公司獲得的BIOS完整性服務(wù)驅(qū)動(dòng)器;認(rèn)證服務(wù),例如可從馬薩諸塞州劍橋的麻省理工學(xué)院獲得的Kerberos;或諸如密碼算法的預(yù)引導(dǎo)實(shí)現(xiàn)之類的其他安全性代碼,例如執(zhí)行非對稱密碼計(jì)算的代理,例如可從馬薩諸塞州Bedford的RSA安全公司獲得的Rivest Shamir Adleman(RSA)。隔絕前述代碼的要點(diǎn)在于需要所述代碼的完整性(即,還沒有被篡改)來滿足驅(qū)動(dòng)器行為的安全性斷言。
現(xiàn)在參考圖3,示出了根據(jù)本發(fā)明一種實(shí)施方案的預(yù)引導(dǎo)環(huán)境的操作的流程圖。如圖3所示,固件控制系統(tǒng)(方框210)。這一控制可以發(fā)生在加電時(shí),通過系統(tǒng)狀態(tài)(例如S3睡眠狀態(tài))事件或以其他方式進(jìn)行。然后,初始化平臺(tái)(方框220)。在某些實(shí)施方案中,這一初始化可包括對處理器、芯片集和存儲(chǔ)器的最小的配置。
然后,如圖3所示,可以初始化并創(chuàng)建安全環(huán)境(方框230)。這一初始化可包括從持久性存儲(chǔ)設(shè)備獲得安全代碼。在一種實(shí)施方案中,所述安全代碼可存儲(chǔ)在對系統(tǒng)主板來說永久固定的閃存器件中。由于這一代碼存儲(chǔ)在持久性存儲(chǔ)設(shè)備中,并已知為安全設(shè)備,因此預(yù)引導(dǎo)環(huán)境具有一定級(jí)別的完整性。而且,在一種實(shí)施方案中,所述初始化可包括執(zhí)行芯片集中的代碼以確保芯片集處于用于安全預(yù)引導(dǎo)操作的可允許狀態(tài)中。在一種實(shí)施方案中,安全初始化可通過執(zhí)行加載SINIT命令來完成。
在一種實(shí)施方案中,創(chuàng)建安全環(huán)境可包括在固定令牌中生成摘要(下面將進(jìn)一步討論),其提供了與安全環(huán)境中的平臺(tái)有關(guān)的信息。而且,創(chuàng)建安全環(huán)境可包括設(shè)立存儲(chǔ)器棧。在一種實(shí)施方案中,可通過加載SVMM來創(chuàng)建安全環(huán)境,如上所述。
然后,可在預(yù)引導(dǎo)環(huán)境中執(zhí)行安全操作(方框240)。在這里討論時(shí),這些操作可包括例如使用固定令牌來對機(jī)密進(jìn)行密封和解封。安全環(huán)境的另一種用途可以是更新閃存。而且,這些操作可包括安全驅(qū)動(dòng)器或可信驅(qū)動(dòng)器以及證明日志/簽名的執(zhí)行。這樣的簽名證明例如可轉(zhuǎn)交給一個(gè)質(zhì)疑者。
當(dāng)已執(zhí)行預(yù)引導(dǎo)環(huán)境中的期望操作時(shí),可進(jìn)入引導(dǎo)環(huán)境(方框250)。在一種實(shí)施方案中,可提供從安全預(yù)引導(dǎo)環(huán)境到可信OS環(huán)境的過渡性轉(zhuǎn)交。在其他實(shí)施方案中,在OS發(fā)起前可解除安全預(yù)引導(dǎo)環(huán)境?;蛘撸谄渌麑?shí)施方案中,例如可利用在用于執(zhí)行或保持平臺(tái)完整性的背景下所保持的安全模式來進(jìn)入引導(dǎo)環(huán)境。雖然參考單處理器進(jìn)行了討論,但是在其他實(shí)施方案中,也可存在多處理器環(huán)境(邏輯的或?qū)嶋H的)。
在一種實(shí)施方案中,安全預(yù)引導(dǎo)環(huán)境可保持一個(gè)機(jī)密,然后該機(jī)密可由平臺(tái)固件所使用。在第一發(fā)起時(shí),安全預(yù)引導(dǎo)環(huán)境可生成這一機(jī)密,其具有根密鑰的形式,并適用于安全預(yù)引導(dǎo)環(huán)境所支持的算法和協(xié)議。一旦生成,該根密鑰就可被保護(hù)起來,以使得受保護(hù)的根密鑰只對運(yùn)行在相同平臺(tái)上的相同安全預(yù)引導(dǎo)環(huán)境公開。
在某些實(shí)施方案中,這一保護(hù)可通過使用可信計(jì)算平臺(tái)(TCP)(或等效的硬件“保險(xiǎn)箱”)來完成。在一種實(shí)施方案中,可使用固定令牌工具來密封安全預(yù)引導(dǎo)環(huán)境的根密鑰。在一種實(shí)施方案中,固定令牌工具可以是附著于計(jì)算機(jī)系統(tǒng)的主板,并可與CPU通信的芯片,下面將進(jìn)一步討論。
在一種實(shí)施方案中,機(jī)密的生成可使用下述密封操作來完成,所述密封操作使用只可由所述固定令牌訪問的密鑰來加密安全預(yù)引導(dǎo)環(huán)境的根密鑰和已注冊標(biāo)識(shí)二者。這一加密的數(shù)據(jù)(“密鑰團(tuán)”)然后可存儲(chǔ)在大容量存儲(chǔ)裝置(例如計(jì)算機(jī)系統(tǒng)的硬盤驅(qū)動(dòng)器)中。當(dāng)發(fā)起安全預(yù)引導(dǎo)環(huán)境時(shí),例如在后續(xù)的平臺(tái)引導(dǎo)中,可將所述密鑰團(tuán)返回給固定令牌,固定令牌對之解密,并將之與針對當(dāng)前安全預(yù)引導(dǎo)環(huán)境而注冊的標(biāo)識(shí)進(jìn)行比較。如果當(dāng)前安全預(yù)引導(dǎo)環(huán)境標(biāo)識(shí)與密鑰團(tuán)中嵌入的標(biāo)識(shí)匹配,則向安全預(yù)引導(dǎo)環(huán)境公開根密鑰。
在一種實(shí)施方案中,密封操作允許軟件顯式地聲明為了使得可公布機(jī)密,平臺(tái)必須處于將來的“可信”配置之中。密封操作還隱式地包括以前執(zhí)行該密封操作時(shí)的相關(guān)平臺(tái)配置(即平臺(tái)配置寄存器(PCR)值)。密封操作可使用預(yù)選擇的值來將所述團(tuán)綁定到單個(gè)TCP。
如果解封操作成功,則可以將平臺(tái)配置在以前執(zhí)行密封操作時(shí)是有效的這一證據(jù),以及機(jī)密數(shù)據(jù)返回到調(diào)用者。
在某些實(shí)施方案中,安全預(yù)引導(dǎo)環(huán)境還可允許一種向外擴(kuò)展(scale out)設(shè)計(jì),其中可通過可加載的驅(qū)動(dòng)器來提供額外的安全性能力和支持。在一種實(shí)施方案中,所述驅(qū)動(dòng)器可以是EFI運(yùn)行時(shí)間驅(qū)動(dòng)器。這些驅(qū)動(dòng)器可包括但不局限于用于安全代碼執(zhí)行的安全存儲(chǔ)接口和驅(qū)動(dòng)器。這樣的驅(qū)動(dòng)器可提供用戶認(rèn)證、遠(yuǎn)程映像完整性質(zhì)疑者以及經(jīng)證明的引導(dǎo),所有這些都在一個(gè)加強(qiáng)的環(huán)境內(nèi)。
在一種實(shí)施方案中,安全預(yù)引導(dǎo)環(huán)境可確保系統(tǒng)管理基址(SMBASE)的安全,以使得沒有任何其他預(yù)引導(dǎo)組件可執(zhí)行SENTER并因而具有系統(tǒng)管理隨機(jī)訪問存儲(chǔ)器(SMRAM)內(nèi)部的可見性。
因此,在這樣的實(shí)施方案中,安全預(yù)引導(dǎo)環(huán)境可在發(fā)起后接收SMI激活。通過安全預(yù)引導(dǎo)的早期發(fā)起,由于所關(guān)聯(lián)的系統(tǒng)管理模式存儲(chǔ)器(SMMEM)激活,流氓軟件執(zhí)行SENTER的能力以及可看到SMRAM內(nèi)部的能力被降低了。
在多種實(shí)施方案中,安全預(yù)引導(dǎo)環(huán)境可具有若干卸載選項(xiàng)。對于EFI敏感(EFI-aware)的OS引導(dǎo),安全預(yù)引導(dǎo)環(huán)境可解除安全環(huán)境?;蛘?,安全預(yù)引導(dǎo)環(huán)境可一直保持,直到調(diào)用了某種后來的“卸載”服務(wù)。
例如,安全預(yù)引導(dǎo)環(huán)境可提供到OS SVMM的受管理的轉(zhuǎn)交。這出現(xiàn)了一個(gè)機(jī)會(huì)來從預(yù)引導(dǎo)建立可被完整地轉(zhuǎn)移到操作系統(tǒng)的信任根,因而提供了在超出OS可通過在啟動(dòng)時(shí)加載自己的SVMM而得到的保證之外的與平臺(tái)穩(wěn)定性有關(guān)的額外保證,并且提供了在OSSVMM的控制下,平臺(tái)SMM代碼來源的更大保證,所述平臺(tái)SMM代碼將持續(xù)在操作系統(tǒng)運(yùn)行時(shí)間中。
在多種實(shí)施方案中,本發(fā)明可為預(yù)引導(dǎo)空間中的代碼提供安全操作環(huán)境。這樣的環(huán)境提供了機(jī)會(huì)來改變對平臺(tái)完整性非常關(guān)鍵的操作的處理方式,因而擴(kuò)展了平臺(tái)設(shè)計(jì)包封并改善了用戶體驗(yàn)。
例如,在安全預(yù)引導(dǎo)環(huán)境中,閃存更新的執(zhí)行可不必強(qiáng)制執(zhí)行“init”命令,因?yàn)閷﹂W存的寫訪問可由運(yùn)行在安全預(yù)引導(dǎo)環(huán)境內(nèi)的可信代碼打開。具體地說,提供安全性(可包括但不局限于頁面級(jí)保護(hù))的存儲(chǔ)器管理單元操作可由SVMM建立,以將對快閃區(qū)域的訪問僅限于可信方。這些可信方可包括但不局限于平臺(tái)所有者更新代碼。
在另一種實(shí)施方案中,閃存更新可由引導(dǎo)環(huán)境中的可信OS執(zhí)行。在這樣的實(shí)施方案中,安全預(yù)引導(dǎo)環(huán)境期間的CPU可通過頁面級(jí)保護(hù)機(jī)制來保護(hù)閃存區(qū)域。當(dāng)從安全預(yù)引導(dǎo)環(huán)境發(fā)生過渡性轉(zhuǎn)交時(shí),可將相同的受保護(hù)存儲(chǔ)區(qū)域提供給OS。因此,當(dāng)處于引導(dǎo)環(huán)境期間,受保護(hù)的存儲(chǔ)器(即閃存)可相應(yīng)地被訪問和更新。
在某些實(shí)施方案中,操作系統(tǒng)(OS)運(yùn)行時(shí)間期間可使用SVMM來一同運(yùn)行操作系統(tǒng)的SVMM。BIOS SVMM可提供特定于平臺(tái)的行為,例如可靠性-可用性-可服務(wù)性(RAS)。這些可包括處理特定的平臺(tái)錯(cuò)誤,例如對具有糾錯(cuò)碼(ECC)單比特錯(cuò)誤(SBE)的存儲(chǔ)器物理頁面的寫。芯片集檢測到的SBE通常需要訪問存儲(chǔ)器的一個(gè)區(qū)域以進(jìn)行讀并且然后進(jìn)行寫回,以更新所述癥狀位(syndrome bits)。沒有標(biāo)準(zhǔn)化的方式來向操作系統(tǒng)警告這一故障和必需的行為,并且在安全操作系統(tǒng)運(yùn)行時(shí)間期間,OS控制所有的存儲(chǔ)器。這樣,與OS SVMM對等的BIOS SVMM規(guī)定了先前在系統(tǒng)管理模式(SMM)中完成的特定于平臺(tái)的活動(dòng);SMM在安全操作系統(tǒng)到來之前具有對系統(tǒng)的完全訪問權(quán)限。
另外,現(xiàn)今存在操作系統(tǒng)相對于平臺(tái)而作出的默許信任斷言。例如,BIOS創(chuàng)建描述不可枚舉的資源的表,例如全存儲(chǔ)器圖、固定端口、本地APIC(高級(jí)可編程中斷控制器)的地址、中斷路由以及其他資源。這些表僅通過簡單的校驗(yàn)和來保護(hù)。但是,對于可信平臺(tái),這些如今存儲(chǔ)在普通存儲(chǔ)器中的表可能會(huì)是攻擊點(diǎn)。攻擊者可排列出描述平臺(tái)的值,并對操作系統(tǒng)撒謊;這一攻擊可包括隱藏存儲(chǔ)器、欺騙(spoofing)端口等等。預(yù)引導(dǎo)環(huán)境可用來生成這些表,對所述內(nèi)容簽名,過渡性地轉(zhuǎn)交到具有信任斷言的OS SVMM等等。
實(shí)施方案可實(shí)現(xiàn)在計(jì)算機(jī)程序中。這樣,這些實(shí)施方案可存儲(chǔ)在存儲(chǔ)介質(zhì)上,該介質(zhì)上存儲(chǔ)有指令,可用來對計(jì)算機(jī)系統(tǒng)編程以執(zhí)行所述實(shí)施方案。存儲(chǔ)介質(zhì)可包括但不局限于任何類型的盤,包括軟盤、光盤、致密盤只讀存儲(chǔ)器(CD-ROM)、致密盤可重寫盤(CD-RW)以及磁光盤、諸如只讀存儲(chǔ)器(ROM)、隨機(jī)訪問存儲(chǔ)器(RAM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM),閃存,磁卡或光卡的半導(dǎo)體設(shè)備,或任何類型的適用于存儲(chǔ)電子指令的介質(zhì)。類似地,實(shí)施方案可實(shí)現(xiàn)為由可編程控制設(shè)備執(zhí)行的軟件模塊??删幊炭刂圃O(shè)備可以是計(jì)算機(jī)處理器或定制設(shè)計(jì)狀態(tài)機(jī)。定制設(shè)計(jì)狀態(tài)機(jī)可包括在硬件設(shè)備中,例如具有離散邏輯的印刷電路板、集成電路或?qū)iT設(shè)計(jì)的專用集成電路(ASIC)。
示例性實(shí)施方案可實(shí)現(xiàn)在軟件中,以由適當(dāng)?shù)臄?shù)據(jù)處理系統(tǒng)執(zhí)行,所述系統(tǒng)配置以硬件設(shè)備的適當(dāng)組合。圖4是代表性數(shù)據(jù)處理系統(tǒng)的方框圖,即可與本發(fā)明的實(shí)施方案一起使用的計(jì)算機(jī)系統(tǒng)300。
現(xiàn)在參考圖4,在一種實(shí)施方案中,計(jì)算機(jī)系統(tǒng)300包括處理器310,處理器310可包括通用或?qū)S锰幚砥?,例如微處理器、微控制器、ASIC、可編程門陣列(PGA)等等。
在一種實(shí)施方案中,處理器310可通過主機(jī)總線315耦合到存儲(chǔ)器中心320,存儲(chǔ)器中心320可通過存儲(chǔ)器總線325耦合到系統(tǒng)存儲(chǔ)器330。如圖4所示,在某些實(shí)施方案中,系統(tǒng)存儲(chǔ)器330可具有受保護(hù)的存儲(chǔ)器頁面。這樣的頁面例如可包括與SVMM以及其他可信虛擬機(jī)相關(guān)的頁面等等。在某些實(shí)施方案中,存儲(chǔ)器中心320可被配置來阻塞對系統(tǒng)存儲(chǔ)器330的受保護(hù)頁面的至少某些部分的訪問。存儲(chǔ)器中心320還可通過高級(jí)圖形端口(AGP)總線333耦合到視頻控制器335,視頻控制器335可耦合到顯示器337。AGP總線333可遵從加速圖形端口接口規(guī)范(修訂版2.0),由加州圣·克拉拉的英特爾公司于1998年5月4日發(fā)布。
存儲(chǔ)器中心320還可(通過中心鏈路338)耦合到輸入/輸出(I/O)中心340,I/O中心340耦合到輸入/輸出(I/O)擴(kuò)展總線342和外圍組件互連(PCI)總線344,PCI總線344由1995年6月的PCI局部總線規(guī)范出品版(修訂版2.1)定義。I/O擴(kuò)展總線342可以耦合到對一個(gè)或多個(gè)I/O設(shè)備的訪問進(jìn)行控制的I/O控制器346。如圖4所示,在一種實(shí)施方案中,這些設(shè)備可包括存儲(chǔ)設(shè)備(例如軟盤驅(qū)動(dòng)器350)和輸入設(shè)備(例如鍵盤352和鼠標(biāo)354)。閃存341也可耦合到I/O擴(kuò)展總線242,在一種實(shí)施方案中,閃存341可持久地存儲(chǔ)用于預(yù)引導(dǎo)環(huán)境的安全代碼。I/O中心340例如還可耦合到硬盤驅(qū)動(dòng)器356,如圖4所示。應(yīng)理解到,其他存儲(chǔ)介質(zhì)也可包括在所述系統(tǒng)中。
固定令牌343也可耦合到I/O擴(kuò)展總線342。在一種實(shí)施方案中,固定令牌343可永久綁定到計(jì)算機(jī)系統(tǒng)300的主板。固定令牌343可以是通用處理器、ASIC等等,其可具有基本的所謂“職能卡”功能。在某些實(shí)施方案中,這些功能可包括密碼功能例如密鑰、存儲(chǔ)、簽名和加密。在多種實(shí)施方案中,固定令牌343可用于機(jī)密的證明和密封/解封。這樣的證明可包括對平臺(tái)遵從性以及所加載的特定監(jiān)視器/小應(yīng)用程序的證明。在密封機(jī)密時(shí),固定令牌343可被編程來對相同環(huán)境或所選擇的環(huán)境而密封/解封機(jī)密。
在某些實(shí)施方案中,便攜式令牌358可耦合到I/O中心340。應(yīng)理解到,這一耦合可通過任何標(biāo)準(zhǔn)連接(例如通用串行總線(USB))進(jìn)行。在一種實(shí)施方案中,便攜式令牌358可具有于固定令牌343相似的功能。例如,便攜式令牌358可用來為用戶測試系統(tǒng),提供便攜式用戶機(jī)密,提供匿名標(biāo)識(shí)等等。
在另一種實(shí)施方案中,I/O控制器346可集成到I/O中心340中,其他控制功能也可如此。PCI總線344也可耦合到各種組件,例如包括耦合到網(wǎng)絡(luò)端口(未示出)的網(wǎng)絡(luò)控制器360。
其他設(shè)備可耦合到I/O擴(kuò)展總線342和PCI總線344,例如耦合到并行端口、串行端口、非易失性存儲(chǔ)器等的輸入/輸出控制電路。
雖然前面的描述參考了系統(tǒng)300的特定組件,但是應(yīng)考慮到可對所描述和示出的實(shí)施方案作出多種修改和變動(dòng)。例如,替代于存儲(chǔ)器和I/O中心,主機(jī)橋控制器和系統(tǒng)橋控制器可提供等同的功能。另外,可實(shí)現(xiàn)多種總線協(xié)議中的任意一種。
雖然已參考有限數(shù)量的實(shí)施方案來描述了本發(fā)明,但是本領(lǐng)域的普通技術(shù)人員可從其認(rèn)識(shí)到多種修改和變體。所附權(quán)利要求書應(yīng)覆蓋所有這種修改和變體,它們都落在本發(fā)明的真正精神和范圍之內(nèi)。
權(quán)利要求
1.一種方法,包括在計(jì)算機(jī)系統(tǒng)中建立安全預(yù)引導(dǎo)環(huán)境;以及處于所述安全預(yù)引導(dǎo)環(huán)境期間執(zhí)行至少一個(gè)安全操作。
2.如權(quán)利要求1所述的方法,其中執(zhí)行所述至少一個(gè)安全操作包括存儲(chǔ)機(jī)密。
3.如權(quán)利要求1所述的方法,還包括將所述計(jì)算機(jī)系統(tǒng)從所述安全預(yù)引導(dǎo)環(huán)境轉(zhuǎn)移到操作系統(tǒng)環(huán)境。
4.如權(quán)利要求1所述的方法,還包括在所述安全預(yù)引導(dǎo)環(huán)境中發(fā)起安全虛擬機(jī)監(jiān)視器。
5.如權(quán)利要求1所述的方法,還包括在所述安全預(yù)引導(dǎo)環(huán)境中更新閃存。
6.如權(quán)利要求1所述的方法,還包括在所述安全預(yù)引導(dǎo)環(huán)境中發(fā)布系統(tǒng)管理命令。
7.如權(quán)利要求1所述的方法,還包括在所述安全預(yù)引導(dǎo)環(huán)境中接收系統(tǒng)管理中斷。
8.如權(quán)利要求2所述的方法,還包括生成所述機(jī)密,其具有通過固定令牌密封的根密鑰的形式。
9.如權(quán)利要求8所述的方法,還包括只在所述安全預(yù)引導(dǎo)環(huán)境期間才向所述計(jì)算機(jī)系統(tǒng)公開所述根密鑰。
10.如權(quán)利要求1所述的方法,還包括將有害代碼從可驗(yàn)證代碼隔絕開來。
11.一種方法,包括在預(yù)引導(dǎo)環(huán)境中提供計(jì)算機(jī)系統(tǒng)的固件控制;在所述預(yù)引導(dǎo)環(huán)境中創(chuàng)建安全環(huán)境;以及在所述安全環(huán)境中執(zhí)行至少一個(gè)安全操作。
12.如權(quán)利要求11所述的方法,還包括從所述預(yù)引導(dǎo)環(huán)境進(jìn)入引導(dǎo)環(huán)境。
13.如權(quán)利要求12所述的方法,還包括在所述引導(dǎo)環(huán)境的背景中保持所述安全環(huán)境。
14.如權(quán)利要求12所述的方法,還包括如果所述引導(dǎo)環(huán)境是可信引導(dǎo)環(huán)境則解除所述安全環(huán)境。
15.如權(quán)利要求11所述的方法,其中在所述安全環(huán)境中執(zhí)行所述至少一個(gè)安全操作包括在所述安全環(huán)境中存儲(chǔ)機(jī)密。
16.如權(quán)利要求15所述的方法,還包括使用固定令牌來存儲(chǔ)所述機(jī)密。
17.如權(quán)利要求15所述的方法,還包括在所述預(yù)引導(dǎo)環(huán)境中處于所述安全環(huán)境的不同入口期間訪問所述機(jī)密。
18.如權(quán)利要求13所述的方法,還包括使用所述安全環(huán)境來執(zhí)行可靠性—可用性—可服務(wù)性。
19.如權(quán)利要求12所述的方法,還包括在所述預(yù)引導(dǎo)環(huán)境中生成表,并將所述表提供給具有信任斷言的引導(dǎo)環(huán)境。
20.一種包括機(jī)器可讀存儲(chǔ)介質(zhì)的制品,所述介質(zhì)包括的指令被執(zhí)行時(shí)使得系統(tǒng)在計(jì)算機(jī)系統(tǒng)中建立安全預(yù)引導(dǎo)環(huán)境;以及在所述安全預(yù)引導(dǎo)環(huán)境中執(zhí)行至少一個(gè)安全操作。
21.如權(quán)利要求20所述的制品,還包括下述指令,其被執(zhí)行時(shí)使得所述系統(tǒng)在所述安全預(yù)引導(dǎo)環(huán)境中存儲(chǔ)機(jī)密。
22.如權(quán)利要求21所述的制品,還包括下述指令,其被執(zhí)行時(shí)使得所述系統(tǒng)生成所述機(jī)密,其具有通過固定令牌密封的根密鑰的形式。
23.如權(quán)利要求22所述的制品,還包括下述指令,其被執(zhí)行時(shí)使得所述系統(tǒng)只在所述安全預(yù)引導(dǎo)環(huán)境期間才向所述計(jì)算機(jī)系統(tǒng)公開所述根密鑰。
24.一種系統(tǒng),包括至少一個(gè)存儲(chǔ)設(shè)備,其包括的指令被執(zhí)行時(shí)使得所述系統(tǒng)在計(jì)算機(jī)系統(tǒng)中建立安全預(yù)引導(dǎo)環(huán)境;并且在所述安全預(yù)引導(dǎo)環(huán)境中執(zhí)行至少一個(gè)安全操作;以及耦合到所述至少一個(gè)存儲(chǔ)設(shè)備以執(zhí)行所述指令的處理器。
25.如權(quán)利要求24所述的系統(tǒng),還包括下述指令,其被執(zhí)行時(shí)使得所述系統(tǒng)在所述安全預(yù)引導(dǎo)環(huán)境中存儲(chǔ)機(jī)密。
26.如權(quán)利要求24所述的系統(tǒng),還包括閃存,其包括安全基本輸入/輸出系統(tǒng)代碼。
27.如權(quán)利要求24所述的系統(tǒng),還包括耦合到所述處理器的固定令牌。
28.如權(quán)利要求27所述的系統(tǒng),其中所述固定令牌包括至少一個(gè)用于機(jī)密安全性的根密鑰。
全文摘要
在一種實(shí)施方案中,本發(fā)明包括一種方法,用于在計(jì)算機(jī)系統(tǒng)中建立安全預(yù)引導(dǎo)環(huán)境;并且在所述安全環(huán)境中執(zhí)行至少一個(gè)安全操作。在一種實(shí)施方案中,安全操作可以是在安全預(yù)引導(dǎo)環(huán)境中存儲(chǔ)機(jī)密。
文檔編號(hào)G06F21/00GK1714331SQ200380104038
公開日2005年12月28日 申請日期2003年10月20日 優(yōu)先權(quán)日2002年11月27日
發(fā)明者布賴恩特·比格比, 馬克·多蘭, 安德魯·菲什, 文森特·齊默 申請人:英特爾公司