專利名稱:使用地址比特來發(fā)送地址空間中數(shù)據(jù)安全屬性的信號的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計算機系統(tǒng),尤其涉及用于在計算機系統(tǒng)內(nèi)安全執(zhí)行程序代碼的系統(tǒng)和方法。
背景技術(shù):
當今的計算機系統(tǒng)常常遭受可破壞或中止計算機系統(tǒng)正常操作的各種攻擊。計算機病毒、計算機網(wǎng)絡(luò)“蠕蟲”、以及特洛伊木馬程序是不同形式攻擊的示例。攻擊也可直接來自計算機系統(tǒng)的惡意用戶。這些攻擊常取試圖更改由計算機系統(tǒng)執(zhí)行的現(xiàn)有程序代碼的形式,或者試圖對在計算機系統(tǒng)內(nèi)正常程序執(zhí)行的不同階段置入新的未經(jīng)授權(quán)程序代碼的形式。用于防止這樣的有害攻擊的系統(tǒng)和方法正在變得越來越重要。
典型的計算機系統(tǒng)包括計算機硬件、操作系統(tǒng)、以及一個或多個應(yīng)用程序。計算機硬件通常包括處理器(有時也稱為“中央處理單元”或“CPU”)、存儲器、以及便于各個組件之間通信的一個或多個系統(tǒng)總線。典型計算機系統(tǒng)的其它組件包括輸入/輸出控制器、存儲器控制器、圖形處理單元、音頻控制器和電源。
這樣的系統(tǒng)通常具有少量的片內(nèi)(on-chip)存儲器(稱為高速緩沖存儲器)以及多得多的片外(off-chip)存儲器(稱為系統(tǒng)存儲器)。這種系統(tǒng)中的片外存儲器一般被視為不可靠的(高速緩沖存儲器也被視為不可靠,但通過防止攻擊者讀取高速緩沖存儲器內(nèi)容的硬件機制對它保護要容易得多)。即,存儲在較大系統(tǒng)存儲器中的數(shù)據(jù)易受攻擊,其中數(shù)據(jù)可以數(shù)據(jù)所有者不希望的方式被輕易改變。這樣的攻擊將使程序以不希望的方式操作,或使副本保護方案受挫。
已開發(fā)了眾多確保數(shù)據(jù)從系統(tǒng)存儲器中檢索并受保護的系統(tǒng)。特別地,系統(tǒng)已采用強化的加密技術(shù)以及檢測存儲器中數(shù)據(jù)的變化的其它篡改顯現(xiàn)機制。
操作系統(tǒng)可被視為應(yīng)用程序和計算機系統(tǒng)底層硬件之間的接口。操作系統(tǒng)通常包括在計算機系統(tǒng)處理器上執(zhí)行的并由各種應(yīng)用程序管理計算機系統(tǒng)的物理組件及其使用的各種軟件例程。
計算機系統(tǒng)的處理器常包括通過操作系統(tǒng)和任何應(yīng)用程序來管理存儲器的使用的存儲器管理單元。對計算機系統(tǒng)的許多攻擊是以存儲器中的程序為目標。例如,執(zhí)行安全檢查代碼的各部分可通過當其存儲在存儲器時簡單地替換該程序的一部分而被擊敗。其它黑客可更改計算機游戲并改變行為。例如,考慮在多人游戲中發(fā)現(xiàn)一弱點的情形,其中通過在游戲者本地機器上改變代碼可使游戲者獲取不公平的好處。這樣的不公平好處可破壞否則會流行的游戲的流行度。所有這些考慮表明,防止對程序代碼的未經(jīng)授權(quán)更改是極為需要的。
發(fā)明內(nèi)容
本發(fā)明提供維護存儲于系統(tǒng)存儲器中數(shù)據(jù)的安全性的安全計算環(huán)境。該系統(tǒng)包括一CPU,以及通過數(shù)據(jù)總線與CPU和存儲器耦合的一安全機制。地址總線確定數(shù)據(jù)在系統(tǒng)存儲器中的存儲單元,并具有多條地址線。在數(shù)據(jù)存儲于存儲器之前地址線的至少之一啟用安全機制以保護數(shù)據(jù)。CPU和安全機制可在同一集成電路上。安全機制可包括一加密和解密機制。該系統(tǒng)還可包括作為數(shù)據(jù)函數(shù)生成一完整性檢查值的一完整性檢查機制。另一地址線可啟用完整性檢查機制。完整性檢查值最好是創(chuàng)建減小了大小值的數(shù)據(jù)的散列(以加密形式、明碼形式或兩者的組合),它可用于確定數(shù)據(jù)是否在存儲于系統(tǒng)存儲器期間被更改。完整性檢查值最好存儲在也可駐留于與CPU一起的同一集成電路的安全存儲器中。
結(jié)合附圖閱讀前面的發(fā)明內(nèi)容和以下說明性實施例的詳細描述,能得到更好的理解。為了說明本發(fā)明各實施例,在附圖中示出本發(fā)明的示例性結(jié)構(gòu);然而,本發(fā)明并不限于所揭示的特定方法和裝置。在附圖中圖1是本發(fā)明各方面可在其中實現(xiàn)的示例性計算機環(huán)境的框圖;圖2是示出被結(jié)合到諸如圖1計算環(huán)境的計算環(huán)境內(nèi)的安全引擎的框圖;圖3是示出在一示例計算環(huán)境中地址空間的轉(zhuǎn)換的框圖;圖4是進一步示出從有效地址到虛擬地址的轉(zhuǎn)換的各方面的框圖;圖5是進一步示出從虛擬地址到實地址的轉(zhuǎn)換的各方面的框圖;圖6是進一步示出其中地址比特被設(shè)置成表示計算系統(tǒng)安全特征的本發(fā)明各方面的框圖;圖7是示出用于加密和保護存儲于存儲器內(nèi)的數(shù)據(jù)的安全引擎的方面的框圖;圖8是示出用于解密和檢查存儲于存儲器內(nèi)的數(shù)據(jù)的安全引擎的方面的框圖。
具體實施例方式
本發(fā)明提供有助于防止對計算機系統(tǒng)的攻擊的安全計算環(huán)境,這些攻擊包括逆向工程、分解、更改或以其它方式改變包括計算機系統(tǒng)存儲器中程序代碼的數(shù)據(jù)。本發(fā)明可在包括不受信任存儲器和處理器的計算機系統(tǒng)或計算裝置中體現(xiàn),該處理器具有包括加密和/或校驗機制的安全引擎。系統(tǒng)使用地址比特來向安全引擎發(fā)送信號以在將數(shù)據(jù)存儲于系統(tǒng)存儲器之前對數(shù)據(jù)執(zhí)行安全操作。地址比特可指示例如應(yīng)對系統(tǒng)存儲器的特定頁加密。此外,地址比特可指示例如應(yīng)保護存儲器的特定頁(即可校驗的未更改的頁)。在保護情形中,是數(shù)據(jù)函數(shù)的諸如散列的校驗信息最好存儲于防篡改的安全存儲器中。安全存儲器可被視為駐留于安全區(qū)域中。通常,安全區(qū)域通過將安全存儲器置于與CPU相同的集成電路上來提供。從不受信任系統(tǒng)存儲器中檢索校驗信息并且將其與已存儲的校驗信息比較之后,校驗信息從數(shù)據(jù)中復(fù)制。信息之間的差異指示該數(shù)據(jù)已經(jīng)被改變。
圖1示出本發(fā)明的一些方面可在其中實現(xiàn)的多媒體控制臺100的功能組件。多媒體控制臺100具有中央處理單元(CPU)101,包括1級緩存區(qū)102、2級緩存區(qū)104、以及MMU(存儲器管理單元)103。1級緩存區(qū)102和2級緩存區(qū)104臨時存儲數(shù)據(jù)并因此減少存儲器訪問周期數(shù),從而改進了處理速度和輸入輸出吞吐量??商峁┚哂幸粋€以上內(nèi)核的CPU 101,以及因之而附加的1級和2級緩存區(qū)102和104。MMU 103負責處理由CPU請求的存儲器訪問。由MMU 103執(zhí)行的其它功能包括從虛擬地址到物理地址的翻譯(即虛擬存儲器管理)、存儲器管理、高速緩存控制等。
圖形處理單元(GPU)108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成用于高速和高分辨率圖形處理的視頻處理管道。通過總線數(shù)據(jù)從圖形處理單元108被運送到視頻編碼器/視頻編解碼器114。視頻處理管線將數(shù)據(jù)輸出到A/V(音頻/視頻)端口140用于傳送到電視和其它顯示器。存儲器控制器110被連接到GPU108以便于處理器對各類存儲器112的訪問,諸如但不限于RAM(隨機存取存儲器)。
多媒體控制臺100包括最好在模塊118上實現(xiàn)的I/O控制器120、系統(tǒng)管理控制器122、音頻處理單元123、網(wǎng)絡(luò)接口控制器124、第一USB主控制器126、第二USB控制器128、以及前面板I/O子組合130。USB控制器126和128用作外圍控制器142(1)-142(2)、無線適配器148、以及外部存儲器裝置146(例如閃存、外部CD/DVD ROM盤、可移動介質(zhì)等)的主機。網(wǎng)絡(luò)接口124和/或無線適配器148提供對網(wǎng)絡(luò)(例如因特網(wǎng)、家庭網(wǎng)絡(luò)等)的訪問,并可以是各種各樣有線或無線接口組件的任一種,包括以太卡、調(diào)制解調(diào)器、藍牙模塊、電纜調(diào)制解調(diào)器等等。
例如閃存的非易失性存儲器143被提供用以存儲在啟動過程期間載入的應(yīng)用程序數(shù)據(jù)。介質(zhì)驅(qū)動器144被提供并可包括DVD/CD驅(qū)動器、硬盤驅(qū)動器、或其它可移動介質(zhì)的驅(qū)動器。介質(zhì)驅(qū)動器144可在多媒體控制臺100內(nèi)部或外部。應(yīng)用程序數(shù)據(jù)可通過介質(zhì)驅(qū)動器144訪問用于由多媒體控制臺100執(zhí)行、回放等。介質(zhì)驅(qū)動器144通過諸如串行ATA總線或其它高速連接(例如IEEE 1394)的總線連接到I/O控制器120。
系統(tǒng)管理控制器122提供各種與確保多媒體控制臺100可用性相關(guān)的服務(wù)功能。音頻處理單元123以及音頻編/解碼器136形成具有高保真和立體聲處理的相應(yīng)音頻處理管道。音頻數(shù)據(jù)通過通信鏈接在音頻處理單元123和音頻編/解碼器126之間傳送。音頻處理管道將數(shù)據(jù)輸出到A/V端口140用于由具有音頻能力的外部音頻播放器或裝置復(fù)制。
前面板I/O子組合130支持電源按鈕150、彈出按鈕152、以及任何LED(發(fā)光二極管)或在多媒體控制臺100外表面上展現(xiàn)的其它指示器的功能。系統(tǒng)電源模塊136向多媒體控制臺100的組件提供電源。電扇138冷卻多媒體控制臺100內(nèi)的電路。
CPU 101、GPU 108、存儲器控制器110以及多媒體控制臺100內(nèi)的各個其它組件通過一個或多個總線相互連接,包括串行和并行總線、存儲器總線、外圍總線、以及使用各種總線體系結(jié)構(gòu)的任一種的處理器或本地總線。
當多媒體控制臺接通電源時,程序代碼和數(shù)據(jù)可從非易失性存儲器143載入存儲器112和/或高速緩存102、104,并在處理器101上執(zhí)行。應(yīng)用程序代碼可呈現(xiàn)當導(dǎo)航到多媒體控制臺100上可用的不同介質(zhì)類型時提供一致用戶體驗的圖形用戶界面。在操作中,包含在媒介驅(qū)動器144內(nèi)的應(yīng)用程序和/或其它介質(zhì)可被啟動或從介質(zhì)驅(qū)動器144播放,以向多媒體控制臺100提供其它功能。
通過簡單地將系統(tǒng)連接到電視或其它顯示屏,多媒體控制臺100可作為單機系統(tǒng)操作。在該單機模式中,多媒體控制臺100使一個或多個用戶能與該系統(tǒng)交互、觀看電影、或收聽音樂。然而,結(jié)合通過網(wǎng)絡(luò)接口124或無線適配器148可用的寬帶連接,多媒體控制臺100還可作為更大網(wǎng)絡(luò)區(qū)域的參與者而操作。
圖2示出圖1系統(tǒng)的其它方面,其中本發(fā)明的各個組件被集成以提供防止代碼改變、逆向工程、篡改等的安全特征。集成裝置20包括CPU 101、MMU 103、高速緩存104、安全引擎105和總線接口107。各個組件通過地址總線28和數(shù)據(jù)總線26相互連接。MMU 103控制存儲于高速緩存104的存儲器,以確保高速緩存行(例如22)按CPU 101所需地移入移出高速緩存104。存儲于高速緩存104的數(shù)據(jù)由CPU 101在其上操作,因而以明碼存儲。根據(jù)本發(fā)明一方面,當高速緩存行存儲于系統(tǒng)存儲器112時,數(shù)據(jù)通過安全引擎105移動并可在它移入移除存儲器112時被加密和解密。圖2示出高速緩存行22以明碼存儲于高速緩存104中而當存儲于存儲器112中時則被加密成高速緩存行22’。
系統(tǒng)存儲器112被視為不受信任。即,攻擊者可危及它的安全并可發(fā)現(xiàn)和改變其全部內(nèi)容。此外,可監(jiān)視地址以及將總線接口107連接到系統(tǒng)存儲器112的數(shù)據(jù)總線28、26。另一方面,集成裝置20被視為是安全的。在裝置20內(nèi)部的總線28、26不能被監(jiān)視。高速緩存104在安全引擎105和CPU 101之間,并被視為是受信任的。高速緩存104對系統(tǒng)存儲器的所有寫入都由安全引擎105保護,如下進行更全面描述。除系統(tǒng)RAM 112之外,系統(tǒng)還包含被視為受信任的安全存儲器23。最好該安全存儲器23在集成裝置20內(nèi)以防止其總線28、26被監(jiān)視。
存儲器管理單元103處理確保所必需的數(shù)據(jù)在高速緩存104內(nèi)從而CPU 101可繼續(xù)有效地操作。為此,當所需指令和數(shù)據(jù)在存儲器112中時MMU 103與高速緩存104交換數(shù)據(jù)。根據(jù)本發(fā)明一方面,安全引擎105確定安全級別以應(yīng)用于要在高速緩存104和系統(tǒng)存儲器112之間移動的數(shù)據(jù)。例如,高速緩存行22移到存儲器中變?yōu)榧用芨咚倬彺嫘?2’。
由于移到系統(tǒng)存儲器112的高速緩存104的每一行都有可能具有應(yīng)用于它的安全措施,重要的是盡可能快地應(yīng)用安全措施以避免對整個系統(tǒng)的性能有很大打擊。換言之,需要對寫入不受信任系統(tǒng)存儲器112的數(shù)據(jù)提供安全措施但又不想為添加的安全措施付出重大性能損失的代價。本發(fā)明一方面是要使用地址總線來提供一種控制安全措施的應(yīng)用的有效機制。最終,示例系統(tǒng)所采用的存儲器管理方案有助于理解如何使用尋址機制來確定安全措施的應(yīng)用。存儲器管理通常利用把程序地址空間翻譯成物理地址空間的各種尋址方案。PowerPC系統(tǒng)所使用的一種這樣的尋址方案使用從有效地址到實地址的轉(zhuǎn)換。圖3有助于示出在PowerPC環(huán)境中執(zhí)行的地址翻譯。其它尋址方案可在適當時用于不同處理器環(huán)境。
參照圖3,通過諸如段后援緩沖器304和翻譯后援緩沖器308的一個或多個地址轉(zhuǎn)換表格,有效地址302被轉(zhuǎn)換成實地址310。通常程序在相連的地址空間中(稱為有效地址空間)操作;然而,物理地址空間必須提供并由眾多應(yīng)用程序共享。這樣,物理地址空間由系統(tǒng)管理并可包含任意數(shù)量的不同程序或程序部分。為了解決各個程序的需要,系統(tǒng)使程序能在顯現(xiàn)為相連但由跟蹤程序和數(shù)據(jù)的物理位置的存儲器管理單元管理的地址空間中操作。該程序在被稱為有效地址空間的空間中操作。該有效地址空間被翻譯成虛擬的地址空間(即可同時容納所有程序的尋址連續(xù)體)。
有效地址是由CPU 101生成的用于提取指令或用于數(shù)據(jù)訪問的地址。地址翻譯機制試圖將有效地址302轉(zhuǎn)換成隨后用于訪問存儲器112的實地址310。地址翻譯中的第一步驟是將有效地址302轉(zhuǎn)換成虛擬地址306。第二步驟是將虛擬地址306轉(zhuǎn)換成實地址310。圖4進一步提供了從有效地址302轉(zhuǎn)換成虛擬地址306的工程的細節(jié)。段后援緩沖器(SLB)304指定有效段ID(ESID)402和虛擬段ID(VSID)410之間的映射。SLB 304條目的數(shù)量是實現(xiàn)相關(guān)的。SLB 304的內(nèi)容通常由操作系統(tǒng)管理。表格304中每個SLB條目將一ESID 402映射為一VSID 410。然后VSID組成虛擬地址306中的較高位比特。剩下的較低位比特,頁地址信息404和字節(jié)地址信息406,被直接從有效地址302映射到虛擬地址306。
地址翻譯中的第二個步驟是把虛擬地址翻譯成實地址。虛擬到實的翻譯使用了頁表格308’。在概念上,頁表格308’由地址再定位硬件搜索以翻譯每個基址。由于性能的原因,硬件通常保留持有最近使用的頁表格條目的翻譯后援緩沖器(TLB)308。TLB 308在搜索頁表格308’之前搜索?;蛘?,頁表格可以不是表格而是生成TLB條目所需的算法。在該布置中,當?shù)刂贩g未在TLB 308中發(fā)現(xiàn)時,可生成一個或多個TLB條目并用于更新TLB 308中的條目。
圖5提供了從虛擬到實的地址映射的更多細節(jié)。頁表格308’(如上所述該頁表格的一部分被高速緩存于TLB 308中)是指定虛擬頁號和實頁號之間映射的大小可變的數(shù)據(jù)結(jié)構(gòu)。頁表格308’的大小通常是4KB的倍數(shù),其起始地址是其大小的倍數(shù)且位于具有有限訪問的存儲器中,即它僅可由操作系統(tǒng)訪問。VSID 410和虛擬頁號404形成對頁表格308’的索引。然后頁表格308’具有一相應(yīng)的實頁號502。該實頁號502形成實地址的較高位比特。字節(jié)地址信息406直接從虛擬地址306中翻譯。
圖6示出從虛擬到實的頁號映射的操作。虛擬頁號306被用來查找一相應(yīng)的頁表格條目602。例如502a、502b、502c的每個頁表格條目包含一實頁號和頁保護比特604。頁保護比特604指示例如是否有一頁可讀、寫等。頁表格條目的26個高位比特(即0-25)形成實頁號502。除形成實頁地址之外,高位比特還提供對該頁安全級別的指示。注意,比特0-11中的各個比特(比特606)提供頁是否加密、受保護或不加密、不保護等的指示。此外,比特提供用于加密和保護存儲器頁的其它信息。存儲在實頁號中的包括安全比特的信息形成地址310的一部分。
參看圖7,根據(jù)本發(fā)明一方面進一步示出安全系統(tǒng)。圖7提供示出由安全系統(tǒng)執(zhí)行的部分功能的框圖。然而,實現(xiàn)的各方面可以變化,例如判決框718可被實現(xiàn)為一邏輯電路。其它特征也可用各種方法實現(xiàn)。無論如何,該圖用來示出根據(jù)本發(fā)明各方面執(zhí)行的一般功能。
如圖所示,比特0和1指示尋址單元是受保護的還是加密的。在本說明性實施例中,保護被控制在頁級別上,因為單個頁表格條目被單頁中的所有存儲器地址所共享。這樣,所有那些存儲器單元都屬于同一安全級別。如果比特0被設(shè)置,則啟用保護。類似地,如果比特1被設(shè)置,則啟用加密。
如果未啟用加密,則啟用門722而禁用門720,且數(shù)據(jù)700作為明文塊724被存儲于存儲器112中。另一方面,如果啟用了加密,則數(shù)據(jù)700作為明文726被移到加密引擎714中。例如密鑰等的安全引擎狀態(tài)710由加密引擎714應(yīng)用以產(chǎn)生密文塊726’。所應(yīng)用的加密技術(shù)可以是諸如AES或其某些變體的眾所周知的加密算法的任一種。相關(guān)要點是加密引擎由存儲于頁表格中的地址信息驅(qū)動。這樣,存儲器頁可被設(shè)置為直接通過地址信息加密。
如果保護被啟用(可加密或不加密),則確定安全存儲器的偏移量并還啟用數(shù)據(jù)散列。該安全存儲器偏移量可以是地址信息的組合。例如,存儲在例如比特3-8的較高位比特中的比特與較低位比特26-34組合來提供安全存儲器的偏移量。該偏移量提供了完整性檢查值應(yīng)被存儲在安全存儲器中的地方。除了安全存儲器偏移量,散列函數(shù)也應(yīng)用于數(shù)據(jù)700。散列可以是密文、明文或兩者的函數(shù)。該特定散列函數(shù)可以是安全散列函數(shù),并可以是數(shù)據(jù)700的但在大小上有所縮減的任一函數(shù)。經(jīng)計算的散列728被存儲在安全存儲器716中由安全存儲器偏移712指定的位置中。此后,當數(shù)據(jù)(如密文726’或明文724)被存儲在存儲器112中(不安全存儲器)時,散列值可被用來確定存儲器112中的數(shù)據(jù)是否已被改變。散列值在數(shù)據(jù)從存儲器112中檢索時重新計算,并與所存儲的散列值相比較以確定一致性。不一致的值將指示數(shù)據(jù)在存儲于存儲器112中時有未經(jīng)授權(quán)的改變。
圖8示出從存儲器112檢索加密和/或保護數(shù)據(jù)的逆向操作。此時加密數(shù)據(jù)726’或明文數(shù)據(jù)724從存儲器112中檢索。再一次,實地址中的高位比特指示要應(yīng)用的安全措施類型。如果比特1被設(shè)置,則數(shù)據(jù)作為密文通過門820傳送(即先前已被存儲為密文)。如果比特1未設(shè)置,則明文724通過門822傳送并存儲于高速緩存104中。由設(shè)置比特1指示的密文726’還被送往解密引擎714,其中它被解密為明文726并存儲于高速緩存104中。
如果保護比特0被設(shè)置,則對從存儲器112檢索的數(shù)據(jù)計算散列值802。在此示例中,對明文726的數(shù)據(jù)計算散列;然而,散列函數(shù)可被應(yīng)用于密文數(shù)據(jù)726’和/或明文數(shù)據(jù)。此外,可使用不加密的保護方案。經(jīng)計算的散列802與從由安全存儲器偏移量712所指向的安全存儲器716中檢索的已存儲的散列728比較。如果已存儲的散列728與計算散列不相同,則指示存儲器已被更改的安全例外808生成。
再參看圖2,將總線接口連接到系統(tǒng)存儲器112的地址總線28最好截去用來尋址存儲器112的高位比特。因為它是用來尋址存儲器112的實際地址,所以該地址被稱為物理地址。在所述示例實現(xiàn)中,最好截去12個高位比特(0-11)。該截短將使比特12-41組成物理地址。
本發(fā)明提供用于確保存儲于系統(tǒng)存儲器112的數(shù)據(jù)的完整性和安全性的一種系統(tǒng)和方法。通過采用地址比特來指示要應(yīng)用于存儲在存儲器112的數(shù)據(jù)的安全措施。安全措施可直接存儲于地址翻譯表格,而無需使數(shù)據(jù)與特定安全措施相關(guān)聯(lián)的獨立表格。
以上系統(tǒng)和方法僅是示例描述,并非旨在表示需要一特定的尋址方案或處理器體系結(jié)構(gòu)。相反,該示例旨在指示使用地址比特來一般地確定安全措施。
以下所述的本發(fā)明各實施例的元件可通過硬件、固件、軟件或其任意組合來實現(xiàn)。術(shù)語硬件通常指具有諸如電子、電磁、光學(xué)、電光學(xué)、機械、機電部件的物理結(jié)構(gòu)的元件,而術(shù)語軟件一般指邏輯結(jié)構(gòu)、方法、過程、程序、例程、進程、算法、公式、函數(shù)、表達式等。術(shù)語固件一般指在硬件結(jié)構(gòu)中(例如閃存、ROM、EROM)實現(xiàn)或體現(xiàn)的邏輯結(jié)構(gòu)、方法、過程、程序、例程、進程、算法、公式、函數(shù)、表達式等。固件的示例可包括微碼、可寫控制存儲器、以及微編程結(jié)構(gòu)。當以軟件或固件實現(xiàn)時,本發(fā)明實施例的元件實質(zhì)上是執(zhí)行必須任務(wù)的代碼分段。軟件/固件可包括執(zhí)行本發(fā)明一實施例中所述操作的實代碼,或仿真或模擬操作的代碼。程序或代碼分段可被存儲在處理器或機器可訪問介質(zhì)中,或由體現(xiàn)為載波的計算機數(shù)據(jù)信號或載波信號調(diào)制的信號經(jīng)傳輸介質(zhì)傳送。“處理器可讀或可訪問介質(zhì)”或“機器可讀或可訪問介質(zhì)”可包括可存儲、傳輸或傳送信息的任何介質(zhì)。處理器可讀或機器可訪問介質(zhì)的示例包括電子電路、半導(dǎo)體存儲器裝置、只讀存儲器(ROM)、閃存、可擦寫ROM(EROM)、軟盤、光盤(CD)ROM、光盤、硬盤、光纖介質(zhì)、射頻(RF)鏈接等。計算機數(shù)據(jù)信號可包括可在諸如電子網(wǎng)絡(luò)信道、光纖、空氣、電磁波、RF鏈接等的傳輸介質(zhì)上傳播的任何信號。代碼分段可經(jīng)諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)等的計算機網(wǎng)絡(luò)下載。機器可訪問介質(zhì)可被體現(xiàn)為一制造品。機器可訪問介質(zhì)可包括當由機器訪問時使機器執(zhí)行下述操作的數(shù)據(jù)。機器可訪問介質(zhì)還可包括內(nèi)嵌程序代碼。程序代碼可包括執(zhí)行下述操作的機器可讀代碼。術(shù)語“數(shù)據(jù)”在此指為機器可讀目的而編碼的任意類型的信息。因此,它可包括程序、代碼、數(shù)據(jù)、文件等。
本發(fā)明實施例的全部或部分可通過硬件、軟件、或固件、或其任意組合實現(xiàn)。硬件、軟件、或固件硬件可具有彼此耦合的若干模塊。硬件模塊可通過機械、電子、光學(xué)、電磁、或任何物理連接與另一模塊耦合。軟件模塊通過函數(shù)、過程、子程序、或子例程調(diào)用、跳轉(zhuǎn)、鏈接、參數(shù)、變量、以及實參傳遞、函數(shù)返回等與另一模塊耦合。軟件模塊與另一模塊耦合以接收變量、形參、實參、指針等和/或生成或傳送結(jié)果、經(jīng)更新變量、指針等。固件模塊通過以上硬件和軟件耦合方法的任意結(jié)合與另一模塊耦合。硬件、軟件、或固件模塊可與另一硬件、軟件、或固件模塊的任一模塊耦合。模塊還可以是軟件驅(qū)動程序或接口以與運行于該平臺上的操作系統(tǒng)交互。模塊還可以是硬件驅(qū)動程序以配置、設(shè)置、初始化、從硬件裝置收發(fā)數(shù)據(jù)。裝置可包括硬件、軟件和固件模塊的任意組合。
本發(fā)明各實施例可以被描述為通常陳述為流程圖、流程表、結(jié)構(gòu)圖、或框圖的過程。盡管流程圖可將操作描述為順序過程,許多操作可并行或并發(fā)執(zhí)行。此外,操作的順序可重排。當其操作完成時過程終止。
本領(lǐng)域技術(shù)人員將容易理解,在示例性實施例中許多其它更改是可能的,而未在本質(zhì)上背離本發(fā)明的新穎性教學(xué)和優(yōu)點。任何這樣的更改旨在被包括于由以下示例性權(quán)利要求所定義的本發(fā)明范圍中。
權(quán)利要求
1.一種用于將數(shù)據(jù)存儲在存儲器中的系統(tǒng),其特征在于,包括一CPU;一安全機制,它通過數(shù)據(jù)總線與所述CPU耦合,并通過數(shù)據(jù)總線與所述存儲器耦合;以及具有多個地址線的一地址總線,所述地址線的至少之一啟用所述安全機制以在存儲于所述存儲器之前提供對所述數(shù)據(jù)的安全措施。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述地址線上的設(shè)置的值由存儲器管理單元確定。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述值是由所述存儲器管理單元維護的表格的函數(shù)。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述安全機制包括一加密機制。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述安全機制包括按照所述數(shù)據(jù)的函數(shù)生成完整性檢查值的完整性檢查機制。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述完整性檢查機制執(zhí)行一散列函數(shù)。
7.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述完整性檢查值被存儲于一安全存儲器中。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述安全存儲器在與所述CPU相同的同一集成電路上。
9.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述數(shù)據(jù)在從高速緩存移動之后以及存儲到系統(tǒng)存儲器之前被加密。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述地址線提供對所述完整性檢查值存儲在安全存儲器的地方的指示。
11.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述完整性檢查值為高速緩沖存儲器的一行而生成。
12.如權(quán)利要求4所述的系統(tǒng),其特征在于,還包括通過數(shù)據(jù)總線與所述CPU耦合并通過數(shù)據(jù)總線與所述存儲器耦合的一解密機制,其中啟用所述加密機制以在存儲于所述存儲器之前加密數(shù)據(jù)的所述地址線的至少之一,被用來啟用在從存儲器檢索所述數(shù)據(jù)期間對所述數(shù)據(jù)的解密。
13.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述完整性檢查值與在從系統(tǒng)存儲器檢索所述數(shù)據(jù)期間生成的第二完整性檢查值比較。
14.如權(quán)利要求1所述的系統(tǒng),其特征在于,啟用所述安全機制的至少一個地址線是一高位地址線。
15.一種用于將數(shù)據(jù)存儲在存儲器中的方法,其特征在于,包括提供一安全機制,它通過數(shù)據(jù)總線與所述CPU通信,并通過數(shù)據(jù)總線與所述存儲器通信;在所述安全機制處從具有多個地址線的地址總線的至少一個地址線中接收一啟用信號;以及響應(yīng)于所述啟用信號將安全措施應(yīng)用于所述數(shù)據(jù)。
16.如權(quán)利要求15所述的方法,其特征在于,所述啟用信號由存儲器管理單元確定。
17.如權(quán)利要求15所述的方法,其特征在于,所述安全機制包括一加密機制,且其中所應(yīng)用的安全措施是加密。
18.如權(quán)利要求15所述的方法,其特征在于,所述安全機制包括一完整性檢查機制,且其中所應(yīng)用的安全措施是按照所述數(shù)據(jù)的函數(shù)生成完整性檢查值,且其中所述地址線的至少另一條啟用所述完整性檢查機制。
19.如權(quán)利要求18所述的方法,其特征在于,所述完整性檢查機制執(zhí)行一散列函數(shù)。
20.如權(quán)利要求18所述的方法,其特征在于,包括將所述完整性檢查值存儲于安全存儲器中。
21.如權(quán)利要求20所述的方法,其特征在于,包括在與所述CPU相同的同一集成電路上提供所述安全存儲器。
22.如權(quán)利要求17所述的方法,其特征在于,所述數(shù)據(jù)在從高速緩沖器的移動之后以及存儲到系統(tǒng)存儲器之前被加密。
23.如權(quán)利要求20所述的方法,其特征在于,所述地址線提供了對所述完整性檢查值存儲在安全存儲器的地方的指示。
24.如權(quán)利要求20所述的方法,其特征在于,所述完整性檢查值為高速緩沖存儲器的一行而生成。
25.如權(quán)利要求17所述的方法,其特征在于,還包括在從存儲器檢索所述數(shù)據(jù)期間解密數(shù)據(jù)。
26.如權(quán)利要求19所述的方法,其特征在于,還包括將所述完整性檢查值與在從系統(tǒng)存儲器檢索所述數(shù)據(jù)期間生成的第二完整性檢查值作比較。
全文摘要
一完整性控制系統(tǒng)使用地址比特來啟用對存儲于系統(tǒng)存儲器中數(shù)據(jù)的加密和/或保護。加密和保護機制通過數(shù)據(jù)總線與CPU耦合,并通過數(shù)據(jù)總線與存儲器耦合。確定要存儲的或從系統(tǒng)存儲器檢索的數(shù)據(jù)的位置的地址總線具有多個地址線。地址線的至少之一啟用加密機制,以在存儲于存儲器中之前加密數(shù)據(jù)并在從存儲器檢索之后解密數(shù)據(jù)。另一地址線啟用保護機制以生成數(shù)據(jù)的散列。散列被存儲并被用來確定數(shù)據(jù)在存儲于系統(tǒng)存儲器中時是否被改變。
文檔編號G06F1/00GK1740991SQ20051008950
公開日2006年3月1日 申請日期2005年7月27日 優(yōu)先權(quán)日2004年8月27日
發(fā)明者D·R·莫瑞斯, J·A·安德魯斯 申請人:微軟公司