專利名稱:用可信處理模塊安全地引導(dǎo)計(jì)算機(jī)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算領(lǐng)域。更特別地,本發(fā)明提供通過預(yù)防對(duì)引導(dǎo)期間所使用的數(shù)據(jù)未經(jīng)授權(quán)的修改、以及通過預(yù)防對(duì)只在引導(dǎo)期間所需資源的引導(dǎo)后訪問來增強(qiáng)計(jì)算機(jī)安全的系統(tǒng)和方法。
背景技術(shù):
安全已成為計(jì)算機(jī)用戶普遍關(guān)注的問題。病毒、蠕蟲、特洛伊木馬、身份竊取、軟件和媒體內(nèi)容盜版、以及使用數(shù)據(jù)破壞恐嚇的敲詐十分猖獗。操作系統(tǒng)可提供許多安全特征來防止此類攻擊。但是,如果操作系統(tǒng)的安全特征被禁用,則它們將無效。如果試圖禁用此類安全特征,很可能是在操作系統(tǒng)的引導(dǎo)期間進(jìn)行嘗試。在引導(dǎo)以后,操作系統(tǒng)可能使許多特征就位以保護(hù)其自身及其所管理的數(shù)據(jù)和進(jìn)程。但是,在引導(dǎo)期間,那些特征可能尚未被初始化,并且容易被旁路和/或篡改。
操作系統(tǒng)當(dāng)前所使用的示例性安全特征有加密文件系統(tǒng)(EFS)、以及可信平臺(tái)模塊(TPM)。EFS特征將所選擇的敏感數(shù)據(jù)加密。在用戶登錄以前,操作系統(tǒng)無需訪問EFS數(shù)據(jù)。在操作系統(tǒng)引導(dǎo)以后,用戶可向登錄進(jìn)程提供密碼。由密碼授予對(duì)能夠?qū)FS數(shù)據(jù)解密的解密密鑰的訪問。作為示例,微軟WINDOWS操作系統(tǒng)使用系統(tǒng)密鑰,或稱“SYSKEY”,使用該系統(tǒng)密鑰,通過令各個(gè)進(jìn)程的正確執(zhí)行依賴于SYSKEY的可用性來保護(hù)那些進(jìn)程。例如,可從SYSKEY導(dǎo)出將由操作系統(tǒng)以加密的形式存儲(chǔ)的EFS數(shù)據(jù)解密所需的密鑰。
因此,執(zhí)行受限操作所需的密鑰受登錄過程保護(hù)。通常,用戶在開始使用系統(tǒng)以前必須正確地驗(yàn)證自己。僅當(dāng)用戶正確地驗(yàn)證時(shí)才允許使用密鑰。但是,使用登錄過程來保護(hù)對(duì)密鑰的訪問是假定了操作系統(tǒng)已加載了正確的登錄程序,且并非由可能運(yùn)行的欺詐代碼允許密鑰的使用。如果在引導(dǎo)期間使用了欺詐操作系統(tǒng)加載器而不是正確的操作系統(tǒng)加載器,則欺詐加載器可能令欺詐登錄程序隨操作系統(tǒng)被加載。欺詐登錄程序可能進(jìn)而允許無須輸入正確密碼即可使用EFS密鑰。因?yàn)椴僮飨到y(tǒng)的加載提供了破壞安全的機(jī)會(huì),在此類情況中密鑰的保護(hù)要求操作系統(tǒng)的加載在可證明其會(huì)正確發(fā)生的情況下發(fā)生。
因?yàn)镋FS是被引導(dǎo)的操作系統(tǒng)所支持的特征,所以它在保護(hù)引導(dǎo)過程期間所泄露的某些數(shù)據(jù)方面是無效的。EFS不能保護(hù)用戶登錄以前所需的用戶數(shù)據(jù),諸如某些系統(tǒng)服務(wù)所需的保密信息;網(wǎng)絡(luò)服務(wù)(例如,個(gè)人或公共web服務(wù)器)所使用的數(shù)據(jù)庫;以及用于連接到公司域的RAS憑證。
可信處理模塊(TPM)確保計(jì)算機(jī)上所運(yùn)行的軟件的可信賴性。一般而言,這是通過向TPM提交可信數(shù)據(jù)度量,并依靠TPM來確定該度量是否符合來實(shí)現(xiàn)的。計(jì)算機(jī)安全常常依賴于能夠預(yù)測(cè)軟件組件的行為。一般而言,系統(tǒng)的安全來自從已知的好狀態(tài)而來的、行為被理解的已知程序?qū)⒁钥深A(yù)測(cè)的方式行動(dòng)這一前提。反過來,阻礙安全——這可能涉及令計(jì)算機(jī)系統(tǒng)以超出其設(shè)計(jì)者構(gòu)想范圍的方式運(yùn)作——一般可通過替換或改變已知程序、或在其行為不被理解的狀態(tài)下運(yùn)行已知程序來實(shí)現(xiàn)。由此,為計(jì)算環(huán)境提供安全的一個(gè)方面包括證明所使用的是已知程序,且它是從已知的好狀態(tài)而來。TPM通過驗(yàn)證該數(shù)據(jù)因諸如數(shù)據(jù)的散列等度量匹配先前密封在TPM中的值而符合來實(shí)現(xiàn)此方面。
和EFS一樣,TPM已被成功用來為被引導(dǎo)的計(jì)算機(jī)上所運(yùn)行的應(yīng)用程序的完整性提供某種程度的保證。TPM也存在許多其它限制。例如,以標(biāo)準(zhǔn)方式使用TPM的機(jī)器不能在現(xiàn)場(chǎng)被重新配置(例如,在開會(huì)的同時(shí)將網(wǎng)卡插入到膝上型計(jì)算機(jī)中)。TPM造成已初始化的操作系統(tǒng)的嚴(yán)重限制和復(fù)雜性。
現(xiàn)今的大多數(shù)TPM符合TRUSTED COMPUTER GROUP(TCG)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)目前在http//www.trustedcomputinggroup.org/home可用,題為“Trusted PlatformModule(TPM)Specification Version 1.2.”(可信平臺(tái)模塊(TPM)規(guī)范1.2版)TPM是可以并入計(jì)算平臺(tái)中來為平臺(tái)所執(zhí)行的代碼建立信任的子系統(tǒng)。用于建立可信任代碼的機(jī)制的標(biāo)準(zhǔn)化是有益的,因?yàn)樗试S安全和加密共同體訪問用于提供安全的機(jī)制,還因?yàn)樗龠M(jìn)顧客對(duì)新的軟件特征的理解和信任。它還鼓勵(lì)在實(shí)現(xiàn)和改進(jìn)標(biāo)準(zhǔn)中的革新,如TCG所構(gòu)想和鼓勵(lì)的。如TCG規(guī)范中所陳述,“[m]anufacturerswill compete in the marketplace by installing subsystems with varying capabilities andcost points”(制造商將通過安裝具有可變能力和成本點(diǎn)的子系統(tǒng)而在市場(chǎng)中競(jìng)爭(zhēng))。
一些用于安全引導(dǎo)的技術(shù)補(bǔ)充了操作系統(tǒng)所使用的上述示例性安全機(jī)制。機(jī)器密碼驗(yàn)證可被用于使用機(jī)器全局密碼來保護(hù)保密信息。但是,這需要密碼在機(jī)器引導(dǎo)以前被輸入。該密碼必須由機(jī)器的多個(gè)用戶共享,這是第一個(gè)安全缺陷。第二個(gè)缺陷是引入了可使用性問題,因?yàn)椴荒転槊艽a輸入呈現(xiàn)通常的用戶界面。這對(duì)平板PC而言特別不方便。機(jī)器全局密碼常??赡鼙粚懺谝粡埣埳喜⒈涣粼跈C(jī)器邊上。因此,密碼是有效的,但不允許常被期望的類型的復(fù)雜的用戶保護(hù)。
其次,保密信息可能被存儲(chǔ)在可移動(dòng)介質(zhì)上。同樣,從安全的角度出發(fā),理論上此特征是有效的,但是實(shí)際上它常常是有問題的。此情形中的根本問題是,為確保可使用的工作系統(tǒng),可移動(dòng)介質(zhì)將幾乎總是被留在機(jī)器內(nèi)。
在不能充分保證安全操作系統(tǒng)引導(dǎo)的情況下,用戶保護(hù)計(jì)算機(jī)上的數(shù)據(jù)的能力受到關(guān)放這類計(jì)算機(jī)的建筑的安全限制,而不是該計(jì)算機(jī)上所運(yùn)行的操作系統(tǒng)的安全功能的限制。隨著膝上型計(jì)算機(jī)的流行,以及計(jì)算機(jī)盜竊、特別是膝上型計(jì)算機(jī)盜竊上升趨勢(shì)的增長(zhǎng),需要一種在計(jì)算機(jī)進(jìn)入竊賊手中時(shí)允許操作系統(tǒng)的安全不受危及的解決方案。
使用TPM來保護(hù)引導(dǎo)過程的系統(tǒng)和方法還遠(yuǎn)未被探索完全。除了在引導(dǎo)過程中使用TPM以外,用于執(zhí)行引導(dǎo)過程的維護(hù)以及用于控制對(duì)此類計(jì)算機(jī)上的數(shù)據(jù)的訪問的系統(tǒng)和方法可能會(huì)證明是有用的。對(duì)這些系統(tǒng)和方法的描述可在于___提交的、題為“Systems and Methods for Boot Recovery in a Secure Boot Process on aComputer with a Hardware Security Module”(帶有硬件安全模塊的計(jì)算機(jī)上的安全引導(dǎo)過程中引導(dǎo)恢復(fù)的系統(tǒng)和方法)、代理卷號(hào)為MSFT 4634/311226.01的美國(guó)專利申請(qǐng)第___號(hào),于___提交的、題為“Systems and Methods for Updating aSecure Boot Process on a Computer with a Hardware Security Module”(更新帶有硬件安全模塊的計(jì)算機(jī)上的安全引導(dǎo)過程的系統(tǒng)和方法)、代理卷號(hào)為MSFT4784/312086.01的美國(guó)專利申請(qǐng)第___號(hào),以及于___提交的、題為“Systemsand Methods for Controlling Access to Data on a Computer with a Security BootProcess”(控制對(duì)帶有安全引導(dǎo)過程的計(jì)算機(jī)上的數(shù)據(jù)的訪問的系統(tǒng)和方法)、代理卷號(hào)為MSFT 4635/311227.01的美國(guó)專利申請(qǐng)第___號(hào)中找到。于2004年6月30日提交的、題為“System and method for protected operating system boot usingstate validation”(使用狀態(tài)驗(yàn)證的受保護(hù)的操作系統(tǒng)引導(dǎo)的系統(tǒng)和方法)的美國(guó)專利申請(qǐng)第10/882,134號(hào)也一般涉及本發(fā)明。
發(fā)明內(nèi)容
考慮到以上背景,本發(fā)明提供以用于驗(yàn)證軟件組件的完整性度量的可信平臺(tái)模塊(TPM)安全地引導(dǎo)計(jì)算機(jī)的系統(tǒng)和方法。配合本發(fā)明使用的TPM可將保密信息密封到多個(gè)平臺(tái)配置寄存器(PCR)值中。PCR值可通過測(cè)定引導(dǎo)組件來獲得。如果引導(dǎo)組件從保密信息被密封的時(shí)間起未被修改,則可為適當(dāng)?shù)南到y(tǒng)引導(dǎo)獲得保密信息??蓪⒁龑?dǎo)組件預(yù)期的散列值放到PCR中,如果預(yù)期值是正確的,則將保密信息拆封。該保密信息隨即可被用來將實(shí)際的引導(dǎo)組件從其在磁盤上的位置解密。然后可計(jì)算經(jīng)解密的引導(dǎo)組件的散列,并將結(jié)果與預(yù)期值相比較。另一個(gè)示例需要使用被密封到可在引導(dǎo)過程中的不同點(diǎn)獲得的PCR值的兩個(gè)保密信息。第一個(gè)保密信息僅在第一多個(gè)PCR值被加載時(shí)可被訪問,而第二個(gè)保密信息僅在第一多個(gè)值中的一個(gè)或多個(gè)已被新的值所替換以后可被訪問,從而為準(zhǔn)許對(duì)第二保密信息的訪問必然撤消了對(duì)第一保密信息的進(jìn)一步訪問。本發(fā)明的其它優(yōu)點(diǎn)和特征在以下描述。
參考附圖進(jìn)一步描述根據(jù)本發(fā)明安全引導(dǎo)計(jì)算機(jī)的系統(tǒng)和方法,其中圖1闡述適于實(shí)現(xiàn)與本發(fā)明相關(guān)聯(lián)的軟件和/或硬件技術(shù)的計(jì)算環(huán)境。
圖2提供對(duì)來自圖1的基本計(jì)算環(huán)境的擴(kuò)展,以著重強(qiáng)調(diào)可在多個(gè)聯(lián)網(wǎng)的設(shè)備上執(zhí)行現(xiàn)代計(jì)算技術(shù)。
圖3示出利用可信平臺(tái)模塊(TPM)的計(jì)算平臺(tái)。
圖4示出一種示例性引導(dǎo)過程,其中在過渡到后續(xù)過程之前多個(gè)軟件組件測(cè)定該后續(xù)過程。
圖5示出使用諸如TPM等硬件安全模塊(HSM),在允許后續(xù)組件執(zhí)行以前確保該后續(xù)軟件組件或過程的完整性的一般技術(shù)。
圖5a示出用于確保在只有在TPM驗(yàn)證了引導(dǎo)過程中所使用的數(shù)據(jù)的測(cè)定的情況下引導(dǎo)過程才能繼續(xù)進(jìn)行的系統(tǒng)和方法。
圖6演示圖5a中所示的系統(tǒng)和方法的一個(gè)示例,其中計(jì)算機(jī)的成功引導(dǎo)依賴于示例性組件——引導(dǎo)管理器的成功解密和測(cè)定。
圖7圖解一種用于提供對(duì)資源僅可進(jìn)行有限持續(xù)期的訪問的引導(dǎo)組件、然后在運(yùn)行操作系統(tǒng)以前撤消對(duì)這些資源的訪問的體系結(jié)構(gòu)的操作。
圖8提供在諸如圖7等體系結(jié)構(gòu)中要執(zhí)行的示例性步驟的流程圖。
具體實(shí)施例方式
在以下描述和附圖中闡述某些特定細(xì)節(jié),以提供對(duì)本發(fā)明的各個(gè)實(shí)施例的詳盡理解。但是,在以下揭示中不對(duì)常常與計(jì)算和軟件技術(shù)相關(guān)聯(lián)的某些公知細(xì)節(jié)進(jìn)行闡述,以避免不必要地混淆本發(fā)明的各個(gè)實(shí)施例。此外,相關(guān)領(lǐng)域普通技術(shù)人員將會(huì)理解,他們無需以下所描述的一個(gè)或多個(gè)細(xì)節(jié)就能夠?qū)嵺`本發(fā)明的其它實(shí)施例。最后,盡管參考以下揭示中的步驟和順序來描述各種方法,但是如下描述是為提供本發(fā)明的實(shí)施例的清楚的實(shí)現(xiàn),且不應(yīng)將各步驟及其順序視為實(shí)踐本發(fā)明所必須。
以下詳細(xì)描述大體上將貫徹上述發(fā)明內(nèi)容,并在必要時(shí)進(jìn)一步解釋和擴(kuò)展本發(fā)明的各個(gè)方面和實(shí)施例的定義。為此目的,此具體實(shí)施方式
首先闡述圖1中的計(jì)算環(huán)境,它適于實(shí)現(xiàn)與本發(fā)明相關(guān)聯(lián)的軟件和/或硬件技術(shù)。在圖2中示出一種聯(lián)網(wǎng)的計(jì)算環(huán)境作為基本計(jì)算環(huán)境的擴(kuò)展,以著重強(qiáng)調(diào)可在多個(gè)離散設(shè)備上執(zhí)行現(xiàn)代計(jì)算技術(shù)。
接下來,結(jié)合圖3提供利用硬件安全模塊(HSM)的計(jì)算平臺(tái)的概述,以解釋如何將測(cè)定提交給HSM,且HSM可被配置成在那些測(cè)定正確的情況下向系統(tǒng)資源返回密鑰。注意,圖3中所示的HSM是TPM,它是本領(lǐng)域技術(shù)人員已知的一種HSM。同樣,可令引導(dǎo)中或其后所涉及的軟件組件的進(jìn)一步處理隨附于拆封受TPM保護(hù)的保密信息。然后在圖4中示出在引導(dǎo)過程中軟件組件對(duì)TPM的使用。圖5示出諸如圖4中等軟件組件使用TPM的一個(gè)一般模式,其中下一個(gè)軟件組件的加載和執(zhí)行隨附于對(duì)下一個(gè)組件的可執(zhí)行代碼的散列的證明。
在圖5a、6、7和8中,更加詳細(xì)地解釋了在引導(dǎo)過程中被稱為平臺(tái)配置寄存器(PCR)的TPM寄存器的使用的各個(gè)方面。圖5a示出用于確保只有在特定的引導(dǎo)組件集合就位的情況下引導(dǎo)過程才能繼續(xù)進(jìn)行的系統(tǒng)和方法。圖6演示圖5a中所示的系統(tǒng)和方法的一個(gè)示例,其中計(jì)算機(jī)的成功引導(dǎo)依賴于示例性組件——引導(dǎo)管理器的成功解密和測(cè)定。圖7和8示出一種用于在引導(dǎo)過程成功運(yùn)行操作系統(tǒng)且不再需要引導(dǎo)所需的系統(tǒng)資源(通常駐留在一個(gè)或多個(gè)磁盤分區(qū)上)以后防止對(duì)那些資源進(jìn)行訪問的機(jī)制。
示例性計(jì)算和聯(lián)網(wǎng)環(huán)境圖1中的計(jì)算系統(tǒng)環(huán)境100只是適用的計(jì)算環(huán)境的一個(gè)示例,并不試圖對(duì)本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)將計(jì)算環(huán)境100解釋為具有涉及示例性操作環(huán)境100中所示出的任一組件或其組合的任何依賴性或要求。
本發(fā)明可配合許多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置操作。適用于本發(fā)明的公知計(jì)算系統(tǒng)、環(huán)境、和/或配置的示例包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境、等等。
本發(fā)明可在計(jì)算機(jī)所執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指令的通用上下文中實(shí)施。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)、等等。本發(fā)明還可在分布式計(jì)算環(huán)境中實(shí)踐,其中任務(wù)是由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可位于包括記憶存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
參考圖1用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括計(jì)算機(jī)121形式的通用計(jì)算設(shè)備。計(jì)算機(jī)121的組件可包括,但不限于,處理單元101、系統(tǒng)存儲(chǔ)器103、以及將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各個(gè)系統(tǒng)組件耦合到處理單元101的系統(tǒng)總線102。系統(tǒng)總線102可以是若干種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任何一種的局部總線。作為示例,而非限制,此類體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、以及也稱為Mezzanine總線的外圍組件互連(PCI)總線。
圖1中未示出HSM,但這類設(shè)備可以是實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)的一部分。圖3示出與計(jì)算機(jī)的組件集成的HSM(圖3的實(shí)施例中的TPM),如以下參考圖3所討論。在經(jīng)典實(shí)施例中,HSM可以是為提供一定范圍的安全功能的目的而被焊接到母板、或者集成到諸如圖1等計(jì)算機(jī)的芯片組或其它硬件組件中的硬件芯片。但是,為此說明書目的,應(yīng)當(dāng)理解HSM可在硬件或軟件中實(shí)現(xiàn),并被寬泛地定義為可提供本發(fā)明的操作所需的那些可信功能(即,對(duì)向其提交的測(cè)定的比較和證明,以及用于訪問經(jīng)加密的存儲(chǔ)器資源的密鑰的發(fā)放)的功能單元。TPM還可提供一定范圍的其它功能,如工業(yè)標(biāo)準(zhǔn)TPM的TCG規(guī)范中所描述。
計(jì)算機(jī)121通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)121訪問的任何可用介質(zhì),并包括易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例,而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù),CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)器,磁帶盒、磁帶、磁盤存儲(chǔ)器或其它磁存儲(chǔ)設(shè)備,或可用于存儲(chǔ)所需信息并可由計(jì)算機(jī)121訪問的任何其它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。術(shù)語“已調(diào)制數(shù)據(jù)信號(hào)”是指以在信號(hào)中將信息編碼的這樣一種方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接連線連接等有線介質(zhì),以及諸如聲學(xué)、RF、紅外線及其它無線介質(zhì)等無線介質(zhì)。以上任何組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器103包括諸如只讀存儲(chǔ)器(ROM)104和隨機(jī)存取存儲(chǔ)器(RAM)106等易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)。包含諸如在啟動(dòng)期間幫助在計(jì)算機(jī)121內(nèi)部各元件之間傳遞信息的基本例程的基本輸入/輸出系統(tǒng)105(BIOS)通常存儲(chǔ)在ROM 104中。RAM 106通常包含可由處理單元101即時(shí)訪問和/或正由其操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖1示出操作系統(tǒng)107、應(yīng)用程序108、其它程序模塊109、以及程序數(shù)據(jù)110。
計(jì)算機(jī)121還可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作為示例,圖1示出讀或?qū)懖豢梢苿?dòng)、非易失性磁介質(zhì)的硬盤驅(qū)動(dòng)器112,讀或?qū)懣梢苿?dòng)、非易失性磁盤119的磁盤驅(qū)動(dòng)器118,以及讀或?qū)懼T如CD ROM或其它光介質(zhì)等可移動(dòng)、非易失性光盤253的光盤驅(qū)動(dòng)器120。示例性操作環(huán)境中可使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)碼錄像帶、固態(tài)RAM、固態(tài)ROM、等等。硬盤驅(qū)動(dòng)器112通常通過諸如接口111等不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線102,而磁盤驅(qū)動(dòng)器118和光盤驅(qū)動(dòng)器120通常由諸如接口117等可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線102。
以上所討論并在圖1中示出的各設(shè)備及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)121提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,示出硬盤驅(qū)動(dòng)器112存儲(chǔ)了操作系統(tǒng)113、應(yīng)用程序114、其它程序模塊115、以及程序數(shù)據(jù)116。注意,這些組件可以和操作系統(tǒng)107、應(yīng)用程序108、其它程序模塊109以及程序數(shù)據(jù)110相同或不同。此處賦予操作系統(tǒng)113、應(yīng)用程序114、其它程序模塊115、以及程序數(shù)據(jù)116不同標(biāo)號(hào)以說明至少它們是不同的副本。用戶可通過諸如鍵盤128和定位設(shè)備127(通常指鼠標(biāo)、軌跡球或觸摸墊)等輸入設(shè)備將命令和信息輸入到計(jì)算機(jī)121中。其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀、等等。這些及其它輸入設(shè)備常常通過耦合到系統(tǒng)總線的用戶輸入接口126連接到處理單元101,但也可由諸如并行端口、游戲端口或通用串行總線(USB)等其它接口和總線結(jié)構(gòu)連接。監(jiān)視器139或其它類型的顯示設(shè)備也經(jīng)由諸如視頻接口232等接口連接到系統(tǒng)總線102。除了監(jiān)視器以外,計(jì)算機(jī)還可包括諸如揚(yáng)聲器138和打印機(jī)137等其它外圍輸出設(shè)備,它們可通過輸出外圍接口123連接。
計(jì)算機(jī)121可使用到諸如遠(yuǎn)程計(jì)算機(jī)131等一臺(tái)或多臺(tái)遠(yuǎn)程計(jì)算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)131可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備、或其它普通網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括以上相對(duì)于計(jì)算機(jī)121所描述的許多或所有元件,盡管圖1中僅示出了記憶存儲(chǔ)設(shè)備132。圖1中所示的邏輯連接包括局域網(wǎng)(LAN)135和廣域網(wǎng)(WAN)130,但也可包括其它網(wǎng)絡(luò)。這些網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)、以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)121通過網(wǎng)絡(luò)接口或適配器134連接到LAN 135。當(dāng)在WAN 130網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)121通常包括調(diào)制解調(diào)器129或用于通過WAN(諸如因特網(wǎng))建立通信的其它裝置??梢允莾?nèi)置或外置的調(diào)制解調(diào)器129可經(jīng)由用戶輸入接口126或其它適當(dāng)機(jī)制連接到系統(tǒng)總線102。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)121所描述的程序模塊或其部分可存儲(chǔ)在遠(yuǎn)程記憶存儲(chǔ)設(shè)備中。作為示例,而非限制,圖1示出遠(yuǎn)程應(yīng)用程序133駐留在存儲(chǔ)設(shè)備132上??梢哉J(rèn)識(shí)到,所示網(wǎng)絡(luò)連接是示例性的,并且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。
應(yīng)當(dāng)理解,本文中所描述的各種技術(shù)可結(jié)合硬件、軟件、或在適當(dāng)情況下結(jié)合這兩者的組合來實(shí)現(xiàn)。因此,本發(fā)明的方法和裝置,或其部分的某些方面可表現(xiàn)為具體化為諸如軟盤、CD-ROM、硬盤驅(qū)動(dòng)器、或任何其它機(jī)器可讀的存儲(chǔ)介質(zhì)等可觸知介質(zhì)中的程序代碼(即,指令)的形式,其中當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器中并由其執(zhí)行時(shí),該機(jī)器即變?yōu)橛糜趯?shí)踐本發(fā)明的裝置。在程序代碼在可編程計(jì)算機(jī)上的執(zhí)行的情形中,計(jì)算設(shè)備一般包括處理器、該處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備、以及至少一個(gè)輸出設(shè)備??蓪?shí)現(xiàn)或利用結(jié)合本發(fā)明所描述的過程的一個(gè)或多個(gè)程序,例如,通過使用API、可重復(fù)使用的控件、等等。較佳的是,用高層過程或面向?qū)ο缶幊陶Z言實(shí)現(xiàn)這些程序來與計(jì)算機(jī)系統(tǒng)通信。但是,如果需要的話,可用匯編或機(jī)器語言實(shí)現(xiàn)這(些)程序。在任何情況下,語言都可以是已編譯或已解釋的語言,并可與硬件實(shí)現(xiàn)相結(jié)合。
盡管示例性實(shí)施例涉及在一個(gè)或多個(gè)獨(dú)立計(jì)算機(jī)系統(tǒng)的上下文中使用本發(fā)明,但是本發(fā)明不受此限制,而是可結(jié)合諸如網(wǎng)絡(luò)或分布式計(jì)算環(huán)境等任何計(jì)算環(huán)境來實(shí)現(xiàn)。此外,本發(fā)明可在多個(gè)處理芯片或設(shè)備中或之上實(shí)現(xiàn),而存儲(chǔ)也可類似地在多個(gè)設(shè)備上實(shí)現(xiàn)。這些設(shè)備可包括個(gè)人計(jì)算機(jī)、網(wǎng)絡(luò)服務(wù)器、手持式設(shè)備、超型計(jì)算機(jī)、或集成到諸如汽車或飛機(jī)等其它系統(tǒng)中的計(jì)算機(jī)。
圖2中提供一種示例性聯(lián)網(wǎng)計(jì)算環(huán)境。本領(lǐng)域普通技術(shù)人員可以認(rèn)識(shí)到,網(wǎng)絡(luò)可連接任何計(jì)算機(jī)或其它客戶機(jī)或服務(wù)器設(shè)備,或者是在分布式計(jì)算環(huán)境中。就此而言,具有任何數(shù)量的處理、記憶或存儲(chǔ)單元,以及任何數(shù)量的同時(shí)發(fā)生的應(yīng)用程序和進(jìn)程的任何計(jì)算機(jī)系統(tǒng)或環(huán)境被認(rèn)為適合結(jié)合所提供的系統(tǒng)和方法使用。
分布式計(jì)算通過計(jì)算設(shè)備和系統(tǒng)之間的交換來提供計(jì)算機(jī)資源和服務(wù)的共享。這些資源和服務(wù)包括信息的交換、文件的高速緩存和磁盤存儲(chǔ)。分布式計(jì)算利用網(wǎng)絡(luò)連接性,從而允許客戶機(jī)調(diào)節(jié)它們集體的力量以益于整個(gè)企業(yè)。在這點(diǎn)上,各種設(shè)備可具有涉及本文中所描述的過程的應(yīng)用程序、對(duì)象或資源。
圖2提供示例性聯(lián)網(wǎng)或分布式計(jì)算環(huán)境的示意圖。該環(huán)境包括計(jì)算設(shè)備271、272、276和277,以及對(duì)象273、274和275,及數(shù)據(jù)庫278。這些實(shí)體271、272、273、274、275、276、277和278中的每一個(gè)都可包括或利用程序、方法、數(shù)據(jù)存儲(chǔ)、可編程邏輯、等等。實(shí)體271、272、273、274、275、276、277和278可以跨越諸如PDA、音頻/視頻設(shè)備、MP3播放器、個(gè)人計(jì)算機(jī)等相同或不同的設(shè)備的各個(gè)部分。每個(gè)實(shí)體271、272、273、274、275、276、277和278可通過通信網(wǎng)絡(luò)270與另一實(shí)體271、272、273、274、275、276、277和278通信。就此而言,任一實(shí)體都可負(fù)責(zé)數(shù)據(jù)庫278或其它存儲(chǔ)元件的維護(hù)和更新。
此網(wǎng)絡(luò)270本身可包括向圖2的系統(tǒng)提供服務(wù)的其它計(jì)算實(shí)體,且本身可表示多個(gè)互連的網(wǎng)絡(luò)。根據(jù)本發(fā)明的一個(gè)方面,每個(gè)實(shí)體271、272、273、274、275、276、277和278可包含離散的功能程序模塊,它們可利用API或其它對(duì)象、軟件、固件和/或硬件,來請(qǐng)求其它實(shí)體271、272、273、274、275、276、277和278中的一個(gè)或多個(gè)的服務(wù)。
還可認(rèn)識(shí)到,諸如275等對(duì)象可主宿在另一計(jì)算設(shè)備276上。因此,盡管所示的物理環(huán)境可能將所連接的設(shè)備示為計(jì)算機(jī),但是此類圖示僅僅是示例性的,且該物理環(huán)境可被替換地圖示或描述為包括諸如PDA、電視機(jī)、MP3播放器等各種數(shù)碼設(shè)備、諸如接口、COM對(duì)象等軟件對(duì)象、等等。
有各種支持分布式計(jì)算環(huán)境的系統(tǒng)、組件和網(wǎng)絡(luò)配置。例如,計(jì)算系統(tǒng)可由有線或無線系統(tǒng)、由局域網(wǎng)或廣域網(wǎng)連接到一起。目前,許多網(wǎng)絡(luò)被耦合到因特網(wǎng),它為廣泛分布的計(jì)算提供基礎(chǔ)結(jié)構(gòu),并且包括許多不同的網(wǎng)絡(luò)。任何此類基礎(chǔ)結(jié)構(gòu),無論其是否被耦合到因特網(wǎng),都可結(jié)合所提供的系統(tǒng)和方法來使用。
網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)可允許諸如客戶/服務(wù)器、點(diǎn)對(duì)點(diǎn)、或混合體系結(jié)構(gòu)等許多網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。“客戶”是一個(gè)類或組群的成員,它使用其不相關(guān)的另一個(gè)類或組群的服務(wù)。在計(jì)算中,客戶是請(qǐng)求另一程序所提供的服務(wù)的進(jìn)程,即,大致上是指令或任務(wù)的集合??蛻暨M(jìn)程無須“知道”關(guān)于另一程序或服務(wù)本身的任何工作細(xì)節(jié)即可使用所請(qǐng)求的服務(wù)。在客戶/服務(wù)器體系結(jié)構(gòu)中,特別是在聯(lián)網(wǎng)系統(tǒng)中,客戶通常是訪問另一臺(tái)計(jì)算機(jī)(例如,服務(wù)器)所提供的共享的網(wǎng)絡(luò)資源的計(jì)算機(jī)。在圖2的示例中,取決于情況,任何實(shí)體271、272、273、274、275、276、277和278都可被視為客戶機(jī)、服務(wù)器、或這兩者。
盡管不是必須,但服務(wù)器通常是,通過諸如因特網(wǎng)等遠(yuǎn)程或本地網(wǎng)絡(luò)可訪問的遠(yuǎn)程計(jì)算機(jī)系統(tǒng)??蛻暨M(jìn)程可能在第一計(jì)算機(jī)系統(tǒng)上活動(dòng),而服務(wù)器進(jìn)程可在第二計(jì)算機(jī)系統(tǒng)上活動(dòng),它們通過通信介質(zhì)相互通信,從而提供分布式功能,并允許多個(gè)客戶利用該服務(wù)器的信息收集能力。任何軟件對(duì)象都可以分布在多個(gè)計(jì)算設(shè)備或?qū)ο笊稀?br>
客戶機(jī)和服務(wù)器使用協(xié)議層所提供的功能相互通信。例如,超文本傳輸協(xié)議(HTTP)是結(jié)合萬維網(wǎng)(WWW,或稱“Web”)使用的公共協(xié)議。通常,可使用諸如因特網(wǎng)協(xié)議(IP)地址等計(jì)算機(jī)網(wǎng)絡(luò)地址或諸如統(tǒng)一資源定位器(URL)等其它引用來向服務(wù)器或客戶計(jì)算機(jī)標(biāo)識(shí)彼此。網(wǎng)絡(luò)地址可被稱為URL地址??稍谕ㄐ沤橘|(zhì)上提供通信,例如,客戶機(jī)和服務(wù)器可經(jīng)由TCP/IP連接相互耦合以進(jìn)行高容量的通信。
按照可根據(jù)圖1的一般框架來構(gòu)建的多種不同的計(jì)算環(huán)境,以及在諸如圖2等網(wǎng)絡(luò)環(huán)境里的計(jì)算中可能發(fā)生的其它多樣性,本文中所提供的系統(tǒng)和方法在任何情況下都不能被解釋為被限制于特定的計(jì)算體系結(jié)構(gòu)。本發(fā)明不應(yīng)被限制于任何單個(gè)實(shí)施例,相反是應(yīng)根據(jù)所附權(quán)利要求書的廣度和范圍來解釋。
示例性TPM保護(hù)的引導(dǎo)序列本發(fā)明的實(shí)施例在安全引導(dǎo)過程中使用TPM。在圖3中的計(jì)算機(jī)體系結(jié)構(gòu)的上下文中示出TPM。盡管構(gòu)想在本發(fā)明的實(shí)施例中使用的TPM可以是遵守TCG1.2的,但可使用用于驗(yàn)證諸如被放在PCR中的測(cè)定等測(cè)定、并在這些測(cè)定是正確的情況下拆封保密信息的任何HSM。
就此而言,圖3給出諸如圖1等計(jì)算機(jī)的高度一般化的視圖中可訪問存儲(chǔ)器305的CPU 300。CPU 300可依靠TPM 301提供某些安全功能。一般而言,CPU 300可首先執(zhí)行引導(dǎo)過程中所涉及的數(shù)據(jù)的測(cè)定,而那些測(cè)定可被安全地存儲(chǔ)在TPM301中,如密封的PCR值304所示。注意,在各個(gè)實(shí)施例中,本文附圖中所示的各PCR值304和303實(shí)際上可被存儲(chǔ)在由代數(shù)方程擴(kuò)展的一個(gè)或多個(gè)單個(gè)存儲(chǔ)位置中,如TCG1.2規(guī)范所定義。
保密信息302可被密封到TPM 301中的特定PCR值304。為從TPM 301檢索保密信息302,正確的PCR值必須被輸入到PCR 303中。這些正確的值可通過測(cè)定與獲得密封在TPM 301中的PCR值304所測(cè)定的數(shù)據(jù)相同的數(shù)據(jù)來獲得。多個(gè)保密信息302可被密封到各個(gè)PCR 304。例如,為檢索第一保密信息A,可能要求正確的值被存儲(chǔ)在PCR[1]、PCR[2]和PCR[3]中。為獲得第二保密信息B,PCR[4]中可能要求第四正確值。
如果被放到PCR 303中的測(cè)定不匹配密封在TPM 301中的那項(xiàng)測(cè)定的值,則當(dāng)請(qǐng)求TPM 301拆封保密信息302時(shí),拆封將失敗。如果正確的測(cè)定被放到PCR303中,則當(dāng)請(qǐng)求TPM 301拆封保密信息302時(shí),TPM 301可信以執(zhí)行此操作。因此,為此應(yīng)用程序目的,“正確的”測(cè)定,或正確的值是保密信息302被密封到的測(cè)定,由此允許由TPM 301拆封保密信息302。注意,在一些實(shí)施例中,正確的測(cè)定可能是惡意代碼的測(cè)定。例如,當(dāng)密封在TPM 301中的初始測(cè)定304被破壞時(shí),便出現(xiàn)這種情況。
密封到特定測(cè)定的保密信息可以是任何數(shù)據(jù)。通常,保密信息302會(huì)表現(xiàn)為解密密鑰和/或二進(jìn)制大對(duì)象(BLOB)的形式。一般而言,密鑰提供可用來將數(shù)據(jù)解密的信息。密封的BLOB可包含密鑰以及可能有用的其它數(shù)據(jù)。就此而言,可通過用密鑰來替換BLOB來構(gòu)造本文中所討論的各種技術(shù)的等效方案,反之亦然,如本領(lǐng)域技術(shù)人員將會(huì)認(rèn)識(shí)到。因此,如果CPU 300向303中的PCR提交正確的測(cè)定,則當(dāng)請(qǐng)求諸如密鑰等對(duì)應(yīng)的保密信息302時(shí),TPM 301可拆封該保密信息302。來自302的密鑰隨即可被用來將計(jì)算機(jī)300可訪問的存儲(chǔ)器305的部分解密。在本發(fā)明的實(shí)施例中,TPM 301可被配置成授予對(duì)三個(gè)保密信息A、B和C的訪問,如圖3中所示。保密信息302可被密封到各個(gè)被請(qǐng)求的PCR值,因此僅在執(zhí)行了某些測(cè)定以后才可被訪問。這三個(gè)密鑰,或三個(gè)保密信息,在本文中將被稱為,第一個(gè),只供引導(dǎo)訪問保密信息,第二個(gè),卷綁定保密信息,以及第三個(gè),密碼保密信息。
TPM相關(guān)活動(dòng)可被存儲(chǔ)在日志307中。在一些實(shí)施例中,日志307可由計(jì)算機(jī)的BIOS維護(hù)。任何其它進(jìn)程也可負(fù)責(zé)維護(hù)日志307。因此,如果諸如軟件組件308或其它數(shù)據(jù)309等數(shù)據(jù)被測(cè)定到PCR 303中,則被測(cè)定的數(shù)據(jù)可在日志307中加以標(biāo)識(shí)。如果作出保密信息拆封的請(qǐng)求,則該請(qǐng)求事件可在日志307中被標(biāo)識(shí)。這些只是將TPM有關(guān)的活動(dòng)存儲(chǔ)到日志307中的兩個(gè)示例,日志中可包含廣大范圍的其它事件和活動(dòng)的記錄。
通常,TPM 301與信任測(cè)定的靜態(tài)根(SRTM)協(xié)同操作,以執(zhí)行可信測(cè)定并將它們提交給TPM 301。但是,有諸如通過使用DRTM關(guān)系等進(jìn)行進(jìn)行安全測(cè)定的其它過程可用。本發(fā)明的實(shí)施例能以此方式使用諸如SRTM等可信測(cè)定過程,并且就此而言,SRTM可以是本文中所討論的各種軟件組件用以測(cè)定初始的基于盤的引導(dǎo)代碼的BIOS標(biāo)準(zhǔn)SRTM(也稱為過程和RTM)。該系統(tǒng)還可擴(kuò)展SRTM以測(cè)定引導(dǎo)操作程序的早期階段中所涉及的其它代碼和關(guān)鍵性數(shù)據(jù),以使操作系統(tǒng)引導(dǎo)的任何早期階段可被測(cè)定。注意,PCR 303可包含從任何地方獲得的值。這些值可以是諸如軟件組件308或其它數(shù)據(jù)309等數(shù)據(jù)的測(cè)定。本發(fā)明不局限于被放在PCR 303中的數(shù)據(jù)測(cè)定或其它值的任何排它性組合。
在TPM保護(hù)的引導(dǎo)過程中,圖3中所顯示的安排可被用來測(cè)定圖4中所示的示例性軟件組件,并將這些測(cè)定存儲(chǔ)在PCR 303中。已知圖4中所示的、被選擇由本發(fā)明的實(shí)施例測(cè)定的引導(dǎo)組件,特別是基于盤的代碼組件是很少改變且易受攻擊的。因此,強(qiáng)加這些特定引導(dǎo)組件仍然保持不變,除非通過本文中所描述的合格的維護(hù)和更新過程,使顯著增強(qiáng)數(shù)據(jù)安全所要付出的代價(jià)相對(duì)很小。
參考圖4,示出一系列軟件組件400-407以提供計(jì)算機(jī)的示例性引導(dǎo)過程。本發(fā)明不局限于所示的特定組件,也不局限于各組件的順序。所示組件可被順序加載,以測(cè)定的信任內(nèi)核根(CRTM)400開始,并以本文中被一般化為單個(gè)軟件組件407的操作系統(tǒng)(OS)407的組件結(jié)束。加載組件使得給予組件對(duì)諸如存儲(chǔ)器和CPU等計(jì)算機(jī)資源的訪問、以使該組件的指令可由CPU執(zhí)行成為必須。如果圖4中的組件是惡意的或被破壞的,則一旦它被加載即會(huì)被用來規(guī)避安全測(cè)定。因此,一種根據(jù)本發(fā)明引導(dǎo)計(jì)算機(jī)的過程包括在允許一個(gè)或多個(gè)組件執(zhí)行以前,將它(們)測(cè)定到一個(gè)或多個(gè)PCR 303中??闪畛晒Φ囊龑?dǎo)隨附于被密封到測(cè)定304的可信集合的保密信息302,而測(cè)定304的可信集合被密封到TPM中。但是注意,本發(fā)明也可能將惡意代碼的測(cè)定密封到TPM中。如果惡意代碼在密封的時(shí)候運(yùn)行,則引導(dǎo)可能需要那些測(cè)定。理想的是,保密信息被密封到可信代碼的測(cè)定304中。如果被放到PCR 303中的測(cè)定是正確的,則來自302的保密信息可被拆封,以允許機(jī)器繼續(xù)進(jìn)行安全引導(dǎo)。圖5中示出拆封保密信息302的過程。
在某些使用情形中,機(jī)器的所有者可能確定他們想要“鎖定”機(jī)器的配置,以確保除先前被驗(yàn)證的代碼以外絕沒有其它基于ROM的代碼被執(zhí)行。在此情形中,機(jī)器的所有者可通過選擇其它要使用的PCR 302來將更多軟件組件配置成涉及驗(yàn)證過程(BIOS、選項(xiàng)ROM)。所有者還可確定他們還想要使用經(jīng)TPM 301驗(yàn)證的機(jī)器密碼。這允許在本發(fā)明的標(biāo)準(zhǔn)實(shí)施例中通常提供的安全之上進(jìn)行安全擴(kuò)展,并允許用戶在機(jī)器安全和使用方便之間進(jìn)行權(quán)衡。
圖5示出一種在加載后續(xù)組件以前使用TPM來確保該后續(xù)軟件組件的完整性的技術(shù)。可通過將適當(dāng)?shù)闹噶罘诺街T如圖4的組件等一系列組件中來執(zhí)行圖5的步驟。就此而言,圖5的過程可以CRTM組件508的執(zhí)行開始。諸如CRTM及圖4的部分或所有其它組件等組件可承載用于測(cè)定另一個(gè)組件并將諸如來自圖3中的303的結(jié)果放到PCR中的指令。承載此類指令的組件有時(shí)被稱為測(cè)定的信任根(RTM),并可包含利用如上文所提及的SRTM的指令。因此,如果引導(dǎo)塊測(cè)定引導(dǎo)管理器,則引導(dǎo)塊起到引導(dǎo)管理器的RTM的作用。
RTM可將后續(xù)組件加載到存儲(chǔ)器500中,然后對(duì)后續(xù)組件501執(zhí)行測(cè)定,并將測(cè)定添加到PCR 502中。如果RTM需要諸如來自TPM 503的密鑰或BLOB等保密信息,則它可請(qǐng)求此類保密信息,且僅當(dāng)為訪問該保密信息所需的所有PCR都加載了正確的PCR值時(shí),TPM才會(huì)發(fā)放被請(qǐng)求的保密信息。因此,可能基于從TPM 504檢索到的信息,試圖拆封保密信息。如果在步驟505中拆封成功,則可能采取額外步驟,可包括加載后續(xù)組件,以及以下所描述的其它動(dòng)作。如果拆封不成功,則PCR中的值很可能是不正確的,因此執(zhí)行代碼可能是被破壞了的??稍诓襟E507產(chǎn)生一個(gè)錯(cuò)誤,并采取適當(dāng)測(cè)定來確保不會(huì)對(duì)存儲(chǔ)在計(jì)算機(jī)上的敏感信息提供任何訪問,例如通過使用計(jì)算機(jī)盤上數(shù)據(jù)的加密,以及避免公開解密密鑰?;蛘?,可實(shí)現(xiàn)例如通過將系統(tǒng)恢復(fù)到會(huì)產(chǎn)生正確PCR值的狀態(tài),或通過認(rèn)證用戶以在圖3的值302中授權(quán)新的密封PCR值來維護(hù)系統(tǒng)的過程。以下解釋這些過程。如果在步驟503不需要任何保密信息,則無需要求任何保密信息即可加載后續(xù)組件,如圖所示。
可共同參考圖4和圖5來示出根據(jù)本發(fā)明的系統(tǒng)和方法的示例性引導(dǎo)過程。首先CRTM 400可被加載,它加載并測(cè)定基本輸入/輸出系統(tǒng)(BIOS)401。例如可通過在BIOS上執(zhí)行散列,然后將散列測(cè)定值提交給PCR來進(jìn)行此測(cè)定。BIOS隨即可被允許執(zhí)行,并起到主引導(dǎo)記錄(MBR)402的RTM的作用。MBR可被測(cè)定到PCR中,然后MBR 402可被允許執(zhí)行。MBR可測(cè)定引導(dǎo)扇區(qū)組件403,后者隨即被允許執(zhí)行??捎擅恳粋€(gè)組件404、405、406和407、以及必要的話由操作系統(tǒng)407中的任何組件重復(fù)此加載、測(cè)定、寫到PCR、然后過渡到后續(xù)組件的模式。本發(fā)明的其它方面包括此過程的變更,它們可能在沿此過程的任何點(diǎn)請(qǐng)求和使用保密信息,如圖5中示出此類請(qǐng)求。就此而言,本發(fā)明的實(shí)施例通過可在過渡到后續(xù)組件以前執(zhí)行的額外步驟來提供提高的安全。這些額外的步驟可令成功的機(jī)器引導(dǎo)隨附于通過測(cè)定正確的PCR值獲得的保密信息,從而確保引導(dǎo)中所使用的部分或全部數(shù)據(jù)在保密信息被密封時(shí)都是符合的。這些額外步驟還可用于避免對(duì)引導(dǎo)期間所需但其后不再需要的資源的引導(dǎo)后訪問。
圖4和圖5的基本過程可通過請(qǐng)求組件400-406中的一部分在過渡到后續(xù)組件以前檢索保密信息(可以是密鑰、BLOB、或允許訪問解密密鑰等的其它受保護(hù)信息)來增強(qiáng)。因此本發(fā)明的實(shí)施例可通過操作系統(tǒng)在引導(dǎo)過程中的戰(zhàn)略點(diǎn)訪問一個(gè)或多個(gè)保密信息來調(diào)節(jié)有用操作的性能。如果發(fā)現(xiàn)經(jīng)測(cè)定的代碼模塊401-406(本文中也稱為組件和/或軟件過程)中的任何一個(gè)改變了,則可扣留關(guān)鍵性的保密信息??杀豢哿舻谋C苄畔⒌氖纠小癝YSKEY”(由LSASS用來將諸如服務(wù)所使用的密碼等本地保密信息加密)、實(shí)質(zhì)上用于將存儲(chǔ)在計(jì)算機(jī)硬盤驅(qū)動(dòng)器或磁盤分區(qū)上的任何信息解密的卷加密密鑰、以及諸如EFS等較高層系統(tǒng)保護(hù)所需的保密信息。較高層保護(hù)隨即以比SRTM豐富得多的方式使用目錄來進(jìn)行驗(yàn)證。
為將機(jī)器修復(fù)到其可成功引導(dǎo)的狀態(tài),可實(shí)現(xiàn)以下所描述的系統(tǒng)和方法,作為對(duì)本文中所描述的安全引導(dǎo)過程的補(bǔ)充。
示例性附加引導(dǎo)保護(hù)技術(shù)在諸如參考圖4和5所能理解的引導(dǎo)序列等引導(dǎo)序列中(其中多個(gè)軟件組件可被配置成在過渡到下一組件以前測(cè)定下一組件),可采取一些附加的預(yù)防措施以進(jìn)一步增強(qiáng)存儲(chǔ)在計(jì)算機(jī)上的數(shù)據(jù)的安全。這些附加預(yù)防措施是此章節(jié)的主題。本文中所描述的任一或所有預(yù)防措施可被結(jié)合到本發(fā)明的實(shí)施例中。在一個(gè)較佳的實(shí)施例中,使用了本文中所解釋的所有預(yù)防措施,如以下將會(huì)解釋。但是本發(fā)明不局限于這些實(shí)現(xiàn)。
首先參考圖5a,通過調(diào)節(jié)這類平臺(tái)完整性上的保密信息的發(fā)布,可令計(jì)算機(jī)的引導(dǎo)依賴于這些先于操作系統(tǒng)的組件的完整性。首先提供圖5a的概念綜覽,然后提供圖5a的更詳細(xì)描述。
首先,可用諸如引導(dǎo)管理器等軟件組件的公知散列來擴(kuò)展PCR。這導(dǎo)致引導(dǎo)保密信息成為不可拆封的,如果所有在先的軟件組件都是可信的,則這是令人滿意的。所有在先的組件都可被信任,引導(dǎo)保密信息可被拆封。在此交匯點(diǎn),例如引導(dǎo)管理器等軟件組件的狀態(tài)是未知的。
接下來,可將引導(dǎo)保密信息解密,并可使用卷對(duì)稱密鑰將未決系統(tǒng)分區(qū)解密,以將引導(dǎo)管理器讀入存儲(chǔ)器中。
第三,預(yù)認(rèn)證步驟可通過對(duì)照公知散列來證明當(dāng)前正被解密并在存儲(chǔ)器中的引導(dǎo)管理器的散列來鞏固。如果兩個(gè)散列匹配,則引導(dǎo)可正常進(jìn)行。如果散列不正確,則可使PCR無效。至少有以下幾種檢查散列是否正確的方法a.對(duì)照公知散列檢查引導(dǎo)管理器的散列。如果系統(tǒng)能夠拆封引導(dǎo)保密信息,則我們知道公知散列是有效的,因此意味著如果引導(dǎo)管理器的散列匹配用來拆封引導(dǎo)blob的散列,則我們知道引導(dǎo)管理器的散列是有效的。
b.對(duì)照存儲(chǔ)在密封保密信息中的散列檢查引導(dǎo)管理器的散列。
c.用引導(dǎo)管理器的公知散列擴(kuò)展不同的PCR,并比較這兩個(gè)散列。
現(xiàn)在更詳細(xì)地參考圖5,在步驟550執(zhí)行當(dāng)前組件,或RTM。當(dāng)前RTM可執(zhí)行以下步驟以過渡到下一個(gè)軟件組件。后續(xù)組件的預(yù)期測(cè)定可被加載到PCR中,例如PCR[a]551。然后RTM組件可嘗試檢索保密信息552。如果沒有用正確的值加載PCR[a],則當(dāng)前RTM可能無效,而對(duì)該保密信息的訪問可能被拒絕,從而阻塞了正常的引導(dǎo),如參考圖5所解釋。該保密信息可用來將后續(xù)組件553解密。因?yàn)楹罄m(xù)組件已被解密,所以想要成為攻擊者的人要逆向工程和將后續(xù)組件修改為以非預(yù)期方式執(zhí)行是不可能的。已被解密的后續(xù)組件可被測(cè)定554,且測(cè)定可被放到諸如PCR[b]555等PCR中。RTM接下來可比較PCR[a]和[b]的值。如果它們匹配,則RTM可過渡到下一組件,它可以是后續(xù)組件556。如果它們不匹配,則例如通過將存儲(chǔ)器的某個(gè)預(yù)定部分測(cè)定到那些PCR中來將PCR[a]和[b]求交運(yùn)算為終值,而正常引導(dǎo)可被中止557。
參考圖6,所示流程圖示出圖5a中所介紹的系統(tǒng)和方法的一個(gè)實(shí)施例,實(shí)現(xiàn)用于在在先組件的成功操作以及關(guān)鍵性引導(dǎo)組件的完整性的前提下調(diào)節(jié)對(duì)該關(guān)鍵性引導(dǎo)組件的訪問的系統(tǒng)和方法的若干步驟。圖6中所使用的示例性引導(dǎo)組件是引導(dǎo)管理器,盡管任何組件都可以是圖6中所演示的技術(shù)的主題。為此解釋的目的,可在圖4的上下文中理解圖6的步驟。可用串行方式執(zhí)行多個(gè)軟件組件,且其中一個(gè)或多個(gè)可在過渡到下一組件以前測(cè)定下一組件。
在此上下文中,諸如引導(dǎo)扇區(qū)等第一組件可在引導(dǎo)過程中的某個(gè)點(diǎn)被加載,如步驟612中所示。根據(jù)圖5a中所闡述的技術(shù),引導(dǎo)扇區(qū)隨即可被測(cè)定到PCR中。步驟611中使用的示例性PCR是PCR[8],盡管本發(fā)明并不局限于任何特定PCR。然后計(jì)算機(jī)可過渡到引導(dǎo)扇區(qū)612的執(zhí)行?,F(xiàn)在引導(dǎo)扇區(qū)可起到引導(dǎo)塊的RTM的作用,就此而言,可將引導(dǎo)塊測(cè)定到PCR[9]中608。計(jì)算機(jī)隨即可過渡到引導(dǎo)塊600的執(zhí)行?,F(xiàn)在引導(dǎo)塊可起到引導(dǎo)管理器的RTM的作用,并能執(zhí)行以下步驟中的附加安全測(cè)定。
由此,引導(dǎo)塊可將引導(dǎo)管理器的期望測(cè)定值加載到PCR 601中。圖6中所使用的示例性PCR是PCR 10。如果加載到PCR[8]、[9]和[10],以及任何在先或后續(xù)的被配置以進(jìn)行控制的PCR中的值是正確的,則TPM可在引導(dǎo)塊請(qǐng)求保密信息時(shí)授予對(duì)這類保密信息的訪問。該保密信息可以是用于解密存儲(chǔ)器中存儲(chǔ)了引導(dǎo)管理器的一個(gè)部分(諸如硬盤的一個(gè)部分等)的解密密鑰。此密鑰可由引導(dǎo)塊組件檢索,如步驟602中所示。注意,請(qǐng)求引導(dǎo)塊為引導(dǎo)管理器產(chǎn)生正確的期望測(cè)定提供了第一層安全如果提供了不正確的值,則TPM可拒絕對(duì)將引導(dǎo)管理器解密所需的密鑰的訪問。
當(dāng)正確的期望值被提供時(shí),加密密鑰可被檢索,它隨即可在步驟603中被用來將引導(dǎo)管理器組件解密。然后引導(dǎo)塊可被配置成永久清除用來將引導(dǎo)管理器解密的“只供引導(dǎo)訪問”密鑰604。通過在加載引導(dǎo)管理器以前清除只供引導(dǎo)訪問密鑰,一層安全被添加,因?yàn)槿绻龑?dǎo)管理器或后續(xù)加載的組件是被破壞的,則它將不能訪問該密鑰,從而在它可訪問的數(shù)據(jù)中將被嚴(yán)格限制。當(dāng)計(jì)算機(jī)的硬盤幾乎完全被加密時(shí),這尤其為真,如本發(fā)明的各個(gè)實(shí)施例所構(gòu)想。
接下來,可對(duì)引導(dǎo)管理器組件進(jìn)行測(cè)定,諸如計(jì)算該組件的散列值605。該測(cè)定可被存儲(chǔ)在另一個(gè)PCR中,諸如PCR 13606。可比較存儲(chǔ)在PCR 10和PCR 13中的值,以確定它們是否匹配,如步驟607中所示。如果它們不匹配,則可推斷引導(dǎo)管理器已經(jīng)改變,并可能包含被破壞的或惡意的代碼。記住尚未過渡到引導(dǎo)管理器組件的執(zhí)行,因此它還不能產(chǎn)生任何危害。如果引導(dǎo)管理器已被破壞,則引導(dǎo)塊可采取適當(dāng)?shù)陌踩珳y(cè)定。由此,可令計(jì)算機(jī)的引導(dǎo)隨附于諸如引導(dǎo)管理器等關(guān)鍵性軟件組件的成功解密和測(cè)定。
參考圖7和8,示出一種示例性系統(tǒng)和方法,可用來密封引導(dǎo)期間所使用的保密信息,使其與稍后控制計(jì)算資源的進(jìn)程隔絕。圖7和8中所揭示的過程在計(jì)算機(jī)硬盤驅(qū)動(dòng)器上現(xiàn)有多個(gè)盤分區(qū)的情況中特別有用,盡管可認(rèn)識(shí)到它們有在各種設(shè)置中有用的其它優(yōu)點(diǎn)。圖7和8中所示的過程的一個(gè)優(yōu)點(diǎn)是它們可被用來將軟件組件的訪問限制在單個(gè)分區(qū)中。盡管在引導(dǎo)的早期階段組件常常要求訪問所有盤分區(qū),但是稍后階段以及引導(dǎo)以后的組件可被限制于單個(gè)分區(qū)。圖7和8示出用于確保此類限制的示例性系統(tǒng)和方法。
圖7提供圖8中所示過程的設(shè)置。圖的左邊示出多個(gè)盤分區(qū),包括分區(qū)A 700、分區(qū)B 702、以及分區(qū)C 704。如本領(lǐng)域技術(shù)人員可以理解,每個(gè)分區(qū)都可被完全加密,除了引導(dǎo)的早期階段所需的信息,它們通常被存儲(chǔ)在諸如701、703和705等保留區(qū)中。沿著圖7的底部是軟件組件,包括引導(dǎo)塊706、引導(dǎo)管理器707、以及可如參考圖4所述進(jìn)行串行加載的操作系統(tǒng)(OS)加載器708。圖7中心示出多個(gè)PCR,包括PCR x 709、PCR y 710、t1時(shí)的PCR z 711、以及t2時(shí)的PCR z 712。這些PCR通常用數(shù)字而不是字母來標(biāo)識(shí),但這里使用字母來著重強(qiáng)調(diào)本發(fā)明不局限于所使用的特定PCR,盡管一些實(shí)施例可能使用圖8中所討論的PCR。圖7的PCR起到參考圖5所描述的功能的作用——可將值放在其中,且TPM 713可被信任以指示該值是否正確,和/或在正確的值被輸入時(shí)授予對(duì)保密信息的訪問。
在對(duì)圖8所反映的實(shí)施例進(jìn)行更詳細(xì)的解釋以前,可參考圖7闡述一般概念??赡苄枰粋€(gè)或多個(gè)PCR的第一值,諸如t1時(shí)的PCR z 711的值,以通過TPM 713來獲得對(duì)諸如密鑰或BLOB 714等只供引導(dǎo)保密信息的訪問。只供引導(dǎo)密鑰或BLOB 714可能可用于將來自多個(gè)分區(qū)的信息解密,如計(jì)算機(jī)引導(dǎo)的早期階段中所要求的??赡苄枰粋€(gè)或多個(gè)第二PCR值,諸如t2時(shí)的PCR z 712的值,以獲得對(duì)卷綁定密鑰或BLOB 715的訪問。卷綁定密鑰或BLOB可能只可用于分區(qū)的一個(gè)子集,諸如僅可用于將來自分區(qū)A 700的數(shù)據(jù)解密。由此,通過使用同一PCR在不同時(shí)間的不同值,并調(diào)節(jié)對(duì)那些多個(gè)值上的適當(dāng)密鑰的密鑰或BLOB訪問,可阻塞下游軟件組件訪問對(duì)引導(dǎo)組件可用的信息。為使引導(dǎo)正確發(fā)生,卷綁定密鑰或BLOB 715必須被訪問,這確保只供引導(dǎo)密鑰或BLOB 714不再可被訪問。此系統(tǒng)的其它優(yōu)點(diǎn)對(duì)本領(lǐng)域技術(shù)人員將會(huì)是顯而易見的,特別是結(jié)合圖6中所示的系統(tǒng)和方法考慮以后。
參考圖8,示出用于實(shí)現(xiàn)諸如圖7中所圖解等系統(tǒng)的各種實(shí)施例。由此,在步驟800引導(dǎo)管理器組件可被加載。在結(jié)合了圖6的技術(shù)的系統(tǒng)中,可根據(jù)本文中所演示的過程加載引導(dǎo)管理器。例如,在步驟801,引導(dǎo)管理器的散列可被測(cè)定到PCR 10中。接下來,可不僅基于所有先前測(cè)定的值(如TPM用途中典型的)而且還基于PCR[y]和[z]的值(例如PCR[11]和[12],且尚未被用測(cè)定加載,因此仍保持它們的初始值,該初始值通常為零)來從TPM檢索只供引導(dǎo)訪問的密鑰。由此,在步驟802,可基于PCR[y]和[z]的初始值檢索保密信息。
參考圖8,此外在步驟803和804,OS加載器組件可被加載到存儲(chǔ)器中,并由引導(dǎo)管理器測(cè)定。OS加載器的散列可被放到PCR[y]中805。注意對(duì)PCR[y]的這一改變有效地撤消將來對(duì)只供引導(dǎo)訪問保密信息的訪問,因此如果該保密信息被引導(dǎo)管理器清除,則下游組件不能再找到它。然后可將PCR[y]與存儲(chǔ)在只供引導(dǎo)訪問的保密信息中的值相比較806。例如,如果只供引導(dǎo)訪問保密信息是BLOB,則可隨該BLOB存儲(chǔ)該P(yáng)CR值。如果比較成功,則可從只供引導(dǎo)訪問BLOB提取卷綁定密鑰807。卷綁定密鑰可被測(cè)定到PCR[z]中808。通過PCR[z],TPM可被配置成基于新的PCR值授予對(duì)卷綁定保密信息的訪問809。因此,在步驟809中,可在只供引導(dǎo)訪問BLOB的不可訪問基礎(chǔ)上調(diào)節(jié)卷綁定BLOB的獲得。在使用此技術(shù)的本發(fā)明的實(shí)現(xiàn)中,所有后續(xù)進(jìn)程可被有效限制于與卷綁定密鑰或BLOB相關(guān)聯(lián)的分區(qū)子集。
用于保護(hù)系統(tǒng)數(shù)據(jù)的示例性引導(dǎo)驗(yàn)證過程本發(fā)明的實(shí)施例可提供一種引導(dǎo)驗(yàn)證過程,它可通過用戶界面(UI)在用戶的命令下被開啟和配置。由此,使用諸如控制面板小應(yīng)用程序等程序,可令允許用戶啟用根據(jù)本發(fā)明的引導(dǎo)保護(hù)過程的操作的UI可用。如果機(jī)器的用戶尚未接管該機(jī)器的TPM的所有權(quán),則該UI可首先呈現(xiàn)接管所有權(quán)或取消的選項(xiàng)??沙尸F(xiàn)類似的選項(xiàng)以要求用戶選擇特定的引導(dǎo)分區(qū)。如果受保護(hù)的引導(dǎo)被配置成僅隨諸如新技術(shù)文件系統(tǒng)(NTFS)等特定文件系統(tǒng)操作,則可要求用戶選擇使用該文件系統(tǒng)的引導(dǎo)分區(qū)。
一旦從UI啟用了受保護(hù)的引導(dǎo),一自動(dòng)過程即可確保要保護(hù)的頂層保密信息在可能處被重新生成,然后被密封到拆封該保密信息所需的期望的PCR寄存器值。較佳的實(shí)施例可將PCR[4]、PCR[8]到(可能地)PCR[15]用于此操作。可為拆封操作委派密碼,并將其存儲(chǔ)在公共可見的位置。因此,所選擇的密碼可能與密封操作所用的密碼不同。較佳的是用TCG1.2TPM來支持此操作。此過程一可提供更高安全的變更允許指定更多PCR,并且允許由機(jī)器所有者指定拆封密碼,并在引導(dǎo)過程的早期輸入該拆封密碼。
在傳統(tǒng)的PC或AT計(jì)算機(jī)(PCAT)系統(tǒng)上,即在使用常規(guī)BIOS的基于x86的系統(tǒng)中,可使用MBR引導(dǎo)扇區(qū)、NTFS引導(dǎo)扇區(qū)、NTFS引導(dǎo)塊和引導(dǎo)管理器來確定期望的PCR值。以下結(jié)合示例性引導(dǎo)順序來描述期望PCR值的更多細(xì)節(jié)。在可擴(kuò)展固件接口(EFI)系統(tǒng)上,EFIU系統(tǒng)分區(qū)(ESP)中的有關(guān)文件被測(cè)定。在本發(fā)明一包括引導(dǎo)卷加密的變更中,盤解密密鑰可被密封到PCR,用于引導(dǎo)中直至并包括NTFS引導(dǎo)塊的各早期部分。
為在恢復(fù)情形中起到幫助,上述保密信息的其它副本可被密封到涉及經(jīng)由CDROM的恢復(fù);經(jīng)由特定恢復(fù)分區(qū)(如果這一分區(qū)存在)的恢復(fù);以及經(jīng)由第二種認(rèn)證方法(諸如可移動(dòng)介質(zhì)和/或密碼)的恢復(fù)的引導(dǎo)中。
以下提供PCAT系統(tǒng)的一種示例性引導(dǎo)過程。還可參考圖8和9來理解本文中所演示的過程·如TCG1.2規(guī)范所要求,可執(zhí)行負(fù)責(zé)將BIOS測(cè)定到PCR
中的ROM只讀部分。
·BIOS配置參數(shù)被測(cè)定到PCR[1]中·選項(xiàng)ROM被測(cè)定到PCR[2]中·選項(xiàng)ROM參數(shù)被測(cè)定到PCR[3]中·MBR被測(cè)定到PCR[4]中·分區(qū)表被測(cè)定到PCR[5]中·在測(cè)定MBR以后,BIOS將執(zhí)行移交給MBR·MBR加載活動(dòng)分區(qū)的NTFS引導(dǎo)扇區(qū),并將其測(cè)定到PCR[8]中。MBR隨即將執(zhí)行移交給此引導(dǎo)扇區(qū)。
·引導(dǎo)扇區(qū)將引導(dǎo)塊加載到存儲(chǔ)器中(通常8K)。引導(dǎo)塊被測(cè)定(除了加密信息以外)到PCR[9]中。如果該卷是加密的,則加密信息在這個(gè)點(diǎn)被拆封并用來將從盤上加載的任何將來的扇區(qū)解密。
·將引導(dǎo)管理器從盤中讀到存儲(chǔ)器中。它被測(cè)定到PCR[10]中。執(zhí)行被移交給引導(dǎo)管理器。(如上所述,一種變更可將期望的PCR[10]測(cè)定存儲(chǔ)在被密封的數(shù)據(jù)中間,并使用其來驗(yàn)證所測(cè)定的是正確的引導(dǎo)管理器)。
·引導(dǎo)管理器將關(guān)鍵性數(shù)據(jù)測(cè)定到PCR[11]中。關(guān)鍵性數(shù)據(jù)可包括可影響安全(諸如調(diào)試器是否將被啟用等)的信息。在一些實(shí)施例中,直至用此信息擴(kuò)展了PCR[11]才能夠?qū)ζ溥M(jìn)行作用。
·引導(dǎo)管理器選擇一個(gè)OS加載器進(jìn)入存儲(chǔ)器,將其測(cè)定到PCR[12]中,并將執(zhí)行移交給它。
·OS加載器將關(guān)鍵性數(shù)據(jù)測(cè)定到PCR[13]中。
·OS加載器使用PCR[4]、PCR[8-13]以及可選地任何其它PCR,來拆封OS加載器所使用的保密信息。
·OS加載器移交到“代碼完整性”來執(zhí)行系統(tǒng)的進(jìn)一步驗(yàn)證。
·代碼完整性驗(yàn)證系統(tǒng)所加載的每個(gè)將來的二進(jìn)制碼,諸如0階段驅(qū)動(dòng)程序、NTKRNL以及HAL。
·NTKRNL開始初始的系統(tǒng)進(jìn)程,包括LSASS和WinLogon。
·LSASS使用PCR[4]、PCR[8-13]以及可選地任何其它PCR來拆封SYSKEY。如果拆封失敗,則LSASS確定原因,并提議糾正的行動(dòng),和/或由第二方法請(qǐng)求復(fù)原信息以獲得保密信息。
·所有訪問加密的引導(dǎo)卷的代碼使用PCR[4]、PCR[8-9]以及任何其它指定的PCR來拆封引導(dǎo)卷解密保密信息。
在EFI系統(tǒng)中,對(duì)以上過程的數(shù)次變更可能是有益的。例如,可采取以下行動(dòng),而不是測(cè)定MBR并將執(zhí)行移交給它·除了選項(xiàng)ROM以外,基于ROM的驅(qū)動(dòng)程序被測(cè)定到PCR[2]中。
·包括引導(dǎo)管理器在內(nèi)的基于盤的驅(qū)動(dòng)程序和模塊被測(cè)定到PCR[4]中·任何理解NTFS的EFI驅(qū)動(dòng)程序都具有拆封引導(dǎo)卷解密保密信息的附加能力。
以上過程及其變更可被用于實(shí)現(xiàn)超越標(biāo)準(zhǔn)計(jì)算機(jī)引導(dǎo)的目的。特別地,構(gòu)想了另外兩個(gè)目的,盡管本發(fā)明的其它用途也是可能的,并且本發(fā)明不局限于特定設(shè)置或目的。首先,上述過程可被擴(kuò)展為包括對(duì)休眠文件的保護(hù)。第二,上述過程可被擴(kuò)展為包括對(duì)引導(dǎo)卷以及操作系統(tǒng)的操作所需的其它卷的保護(hù)。
就對(duì)休眠文件的保護(hù)而言,這可通過將休眠文件加密和解密密鑰存儲(chǔ)在啟用保密信息中間來實(shí)現(xiàn)。加密和解密密鑰可以是單個(gè)對(duì)稱密鑰,或可以是用來密封另一對(duì)稱密鑰的非對(duì)稱密鑰。當(dāng)機(jī)器休眠時(shí),休眠文件可被加密。除非機(jī)器經(jīng)由經(jīng)驗(yàn)證的引導(dǎo)代碼路徑來引導(dǎo),否則休眠文件是不可解密的,因此存儲(chǔ)在休眠文件中的任何保密信息將會(huì)被維護(hù)。如果機(jī)器經(jīng)由經(jīng)驗(yàn)證的代碼路徑引導(dǎo),則休眠文件將由經(jīng)驗(yàn)證的代碼解密,而執(zhí)行將在定義良好的執(zhí)行路徑中重新開始,以恢復(fù)到運(yùn)行環(huán)境的安全中。
對(duì)引導(dǎo)卷以及操作系統(tǒng)的操作所需的其它卷的保護(hù)也可被實(shí)現(xiàn)。在此情形中,整個(gè)引導(dǎo)卷可被加密和/或包含全面的完整性檢查。解密所需的密鑰僅對(duì)經(jīng)驗(yàn)證的引導(dǎo)代碼可用;而經(jīng)驗(yàn)證的引導(dǎo)代碼隨即將使用這些密鑰來將恢復(fù)系統(tǒng)的引導(dǎo)所需的其它代碼和數(shù)據(jù)解密。更新盤的完整性信息所需的密鑰也將僅對(duì)經(jīng)驗(yàn)證的引導(dǎo)代碼可用。一旦確保包括全面的完整性檢查的系統(tǒng)是在運(yùn)行經(jīng)驗(yàn)證的代碼,它就能夠只選擇完整性經(jīng)驗(yàn)證的代碼和數(shù)據(jù)進(jìn)行其它操作。攻擊者無法欺騙這類系統(tǒng)使其相信它的完整性是有效的,因?yàn)橹挥薪?jīng)驗(yàn)證的代碼才能拆封這些啟用位。
用于修理和升級(jí)受保護(hù)的引導(dǎo)過程的示例性系統(tǒng)和方法本發(fā)明的實(shí)施例可結(jié)合診斷和修理以及升級(jí)用于安全引導(dǎo)計(jì)算機(jī)的系統(tǒng)和方法的過程。為此目的,用于診斷引導(dǎo)過程中的問題的第一觀測(cè)是,在上述受保護(hù)的引導(dǎo)過程中,拆封保密信息的過程提供一種確定測(cè)定是否正確的手段。因此可能有兩種狀態(tài)或者保密信息將拆封,這指示正被測(cè)定的代碼中僅經(jīng)驗(yàn)證的代碼已被執(zhí)行;或者保密信息將不被拆封,這指示可能未經(jīng)驗(yàn)證的代碼已被執(zhí)行。對(duì)于診斷而言,就能通過檢查遵守TCG的BIOS所創(chuàng)建的日志來確定什么出了故障。此信息隨即可被用來診斷問題,以在錯(cuò)誤是意外而非故意的時(shí)候給出更多信息反饋。
上述受保護(hù)的引導(dǎo)過程依靠利用TPM的系統(tǒng)自驗(yàn)證。在一些實(shí)施例中,這類系統(tǒng)能夠在其實(shí)際仍然有效時(shí)表現(xiàn)為無效。當(dāng)系統(tǒng)表現(xiàn)為無效時(shí),有兩條解決路徑,可在本發(fā)明的各個(gè)實(shí)施例中使其中任一或兩者可用第一,使用從檢查日志獲得的信息,可將系統(tǒng)返回到可被視為有效的狀態(tài)。第二,用戶可驗(yàn)證系統(tǒng)是否應(yīng)被視為有效。
為將系統(tǒng)返回到可被視為有效的狀態(tài),可使用日志信息來診斷TPM為何將測(cè)定視為無效。改變了的任何代碼可被恢復(fù)到其原始狀態(tài)?;蛘?,如果用戶以不同尋常的方式引導(dǎo),諸如在引導(dǎo)出系統(tǒng)盤以前試圖進(jìn)行網(wǎng)絡(luò)引導(dǎo)等,則計(jì)算機(jī)可被重新引導(dǎo),以試圖按期望方式進(jìn)行引導(dǎo)。
有許多其它特征可被結(jié)合到產(chǎn)品中,以對(duì)將系統(tǒng)返回到有效狀態(tài)的實(shí)施例進(jìn)行補(bǔ)充。例如,如果機(jī)器上的硬件壞了,而盤被移到另一個(gè)原本完全相同的機(jī)器中;則TPM的保密密鑰可能不同。在此情形中,可認(rèn)證用戶而不是認(rèn)證機(jī)器。稱為次級(jí)認(rèn)證的若干機(jī)制可實(shí)現(xiàn)該特征。這里使用的憑證無需輕易可得,而是可要求例如電話呼叫,以重新啟用該機(jī)器。次級(jí)認(rèn)證可提供與主TPM方法所解密的保密信息相同的保密信息,而該保密信息可用另一種方式獲得。和使用與主認(rèn)證方法相同的方法相比,這些實(shí)施例可提供更強(qiáng)的安全。例如,機(jī)器密碼可純粹隨機(jī)生成,而無需是容易記住的形式。當(dāng)機(jī)器通過此次級(jí)方法請(qǐng)求驗(yàn)證時(shí),該機(jī)器的用戶呼叫其IT部門。IT部門使用其所選擇的系統(tǒng)來驗(yàn)證呼叫者的身份,并向呼叫者讀出密碼。當(dāng)輸入密碼時(shí),在此情形中可使用上述遷移機(jī)制來將保密信息重新密封到新的TPM PCR值中。此外,這一系統(tǒng)可使用產(chǎn)生只可使用一次的密碼、而將保密信息重新密封到次級(jí)認(rèn)證機(jī)制的新密碼中需要新的電話呼叫的密碼系統(tǒng)。
用于安全引導(dǎo)計(jì)算機(jī)的系統(tǒng)和方法的實(shí)施例可被配置成能很容易被升級(jí)。盡管受本發(fā)明的實(shí)施例監(jiān)視的代碼很少改變,但是無可避免的是這些代碼模塊中的一個(gè)最終會(huì)被改變。此外,安全引導(dǎo)過程中所使用的保密信息可在最初配置系統(tǒng)的時(shí)候,或在如上述的恢復(fù)以后被密封到TPM中。
升級(jí)一個(gè)或多個(gè)引導(dǎo)組件的第一方法可利用恢復(fù)以后或代碼修改以后可用的遷移,并可在確定TPM PCR值以前存儲(chǔ)在臨時(shí)存儲(chǔ)器中。在許多實(shí)施例中,這無需重新引導(dǎo),因?yàn)镻CR值在當(dāng)前引導(dǎo)中是已知的。但是,如果代碼模塊被改變了,則重新引導(dǎo)將確保新的代碼模塊被測(cè)定,且值被存儲(chǔ)在TPM PCR中。
升級(jí)一個(gè)或多個(gè)引導(dǎo)組件的第二方法可在代碼修改的受控環(huán)境中使用。在此情形中,由于新的代碼修改的緣故,期望的PCR值是預(yù)定的,而保密信息在系統(tǒng)被重新引導(dǎo)以前可被密封到預(yù)期的PCR值中。
運(yùn)行中的系統(tǒng)可根據(jù)以下選項(xiàng)的非限制性列表中的一項(xiàng)或多項(xiàng)來執(zhí)行上述的遷移-例如在改變以前,服務(wù)組件可知道它將改變OS加載器。
·例如在剛剛改變以后,在盤已被格式化以后。
·在經(jīng)驗(yàn)證系統(tǒng)上的改變檢測(cè)以后。例如,在關(guān)機(jī)時(shí),系統(tǒng)可能注意到組件已被正當(dāng)修改,并無聲地執(zhí)行遷移。
·作為恢復(fù)的一部分。例如,在系統(tǒng)啟動(dòng)時(shí),系統(tǒng)可確定恢復(fù)是否已被執(zhí)行,并可執(zhí)行遷移,以使下一次引導(dǎo)以后不再需要恢復(fù)機(jī)制。
維護(hù)安全引導(dǎo)過程的又一種系統(tǒng)可提供在TPM外部創(chuàng)建的多個(gè)不同的密鑰。這些密鑰中的每一個(gè)都可使用相同的RSA密鑰編制素材,但每個(gè)密鑰的使用可被綁定到不同的PCR集合和/或密碼。實(shí)際上,這些附加密鑰可不被綁定到任何事物。在這些實(shí)施例中,因而至少可令一個(gè)BLOB與每個(gè)未被綁定到任何事物的盤卷(例如,分區(qū))相關(guān)聯(lián)。每個(gè)密鑰可從一不同的引導(dǎo)組件使用,并確保BLOB的保密性。密碼選通的密鑰可用于恢復(fù),而RSA密鑰編制素材可由第三方保管。
盡管此方法和上述安全引導(dǎo)過程僅有細(xì)微差異,但維護(hù)和服務(wù)中的顯著好處變得清楚這是由于RSA密鑰編制素材是在TPM外部生成的并且在每個(gè)密鑰中都是完全相同的這一事實(shí),如今可為諸如部門或整個(gè)組織中的雇員等多個(gè)用戶更大范圍地使用此RSA素材。結(jié)果是,可創(chuàng)建允許打開和服務(wù)組織中的任何機(jī)器的主密鑰。這些密鑰仍然受每個(gè)TPM的SRK保護(hù),因此這些密鑰仍可被視為是安全的。但是,在此實(shí)施例中,諸如信息技術(shù)(IT)部門等中央部門無須每個(gè)機(jī)器存儲(chǔ)一個(gè)密鑰,而是每個(gè)邏輯分組存儲(chǔ)一個(gè)密鑰。此方法在引導(dǎo)塊中還要求略少的存儲(chǔ)空間來存儲(chǔ)多個(gè)BLOB上的多個(gè)密鑰。
最后,在上述實(shí)施例中,管理員如今可下推策略和新的RSA密鑰,因此每個(gè)機(jī)器上密鑰都經(jīng)常改變。這將減少維護(hù)此特征的成本。
使用全卷加密和受保護(hù)引導(dǎo)以永久破壞對(duì)數(shù)據(jù)的訪問上述安全引導(dǎo)過程的一個(gè)副產(chǎn)品是全卷加密(即,對(duì)分區(qū)中幾乎所有數(shù)據(jù)的加密)可被高效率且有效地支持。這可令摧毀保密信息并由此摧毀訪問計(jì)算機(jī)上的數(shù)據(jù)所需的關(guān)鍵性信息所要求的工作量微不足道。數(shù)據(jù)的這種有效的摧毀在某些設(shè)置中可能是有價(jià)值的,特別是在希望清除敏感數(shù)據(jù),尤其是迅速清除此類數(shù)據(jù)的時(shí)候。
消除操作實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)所需的保密信息無須重新安裝軟件即可可令這些計(jì)算機(jī)不可使用,并可永久防止對(duì)其上的數(shù)據(jù)進(jìn)行訪問。為實(shí)現(xiàn)此特征,存儲(chǔ)在TPM內(nèi)部的保密信息可被重置。這可通過改變TPM的所有權(quán)來輕松完成。該TPM所密封的任何保密信息將不再有效。次級(jí)恢復(fù)機(jī)制也必須被摧毀。但是,就目前直至此機(jī)制被摧毀為止而言,當(dāng)將恢復(fù)機(jī)制保存在關(guān)位置時(shí),它可規(guī)定一種臨時(shí)禁用機(jī)器,然后在稍后恢復(fù)該機(jī)器的方法。
當(dāng)存儲(chǔ)在TPM內(nèi)的保密信息和任何恢復(fù)機(jī)制都被改變時(shí),機(jī)器的內(nèi)容(代碼和數(shù)據(jù)兩者)變?yōu)椴豢色@得。這非常迅速地實(shí)現(xiàn)機(jī)器的安全掃除。這類高效率的安全掃除的一個(gè)優(yōu)點(diǎn)是它令機(jī)器的轉(zhuǎn)售更加切實(shí)可行。
權(quán)利要求
1.一種承載了具有硬件安全模塊(HSM)的計(jì)算機(jī)上的安全引導(dǎo)過程所用的指令的計(jì)算機(jī)可讀介質(zhì),所述HSM包含記錄下來的值、將所提交的值與所記錄的值進(jìn)行比較、并且在所提交的值正確的情況下發(fā)放保密信息,所述計(jì)算機(jī)可讀介質(zhì)包括用于向所述HSM提交至少一個(gè)值的指令,其中,如果所述值是正確的,則所述HSM可發(fā)放保密信息;用于檢索所述保密信息的指令;用于使用由于檢索所述保密信息而可被訪問的信息來對(duì)數(shù)據(jù)解密的指令,其中,所述用于解密的指令的執(zhí)行產(chǎn)生經(jīng)解密的數(shù)據(jù);用于計(jì)算機(jī)引導(dǎo)過程的至少一部分的指令,其中,所述計(jì)算機(jī)引導(dǎo)過程在沒有所述經(jīng)解密的數(shù)據(jù)的情況下不能完成正常引導(dǎo)。
2.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述HSM是一可信平臺(tái)模塊(TPM),且所述至少一個(gè)值被放在至少一個(gè)平臺(tái)配置寄存器(PCR)中。
3.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述經(jīng)解密的數(shù)據(jù)包括所述計(jì)算機(jī)引導(dǎo)過程中所使用的軟件組件。
4.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述經(jīng)解密的數(shù)據(jù)包括所述計(jì)算機(jī)引導(dǎo)過程中所使用的軟件組件繼續(xù)所述計(jì)算機(jī)過程所需的信息。
5.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述經(jīng)解密的數(shù)據(jù)包括訪問存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的數(shù)據(jù)所需的信息。
6.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于從存儲(chǔ)器中移除所述保密信息的指令。
7.一種包括硬件安全模塊(HSM)的計(jì)算機(jī),所述HSM包含記錄下來的值、將所提交的值與所記錄的值進(jìn)行比較、并且在所提交的值正確的情況下發(fā)放保密信息,所述計(jì)算機(jī)還包括用于向所述HSM提交至少一個(gè)值的裝置,其中,如果所述值是正確的,則所述HSM可發(fā)放保密信息;用于檢索所述保密信息的裝置;用于使用由于檢索所述保密信息而可被訪問的信息來對(duì)數(shù)據(jù)解密的裝置,其中,所述用于解密的裝置的操作產(chǎn)生經(jīng)解密的數(shù)據(jù);包括計(jì)算機(jī)引導(dǎo)過程的至少一部分的裝置,其中,所述計(jì)算機(jī)引導(dǎo)過程在沒有所述經(jīng)解密的數(shù)據(jù)的情況下不能完成正常的引導(dǎo)。
8.如權(quán)利要求7所述的計(jì)算機(jī),其特征在于,所述HSM是可信平臺(tái)模塊(TPM),且所述至少一個(gè)值被放在平臺(tái)配置寄存器(PCR)中。
9.如權(quán)利要求7所述的計(jì)算機(jī),其特征在于,所述經(jīng)解密的數(shù)據(jù)包括所述計(jì)算機(jī)引導(dǎo)過程中所使用的軟件組件。
10.如權(quán)利要求7所述的計(jì)算機(jī),其特征在于,所述經(jīng)解密的數(shù)據(jù)包括所述計(jì)算機(jī)引導(dǎo)過程中所使用的軟件組件繼續(xù)所述計(jì)算機(jī)過程所需的信息。
11.如權(quán)利要求7所述的計(jì)算機(jī),其特征在于,所述經(jīng)解密的數(shù)據(jù)包括訪問存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的數(shù)據(jù)所需的信息。
12.如權(quán)利要求7所述的計(jì)算機(jī),其特征在于,還包括用于從存儲(chǔ)器中移除所述保密信息的裝置。
13.一種承載了具有多個(gè)分區(qū)和硬件安全模塊(HSM)的計(jì)算機(jī)上的安全引導(dǎo)過程所用的指令的計(jì)算機(jī)可讀介質(zhì),所述HSM包含記錄下來的值、將所提交的值與所記錄的值進(jìn)行比較、并且在所提交的值正確的情況下發(fā)放保密信息,所述計(jì)算機(jī)可讀介質(zhì)包括用于向所述HSM提交至少一個(gè)值的指令,其中,如果所述值是正確的,則所述HSM可發(fā)放保密信息;用于檢索第一保密信息的指令;用于從存儲(chǔ)器位置移除所述第一保密信息的指令;用于向所述HSM提交至少一個(gè)第二值的指令,其中,如果所述第二值是正確的,則所述HSM可發(fā)放第二保密信息而不發(fā)放所述第一保密信息。
14.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述HSM是可信平臺(tái)模塊(TPM),且所述至少一個(gè)值和所述至少一個(gè)第二值被放在平臺(tái)配置寄存器(PCR)中。
15.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括計(jì)算機(jī)引導(dǎo)過程的至少一部分所用的指令,其中,所述計(jì)算機(jī)引導(dǎo)過程在沒有所述第一保密信息的情況下不能完成正常引導(dǎo)。
16.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第二保密信息是訪問存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)的至少一個(gè)分區(qū)上的實(shí)際所有數(shù)據(jù)所需的。
17.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第一值包括計(jì)算機(jī)引導(dǎo)過程中所使用的軟件組件的散列。
18.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第二值包括解密密鑰的散列。
19.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第一保密信息和所述第二保密信息中的至少一個(gè)是二進(jìn)制大對(duì)象(BLOB)。
20.如權(quán)利要求13所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第一保密信息和所述第二保密信息中的至少一個(gè)是解密密鑰。
全文摘要
在具有可信平臺(tái)模塊(TPM)的計(jì)算機(jī)中,引導(dǎo)組件的期望散列值可被放在平臺(tái)配置寄存器(PCR)中,該P(yáng)CR允許TPM拆封保密信息。該保密信息隨即被用來將引導(dǎo)組件解密。然后可計(jì)算經(jīng)解密的引導(dǎo)組件的散列,并將結(jié)果放到一PCR中。然后可比較這兩個(gè)PCR。如果它們不匹配,則可撤消對(duì)系統(tǒng)操作的重要保密信息的訪問。同樣,一第一保密信息僅在第一多個(gè)PCR值現(xiàn)存時(shí)可被訪問,而一第二保密信息僅在第一多個(gè)PCR值中的一個(gè)或多個(gè)已被新值所替換以后才可被訪問,從而為準(zhǔn)許對(duì)第二保密信息的訪問必然撤消了對(duì)第一保密信息的進(jìn)一步訪問。
文檔編號(hào)G06F1/00GK1801091SQ200510128890
公開日2006年7月12日 申請(qǐng)日期2005年12月7日 優(yōu)先權(quán)日2005年1月7日
發(fā)明者小J·A·舒瓦茨, J·亨特, J·D·舒瓦茨, K·D·雷, P·英格蘭德, R·漢弗萊斯, S·湯姆 申請(qǐng)人:微軟公司