鑰332。進(jìn)而,數(shù)據(jù)保護(hù)模塊316可以使用訪問密鑰332來對(duì)用戶數(shù)據(jù)330進(jìn)行加密。
[0062]隨后,期望訪問用戶數(shù)據(jù)330的應(yīng)用程序可以向數(shù)據(jù)保護(hù)模塊316提供訪問證書342。應(yīng)用程序可以基于一個(gè)或多個(gè)密鑰120和設(shè)備健康值118、使用產(chǎn)生訪問密鑰332的相同技術(shù)來生成訪問證書342。由此,如果訪問證書342可以由數(shù)據(jù)保護(hù)模塊316使用以對(duì)用戶數(shù)據(jù)330進(jìn)行解密,則數(shù)據(jù)保護(hù)模塊316可以為應(yīng)用程序提供對(duì)用戶數(shù)據(jù)330的訪問。否則,數(shù)據(jù)保護(hù)模塊316可以拒絕應(yīng)用程序?qū)τ脩魯?shù)據(jù)330的訪問。在替代實(shí)施例中,數(shù)據(jù)保護(hù)模塊316可以使用訪問密鑰332作為密碼來保護(hù)用戶數(shù)據(jù)卷328,而并非使用訪問密鑰332來對(duì)用戶數(shù)據(jù)330進(jìn)行加密。
[0063]在其它實(shí)施例中,用戶計(jì)算設(shè)備104可以從驗(yàn)證實(shí)體102接收健康證書122以及參考健康值108。在一些實(shí)施中,健康證書122可以封裝唯一地標(biāo)識(shí)用戶計(jì)算設(shè)備104的一個(gè)或多個(gè)密鑰120。這意味著健康證書122是容易識(shí)別的,這是因?yàn)槠浔惶貏e分配給用戶計(jì)算設(shè)備104。健康證書122可以由用戶計(jì)算設(shè)備104使用來向其它設(shè)備證明用戶計(jì)算設(shè)備104處于安全狀態(tài),使得用戶計(jì)算設(shè)備104可以獲取服務(wù)。例如,用戶計(jì)算設(shè)備104可以使用健康證書122來與另一設(shè)備商議安全通信信道,以便交換敏感信息。在另一示例中,用戶計(jì)算設(shè)備104可以使用健康證書122來保護(hù)對(duì)完成采購交易的允許。在一些實(shí)施例中,接收健康證書122的服務(wù)提供者可以將其發(fā)送給驗(yàn)證實(shí)體,例如驗(yàn)證實(shí)體102。進(jìn)而,驗(yàn)證實(shí)體可以返回關(guān)于對(duì)健康證書122的驗(yàn)證的指示。在其它實(shí)施例中,期望從服務(wù)提供者106獲取服務(wù)的用戶計(jì)算設(shè)備104起初可以向諸如驗(yàn)證實(shí)體102的驗(yàn)證實(shí)體發(fā)送健康證書122。如果驗(yàn)證實(shí)體102確定健康證書122是有效的,例如未過期,則驗(yàn)證實(shí)體可以向用戶計(jì)算設(shè)備104發(fā)出認(rèn)證票。隨后,用戶計(jì)算設(shè)備104可以使用該認(rèn)證票從服務(wù)提供者106獲取服務(wù)。
[0064]在一些實(shí)施例中,一個(gè)或多個(gè)密鑰120可以具有過期日期。過期日期可以用于激勵(lì)用戶128將用戶計(jì)算設(shè)備104保持最新并且保護(hù)用戶計(jì)算設(shè)備104免受最新的安全威脅。例如,在一個(gè)或多個(gè)密鑰120過期之后,使用一個(gè)或多個(gè)密鑰120保護(hù)的數(shù)據(jù)文件可以變?yōu)椴豢稍L問。將一個(gè)或多個(gè)密鑰120更新為新密鑰可以取決于用戶計(jì)算設(shè)備104從驗(yàn)證實(shí)體102接受軟件更新126。例如,軟件更新126和對(duì)一個(gè)或多個(gè)密鑰120的更新可以作為單個(gè)數(shù)據(jù)包而分發(fā)。軟件更新126可以包括對(duì)操作系統(tǒng)的更新、對(duì)硬件平臺(tái)的固件的更新、對(duì)安裝在用戶計(jì)算設(shè)備104上的一個(gè)或多個(gè)應(yīng)用程序的更新、針對(duì)健康證書122的替代健康證書等。被取代的密鑰和/或健康證書可以被驗(yàn)證實(shí)體102標(biāo)記為無效。
[0065]在其它實(shí)施例中,驗(yàn)證實(shí)體102可以向用戶計(jì)算設(shè)備104自動(dòng)發(fā)送新的參考健康值108。在更新參考計(jì)算設(shè)備110上的固件和/或操作系統(tǒng)文件之后,可以生成新的參考健康值108。由此,由于參考健康值108與設(shè)備健康值118之間的不匹配,用戶計(jì)算設(shè)備104的一個(gè)或多個(gè)功能可以變?yōu)椴豢稍L問的。通過將軟件更新126下載到用戶計(jì)算設(shè)備104,用戶128可以重新獲得對(duì)這些功能的訪問。
[0066]然而,在又一些實(shí)施例中,驗(yàn)證實(shí)體102可以向用戶計(jì)算設(shè)備104自動(dòng)提供軟件更新126??梢灾芷谛缘靥峁┸浖?26和/或在由驗(yàn)證實(shí)體102確定的時(shí)間提供軟件更新126。用戶128可以使用維護(hù)模塊314的應(yīng)用程序設(shè)置來選擇這樣的自動(dòng)更新。以這種方式,可以向用戶128保證用戶計(jì)算設(shè)備104的安全狀態(tài)是最新的以及存儲(chǔ)在用戶計(jì)算設(shè)備104上的數(shù)據(jù)是受保護(hù)的。
[0067]示例過程
[0068]圖4-8描述了用于使用由計(jì)算設(shè)備上的信任模塊推導(dǎo)(derive)的設(shè)備健康值來確定計(jì)算設(shè)備的健康狀態(tài)的各種示例過程。在每個(gè)示例過程中所描述的操作的順序并不旨在被解釋為限制,并且任意數(shù)量的所描述的操作可以以任意順序組合和/或并行地實(shí)施每個(gè)過程。另外,圖4-8中的每個(gè)的操作可以以硬件、軟件、和/或其組合來實(shí)施。在軟件的背景下,操作可以表示計(jì)算機(jī)可讀指令,當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),該指令使得一個(gè)或多個(gè)處理器執(zhí)行所記載的操作。一個(gè)或多個(gè)處理器可以包括在個(gè)體計(jì)算設(shè)備中,或包括在作為例如云的一部分的多個(gè)計(jì)算設(shè)備中??傮w上,計(jì)算機(jī)可讀指令包括使得特定功能被執(zhí)行或特定抽象數(shù)據(jù)類型被實(shí)施的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。在其它實(shí)施例中,每個(gè)示例過程的操作可以由諸如專用集成電路的硬件邏輯電路來執(zhí)行。
[0069]圖4是示出了用于使用一個(gè)或多個(gè)參考計(jì)算設(shè)備生成參考健康值的示例過程400。在框402,參考計(jì)算設(shè)備110的啟動(dòng)加載器216可以初始化參考硬件平臺(tái),例如硬件平臺(tái)202。在各個(gè)實(shí)施例中,啟動(dòng)加載器216可以通過對(duì)每個(gè)硬件組件上電和/或通過與每個(gè)硬件組件相關(guān)聯(lián)的固件而向每個(gè)硬件組件提供指令來執(zhí)行這樣的初始化。在一些實(shí)施例中,啟動(dòng)加載器216可以使用啟動(dòng)設(shè)置218來初始化硬件平臺(tái)202。
[0070]在框404,參考計(jì)算設(shè)備110的健康值模塊208可以獲取一個(gè)或多個(gè)參考硬件配置值。一個(gè)或多個(gè)參考硬件配置值可以表示所初始化的參考硬件平臺(tái)202的狀態(tài)。在各個(gè)實(shí)施例中,硬件平臺(tái)202的應(yīng)用程序接口可以與健康值模塊208接合以向健康值模塊208傳輸一個(gè)或多個(gè)參考硬件配置值。
[0071]在框406,啟動(dòng)加載器216可以加載參考操作系統(tǒng),例如操作系統(tǒng)214。在一些實(shí)施例中,啟動(dòng)加載器216可以根據(jù)操作系統(tǒng)配置設(shè)置220來加載操作系統(tǒng)214。操作系統(tǒng)配置設(shè)置220可以指定要被加載的操作系統(tǒng)214的一個(gè)或多個(gè)數(shù)據(jù)文件222(例如,庫、驅(qū)動(dòng)程序、配置等)。
[0072]在框408,健康值模塊208可以獲取一個(gè)或多個(gè)參考操作系統(tǒng)配置值。一個(gè)或多個(gè)操作系統(tǒng)配置值可以表示包括所加載的操作系統(tǒng)的軟件棧的狀態(tài)。在各個(gè)實(shí)施例中,操作系統(tǒng)214的應(yīng)用程序接口可以與健康值模塊208接合以向健康值模塊208傳輸一個(gè)或多個(gè)參考操作系統(tǒng)配置值。
[0073]在框410,健康值模塊208可以根據(jù)一個(gè)或多個(gè)參考硬件配置值和/或一個(gè)或多個(gè)參考操作系統(tǒng)配置值來生成參考健康值108。在各個(gè)實(shí)施例中,健康值模塊208可以使用一個(gè)或多個(gè)算術(shù)運(yùn)算和/或一個(gè)或多個(gè)數(shù)據(jù)轉(zhuǎn)換運(yùn)算來執(zhí)行該生成,只要所得到的參考健康值108唯一地表示輸入配置值的組合。
[0074]然而,在其它實(shí)施例中,可以由健康值模塊208生成多個(gè)參考值。例如,健康值模塊208可以根據(jù)與硬件平臺(tái)202相關(guān)聯(lián)的配置值來生成第一參考健康值,并且根據(jù)與操作系統(tǒng)214相關(guān)聯(lián)的配置值生成第二參考健康值。在一些實(shí)例中,硬件平臺(tái)202和包括操作系統(tǒng)214的軟件??梢择v留在兩個(gè)不同的參考計(jì)算設(shè)備上。由此,驗(yàn)證實(shí)體102可以向諸如用戶計(jì)算設(shè)備014的用戶計(jì)算設(shè)備發(fā)送多個(gè)參考健康值。替代地,驗(yàn)證實(shí)體102可以將第一參考健康值和第二參考健康值組合成組合的參考健康值以供傳遞至用戶計(jì)算設(shè)備104。
[0075]圖5是示出了用于基于用戶計(jì)算設(shè)備的設(shè)備健康值與參考健康值的比較來確定用戶計(jì)算設(shè)備的健康狀態(tài)的示例過程500。在框502,用戶計(jì)算設(shè)備104上的信任模塊116可以存儲(chǔ)參考健康值,例如參考健康值108。信任模塊116可以從驗(yàn)證實(shí)體102的服務(wù)器114接收參考健康值108。參考健康值108可以是使用參考計(jì)算設(shè)備110生成的并且可以與安全的設(shè)備狀態(tài)相對(duì)應(yīng)。
[0076]在框504,信任模塊116可以中的用戶計(jì)算設(shè)備104生成設(shè)備健康值,例如設(shè)備健康值118。在各個(gè)實(shí)施例中,可以基于啟動(dòng)時(shí)硬件平臺(tái)302的狀態(tài)和/或包括操作系統(tǒng)310的軟件棧的狀態(tài)來生成設(shè)備健康值118。設(shè)備健康值118可以表示用戶計(jì)算設(shè)備104的健康狀態(tài)。
[0077]在決策框506,狀態(tài)評(píng)價(jià)器338可以將設(shè)備健康值118與參考健康值108進(jìn)行比較。因此,如果設(shè)備健康值118與參考健康值108匹配(決策框506處的“是”),則過程500可以進(jìn)行至框510。在框510,狀態(tài)評(píng)價(jià)器338可以確定用戶設(shè)備處于安全狀態(tài)?;谠摯_定,狀態(tài)評(píng)價(jià)器338可以允許用戶計(jì)算設(shè)備104正常運(yùn)行。例如,用戶計(jì)算設(shè)備104可以在由操作系統(tǒng)310提供的計(jì)算環(huán)境中執(zhí)行眾多應(yīng)用程序。
[0078]然而,如果狀態(tài)評(píng)價(jià)器338確定設(shè)備健康值118與參考健康值108不匹配(決策框506處的“否”),則過程500可以進(jìn)行至框512。在框512,狀態(tài)評(píng)價(jià)器338可以確定用戶計(jì)算設(shè)備104處于非期望狀態(tài)。由此,狀態(tài)評(píng)價(jià)器338可以停止操作系統(tǒng)310的執(zhí)行,以便阻止用戶128訪問由操作系統(tǒng)310提供的計(jì)算環(huán)境。另外,狀態(tài)評(píng)價(jià)器338可以執(zhí)行包括維護(hù)模塊314的恢復(fù)環(huán)境。在恢復(fù)環(huán)境中,維護(hù)模塊314可以執(zhí)行對(duì)在計(jì)算設(shè)備上的軟件組件的修復(fù)。該修復(fù)可以包括修理損壞的數(shù)據(jù)文件、移除惡意軟件或病毒、重映射操作系統(tǒng)、針對(duì)一個(gè)或多個(gè)硬件組件安裝新的固件等。可以使用從驗(yàn)證實(shí)體102下載的數(shù)據(jù)文件來實(shí)現(xiàn)重新映射和/或安裝新固件。該修復(fù)可以使用戶計(jì)算設(shè)備104回到安全狀態(tài)。在修復(fù)之后,過程500可以循環(huán)回到框504。
[0079]圖6是示出了用于針對(duì)計(jì)算設(shè)備生成設(shè)備健康值的示例過程600的流程圖。示例過程600還示出了過程500的框504。在602,用戶計(jì)算設(shè)備104的啟動(dòng)加載器312可以初始化設(shè)備硬件平臺(tái),例如硬件平臺(tái)302。在各個(gè)實(shí)施例中,啟動(dòng)加載器216可以通過給每個(gè)硬件組件上電和/或通過其固件硬件組件而向每個(gè)硬件組件提供指令來執(zhí)行這樣的初始化。在一些實(shí)施例中,啟動(dòng)加載器312可以使用啟動(dòng)設(shè)置318來初始化硬件平臺(tái)302。
[0080]在框604,用戶計(jì)算設(shè)備104的信任模塊116可以獲取一個(gè)或多個(gè)設(shè)備硬件配置值。一個(gè)或多個(gè)設(shè)備硬件配置值可以表示所初始化的設(shè)備硬件平臺(tái)302的狀態(tài)。在各個(gè)實(shí)施例中,硬件平臺(tái)302的應(yīng)用程序接口可以與信任模塊116接合以向信任模塊116傳輸一個(gè)或多個(gè)設(shè)備硬件配置值。
[0081]在框606,啟動(dòng)加載器312可以加載設(shè)備操作系統(tǒng),例如操作系統(tǒng)310。在一些實(shí)施例中,啟動(dòng)加載器312可以格局操作系統(tǒng)配置設(shè)置324來加載操作系統(tǒng)310。操作系統(tǒng)配置設(shè)置324可以指定要被加載的操作系統(tǒng)310的一個(gè)或多個(gè)數(shù)據(jù)文件326(例如,庫、驅(qū)動(dòng)程序、配置等)。
[0082]在框608,啟動(dòng)加載器312可以獲取一個(gè)或多個(gè)設(shè)備操作系統(tǒng)配置值。一個(gè)或多個(gè)設(shè)備操作系統(tǒng)配置值可以表示包括所加載的操作系統(tǒng)的軟件棧的狀態(tài)。在各個(gè)實(shí)施例中,操作系統(tǒng)310的應(yīng)用程序接口可以與信任模塊116接合以向信任模塊116傳輸一個(gè)或多個(gè)設(shè)備操作系統(tǒng)配置值。
[0083]在框610,信任模塊116可以根據(jù)一個(gè)或多個(gè)設(shè)備硬件配置值和/或一個(gè)或多個(gè)設(shè)備操作系統(tǒng)配置值來生成設(shè)備健康值118。在各個(gè)實(shí)施例中,健康值模塊208可以使用一個(gè)或多個(gè)算術(shù)運(yùn)算和/或一個(gè)或多個(gè)數(shù)據(jù)轉(zhuǎn)換操作來執(zhí)行該生成,只要所得到的設(shè)備健康值118唯一地表示輸入配置值的組合。
[0084]圖7是示出了用于使用一個(gè)或多個(gè)密鑰和參考健康值來保護(hù)存儲(chǔ)在用戶計(jì)算設(shè)備上的用戶數(shù)據(jù)的示例過程的流程圖。在框702,用戶計(jì)算設(shè)備104上的數(shù)據(jù)保護(hù)模塊316可以基于從驗(yàn)證實(shí)體102接收到的一個(gè)或多個(gè)密鑰120和參考健康值10