另一處理器的REE電路。TEE電路被配置成:實現(xiàn)TEE且配置成用于維持TEE內的實時時鐘(RTC),其中RTC提供RTC時間給REE ;以及配置成將RTC偏移存儲在非易失性存儲器中,其中RTC偏移表示RTC時間和被保護的基準(PR)時間之間的差值。REE電路被配置成實現(xiàn)REE且配置成使用RTC作為其時鐘。TEE電路還被配置成:基于TEE接收來自REE的用于讀取RTC時間的請求,返回當前RTC時間;和,基于TEE從REE接收用于調節(jié)RTC時間的請求,以相同的量調節(jié)RTC時間和相對應的RTC偏移,使得PR時間通過RTC調節(jié)未改變。
[0016]在一個示例性實施方式中,TEE電路還被配置成當每次使用來自TEE的PR時間以及每次調節(jié)RTC時間時,將當前PR時間存儲在非易失性存儲器中。然后,當重新啟動實現(xiàn)TEE的處理器時,TEE電路被配置成從非易失性存儲器讀取當前RTC時間、存儲的PR時間、以及存儲的RTC偏移,以及通過將存儲的RTC偏移與當前的RTC時間相加來計算當前PR時間。TEE電路比較當前PR時間和所存儲的PR時間,且如果當前PR時間小于所存儲的PR時間,則調節(jié)RTC偏移等于零,使得RTC時間和PR時間相同。TEE電路還可被配置成:如果當前PR時間小于所存儲的PR時間,則確定PR時間已經被篡改。
[0017]在一個實施方式中,非易失性存儲器可包括作為更大存儲器單元的一部分的重放保護內存塊(RPMB)。在該實施方式中,基于RPMB和TEE之間的共享的密鑰,RPMB支持已認證的讀寫操作,使得僅僅TEE能夠變更RPMB的內容,以及使得TEE能夠驗證從RPMB讀取的數(shù)據(jù)的真實性。在該實施方式中,REE向TEE提供用于將已認證的讀寫請求發(fā)送給RPMB的服務。在另一實施方式中,非易失性存儲器包括僅僅受到TEE控制的電可擦除可編程只讀存儲器(EEPROM)單元。
[0018]根據(jù)一個示例性實施方式,TEE電路和REE電路通過利用ARMTRUSTZ0NE技術的單個處理器來實現(xiàn),其中,借助總線,所述處理器的信任區(qū)(TRUSTZONE)安全狀態(tài)在計算裝置內進行內部傳播,用于每次訪問存儲器和包括RTC的外圍設備。在該實施方式中,基于安全狀態(tài),在存儲器和屬于TEE的外圍設備中或者在存儲器和屬于TEE的外圍設備之前,進行訪問的地址過濾。在同一或另一實施方式中,TEE電路和REE電路通過單個處理器實現(xiàn),其中,TEE電路和REE電路都通過單個處理器被實現(xiàn)作為虛擬機,RTC在TEE虛擬機的控制下。在另一實施方式中,TEE電路包括第一處理器且REE電路包括不同的第二處理器。
[0019]計算裝置還可支持各種受信任的應用程序(TA)特征。例如,在一個實施方式中,TEE電路還被配置成接收來自在TEE中執(zhí)行的TA的設定對于TA的持續(xù)時間的請求?;谠撜埱螅琓EE電路根據(jù)當前RTC時間和存儲的RTC偏移確定當前PR時間,確定當前PR時間和所請求的持續(xù)時間之間的差值為用于TA的持續(xù)時間偏移,和將用于TA的所述持續(xù)時間偏移和持續(xù)時間標識符存儲非易失性存儲器中。多個TA中的每一個TA可被允許將其自身的持續(xù)時間偏移存儲在非易失性存儲器中,且多個TA中的每一個TA的持續(xù)時間偏移可基于相同的RTC偏移來確定。
[0020]TEE電路還可被配置成接收來自TA的對于其持續(xù)時間的請求。TEE電路從非易失性存儲器中檢索對于TA的持續(xù)時間偏移,且確定所檢索的持續(xù)時間偏移的有效性。響應于確定所檢索的持續(xù)時間偏移是有效的,TEE電路被配置成基于持續(xù)時間偏移和從當前RTC時間和所存儲的RTC偏移計算的當前PR時間確定持續(xù)時間,且將該持續(xù)時間發(fā)送給TA。響應于確定所檢索的持續(xù)時間偏移是無效的,TEE電路被配置成將指示TA持續(xù)時間被篡改的錯誤返回至TA。所檢索的持續(xù)時間的有效性可通過將存儲的RTC計數(shù)器和當前RTC計數(shù)器相比較而確定。
[0021]當然,本發(fā)明不限于上述的特征和優(yōu)點。事實上,本領域技術人員當閱讀下文的詳細描述且查看附圖時將意識到其他的特征和優(yōu)點。
【附圖說明】
[0022]圖1示出現(xiàn)有技術中的TEE架構。
[0023]圖2示出實現(xiàn)分離的富執(zhí)行環(huán)境(REE)和可信執(zhí)行環(huán)境(TEE)的安全時間計算裝置的軟件配置。
[0024]圖3示出圖2的計算裝置的第一示例性硬件配置。
[0025]圖4示出圖2的計算裝置的第二示例性硬件配置。
[0026]圖5示出圖2的計算裝置的第三示例性硬件配置,其中利用TRUSTZONE技術。
[0027]圖6示出維持安全時間的示例性方法。
[0028]圖7為示出受保護的基準時間驗證的調用流程圖。
[0029]圖8為示出RTC更新的調用流程圖。
[0030]圖9為示出TA持續(xù)時間的設置的調用流程圖。
[0031]圖10為示出用于將TA持續(xù)時間提供給其對應的TA的步驟的調用流程圖。
【具體實施方式】
[0032]圖2示出用于安全時間計算裝置10的示例性軟件配置,在該安全時間計算裝置中,一個或多個處理器實現(xiàn)富執(zhí)行環(huán)境(REE) 12和獨立的可信執(zhí)行環(huán)境(TEE) 14。TEE 14通過相關聯(lián)的RTC硬件(HW) 74,84 (參見圖3-圖5)維持實時時鐘(RTC),該RTC硬件提供RTC時間給REE 12。S卩,RTC HW受TEE 14控制,且在TEE核48內,TEE 14提供用于從RTCHW獲取RTC時間以及將該RTC時間設置給RTC HW的功能。在這點上,RTC HW可被認為是“受信任的”外圍設備。
[0033]指示RTC時間和受保護的基準(protected reference,PR)時間之間的差異的RTC偏移被存儲在非易失性存儲器(參見,例如圖3的EEPROM 78和圖4的eMMC 66)中。響應于來自REE 12的用于讀取RTC時間的請求,當前RTC時間被返回至REE 12。響應于來自REE 12的用于調整RTC時間的請求,RTC時間和相應的RTC偏移被調整相同的量,使得進行RTC調整未改變PR時間。因此,計算裝置使用一個公共RTC硬件塊(參見圖3-圖5中的RTC 74、RTC 84)來執(zhí)行PR時間和RTC時間。
[0034]計算裝置10允許REE 12自由地反復地改變RTC,但始終維持PR時間作為偏移,使得可檢測到篡改。因此,REE 12不可能成功地改變TEE 14的PR時間,因為PR時間被保護而免受來自REE 12的軟件攻擊。該篡改保護在下文將更為詳細地論述。有利地,單個的硬件RTC 74、硬件RTC 84 (參見圖3-圖5)被利用以提供RTC,使得不需要在計算裝置10內實現(xiàn)兩個單獨的時鐘,這減少了計算裝置10的硬件需求,同時仍提供安全時間。RTC偏移(以及當前的PR時間)被存儲在非易失性存儲器中,這些值可使用芯片個性密鑰,且可選地也使用重發(fā)保護,被完整性保護。
[0035]REE 12包括用戶空間20和內核22。類似地,TEE 14也包括用戶空間40和內核42。在一個示例中,REE對應于基于Windows的操作系統(tǒng)或者基于Linux的操作系統(tǒng)。內核22、內核42分別用作應用程序和在硬件級別進行的實際數(shù)據(jù)處理之間的橋梁。應用程序在用戶空間20、用戶空間40中執(zhí)行。在REE的用戶空間20中,客戶端應用程序24A-24B中的一者或兩者被執(zhí)行,在TEE的用戶空間40中,受信任的應用程序(TA)44被執(zhí)行。盡管闡述了兩個客戶端應用程序24A-24B,但是應理解到,這些多個客戶端應用程序24被示出以說明訪問TEE的各個方式,還應當理解到,可利用單個的客戶端應用程序24。受信任的應用程序和客戶端應用程序可以是相關的。例如,客戶端應用程序24可被配置成利用HTTPS協(xié)議以下載許可文件,且TA 44可包括數(shù)字版權管理(DRM)代理,該數(shù)字版權管理(DRM)代理確認下載的許可文件有效。
[0036]REE內核22提供RTC核26和TEE驅動器28,且TEE內核42提供TEE核48。如圖1所示,TA 44使用TEE內部API 46與TEE核48相互作用。在來自http://www.globalplatform.0rg的“TEE內部API規(guī)范V1.0”中可得到更多的關于TEE內部API 46的信息。如圖2所示,監(jiān)控器32用作TEE驅動器28和TEE核48之間的橋梁,且可促進TRUSTZONE (信任區(qū))-啟用的CPU從“正常模式”轉變至“安全模式”(參見,圖5的CPU 80)。
[0037]現(xiàn)參照REE 12,TEE驅動器28通過RTC核26或TEE客戶端API 30而為客戶端應用程序24提供了對TEE 14的訪問。RTC核26提供用于客戶端應用程序的接口以獲得或者設定RTC時間(通過TEE核48而執(zhí)行所述獲得或所述設定)。TEE客戶端API 30提供用于客戶端應用程序24的更為通用的接口以訪問任何受信任的應用程序功能,而不是TEE核48本身。在來自http://www.globalplat