專利名稱:受信實(shí)時(shí)時(shí)鐘的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及系統(tǒng)時(shí)鐘。更具體而言,本發(fā)明涉及操作系統(tǒng)中的可以保持正確時(shí)間的實(shí)時(shí)時(shí)鐘。
背景技術(shù):
操作系統(tǒng)可以包括系統(tǒng)時(shí)鐘,以提供用于測量小的時(shí)間增量(例如1毫秒的增量)的系統(tǒng)時(shí)間。操作系統(tǒng)可以響應(yīng)于某個(gè)系統(tǒng)所產(chǎn)生的周期性的中斷而更新系統(tǒng)時(shí)鐘,所述系統(tǒng)例如是Intel 8254事件定時(shí)器、Intel高性能事件定時(shí)器(HPET)或?qū)崟r(shí)時(shí)鐘事件定時(shí)器。操作系統(tǒng)可以使用系統(tǒng)時(shí)間來給文件打上時(shí)間戳,產(chǎn)生周期性中斷,產(chǎn)生基于時(shí)間的單觸發(fā)(one-shot)中斷,以及調(diào)度進(jìn)程等等。一般而言,系統(tǒng)時(shí)鐘可以在計(jì)算設(shè)備運(yùn)行的同時(shí)保持系統(tǒng)時(shí)間,但是一旦將計(jì)算設(shè)備斷電或置于睡眠狀態(tài),則一般不能保持系統(tǒng)時(shí)間。因此,操作系統(tǒng)可以使用參考時(shí)鐘來在系統(tǒng)啟動(dòng)或系統(tǒng)蘇醒時(shí)將系統(tǒng)時(shí)鐘的系統(tǒng)時(shí)間初始化。此外,系統(tǒng)時(shí)鐘容易漂移離開正確的時(shí)間。因此,操作系統(tǒng)可以使用參考時(shí)鐘來周期性地更新系統(tǒng)時(shí)鐘的系統(tǒng)時(shí)間。
一種這樣的參考時(shí)鐘是硬件實(shí)時(shí)時(shí)鐘(RTC)。計(jì)算設(shè)備一般包括RTC和當(dāng)計(jì)算設(shè)備低功耗(power down)時(shí)給RTC供電的電池。由于電池的電力,即使將計(jì)算設(shè)備斷電或置于睡眠狀態(tài),RTC也能夠維持實(shí)際時(shí)間(real time)或壁鐘時(shí)間(wall time),并且一般能比系統(tǒng)時(shí)鐘更精確地保持時(shí)間。除了設(shè)有用于獲得壁鐘時(shí)間的接口以外,RTC還設(shè)有一個(gè)接口,可以用來例如設(shè)置或改變RTC時(shí)間的一個(gè)或多個(gè)寄存器。如本領(lǐng)域技術(shù)人員所知,壁鐘時(shí)間指的是真正的實(shí)際時(shí)間(例如,2002年12月4日,星期五,下午12:01),該時(shí)間可以包括例如當(dāng)前的秒、分、小時(shí)、星期幾、日、月和年。壁鐘時(shí)間的名字來源于掛在墻上的傳統(tǒng)時(shí)鐘所提供的時(shí)間,并且通常用于與CPU時(shí)間相區(qū)分,所述CPU時(shí)間代表了處理器執(zhí)行處理所花費(fèi)的秒數(shù)。由于多任務(wù)和多處理器系統(tǒng),執(zhí)行一個(gè)處理的CPU時(shí)間可能大大不同于執(zhí)行該處理的壁鐘時(shí)間。
計(jì)算設(shè)備可以使用系統(tǒng)時(shí)鐘和/或RTC時(shí)鐘來實(shí)行用于時(shí)間敏感數(shù)據(jù)的策略。具體而言,計(jì)算設(shè)備可以在數(shù)據(jù)上設(shè)置基于時(shí)間的訪問限制。例如,計(jì)算設(shè)備可以在從發(fā)送起經(jīng)過了一段時(shí)間(例如一個(gè)月)之后禁止讀取電子郵件消息。計(jì)算設(shè)備還可以防止讀取托管維持的源代碼,直到特定日期的到來。作為另一個(gè)例子,計(jì)算設(shè)備可以防止給財(cái)務(wù)事務(wù)指定早于當(dāng)前日期和/或時(shí)間的日期和/或時(shí)間。但是,為了使這些基于時(shí)間的訪問限制有效,計(jì)算設(shè)備必須相信,RTC能抵抗為對攻擊者有利而可能變更壁鐘時(shí)間的攻擊。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種增加實(shí)時(shí)時(shí)鐘所提供的壁鐘時(shí)間的受信度的方法、裝置和記錄介質(zhì),以解決上述問題。
根據(jù)本發(fā)明的第一方面,提供了一種和保持壁鐘時(shí)間的實(shí)時(shí)時(shí)鐘一起使用的方法,包括檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,以及更新狀態(tài)存儲(chǔ),以指示出對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
根據(jù)本發(fā)明的第二方面,提供了一種芯片組,包括實(shí)時(shí)時(shí)鐘,以保持壁鐘時(shí)間;狀態(tài)存儲(chǔ),以指示是否檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊;以及檢測器,以檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,并基于是否檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊來更新所述狀態(tài)存儲(chǔ)。
根據(jù)本發(fā)明的第三方面,提供了一種計(jì)算設(shè)備,包括存儲(chǔ)器,以存儲(chǔ)多個(gè)指令;實(shí)時(shí)時(shí)鐘,以提供壁鐘時(shí)間;處理器,以響應(yīng)于處理所述多個(gè)指令,從所述實(shí)時(shí)時(shí)鐘處獲取所述壁鐘時(shí)間;以及檢測器,向所述處理器指示是否已檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
根據(jù)本發(fā)明的第四方面,提供了一種機(jī)器可讀介質(zhì),其中包含多個(gè)指令,響應(yīng)于所述指令的執(zhí)行,所述指令導(dǎo)致一個(gè)計(jì)算設(shè)備確定已檢測到對所述計(jì)算設(shè)備的實(shí)時(shí)時(shí)鐘的攻擊,并且響應(yīng)對所述實(shí)時(shí)時(shí)鐘的攻擊。
根據(jù)以上方法、裝置和介質(zhì),可以增加由實(shí)時(shí)時(shí)鐘所提供的壁鐘時(shí)間的受信度。
在附圖中,以舉例而非限制的方式示出了本文中所描述的本發(fā)明。為圖示簡單和清楚起見,圖中所示的元件不一定按比例繪制。例如,為清楚起見,可能將一些元件的尺寸相對于其它元件進(jìn)行擴(kuò)大。此外,在認(rèn)為合適的地方,在圖形之間用重復(fù)的標(biāo)號(hào)來指示相應(yīng)的或相似的元件。
圖1示出了具有實(shí)時(shí)時(shí)鐘(RTC)的計(jì)算設(shè)備的實(shí)施例;圖2示出了可以由圖1的計(jì)算設(shè)備建立的安全性增強(qiáng)(SE)環(huán)境的實(shí)施例;圖3示出了圖1的RTC響應(yīng)可能的攻擊的方法的示例實(shí)施例。
具體實(shí)施例方式
以下說明描述了多種技術(shù),用于保護(hù)RTC的壁鐘時(shí)間,防止為獲得對時(shí)間敏感數(shù)據(jù)的未授權(quán)訪問和/或進(jìn)行未授權(quán)的時(shí)間敏感操作而改變所述壁鐘時(shí)間。為了更徹底地理解本發(fā)明,在以下說明中闡明了許多具體細(xì)節(jié),如邏輯實(shí)現(xiàn)、操作碼(opcode)、指定操作數(shù)的方式、資源劃分/共享/復(fù)制的實(shí)現(xiàn)、系統(tǒng)組件的類型和相互關(guān)系以及邏輯劃分/集成選擇。但是,本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識(shí)到,沒有這些具體細(xì)節(jié)也可以實(shí)施本發(fā)明。在其它情況下,未詳細(xì)示出一些控制結(jié)構(gòu)、門級電路和完整的指令序列,以免混淆本發(fā)明。利用所包括的說明,本領(lǐng)域普通技術(shù)人員將無需過多的實(shí)驗(yàn)就能夠?qū)崿F(xiàn)適當(dāng)?shù)墓δ堋?br>
在本說明書中,提到“一個(gè)實(shí)施例”、“實(shí)施例”、“示例實(shí)施例”等,表示所描述的實(shí)施例可能包括特定的特征、結(jié)構(gòu)或特性,但每個(gè)實(shí)施例可能不一定包括該特定的特征、結(jié)構(gòu)或特性。此外,這樣的詞語不一定指相同的實(shí)施例。另外,當(dāng)結(jié)合實(shí)施例描述了特定的特征、結(jié)構(gòu)或特性時(shí),無論是否明示,都認(rèn)為結(jié)合其它實(shí)施例對這種特定的特征、結(jié)構(gòu)或特性的實(shí)現(xiàn)是在本領(lǐng)域技術(shù)人員的知識(shí)范圍之內(nèi)。
在圖1中,示出了計(jì)算設(shè)備100的示例實(shí)施例。計(jì)算設(shè)備100可以包括經(jīng)由處理器總線106耦合到芯片組104上的一個(gè)或多個(gè)處理器102。芯片組104可以包括以下部件將處理器102耦合到系統(tǒng)存儲(chǔ)器108的一個(gè)或多個(gè)集成電路封裝或芯片、令牌(token)110、固件112和/或計(jì)算設(shè)備100的其它I/O設(shè)備114(例如,鼠標(biāo)、鍵盤、磁盤驅(qū)動(dòng)器、視頻控制器等)。
處理器102可以支持安全進(jìn)入(SENTER)指令的執(zhí)行,以開始創(chuàng)建安全性增強(qiáng)(SE)環(huán)境,例如圖2的示例SE環(huán)境。處理器102還可以支持安全退出(SEXIT)指令,以開始解除SE環(huán)境。在一個(gè)實(shí)施例中,處理器102可以在處理器總線106上發(fā)出與SENTER、SEXIT及其它指令的執(zhí)行相關(guān)聯(lián)的總線消息。在其它實(shí)施例中,處理器102還可以包括存儲(chǔ)器控制器(未示出),以訪問系統(tǒng)存儲(chǔ)器108。
處理器102還可以支持一個(gè)或多個(gè)操作模式,例如,實(shí)模式、保護(hù)模式、虛擬實(shí)模式和虛擬機(jī)擴(kuò)展模式(VMX模式)。此外,處理器102在所支持的每一個(gè)操作模式中都可以支持一個(gè)或多個(gè)優(yōu)先級或環(huán)(ring)。一般而言,處理器102的操作模式和優(yōu)先級限定了可用于執(zhí)行的指令和執(zhí)行這樣的指令的效果。更具體而言,僅當(dāng)處理器102處于適當(dāng)?shù)哪J胶?或優(yōu)先級中時(shí),才可以允許處理器102執(zhí)行具有一定優(yōu)先權(quán)的指令。
固件112可以包括基本輸入/輸出系統(tǒng)例程(BIOS)。BIOS可以提供低級例程,在系統(tǒng)啟動(dòng)期間,處理器102可以執(zhí)行所述低級例程,以啟動(dòng)計(jì)算設(shè)備100的多個(gè)組件,從而開始執(zhí)行操作系統(tǒng)。令牌110可以包括一個(gè)或多個(gè)加密密鑰和用來記錄和報(bào)告度量值的一個(gè)或多個(gè)平臺(tái)配置寄存器(PCR寄存器)。令牌110可以支持PCR引用操作,該引用操作返回已標(biāo)識(shí)的PCR寄存器的引用或內(nèi)容。令牌110還可以支持PCR擴(kuò)展操作,該擴(kuò)展操作將接收到的度量值記錄在已標(biāo)識(shí)的PCR寄存器中。在一個(gè)實(shí)施例中,令牌110可以包括受信平臺(tái)模塊(Trusted Platform Module,TPM),該模塊在2001年12月的Trusted Computing Platform Alliance(TCPA)Main Specification 1.1a版或其他版本中有詳細(xì)描述。
芯片組104可以包括將處理器102接口到計(jì)算設(shè)備100的組件的一個(gè)或多個(gè)芯片或集成電路封裝,所述組件例如是計(jì)算設(shè)備100的系統(tǒng)存儲(chǔ)器108、令牌110和其它I/O設(shè)備114。在一個(gè)實(shí)施例中,芯片組104包括存儲(chǔ)器控制器116。但是,在其它實(shí)施例中,處理器102可以包括存儲(chǔ)器控制器116的部分或全部。存儲(chǔ)器控制器116可以為計(jì)算設(shè)備100的其它組件提供訪問系統(tǒng)存儲(chǔ)器108的接口。此外,芯片組104的存儲(chǔ)器控制器116和/或處理器102可以將存儲(chǔ)器108的某些區(qū)域定義為安全性增強(qiáng)(SE)存儲(chǔ)器118。在一個(gè)實(shí)施例中,處理器102在處于適當(dāng)?shù)牟僮髂J?例如保護(hù)模式)和優(yōu)先級(例如0P)的時(shí)候只能訪問SE存儲(chǔ)器118。
芯片組104還可以支持在I/O總線上的標(biāo)準(zhǔn)I/O操作,所述I/O總線例如是外圍組件互連(PCI)、加速圖形端口(AGP)、通用串行總線(USB)、低引腳數(shù)(LPC)總線或任何其它種類的I/O總線(未示出)。令牌接口120可以用來將芯片組104與包括一個(gè)或多個(gè)平臺(tái)配置寄存器(PCR)的令牌110相連接。在一個(gè)實(shí)施例中,令牌接口120可以是LPC總線(Low Pin Count(LPC)Interface Specification,英特爾公司,修訂版1.0,1997年12月29日)。
芯片組104還可以包括實(shí)時(shí)時(shí)鐘(RTC)122、RTC攻擊檢測器124和狀態(tài)存儲(chǔ)126。RTC 122可以保持壁鐘時(shí)間,該壁鐘時(shí)間包括例如秒、分、小時(shí)、星期幾、日、月和年。RTC 122還可以從電池128處接收電能,以便即使計(jì)算設(shè)備100處于低功耗狀態(tài)(例如斷電、睡眠狀態(tài)等),RTC 122也可以保持壁鐘時(shí)間。RTC 122還可以基于由外部振蕩器130提供的振蕩信號(hào),每秒更新一次其壁鐘時(shí)間。例如,振蕩器130可以提供具有32.768千赫頻率的振蕩信號(hào),而RTC 122可以將此振蕩信號(hào)分頻以獲取具有1赫茲頻率的更新信號(hào),以用于更新RTC 122的壁鐘時(shí)間。RTC 122可以包括接口132,RTC 122可以經(jīng)由接口132將壁鐘時(shí)間提供給處理器102,而且處理器102可以經(jīng)由接口132對RTC 122進(jìn)行編程及變更其壁鐘時(shí)間。接口132可以包括一個(gè)或多個(gè)寄存器,處理器102可以讀取所述寄存器以獲取壁鐘時(shí)間,而且處理器102可以向所述寄存器寫入以設(shè)置壁鐘時(shí)間。在另一個(gè)實(shí)施例中,處理器102可以經(jīng)由處理器總線106向接口132提供命令或消息,以從RTC 122獲取壁鐘時(shí)間和/或?qū)TC 122的壁鐘時(shí)間進(jìn)行編程。
狀態(tài)存儲(chǔ)126可以包括一個(gè)或多個(gè)粘著位(sticky bit),所述粘著位可以用來存儲(chǔ)關(guān)于是否檢測到了可能的RTC攻擊的指示。在一個(gè)實(shí)施例中,粘著位保持它們的值,而不管系統(tǒng)復(fù)位和/或系統(tǒng)處于低功耗狀態(tài)。在一個(gè)實(shí)施例中,粘著位可以包括易失性存儲(chǔ)單元,所述易失性存儲(chǔ)單元的狀態(tài)由電池128所供應(yīng)的電能來保持。在這樣一個(gè)實(shí)施例中,可以這樣實(shí)現(xiàn)易失性存儲(chǔ)單元,以使得如果電池128所供應(yīng)的電流和/或電壓降到閾值以下,則指示出可能的RTC攻擊。在另一個(gè)實(shí)施例中,狀態(tài)存儲(chǔ)126的粘著位可以包括諸如閃存單元之類的非易失性存儲(chǔ)單元,非易失性存儲(chǔ)單元不需要備用電池以在系統(tǒng)復(fù)位或系統(tǒng)低功耗期間保持其內(nèi)容。
狀態(tài)存儲(chǔ)126可以包括單個(gè)粘著位,可以將該粘著位激活以指示出檢測到了可能的RTC攻擊,并且可以將該粘著位禁止(deactivate)以指示出未檢測到可能的RTC攻擊。在另一個(gè)實(shí)施例中,狀態(tài)存儲(chǔ)126可以包括計(jì)數(shù)器,該計(jì)數(shù)器包括多個(gè)粘著位(例如32個(gè)粘著位)以存儲(chǔ)計(jì)數(shù)??梢杂糜?jì)數(shù)值的改變來指示出可能的RTC攻擊。在另一個(gè)實(shí)施例中,狀態(tài)存儲(chǔ)126可以包括多個(gè)位或計(jì)數(shù)器,不但可以用所述的位或計(jì)數(shù)器來標(biāo)識(shí)檢測到了可能的RTC攻擊,而且可以用其來指示出所檢測到的RTC攻擊的類型。
狀態(tài)存儲(chǔ)126還可以位于芯片組104的安全性增強(qiáng)(SE)空間(未示出)內(nèi)。在一個(gè)實(shí)施例中,處理器102僅可以通過執(zhí)行一個(gè)或多個(gè)有優(yōu)先權(quán)的指令來變更SE空間的內(nèi)容。因此,SE環(huán)境可以防止處理器102經(jīng)由非受信代碼來變更狀態(tài)存儲(chǔ)126的內(nèi)容,而這是通過將非受信代碼的執(zhí)行指定到無法成功執(zhí)行這種有優(yōu)先權(quán)的指令的處理器環(huán)中來實(shí)現(xiàn)的。
芯片組104的檢測器124可以對攻擊者可能向RTC 122發(fā)動(dòng)攻擊的一個(gè)或多個(gè)方式進(jìn)行檢測,并且可以報(bào)告是否發(fā)生了可能的RTC攻擊。攻擊者可能攻擊RTC 122的一種方式是經(jīng)由接口132來變更RTC 122的壁鐘時(shí)間,以獲得對時(shí)間敏感數(shù)據(jù)的未授權(quán)訪問和/或進(jìn)行未授權(quán)的時(shí)間敏感操作。因此,在一個(gè)實(shí)施例中,如果以可能改變了壁鐘時(shí)間的方式訪問了接口132,檢測器124就可以確定已發(fā)生了可能的RTC攻擊。例如,響應(yīng)于檢測到向RTC接口132的用來對RTC 122的壁鐘時(shí)間進(jìn)行編程的寄存器寫入了數(shù)據(jù),檢測器124可以更新狀態(tài)存儲(chǔ)126以指示出發(fā)生了可能的RTC攻擊。類似地,檢測器124可以響應(yīng)于檢測到接口132已接收到一個(gè)或多個(gè)可能使RTC 122變更其壁鐘時(shí)間的命令或消息,來更新狀態(tài)存儲(chǔ)126以指示出可能的RTC攻擊。檢測器124還可以允許對RTC 122進(jìn)行一些調(diào)整,而不將所述改變標(biāo)記為可能的RTC攻擊。例如,檢測器124可以允許將壁鐘時(shí)間向前或向后移動(dòng)不超過預(yù)定量(例如5分鐘)的量。在這樣一個(gè)實(shí)施例中,如果在預(yù)定時(shí)間段內(nèi)(例如每天、每周、每次系統(tǒng)復(fù)位/低功耗)已進(jìn)行了超過預(yù)定次數(shù)(例如1次、2次)的改變,檢測器124就可以將這樣的調(diào)整標(biāo)記為可能的RTC攻擊。如果所述調(diào)整改變了日期(例如,將日期向前移動(dòng)了一個(gè)日歷日或向后移動(dòng)了一個(gè)日歷日),檢測器124也可以將這樣的調(diào)整標(biāo)記為可能的RTC攻擊。
攻擊者可能攻擊RTC 122的另一種方式是提高或降低振蕩信號(hào)的頻率,或者將振蕩信號(hào)從RTC 122處去除。攻擊者可能增加振蕩信號(hào)的頻率,以使RTC 122快速運(yùn)行,并指示超前于正確的壁鐘時(shí)間的壁鐘時(shí)間。類似地,攻擊者可能降低振蕩信號(hào)的頻率,以使RTC 122慢速運(yùn)行,并指示落后于正確的壁鐘時(shí)間的壁鐘時(shí)間。此外,攻擊者還可能將振蕩信號(hào)去除或?qū)⒄袷幮盘?hào)降低到0Hz,以停止RTC 122對其壁鐘時(shí)間的更新。在一個(gè)實(shí)施例中,檢測器124可以響應(yīng)于檢測到振蕩信號(hào)不存在,來更新狀態(tài)存儲(chǔ)126以指示出可能的RTC攻擊。在另一個(gè)實(shí)施例中,檢測器124可以響應(yīng)于檢測到振蕩信號(hào)的頻率具有對預(yù)定值域的預(yù)定關(guān)系(例如,小于一個(gè)值、大于一個(gè)值和/或不在兩個(gè)值之間),來更新狀態(tài)存儲(chǔ)126以指示出可能的RTC攻擊。為此,檢測器124可以包括提供參考振蕩信號(hào)的自由運(yùn)行振蕩器,檢測器124可以根據(jù)所述參考振蕩信號(hào)來確定振蕩器130所提供的振蕩信號(hào)的頻率是否具有對預(yù)定值域的預(yù)定關(guān)系。
攻擊者可能攻擊RTC 122的另一種方式是將電池128從RTC 122處去除,或變更從電池128處接收到的電能的電氣特性。因此,響應(yīng)于檢測到所接收到的電池電能的一個(gè)或多個(gè)電氣特性具有對預(yù)定電氣特性的預(yù)定關(guān)系,檢測器124可以更新狀態(tài)存儲(chǔ)126以指示出可能的RTC攻擊。例如,響應(yīng)于所接收到的具有對預(yù)定電流值域的預(yù)定關(guān)系(例如,小于一個(gè)值、大于一個(gè)值、不在兩個(gè)值之間和/或等于一個(gè)值)的電池電流,檢測器124可以檢測到可能的RTC攻擊。類似地,檢測器124可以響應(yīng)于所接收到的具有對預(yù)定電壓值域的預(yù)定關(guān)系(例如,小于一個(gè)值、大于一個(gè)值、不在兩個(gè)值之間和/或等于一個(gè)值)的電池電壓,檢測到可能的RTC攻擊。
在圖2中,示出了SE環(huán)境200的一個(gè)實(shí)施例??梢皂憫?yīng)于各種事件來啟動(dòng)SE環(huán)境200,所述事件例如是系統(tǒng)啟動(dòng)、應(yīng)用程序請求、操作系統(tǒng)請求等。如圖所示,SE環(huán)境200可以包括以下部件受信虛擬機(jī)內(nèi)核或監(jiān)控器202、一個(gè)或多個(gè)標(biāo)準(zhǔn)虛擬機(jī)(標(biāo)準(zhǔn)VM)204和一個(gè)或多個(gè)受信虛擬機(jī)(受信VM)206。在一個(gè)實(shí)施例中,操作環(huán)境200的監(jiān)控器202在最優(yōu)先的處理器環(huán)(例如0P)的保護(hù)模式中執(zhí)行,以管理安全性并在虛擬機(jī)204、206之間設(shè)置屏障。
標(biāo)準(zhǔn)VM 204可以包括操作系統(tǒng)208,該操作系統(tǒng)在VMX模式的最優(yōu)先的處理器環(huán)(例如0D)中執(zhí)行,標(biāo)準(zhǔn)VM 204還包括一個(gè)或多個(gè)應(yīng)用程序210,所述應(yīng)用程序在VMX模式的較低優(yōu)先級的處理器環(huán)(例如3D)中執(zhí)行。由于監(jiān)控器202在其中執(zhí)行的處理器環(huán)比操作系統(tǒng)208在其中執(zhí)行的處理器環(huán)更為優(yōu)先,所以操作系統(tǒng)208不能自由地控制計(jì)算設(shè)備100,而是受到監(jiān)控器202的控制和約束。具體而言,監(jiān)控器202可以防止諸如操作系統(tǒng)208和應(yīng)用程序210之類的非受信代碼對SE存儲(chǔ)器118和令牌110進(jìn)行直接訪問。此外,監(jiān)控器202可以防止非受信代碼直接變更RTC 122的壁鐘時(shí)間,還可以防止非受信代碼變更狀態(tài)存儲(chǔ)126。
監(jiān)控器202可以對受信內(nèi)核212進(jìn)行一個(gè)或多個(gè)測量,例如內(nèi)核代碼的加密哈希散列(例如消息摘要5(Message Digest 5,MD 5)、安全哈希散列算法1(Secure Hash Algorithm 1,SHA-1)等),以獲取一個(gè)或多個(gè)度量值,可以使令牌110用內(nèi)核212的度量值來擴(kuò)展PCR寄存器,并且可以將所述度量值記錄在存儲(chǔ)于SE存儲(chǔ)器118中的關(guān)聯(lián)PCR日志中。此外,監(jiān)控器202可以在SE存儲(chǔ)器118中建立受信VM 206,并在所建立的受信VM 206中啟動(dòng)受信內(nèi)核212。
類似地,受信內(nèi)核212可以對小應(yīng)用程序(applet)或應(yīng)用程序214進(jìn)行一個(gè)或多個(gè)測量,例如小應(yīng)用程序代碼的加密哈希散列,以獲取一個(gè)或多個(gè)度量值。然后,受信內(nèi)核212可以經(jīng)由監(jiān)控器202來使令牌110用小應(yīng)用程序214的度量值來擴(kuò)展PCR寄存器。受信內(nèi)核212還可以將所述度量值記錄在存儲(chǔ)于SE存儲(chǔ)器118中的關(guān)聯(lián)PCR日志中。此外,受信內(nèi)核212可以在SE存儲(chǔ)器118的所建立的受信VM 206中啟動(dòng)受信小應(yīng)用程序214。
響應(yīng)于圖2中的SE環(huán)境200的啟動(dòng),計(jì)算設(shè)備100還將監(jiān)控器202和計(jì)算設(shè)備100的硬件組件的度量值記錄在令牌110的PCR寄存器中。例如,處理器102可以獲取處理器102、芯片組104和令牌110的硬件標(biāo)識(shí)符,例如處理器系列、處理器版本、處理器微代碼版本、芯片組版本和令牌版本。然后,處理器102可以將所獲取的硬件標(biāo)識(shí)符記錄在一個(gè)或多個(gè)PCR寄存器中。
在圖3中,示出了響應(yīng)對RTC 122可能的攻擊的示例方法。在方框300中,檢測器124可能檢測到發(fā)生了可能的RTC攻擊。例如,響應(yīng)于確定了電池128所供應(yīng)的電能具有對預(yù)定值域的預(yù)定關(guān)系、振蕩信號(hào)的頻率具有對預(yù)定值域的預(yù)定關(guān)系或者以可能已改變了RTC 122的壁鐘時(shí)間的方式訪問了RTC接口132,檢測器124可以確定發(fā)生了可能的RTC攻擊。在方框302中,檢測器124可以更新狀態(tài)存儲(chǔ)126,以指示出發(fā)生了可能的RTC攻擊。在一個(gè)實(shí)施例中,檢測器124可以通過將狀態(tài)存儲(chǔ)126的一個(gè)位激活來指示出可能的RTC攻擊。在另一個(gè)實(shí)施例中,檢測器124可以通過更新(例如,增大、減小、設(shè)置、重設(shè)置)狀態(tài)存儲(chǔ)126的計(jì)數(shù)值來指示出可能的RTC攻擊。
在方框304中,監(jiān)控器202可以基于狀態(tài)存儲(chǔ)126來確定是否發(fā)生了RTC攻擊。在一個(gè)實(shí)施例中,監(jiān)控器202可以響應(yīng)于狀態(tài)存儲(chǔ)126的一個(gè)位的激活而確定發(fā)生了RTC攻擊。在另一個(gè)實(shí)施例中,監(jiān)控器202可以響應(yīng)于狀態(tài)存儲(chǔ)126的計(jì)數(shù)值不具有對期望計(jì)數(shù)值的預(yù)定關(guān)系(例如相等),確定發(fā)生了RTC攻擊。例如,監(jiān)控器202可以保持通過系統(tǒng)復(fù)位、系統(tǒng)低功耗或SE環(huán)境關(guān)閉而保持的期望計(jì)數(shù)值。監(jiān)控器202可以將狀態(tài)存儲(chǔ)126的計(jì)數(shù)值與期望計(jì)數(shù)值相比較,以確定自監(jiān)控器202上次更新其期望計(jì)數(shù)值以來,檢測器124是否檢測到了一次或多次可能的RTC攻擊。
除了狀態(tài)存儲(chǔ)126之外,監(jiān)控器202還可以基于信任策略來確定是否發(fā)生了RTC攻擊。例如,狀態(tài)存儲(chǔ)126可以指示出RTC 122的壁鐘時(shí)間被經(jīng)由RTC接口132而改變了。但是,信任策略可以允許處理器102將壁鐘時(shí)間向前或向后移動(dòng)不超過預(yù)定量(例如5分鐘),而不將其定義為RTC攻擊。雖然信任策略可以允許調(diào)整壁鐘時(shí)間,但是如果在預(yù)定時(shí)間段內(nèi)(例如每天、每周、每次系統(tǒng)復(fù)位/低功耗)經(jīng)由RTC接口132進(jìn)行了超過預(yù)定次數(shù)(例如1次、2次)的改變,則信任策略可以將這樣的改變定義為RTC攻擊。如果一個(gè)調(diào)整造成了對RTC 122的日期的改變時(shí)(例如,將日期向前移動(dòng)了一個(gè)日歷日或向后移動(dòng)了一個(gè)日歷日),則信任策略還可以將所述經(jīng)由RTC接口132的調(diào)整定義為RTC攻擊。
在方框306中,監(jiān)控器202可以響應(yīng)所檢測到的RTC攻擊。在一個(gè)實(shí)施例中,監(jiān)控器202可以基于信任策略進(jìn)行響應(yīng)。在一個(gè)實(shí)施例中,信任策略可以指示出SE環(huán)境200不包含時(shí)間敏感數(shù)據(jù)和/或當(dāng)前未在進(jìn)行時(shí)間敏感操作。因此,監(jiān)控器202可以簡單地忽略可能的RTC攻擊。在另一個(gè)實(shí)施例中,策略可以指示出監(jiān)控器202要響應(yīng)于某些類型的RTC攻擊而將計(jì)算設(shè)備100復(fù)位或關(guān)閉SE環(huán)境200,所述某些類型的RTC攻擊例如是檢測到振蕩信號(hào)的頻率具有對預(yù)定值域的預(yù)定關(guān)系,或電池的電能具有對預(yù)定值域的預(yù)定關(guān)系。在另一個(gè)實(shí)施例中,所述策略可以指示出監(jiān)控器202要防止對時(shí)間敏感數(shù)據(jù)的訪問和/或時(shí)間敏感操作,直到建立了正確的壁鐘時(shí)間。在一個(gè)實(shí)施例中,監(jiān)控器202可以經(jīng)由網(wǎng)絡(luò)連接與受信時(shí)間服務(wù)器通信,以建立正確的壁鐘時(shí)間。在另一個(gè)實(shí)施例中,監(jiān)控器202可以給感興趣的一方提供驗(yàn)證和/或改變RTC 122的壁鐘時(shí)間的機(jī)會(huì)。例如,監(jiān)控器202可以將RTC 122的壁鐘時(shí)間提供給計(jì)算設(shè)備100的用戶和/或時(shí)間敏感數(shù)據(jù)的所有者,并且可以讓所述的用戶和/或所有者來驗(yàn)證壁鐘時(shí)間是正確的和/或?qū)⒈阽姇r(shí)間更新為正確的壁鐘時(shí)間。
在方框308中,監(jiān)控器202可以更新狀態(tài)存儲(chǔ)126,以去除可能的RTC攻擊的指示。在一個(gè)實(shí)施例中,監(jiān)控器202可以禁止?fàn)顟B(tài)存儲(chǔ)126的一個(gè)位,以清除可能的RTC攻擊的指示。在另一個(gè)實(shí)施例中,監(jiān)控器202可以更新其期望計(jì)數(shù)值和/或狀態(tài)存儲(chǔ)126的計(jì)數(shù)值,以使得所述的期望計(jì)數(shù)值和狀態(tài)存儲(chǔ)126的計(jì)數(shù)值具有指示出未檢測到RTC攻擊的關(guān)系。
計(jì)算設(shè)備100可以響應(yīng)于機(jī)器可讀介質(zhì)的執(zhí)行指令來執(zhí)行圖3的示例方法的全部或其子集,所述介質(zhì)例如是只讀存儲(chǔ)器(ROM);隨機(jī)訪問存儲(chǔ)器(RAM);磁盤存儲(chǔ)介質(zhì);光學(xué)存儲(chǔ)介質(zhì);閃存設(shè)備;和/或電、光、聲或其它形式的傳播信號(hào),例如載波、紅外線信號(hào)、數(shù)字信號(hào)、模擬信號(hào)。此外,雖然將圖3的示例方法圖示為操作序列,但是一些實(shí)施例中的計(jì)算設(shè)備100可以并行地或以不同的順序進(jìn)行所述方法的各種所圖示的操作。
雖然已經(jīng)參考示例實(shí)施例對本發(fā)明的某些特征進(jìn)行了描述,但是以上說明不應(yīng)被解釋為具有限制意義。對所述的示例實(shí)施例的各種修改,以及本發(fā)明的其它實(shí)施例對本發(fā)明有關(guān)的領(lǐng)域內(nèi)的技術(shù)人員來說是清楚的,并被認(rèn)為處于本發(fā)明的精神和范圍之內(nèi)。
權(quán)利要求
1.一種和保持壁鐘時(shí)間的實(shí)時(shí)時(shí)鐘一起使用的方法,包括檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,以及更新狀態(tài)存儲(chǔ),以指示出對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
2.如權(quán)利要求1所述的方法,還包括響應(yīng)于確定了從與所述實(shí)時(shí)時(shí)鐘相關(guān)聯(lián)的電池所接收到的電能的一個(gè)或多個(gè)電氣特性具有對一個(gè)或多個(gè)預(yù)定電氣特性的預(yù)定關(guān)系,檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
3.如權(quán)利要求1所述的方法,還包括響應(yīng)于檢測到可能變更由所述實(shí)時(shí)時(shí)鐘所保持的壁鐘時(shí)間的對所述實(shí)時(shí)時(shí)鐘的接口的一次或多次訪問,檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
4.如權(quán)利要求1所述的方法,還包括響應(yīng)于檢測到與所述實(shí)時(shí)時(shí)鐘相關(guān)聯(lián)的振蕩器頻率具有對預(yù)定值域的預(yù)定關(guān)系,檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
5.如權(quán)利要求1所述的方法,還包括響應(yīng)于檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,將所述狀態(tài)存儲(chǔ)的一個(gè)位激活,以及防止非受信代碼禁止所述狀態(tài)存儲(chǔ)的所述位。
6.如權(quán)利要求1所述的方法,還包括響應(yīng)于檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,更新所述狀態(tài)存儲(chǔ)的計(jì)數(shù)器的計(jì)數(shù),以及防止非受信代碼變更所述計(jì)數(shù)器的計(jì)數(shù)。
7.如權(quán)利要求1所述的方法,還包括響應(yīng)于確定了對所述壁鐘時(shí)間的調(diào)整具有對預(yù)定值域的預(yù)定關(guān)系,確定未發(fā)生可能的攻擊。
8.如權(quán)利要求1所述的方法,還包括響應(yīng)于確定了已對所述壁鐘時(shí)間進(jìn)行了超過預(yù)定次數(shù)的調(diào)整,確定發(fā)生了可能的攻擊。
9.如權(quán)利要求1所述的方法,還包括響應(yīng)于確定了對所述實(shí)時(shí)時(shí)鐘的壁鐘時(shí)間的調(diào)整改變了所述壁鐘時(shí)間的日期,確定發(fā)生了可能的攻擊。
10.一種芯片組,包括實(shí)時(shí)時(shí)鐘,以保持壁鐘時(shí)間;狀態(tài)存儲(chǔ),以指示是否檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊;以及檢測器,以檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,并基于是否檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊來更新所述狀態(tài)存儲(chǔ)。
11.如權(quán)利要求10所述的芯片組,其中,所述檢測器響應(yīng)于確定了從與所述實(shí)時(shí)時(shí)鐘相關(guān)聯(lián)的電池所接收到的電能的一個(gè)或多個(gè)電氣特性具有對一個(gè)或多個(gè)預(yù)定電氣特性的預(yù)定關(guān)系,檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
12.如權(quán)利要求10所述的芯片組,其中所述實(shí)時(shí)時(shí)鐘包括一個(gè)接口,以對所述壁鐘時(shí)間進(jìn)行編程,并且所述檢測器響應(yīng)于檢測到對所述實(shí)時(shí)時(shí)鐘的所述接口的一次或多次編程訪問,檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
13.如權(quán)利要求10所述的芯片組,其中所述實(shí)時(shí)時(shí)鐘基于來自外部振蕩器的振蕩信號(hào)來保持所述壁鐘時(shí)間,并且所述檢測器響應(yīng)于檢測到所述振蕩信號(hào)的頻率具有對預(yù)定值域的預(yù)定關(guān)系,檢測對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
14.如權(quán)利要求10所述的芯片組,其中所述狀態(tài)存儲(chǔ)包括粘著位,該粘著位在系統(tǒng)復(fù)位和系統(tǒng)低功耗期間保持其值,并且所述粘著位在被激活之后只能由安全性增強(qiáng)環(huán)境的受信代碼所禁止,并且所述檢測器響應(yīng)于檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,激活所述狀態(tài)存儲(chǔ)的所述粘著位。
15.如權(quán)利要求10所述的芯片組,其中所述狀態(tài)存儲(chǔ)包括計(jì)數(shù)器,該計(jì)數(shù)器包括多個(gè)粘著位,所述粘著位在系統(tǒng)復(fù)位和系統(tǒng)低功耗期間保持其值,并且所述粘著位只能由所述檢測器和安全性增強(qiáng)環(huán)境的受信代碼來更新,并且所述檢測器響應(yīng)于檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,更新所述狀態(tài)存儲(chǔ)的所述計(jì)數(shù)器。
16.一種計(jì)算設(shè)備,包括存儲(chǔ)器,以存儲(chǔ)多個(gè)指令;實(shí)時(shí)時(shí)鐘,以提供壁鐘時(shí)間;處理器,以響應(yīng)于處理所述多個(gè)指令,從所述實(shí)時(shí)時(shí)鐘處獲取所述壁鐘時(shí)間;和檢測器,向所述處理器指示是否已檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
17.如權(quán)利要求16所述的計(jì)算設(shè)備,還包括狀態(tài)存儲(chǔ),以指示出是否檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,其中所述檢測器更新所述狀態(tài)存儲(chǔ),以指示出對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
18.如權(quán)利要求16所述的計(jì)算設(shè)備,還包括粘著位,以指示出是否檢測到對所述實(shí)時(shí)時(shí)鐘的可能的攻擊,其中所述檢測器將所述粘著位激活,以指示出對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
19.如權(quán)利要求18所述的計(jì)算設(shè)備,其中所述粘著位位于安全性增強(qiáng)空間內(nèi),該安全性增強(qiáng)空間防止非受信代碼禁止所述粘著位。
20.如權(quán)利要求16所述的計(jì)算設(shè)備,還包括外部振蕩器,以向所述實(shí)時(shí)時(shí)鐘提供振蕩信號(hào),其中所述實(shí)時(shí)時(shí)鐘基于所述外部振蕩器的振蕩信號(hào)來保持所述壁鐘時(shí)間,并且所述檢測器響應(yīng)于確定了所述振蕩信號(hào)的頻率具有對預(yù)定值域的預(yù)定關(guān)系,指示對所述實(shí)時(shí)時(shí)鐘的可能的攻擊。
21.一種機(jī)器可讀介質(zhì),包括多個(gè)指令,響應(yīng)于所述指令的執(zhí)行,所述指令導(dǎo)致一個(gè)計(jì)算設(shè)備確定已檢測到對所述計(jì)算設(shè)備的實(shí)時(shí)時(shí)鐘的攻擊,并且響應(yīng)對所述實(shí)時(shí)時(shí)鐘的攻擊。
22.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備通過請求感興趣的一方確認(rèn)所述實(shí)時(shí)時(shí)鐘的壁鐘時(shí)間是正確的,來響應(yīng)所述攻擊。
23.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備通過防止訪問時(shí)間敏感數(shù)據(jù)來響應(yīng)所述攻擊。
24.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備通過防止時(shí)間敏感操作來響應(yīng)所述攻擊。
25.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備基于是否已激活了與所述實(shí)時(shí)時(shí)鐘相關(guān)聯(lián)的狀態(tài)位來確定已檢測到攻擊。
26.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備基于與所述實(shí)時(shí)時(shí)鐘相關(guān)聯(lián)的計(jì)數(shù)器是否具有期望的計(jì)數(shù)值來確定已檢測到攻擊。
27.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備基于與所述實(shí)時(shí)時(shí)鐘相關(guān)聯(lián)的狀態(tài)存儲(chǔ)和信任策略來確定已檢測到攻擊。
28.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備響應(yīng)于確定了對所述實(shí)時(shí)時(shí)鐘的壁鐘時(shí)間的調(diào)整具有對預(yù)定值域的預(yù)定關(guān)系,確定未檢測到攻擊。
29.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備響應(yīng)于確定了已對所述實(shí)時(shí)時(shí)鐘的壁鐘時(shí)間進(jìn)行了超過預(yù)定次數(shù)的調(diào)整,確定已檢測到攻擊。
30.如權(quán)利要求21所述的機(jī)器可讀介質(zhì),其中所述多個(gè)指令還導(dǎo)致所述計(jì)算設(shè)備響應(yīng)于確定了對所述實(shí)時(shí)時(shí)鐘的壁鐘時(shí)間的調(diào)整改變了所述壁鐘時(shí)間的日期,確定已檢測到攻擊。
全文摘要
本發(fā)明描述了一種嘗試增加由實(shí)時(shí)時(shí)鐘提供的壁鐘時(shí)間的受信度的方法、裝置和計(jì)算機(jī)可讀介質(zhì)。在一些實(shí)施例中,檢測器檢測可能與對實(shí)時(shí)時(shí)鐘的攻擊相關(guān)聯(lián)的活動(dòng)。基于檢測器是否檢測到對實(shí)時(shí)時(shí)鐘的可能的攻擊,計(jì)算設(shè)備可以確定是否信任由實(shí)時(shí)時(shí)鐘提供的壁鐘時(shí)間。
文檔編號(hào)G06F21/00GK1514325SQ20031011549
公開日2004年7月21日 申請日期2003年11月26日 優(yōu)先權(quán)日2002年12月31日
發(fā)明者大衛(wèi)·I·波伊斯尼爾, 大衛(wèi) I 波伊斯尼爾 申請人:英特爾公司