中,用戶計算設備104可以是臺式計算機、平板計算機、膝上型計算機、智能電話、游戲機、個人數(shù)字助理(PDA)等。
[0046]用戶計算設備104可以包括硬件平臺302、平臺固件304、存儲器306、以及信任模塊116。硬件平臺302可以包括使得用戶計算設備104上的軟件能夠執(zhí)行的一個或多個硬件組件,例如,一個或多個處理器308。一個或多個組件308可以包括中央處理單元(CPU)、通信處理單元(GPU)、微處理器、數(shù)字信號處理器等。此外,雖然某些功能和模塊在本文中被描述為由可以在處理器上執(zhí)行的軟件和/或固件來實施,但是在其它實施例中,可以部分或全部由硬件將任意或全部模塊實施(例如,成為ASIC、專用處理單元等)來執(zhí)行所描述的功能。所描述的功能可以被實施為一個或多個硬件邏輯組件,例如現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標準產(chǎn)品(ASSP)、片上系統(tǒng)系統(tǒng)(S0C)、復雜可編程邏輯器件(CPLD)等。
[0047]硬件平臺的其它硬件組件可以包括網(wǎng)絡接口卡(NIC)、圖像處理單元(GPU)、聲卡、相機、顯示接口、新申請、用戶接口等。盡管為了示出的目的單獨進行了示出,但是存儲器306可以是硬件平臺302的一部分。用戶計算設備104的用戶接口可以包括但不限于以下中的一個或多個的組合:小鍵盤、鍵盤、鼠標設備、接受手勢的觸摸屏、麥克風、語音或話音識別設備、以及任何其它合適的識別或其它電子/軟件選擇方法。
[0048]平臺固件304可以包括使得操作系統(tǒng)310能夠與硬件平臺302的硬件組件接合的程序指令。由此,操作系統(tǒng)310可以指示硬件組件來執(zhí)行任何和/或生成數(shù)據(jù)。硬件組件的固件可以存儲在硬件組件的持久存儲器中。
[0049]可以使用諸如計算機存儲介質(zhì)的計算機可讀介質(zhì)來實施存儲器306。計算機可讀介質(zhì)至少包括兩種類型的計算機可讀介質(zhì),即計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲信息的任何方法或技術實施的易失性和非易失性、可移除和不可移除介質(zhì),該信息可以是例如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它數(shù)據(jù)。計算機存儲介質(zhì)包括但不限于RAM、ROM、EEPROM、閃速存儲器或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)、或其它光學存儲設備、盒式磁帶、磁帶、磁盤存儲設備或其它磁存儲設備、或可以用于存儲信息以供由計算設備訪問的任意其它有形介質(zhì)。相反,通信介質(zhì)可以實現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或經(jīng)調(diào)制的數(shù)據(jù)信號(例如,載波、或其它傳輸機制)中的其它數(shù)據(jù)。如在本文中所定義的,計算機存儲介質(zhì)不包括通信介質(zhì)。
[0050]參考計算設備104的存儲器306可以存儲包括操作系統(tǒng)310、啟動加載器312、維護模塊314、和數(shù)據(jù)保護模塊316的軟件組件。啟動加載器312可以將硬件平臺302的一個或多個硬件組件初始化。在各個實施例中,啟動加載器312就可以通過執(zhí)行與每個硬件組件相關聯(lián)的固件來執(zhí)行這樣的初始化。在一些實施例中,啟動加載器312可以使用啟動設置318來將硬件平臺202初始化。在各個實施例中,啟動設置318可以指定在啟動時要被初始化的硬件平臺302的特定硬件組件。例如,啟動設置318可以指定將經(jīng)批準的硬件組件的特定列表來通電。
[0051]替代地,啟動設置318可以指定用于選擇要被初始化的硬件組件的一個或多個標準。例如,啟動設置318可以將初始化限于硬件平臺202的其固件被驗證實體102批準(例如,數(shù)字簽名)的每個硬件組件。啟動設置318還可以包括用于將硬件平臺202的硬件組件初始化的特定配置。例如,配置可以針對硬件組件指定功率等級、數(shù)據(jù)傳送速率、存儲器分配等。特定配置可以是由驗證實體102批準的配置。
[0052]用戶計算設備104可以將操作系統(tǒng)310存儲在存儲器306的系統(tǒng)卷320中。一旦硬件組件被初始化,啟動加載器312就可以將操作系統(tǒng)310加載到工作存儲器(例如,RAM)中以將計算環(huán)境實例化。計算環(huán)境可以支持一個或多個應用程序322的執(zhí)行。在一些實施例中,啟動加載器312可以根據(jù)操作系統(tǒng)配置設置324來加載操作系統(tǒng)310。操作系統(tǒng)配置設置324可以指定要被加載的操作系統(tǒng)310的一個或多個數(shù)據(jù)文件326(例如,庫、驅(qū)動程序、配置等)。對一個或多個數(shù)據(jù)文件326的加載可以定制操作系統(tǒng)310以執(zhí)行特定的服務、提供具體功能、或顯示定制的視覺效果。
[0053]在一些實施例中,硬件平臺302可以與硬件平臺202相同,并且操作系統(tǒng)310可以與操作系統(tǒng)214相同。此外,啟動設置318可以與啟動設置218相同,并且操作系統(tǒng)配置設置324可用與操作系統(tǒng)配置設置220相同。
[0054]用戶數(shù)據(jù)卷328可以存儲用戶數(shù)據(jù)330。用戶數(shù)據(jù)330可以包括代表諸如用戶128的用戶生成的數(shù)據(jù)。例如,用戶數(shù)據(jù)330可以包括由用戶使用安裝在用戶計算設備104上的應用程序起草的文檔、由用戶存儲到存儲器306的照片等。用戶數(shù)據(jù)330可以由數(shù)據(jù)保護模塊316保護。在一些實施例中,可以使用訪問密鑰332來對用戶數(shù)據(jù)330進行加密或密碼保護。
[0055]信任模塊116可以在用戶計算設備104啟動時從硬件平臺302和/或操作系統(tǒng)310收集配置值。信任模塊116可以是安裝在用戶計算設備104上的單獨處理器模塊。例如,處理器模塊可以類似于符合由TCG概括的TPM規(guī)范的TPM模塊。信任模塊116可以具有諸如加密算法的保護機制,其保護存儲在信任模塊116上的數(shù)據(jù)以免受侵入。在各個實施例中,信任模塊116可以以與參考計算設備110的健康值模塊208相似的方式操作。由此,信任模塊116可以以與健康值模塊208相同的方式從硬件平臺302和/或操作系統(tǒng)310來收集配置值。信任模塊116可以將配置值存儲在配置寄存器334中。在一些實例中,所存儲的配置值可以排除與外圍硬件組件(例如,外部鍵盤、鼠標、擴展塢等)相關聯(lián)的配置值。
[0056]隨后,信任模塊116還可以以與健康值模塊208相同的方式,基于從硬件平臺302和/或操作系統(tǒng)310獲取的配置值來生成設備健康值118。駐留于信任模塊116中的計算算法可以生成設備健康值118。然而,在一些實施例中,參考健康值108和設備健康值118可以是僅根據(jù)與硬件平臺或操作系統(tǒng)相關聯(lián)的配置值來生成的。替代地,信任模塊116可以生成多個設備健康值,例如根據(jù)與硬件平臺302相關聯(lián)的配置值來生成第一設備健康值,并且根據(jù)與操作系統(tǒng)310相關聯(lián)的配置值來生成第二設備健康值。例如,以這樣的方式獲取的健康值在以下情況中確定健康狀態(tài)時可以是有用的:不同的操作系統(tǒng)是在相同的硬件平臺上實施的,或相反。
[0057]狀態(tài)評價器338可以將設備健康值118與參考健康值108進行比較以確定用戶計算設備104是否處于安全狀態(tài)或非期望狀態(tài)。在各個實施例中,狀態(tài)評價器338可以是啟動處理組件,例如啟動加載器312的組件。替代地,狀態(tài)評價器338可以是嵌入在信任模塊116中的軟件組件。信任模塊116可以從服務器114接收由驗證實體102保存的參考健康值。進而,信任模塊116可以向狀態(tài)評價器338提供參考健康值。替代地,狀態(tài)評價器338可以直接從服務器114接收參考健康值。在各個實施例中,當設備健康值118與參考健康值108匹配時,狀態(tài)評價器338可以確定用戶計算設備104處于安全狀態(tài)。相反,當設備健康值118與參考健康值108不相同時,狀態(tài)評價器338可以確定用戶計算設備104處于非期望狀態(tài)。替代地,在存在多個參考健康值和多個設備健康值的實例中,當每個設備健康值與相對應的參考健康值相同時,狀態(tài)評價器338可以確定用戶計算設備104處于安全狀態(tài)。否則,狀態(tài)評價器338可以確定用戶計算設備104處于非期望狀態(tài)。
[0058]在各個實施例中,信任模塊116可以將一個或多個密鑰120與一個或多個參考健康值綁定。由此,參考健康值可以是可訪問的,只要用戶計算設備104的每個設備健康值與其所定義的參考健康值匹配。由此,狀態(tài)評價器338可以通過嘗試訪問存儲在信任模塊116中的密鑰120來檢查一個或多個設備健康值是否與一個或多個參考健康值匹配。如果密鑰120是可訪問的,則狀態(tài)評價器338可以確定這些值匹配。然而,如果狀態(tài)評價器338不能訪問密鑰120,則狀態(tài)評價器338可以確定設備健康值中的每個與相對應的參考健康值不匹配。然而,在其它實施例中,狀態(tài)評價器338可以將一個或多個設備健康值與一個或多個參考健康值直接進行比較。
[0059]在發(fā)現(xiàn)用戶計算設備104處于非期望狀態(tài)的情況下,狀態(tài)評價器338可以停止操作系統(tǒng)310的執(zhí)行,以便阻止用戶128訪問由操作系統(tǒng)310提供的計算環(huán)境。另外,狀態(tài)評價器310可以執(zhí)行包括維護模塊314的恢復環(huán)境。在各個實施例中,恢復環(huán)境可以由被一個或多個處理器308執(zhí)行的并行安全軟件棧提供。在恢復環(huán)境中,維護模塊314可以執(zhí)行對在計算設備上的軟件組件的修復。例如,維護模塊314可以在用戶計算設備104的顯示器上顯示提示用戶來發(fā)起修復的通知。該修復可以包括修理損壞的數(shù)據(jù)文件、移除惡意軟件或病毒、重映射操作系統(tǒng)、針對一個或多個硬件組件安裝新的固件等,使得用戶計算設備可以回到安全狀態(tài)。關于操作系統(tǒng)310和應用程序322執(zhí)行的任何修復操作可以指向系統(tǒng)卷320。在各個實施例中,維護模塊314可以利用各種維護應用程序來執(zhí)行修復。這樣的維護應用程序可以包括磁盤掃描應用程序、惡意軟件掃描應用程序、病毒掃描應用程序、固件刷新應用程序、重映射應用程序等。維護應用程序可以加載到用戶計算設備104上和/或從驗證實體102的服務器114可用。
[0060 ]例如,維護模塊314可以建立經(jīng)由網(wǎng)絡112的與驗證實體10 2的服務器114的通信鏈路。由此,服務器114上的維護應用程序可以使用通信鏈路來建立維護會話。在維護會話期間,一個或多個維護應用程序可以掃描用戶計算設備104以檢測并修復錯誤。在一些實例中,修復可以涉及利用存儲器服務器114上的新的數(shù)據(jù)文件來替代用戶計算設備104上的數(shù)據(jù)文件,例如操作系統(tǒng)310、數(shù)據(jù)文件326、應用程序322、和/或平臺固件304。由于用戶數(shù)據(jù)330是單獨地存儲在用戶數(shù)據(jù)卷328中的,因此用戶數(shù)據(jù)330不受由維護模塊314進行的對系統(tǒng)卷320的任何修復。這意味著可以在成功修復系統(tǒng)卷320中的應用程序和/或數(shù)據(jù)之后,恢復對用戶數(shù)據(jù)330的訪問。修復,如果信任模塊116確定用戶計算設備104在安全狀態(tài)運行,則信任模塊116可以允許用戶計算設備104正常運行并執(zhí)行應用程序322。
[0061]在一些實施例中,用戶計算設備104可以從驗證實體102接收一個或多個密鑰120和參考健康值108。一個或多個密鑰120可以是特別針對用戶計算設備104產(chǎn)生的唯一密鑰。然而,在其它實例中,一個或多個密鑰120可以是被分配給多個相同用戶計算設備的密鑰。信任模塊116可以將一個或多個密鑰120傳遞給數(shù)據(jù)保護模塊316。進而,數(shù)據(jù)保護模塊316可以使用一個或多個密鑰120來保護存儲在用戶數(shù)據(jù)卷328中的用戶數(shù)據(jù)330。在至少一個實施例中,信任模塊116可以使用訪問密鑰生成器340來根據(jù)一個或多個密鑰120和參考健康值的組合來生成訪問密鑰332。該生成可以涉及針對一個或多個密鑰120和參考健康值108來執(zhí)行算術運算和/或哈希操作。信任模塊116可以向數(shù)據(jù)保護模塊316提供訪問密