專利名稱:安全計算機系統(tǒng)更新的制作方法
安全計算機系統(tǒng)更新
背景技術(shù):
計算機安全并且特別是存在于計算機系統(tǒng)上的數(shù)據(jù)安全仍然是重
要的計算方面。在這方面,近來的計算機體系結(jié)構(gòu)已經(jīng)實現(xiàn)了祐:設(shè)計 成用于預(yù)防或者至少禁止計算機系統(tǒng)未經(jīng)授權(quán)的用戶訪問存在于計算 機存儲介質(zhì)上的數(shù)據(jù)的安全特征。例如,近來信任的個人計算機體系
結(jié)構(gòu)包括4言4壬平臺才莫塊(trusted platform module TPM ),用于提供 可用于數(shù)據(jù)保護的各種服務(wù)。
一些操作系統(tǒng)已經(jīng)適于利用TPM的服務(wù)來實現(xiàn)數(shù)據(jù)保護方案。例 如,可從美國華盛頓的Redmond微軟公司獲得的Vista操作系統(tǒng)利用TPM 來保護加密密鑰,所述加密密鑰用于加密在計算機硬盤驅(qū)動器上所存 儲的數(shù)據(jù),這是稱為"位鎖(bit locker),,加密的特征。Linux操作 系統(tǒng)包括;陂稱為"監(jiān)視程序(enforcer)"的特征,其使用TPM來把秘 密存儲到加密的回送文件系統(tǒng)。
有時可能必須更新計算機系統(tǒng)的固件,像基本輸入/輸出系統(tǒng) (BIOS),或者用戶可k乂把可選卡(option card)添力口至ij包含可選ROM (option ROM)組件的系統(tǒng)中。在一些情況下,以上改變會導(dǎo)致當(dāng)下 一平臺重新啟動時改變在TPM內(nèi)所存儲的PCR (平臺配置寄存器)值。 這可以防止在BIOS之后的平臺軟件解密預(yù)先加密的數(shù)據(jù)。此干擾可能 使驅(qū)動器上的數(shù)據(jù)不能被系統(tǒng)的授權(quán)用戶訪問或者可能強迫操作系統(tǒng) 進(jìn)入恢復(fù)模式,其中用戶必須經(jīng)歷 一 系列不方便的步驟來使計算機能
l存儲的備份密鑰:用于更;固件二一個過程要求禁iBi7 Locker, 繼而更新固件然后再次重新啟用Bit Locker。這在禁止Bit Locker期 間暴露了弱點空窗期(window of vulnerability)。
圖1是適于實現(xiàn)安全計算機系統(tǒng)更新的計算機系統(tǒng)的 一個實施例 的示意圖。
圖2是其中可以實現(xiàn)安全計算機系統(tǒng)更新的網(wǎng)絡(luò)計算環(huán)境的 一 個實施例的示意圖。
圖3 - 4是用于圖示在實現(xiàn)安全計算機系統(tǒng)更新的一個實施例中的 操作的流程圖。
具體實施例方式
圖1是適于實現(xiàn)安全計算機系統(tǒng)更新的計算系統(tǒng)10 0的示意圖。在 所圖示的實施例中,系統(tǒng)100可以被實現(xiàn)為用于訪問互聯(lián)網(wǎng)的手持式或 固定設(shè)備、桌面PC、筆記本計算機、個人數(shù)字助理或任何其它處理設(shè) 備,其具有基本輸入/輸出系統(tǒng)(BIOS)、啟動固件或等效物。
計算系統(tǒng)100包括計算機108和一個或多個附帶輸入/輸出設(shè)備 106,包括具有屏幕104的顯示器102、鍵盤IIO、其它I/0設(shè)備112和鼠 標(biāo)U4。其它設(shè)備112例如可以包括觸摸屏、語音激活的輸入設(shè)備、軌 跡球和任何其它設(shè)備,所述其它設(shè)備使系統(tǒng)100能夠從開發(fā)者和/或用 戶接收輸入。
計算機108包括通常在主板和至少一個輔助電路板上實現(xiàn)的系統(tǒng) 硬件120。系統(tǒng)硬件120包括處理器122和基本輸入/輸出系統(tǒng)(BIOS) l26。 BIOS U6可以在閃速存儲器中實現(xiàn)并且可以包括用于引導(dǎo)計算設(shè) 備的邏輯運算和用于執(zhí)行系統(tǒng)初始化和測試的通電自檢(power - on self - test POST);溪塊。在操作中,當(dāng)開始激活計算系統(tǒng)100時,處 理器122訪問BI0S 126并且把BI0S 126的指令(諸如通電自檢才莫塊)投 影(shadow)到操作存儲器中。然后處理器122執(zhí)行 加電自測試操作以 〃便實現(xiàn)POST處理。
計算機系統(tǒng)100進(jìn)一步包括可通信地連接到計算機108的文件存儲 器180。文件存儲器180可以是內(nèi)部的,諸如一個或多個硬盤驅(qū)動器, 或外部的,諸如一個或多個外部硬盤驅(qū)動器、網(wǎng)絡(luò)連接的存儲設(shè)備或 獨立的存儲網(wǎng)絡(luò)。在一些實施例中,文件存儲器180可以包括一個或多 個分區(qū)182、 184、 186。
存儲器130包括用于管理計算機108操作的操作系統(tǒng)140。在一個實 施例中,操作系統(tǒng)140包括用于提供到系統(tǒng)硬件120的接口的硬件抽象 層154。另外,操作系統(tǒng)140包括內(nèi)核144、用于管理在操作計算機108 中所4吏用的文件的一個或多個文件系統(tǒng)146和用于管理在計算才幾108上 執(zhí)行的過程的過程控制子系統(tǒng)148 。操作系統(tǒng)14 0進(jìn)一步包括一個或多個設(shè)備驅(qū)動器150和系統(tǒng)調(diào)用接口模塊142,該系統(tǒng)調(diào)用接口模塊142用 于在操作系統(tǒng)140和一個或多個應(yīng)用模塊162和/或庫164之間提供接 口 。各個設(shè)備驅(qū)動器150與在計算系統(tǒng)100中所安裝的硬件相對接并且 通常對其進(jìn)行控制。
在操作中,在計算機108上執(zhí)行的一個或多個應(yīng)用模塊162和/或庫 164對系統(tǒng)調(diào)用接口模塊142進(jìn)行調(diào)用以便在計算機處理器上執(zhí)行一個 或多個命令。系統(tǒng)調(diào)用接口模塊142調(diào)用文件系統(tǒng)146的服務(wù)來管理由 命令和過程控制子系統(tǒng)148所要求的文件以便管理由所述命令所要求 的過程。文件系統(tǒng)146和過程控制子系統(tǒng)148隨后調(diào)用硬件抽象層154的 服務(wù)以便與系統(tǒng)硬件120相對接。操作系統(tǒng)內(nèi)核144通常可以;陂認(rèn)為是
負(fù)責(zé)執(zhí)行許多操作系統(tǒng)功能的 一個或多個軟件模塊。
操作系統(tǒng)140的特定實施例對這里所描述的主題來說不是關(guān)鍵的。 操作系統(tǒng)14 0例如可以凈皮實現(xiàn)為UNIX操作系統(tǒng)或其任何衍生物(例如 Linux、 Solaris等)或被實現(xiàn)為Windows⑧商標(biāo)操作系統(tǒng)或另 一操作系統(tǒng)。
在 一 些實施例中,系統(tǒng)硬件120可以進(jìn)一 步包括信任平臺才莫塊
(TPM) 124,其可以用來在計算機系統(tǒng)100和至少一個其它計算才幾系統(tǒng)
之間建立信任計算關(guān)系。TPM124可以被實現(xiàn)為專用集成電路(ASIC)。
作為選擇,TPM 124可以凈皮實現(xiàn)為在例如現(xiàn)場可編程門陣列(FPGA)之
類的可編程控制器中編碼的邏輯指令。在一些實施例中,TPMU4的功
能可以被實現(xiàn)為在計算機可讀介質(zhì)中存儲并且可在通用處理器上執(zhí)行 的邏輯指令,例如軟件。
TPM124提供了可以用來認(rèn)證硬件設(shè)備的多個服務(wù)。例如,TPM124 提供了用于產(chǎn)生密碼密鑰的隨機數(shù)產(chǎn)生器服務(wù)、把密碼密鑰的使用限 制為諸如簽名、驗證或加密和/或解密數(shù)據(jù)之類的特定功能的服務(wù)。TPM 124可以進(jìn)一步提供被稱為密封的加密服務(wù)。密封指的是其中采用要求 平臺處于特定狀態(tài)(如由TPMPCR寄存器所提供)以便稍后解密數(shù)據(jù)的 方式在計算機上加密數(shù)據(jù)的加密服務(wù)。
TPM 124可以包括一個或多個平臺配置寄存器(PCR) 128,其可以 在TPM 124上的非易失性隨機存取存儲器(NVRAM)中實現(xiàn)。PCR 可以用來存儲用于表示關(guān)于計算機系統(tǒng)100的平臺配置和狀態(tài)的值。例 如當(dāng)計算機系統(tǒng)調(diào)用由TPM所提供的加密服務(wù)時,PCR可以用來存儲各個平臺配置的一個或多個變換的結(jié)果,諸如來自BI0S、引導(dǎo)塊等的數(shù) 據(jù)的密碼散列。在一些實施例中,使用TPM的服務(wù)的計算機系統(tǒng)可以使 用各個PCR的狀態(tài)來加密和解密在文件存儲器180上的數(shù)據(jù)。例如,如 果計算機系統(tǒng)的所有者或管理員更新BIOS (或引導(dǎo)塊或用于產(chǎn)生PCR中 值中數(shù)據(jù)的其它數(shù)據(jù)),那么所述更新可能使驅(qū)動器上的數(shù)據(jù)不可被 訪問??梢酝ㄟ^關(guān)掉計算機系統(tǒng)的加密能力來避免此情況,但這在系 統(tǒng)中留下了安全漏洞。操作系統(tǒng)把解密密鑰密封到一組PCR值。例如, OS可以選擇密封到PCRO、 PCR1、 PCR2、 PCR4和PCR5。這些PCR中的每個 保持由TCG PC客戶端規(guī)范所定義的系統(tǒng)區(qū)域的量度。例如,PCR4保持 MBR (主引導(dǎo)記錄)代碼的量度并且PCR5保持MBR數(shù)據(jù)的量度。PCRO保 持BIOS的某些區(qū)域的散列。當(dāng)進(jìn)行BIOS更新時,這些PCR值中的至少一 個會改變。當(dāng)發(fā)生時,引導(dǎo)加載器(或引導(dǎo)過程的初始階段)不能解 封解密密鑰,這是因為它被密封到已經(jīng)改變的PCR值。
為了解決這個及其它問題,計算機系統(tǒng)100包括至少 一個安全更新 ^t塊166,其可以包括操作邏輯并且可以包括或調(diào)用可以與至少 一個遠(yuǎn) 程設(shè)備通信的硬件。在圖l中所描繪的實施例中,安全更新模塊166位 于計算機系統(tǒng)100的存儲器130中。在候選實施例中,安全更新模塊166 可以位于其它地方,諸如包含BIOS 126的非易失存儲器模塊中。下面 參考圖2 - 4非常詳細(xì)地論述由安全更新模塊166所實現(xiàn)的操作。為方 便和清楚起見,這里參考BIOS更新來描述更新過程。然而,所述過程 不限于BIOS更新,并且可以;故應(yīng)用于計算;^幾系統(tǒng)100上的其它組件的更 新。
在一些實施例中,可以經(jīng)由通信網(wǎng)絡(luò)遠(yuǎn)程發(fā)起B(yǎng)IOS更新。圖2是其 中可以實現(xiàn)安全計算機系統(tǒng)更新的網(wǎng)絡(luò)計算環(huán)境210的一個實施例的 示意圖。網(wǎng)絡(luò)計算環(huán)境210旨在圖示常規(guī)的客戶-服務(wù)器網(wǎng)絡(luò)配置,并 且可以表示跨過公司或大學(xué)校園、城市或整個地理區(qū)的計算環(huán)境。
在計算環(huán)境210中,計算機系統(tǒng)1 OO可通信地經(jīng)由至少 一個通信網(wǎng) 絡(luò)250耦合到至少一個服務(wù)器220。在圖2所描繪的實施例中,服務(wù)器220 包括更新模塊222,所述更新模塊222包括計算機系統(tǒng)100的一個或多個 更新并且使更新過程便于進(jìn)行。在一些實施例中,服務(wù)器220和更新模 塊222可以由計算機系統(tǒng)100的制造商來操作。下面非常詳細(xì)地描述了 更新^t塊222的操作。通信網(wǎng)絡(luò)250可以;陂實現(xiàn)為局域網(wǎng)(LAN)、城域網(wǎng)(MAN)或廣域 網(wǎng)(WAN)等。此外,通信網(wǎng)絡(luò)250可以包^舌一個或多個子網(wǎng)絡(luò)。例如, 通信網(wǎng)絡(luò)250可以包括用于建立無線網(wǎng)絡(luò)的一個或多個無線接入點 (WAP),所述無線網(wǎng)絡(luò)^皮耦合到LAN或直接耦合到諸如因特網(wǎng)之類的 主干網(wǎng)。
圖3 - 4是用于圖示在實現(xiàn)安全計算機系統(tǒng)更新的一個實施例中的 操作的流程圖。在一些實施例中,各自服務(wù)器220、 230、 240的所更新 的才莫塊222、 232、 242包括用于BI0S、引導(dǎo)塊、或計算^L系統(tǒng)100的其 它組件的更新。參照圖3,在操作310,更新;f莫塊222、 232、 242計算要 被給予操作系統(tǒng)的 一個或多個散列值,使得所述操作系統(tǒng)可以把解密 密鑰重新密封到這些新的PCR值。這些值表示新的值,當(dāng)在更新之后隨 后重新引導(dǎo)計算機系統(tǒng)100時所述值被存儲到適當(dāng)?shù)腜CR中。在一些實 施例中,此計算可以要求與計算機系統(tǒng)100通信。例如,更新模塊222 可以經(jīng)由通信網(wǎng)絡(luò)250從計算機系統(tǒng)100接收計算機系統(tǒng)中的BIOS 126 的標(biāo)識符。更新模塊222可以從存儲器獲取對應(yīng)于計算機系統(tǒng)100的 BIOS 126的BI0S代碼,并且可以確定所獲取的BIOS代碼和用于BIOS更 新的代碼的散列函數(shù)。
在操作315,在操作310中所計算的PCR值與由更新模塊222所管理 的更新相關(guān)聯(lián)地存儲。例如,新的PCR值可以;故存儲在與BIOS更新文件 相關(guān)聯(lián)的清單中。作為選擇,PCR值可以凈皮存儲在與BIOS更新相同的文 件中。在操作320,數(shù)字簽名可以^:應(yīng)用于文件例如用于認(rèn)證目的。一 些PCR值取決于硬件配置。因而,這些值在BIOS映象構(gòu)建時間是不可預(yù) 測的。為了幫助確定這種PCR值(例如保持所有可選ROM的合成散列的 PCR2),另一應(yīng)用(或OS)可以利用來自信息的幫助來計算將來值, 所述信息在BIOS映象構(gòu)建時間被保存在清單文件中。
在一些實施例中,PCR 0——7包含由BI0S所測量的散列。這些可 以是合成散列,其中項被散列并擴展到PCR中。在一些實施例中,擴展
的散列來散列當(dāng)前的PCR值。對于其P中BIOS包含要被散列到合成值中的 所有分量的PCR來說,可以預(yù)先計算PCR值的將來值。在上述例子中, 可以在清單或簽名的BIOS映象中提供所期望的PCRO值。
相比之下,對于PCR2來說,平臺或BIOS制造商的BIOS映象可以包括可選ROM作為系統(tǒng)BIOS的一部分(例如,對于嵌入式圖形控制器和NIC 來說)??梢詫τ贐IOS內(nèi)的可選ROM來計算新值。對于作為用戶升級結(jié) 杲的可選ROM來說(即在一些PCI、快速PCI等插槽上具有可選ROM的圖 形卡或NIC) , BIOS會發(fā)現(xiàn)該卡作為POST的一部分并且然后只測量我們 在引導(dǎo)時間發(fā)現(xiàn)的可選ROM。從而,無法預(yù)先計算完整的PCR值。然而, 給定BIOS喪入式可選ROM的新散列, 一些過程可以動態(tài)地計算什么復(fù)合 /合成PCR值將使用TPM事件日志,所述日志描述了怎樣計算PCR值。
參照圖4,圖示了用于實現(xiàn)對計算機系統(tǒng)的安全更新的客戶-服l 器過程。在操作410,諸如計算機系統(tǒng)100之類的客戶端解封TPM模塊124 的PCR寄存器128中的當(dāng)前密鑰。在操作415,客戶端發(fā)起對計算機系統(tǒng) 的更新。例如,客戶端可以發(fā)起對BIOS 126或計算機系統(tǒng)100的其它組 件的更新。所述請求可以經(jīng)由通信網(wǎng)絡(luò)25 O被轉(zhuǎn)送到服務(wù)器22 0。
在操作425,更新模塊222接收所述請求并且把所請求的更新定位 到計算機系統(tǒng)。例如,在其中正更新計算機系統(tǒng)100的BIOS 126的情況 中,更新模塊222可以從服務(wù)器220的存儲器模塊獲取所更新BIOS代碼 的拷貝。在操作430,更新模塊222在更新之后確定計算機系統(tǒng)100所期 望的PCR值。在一些實施例中,這可以如上所述參考圖3來執(zhí)行。在操 作4 35,更新和所期望的PCR值^支經(jīng)由通信網(wǎng)絡(luò)2 5 0發(fā)送到客戶端。
在操作440,客戶端接收更新和所期望的PCR值。在操作445,客戶 端把由TPM所維持的加密密鑰密封到從服務(wù)器220所接收的期望的PCR 值。
在操作450,安裝更新。例如當(dāng)更新是BIOS更新時,利用所述更新 所接收的新BIOS代碼可以被閃存到包含BIOS 126的存儲器模塊。當(dāng)重 新啟動計算機系統(tǒng)100時,TPM 124中的PCR值128對應(yīng)于將根據(jù)所更新 BIOS來計算的PCR值。從而,TPM將適當(dāng)?shù)卣J(rèn)證并且可以由所更新的計 算機系統(tǒng)100來解密由計算機系統(tǒng)100所加密的數(shù)據(jù)。
在候選實施例中,計算機更新可以被分發(fā)在計算機可讀介質(zhì)上, 諸如CD - ROM或閃速存儲棒。在這種實施例中,由服務(wù)器220的更新模 塊222所實現(xiàn)的邏輯可以凈皮編碼為計算機可讀介質(zhì)上的邏輯指令并且 可以由計算機系統(tǒng)100的處理器122來實現(xiàn),以致所述更新完全由計算 機系統(tǒng)100來管理。
在一些情況中,在TPM中所存儲的一些PCR值可以是由計算機系統(tǒng)IOO的最終用戶所選硬件配置的函數(shù)。例如,在PCR2中所存儲的值可以
是用戶向計算機系統(tǒng)所添加的一個或多個附加控制器的函數(shù)。從而, 當(dāng)構(gòu)建BI0S映象時PCR2值可能不是可預(yù)測的。從而在一些實施例中, 可以在最終用戶更新閃存的運行期間計算PCR2的值和任何其它不可預(yù) 測的PCR值。
如上所述,這里所描述的方法可以凈皮實現(xiàn)為計算才幾可讀介質(zhì)上的 邏輯指令。當(dāng)在處理器上執(zhí)行時,邏輯指令使通用計算設(shè)備被編程為 用于實現(xiàn)所描述方法的專用機器。處理器當(dāng)由邏輯指令配置為執(zhí)行這 里所列舉的方法時構(gòu)成用于執(zhí)行所描述方法的結(jié)構(gòu)。
說明書中對"一個實施例,,或"一實施例,,的引用意^K著在至少 一個實現(xiàn)方式中包括結(jié)合實施例所描述的特定特征、結(jié)構(gòu)或特性。在 說明書的各個位置處所出現(xiàn)的短語"在一個實施例中"不必都參照相 同的實施例。
權(quán)利要求
1.一種計算機系統(tǒng)(100),包括處理器(122);信任平臺模塊(124),包括至少一個平臺配置寄存器;基本輸入/輸出系統(tǒng)(126);和用于執(zhí)行以下操作的邏輯解封在所述信任平臺模塊(124)中的至少一個當(dāng)前密鑰;發(fā)起對所述基本輸入/輸出系統(tǒng)(126)的更新;利用所述更新獲得用于所述信任平臺模塊(124)中的平臺配置寄存器的一個預(yù)期值的至少一個分量;使用平臺配置寄存器的至少一個預(yù)期值來密封至少一個密鑰;并且安裝所述基本輸入/輸出系統(tǒng)(126)更新。
2. 如權(quán)利要求l所述的計算機系統(tǒng)(100),進(jìn)一步包括用于經(jīng)由 通信網(wǎng)絡(luò)和計算機可讀存儲介質(zhì)中的至少一個來更新所述基本輸入/ 輸出系統(tǒng)(126)的邏輯。
3. 如權(quán)利要求l所述的計算機系統(tǒng)(100),進(jìn)一步包括用于確定 現(xiàn)有平臺配置寄存器值和一部分基本輸入/輸出系統(tǒng)(126)的散列的 邏輯。
4. 如權(quán)利要求4所述的計算機系統(tǒng)(100),進(jìn)一步包括用于把至 少一個預(yù)期值的至少一個分量存儲到所述平臺配置寄存器中的邏輯。
5. 如權(quán)利要求l所述的計算機系統(tǒng)(100),進(jìn)一步包括用于加密 所述至少一個預(yù)期值的邏輯。
6. 如權(quán)利要求l所述的計算機系統(tǒng)(100),進(jìn)一步包括用于閃存 包含基本輸入/輸出系統(tǒng)(126)的存儲器模塊的邏輯。
7. 如權(quán)利要求l所述的計算機系統(tǒng)(100),進(jìn)一步包括用于獲得 與所述計算機系統(tǒng)組件相關(guān)聯(lián)的可選ROM的散列值的邏輯。
全文摘要
在一個實施例中,一種計算機系統(tǒng),包括處理器(122),包括至少一個平臺配置寄存器的置信平臺模塊(124),基本輸入/輸出系統(tǒng)(126)和用于解封在所述置信平臺模塊(124)中的至少一個當(dāng)前密鑰,發(fā)起對所述基本輸入/輸出系統(tǒng)(126)的更新,利用所述更新獲得用于所述置信平臺模塊(124)中的平臺配置寄存器的一個預(yù)期值的至少一個分量,使用平臺配置寄存器的至少一個預(yù)期值來密封至少一個密鑰并且安裝所述基本輸入/輸出系統(tǒng)(126)更新的邏輯。
文檔編號G06F21/00GK101295339SQ20081009594
公開日2008年10月29日 申請日期2008年4月25日 優(yōu)先權(quán)日2007年4月27日
發(fā)明者M·諾沃亞, W·伊布拉希姆 申請人:惠普開發(fā)有限公司