專(zhuān)利名稱:一種在vt環(huán)境中操作的軟件代理的篡改保護(hù)方法和裝置的制作方法
技術(shù)領(lǐng)域:
實(shí)施例涉及數(shù)據(jù)處理和信息保障的領(lǐng)域,特別是,涉及,如果兩 個(gè)存儲(chǔ)器頁(yè)面不屬于同一保護(hù)域,則禁止第一存儲(chǔ)器頁(yè)面的指令訪問(wèn)
第二存儲(chǔ)器頁(yè)面,以保護(hù)在虛擬技術(shù)(VT)環(huán)境中操作的軟件代理免受 篡改。
背景技術(shù):
基于存儲(chǔ)器的攻擊對(duì)于信息處理系統(tǒng)的安全來(lái)說(shuō)是非常嚴(yán)重的 威脅。其中一些攻擊包含在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中存儲(chǔ)惡意代碼,例 如病毒或蠕蟲(chóng),然后當(dāng)運(yùn)行合法程序時(shí)利用程序缺陷和/或緩沖器溢 出而將控制轉(zhuǎn)移到惡意代碼。 一種防止這種類(lèi)型的攻擊的手段是,在 頁(yè)表項(xiàng)中包含一個(gè)"禁止執(zhí)行"位,其可以用來(lái)指定存儲(chǔ)了數(shù)據(jù)的頁(yè) 面是不可執(zhí)行的,從而惡意代碼就不會(huì)作為數(shù)據(jù)存儲(chǔ),繼而也就不會(huì) 在同一物理、線性或邏輯存儲(chǔ)器空間內(nèi)執(zhí)行。
另外的手段包括使用存儲(chǔ)器頁(yè)表存儲(chǔ)與代理相關(guān)的"顏色"屬性 (反映它們的安全和/或特權(quán)域),從而以足夠精細(xì)的粒度邏輯地劃分存 儲(chǔ)器來(lái)防止一種顏色的代理訪問(wèn)與另一種顏色相關(guān)聯(lián)的存儲(chǔ)器。然 而,由于頁(yè)表中可用的位數(shù)有限,所以這種方法局限于只能分配相對(duì) 較少的"顏色"(因此只能劃分相對(duì)較少的安全域)。進(jìn)一步地,處理 器技術(shù)的進(jìn)步可能消除這些位作為"顏色"指示符的可用性。
本發(fā)明的實(shí)施例將通過(guò)附圖中所示的示例性實(shí)施例來(lái)描述,但并 不局限于此,在附圖中相似的附圖標(biāo)記表示類(lèi)似的元件,其中-圖1說(shuō)明本發(fā)明各種實(shí)施例的概觀;
圖2說(shuō)明了所選擇的本發(fā)明各種實(shí)施例的操作方法的流程圖;圖3說(shuō)明了用來(lái)以邏輯有序方式存儲(chǔ)存儲(chǔ)器頁(yè)面安全域的示例 性擴(kuò)展頁(yè)表結(jié)構(gòu);以及
圖4說(shuō)明一個(gè)適用于實(shí)施本發(fā)明各種實(shí)施例的實(shí)例計(jì)算機(jī)系統(tǒng)。
具體實(shí)施例方式
本發(fā)明的說(shuō)明性實(shí)施例包括但不局限于,用于利用存儲(chǔ)在物理設(shè) 備的處理器的一個(gè)或多個(gè)寄存器中的安全域,將該物理設(shè)備的第一存 儲(chǔ)器頁(yè)面的第一安全域和該物理設(shè)備的第二存儲(chǔ)器頁(yè)面的第二安全 域進(jìn)行比較的方法和裝置?;谒霰容^,如果第一安全域的特權(quán)域 與第二安全域的不同,則處理器禁止來(lái)自第一存儲(chǔ)器頁(yè)面的指令訪問(wèn) 第二存儲(chǔ)器頁(yè)面。結(jié)果,可以在VT環(huán)境中更為有效和有力地保護(hù)軟 件代理,尤其是關(guān)鍵性的軟件代理。
將使用本領(lǐng)域技術(shù)人員向其他本領(lǐng)域技術(shù)人員傳達(dá)他們的工作 內(nèi)容時(shí)通常所使用的術(shù)語(yǔ)來(lái)描述說(shuō)明性實(shí)施例的各個(gè)方面。然而,對(duì) 于那些本領(lǐng)域的技術(shù)人員來(lái)說(shuō)顯然可以僅利用所描述的方面中的一 些來(lái)實(shí)施替換性實(shí)施例。為了解釋說(shuō)明的目的,闡述了特定的數(shù)字、 材料和配置以提供對(duì)說(shuō)明性實(shí)施例的全面理解。然而,對(duì)于本領(lǐng)域技 術(shù)人員來(lái)說(shuō)不采用這些特定細(xì)節(jié)就可以實(shí)施替換實(shí)施例是顯而易見(jiàn) 的。在其他實(shí)例中,已知的特性將被忽略或簡(jiǎn)化,以避免對(duì)說(shuō)明性實(shí) 施例造成模糊。
進(jìn)一步地,以最有助于理解示例性實(shí)施例的方式依次將各種操作 描述為多個(gè)分離的操作;然而,描述的順序不應(yīng)當(dāng)被解釋為暗示這些 操作必須依賴于順序。特別是,這些操作不需按照表述的順序來(lái)實(shí)現(xiàn)。
短語(yǔ)"在一個(gè)實(shí)施例中"被重復(fù)地使用。這個(gè)短語(yǔ)通常不表示相 同的實(shí)施例;然而,也可能是相同的實(shí)施例。術(shù)語(yǔ)"包含"、"具有"、 "包括"是同義詞,除非上下文另有規(guī)定。短語(yǔ)"A/B"表示"A或 B"。短i吾"A和/或B"表示"(A), (B),或(A和B)"。短語(yǔ)"A, B 和C中至少一個(gè)"表示"(A), (B), (C), (A和B), (A和C), (B和 C)或(A, B和C)"。短語(yǔ)"(A)B"表示"(B)或(AB)",即,A是可選 的。
圖1說(shuō)明了本發(fā)明的各種實(shí)施例的概觀。如所說(shuō)明的,處理器
116的比較邏輯120可以將與(例如,分配給代理114的)存儲(chǔ)器頁(yè)面 相關(guān)的安全域和(代理114的指令試圖引用或訪問(wèn)的)第二存儲(chǔ)器頁(yè)面 的安全域進(jìn)行比較?;诒容^的結(jié)果,比較邏輯120可能引起頁(yè)面錯(cuò) 誤并禁止所述引用或訪問(wèn),或者可能不禁止所述引用或訪問(wèn)。與兩個(gè) 存儲(chǔ)器頁(yè)面相關(guān)的安全域可以存儲(chǔ)在計(jì)算設(shè)備102的處理器116的轉(zhuǎn) 換后備緩沖器(translation lookaside buffer, TLB)U8中,并且可被復(fù) 制到處理器116的之前的安全域(PSD)和當(dāng)前安全域(CSD)寄存器122 中(當(dāng)兩個(gè)存儲(chǔ)器頁(yè)面在試圖的存儲(chǔ)器頁(yè)面引用或訪問(wèn)中是之前的存 儲(chǔ)器頁(yè)面和當(dāng)前存儲(chǔ)器頁(yè)面時(shí))。安全域可能已被(例如虛擬機(jī)管理器 104的)安全域分配服務(wù)110分配并且存儲(chǔ)在頁(yè)表108中,用于由虛擬 機(jī)管理器(VMM)104使用以將虛擬機(jī)106的客戶機(jī)物理地址轉(zhuǎn)換成處 理器116的主機(jī)物理地址(在被拷貝到TLB 118中之前)。
在各種實(shí)施例中,虛擬機(jī)(VM)106和虛擬機(jī)管理器104可由計(jì)算 設(shè)備102的相同或不同的處理器核或處理器,例如處理器116,來(lái)執(zhí) 行,并且可被存儲(chǔ)在計(jì)算設(shè)備102的存儲(chǔ)器,例如存儲(chǔ)器124中。虛 擬機(jī)106可以包括程序和模塊,例如代理114(其是程序或者程序的模 塊),在一個(gè)實(shí)施例中,包括客戶機(jī)頁(yè)表(未示出)。除早先介紹的頁(yè)表 108和安全域分配服務(wù)110之外,在一些實(shí)施例中,虛擬機(jī)管理器104 還可以包括完整性測(cè)量模塊112,當(dāng)代理114加載到存儲(chǔ)器中時(shí)完整 性測(cè)量模塊112能夠驗(yàn)證代理114的完整性。
在各種實(shí)施例中,除本發(fā)明在此包含的實(shí)施例的教導(dǎo)之外,計(jì)算 設(shè)備102可以是任何本技術(shù)領(lǐng)域已知的單或多處理器或處理器核中 央處理單元(CPU)計(jì)算系統(tǒng)。計(jì)算設(shè)備102可以是個(gè)人計(jì)算機(jī)(PC)、 工作站、服務(wù)器、路由器、大型機(jī)、刀片服務(wù)器或高密度服務(wù)器中的 模塊化計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、娛樂(lè)中心、機(jī)頂盒或移動(dòng)設(shè)備。 計(jì)算設(shè)備102可能能夠使用虛擬化技術(shù)操作多個(gè)虛擬機(jī)(諸如虛擬機(jī) 106)以及一個(gè)虛擬機(jī)管理器104的多個(gè)操作系統(tǒng)。如果計(jì)算設(shè)備102 是多處理器或多處理器核系統(tǒng)(圖1中沒(méi)有示出),則計(jì)算設(shè)備102的 每個(gè)虛擬機(jī)/虛擬機(jī)管理器可以由專(zhuān)用于該虛擬機(jī)/虛擬機(jī)管理器的處
理器或處理器核來(lái)操作。在單處理器或單處理器核計(jì)算設(shè)備102(如圖 1所示)中,所述多個(gè)虛擬機(jī)和虛擬機(jī)管理器104可由所述單處理器或 單處理器核(如處理器116)來(lái)操作。 一個(gè)示例性的單/多處理器或處理 器核計(jì)算設(shè)備102如圖4所示,并且隨后將更加詳細(xì)地描述。在下文 中,包括在權(quán)利要求中,除非上下文中另有明確指示,術(shù)語(yǔ)"處理器" 和"處理器核"的使用是可以互換的,每個(gè)術(shù)語(yǔ)都包含另一個(gè)的含義。
在一些實(shí)施例中,VMM 104可以包含計(jì)算設(shè)備102的一個(gè)服務(wù) 分區(qū),用于管理設(shè)備102的實(shí)際的硬件資源,包括存儲(chǔ)器頁(yè)面,例如 代理114的存儲(chǔ)器頁(yè)面以及指令試圖訪問(wèn)的存儲(chǔ)器頁(yè)面,并且用于協(xié) 調(diào)虛擬機(jī)計(jì)算設(shè)備102中的資源的使用。
除本發(fā)明的實(shí)施例的教導(dǎo)之外,虛擬機(jī)106還可以是任何類(lèi)型的 虛擬機(jī)。虛擬機(jī)106可以是自主式操作環(huán)境,其表現(xiàn)如同是一個(gè)獨(dú)立 的計(jì)算機(jī)系統(tǒng)。對(duì)于通過(guò)聯(lián)網(wǎng)結(jié)構(gòu)耦合到計(jì)算設(shè)備102的外部系統(tǒng)來(lái) 說(shuō),虛擬機(jī)106可能看起來(lái)是一個(gè)獨(dú)立的計(jì)算設(shè)備。虛擬機(jī)106還可 以具有能夠管理多個(gè)代理(諸如代理114)的操作系統(tǒng),還可能具有一 個(gè)受保護(hù)的存儲(chǔ)器空間,該存儲(chǔ)器空間操作性地專(zhuān)屬于虛擬機(jī)106。 在一個(gè)實(shí)施例中,虛擬機(jī)106可以包括包含有線性地址和客戶機(jī)物理 地址之間的映射的客戶機(jī)頁(yè)表(未示出)。如上所述,虛擬機(jī)106還包 含代理114,并且由處理器116操作。適合的虛擬機(jī)和虛擬化技術(shù)包 括但不限于那些可從華盛頓州雷德蒙的微軟公司、加利福尼亞州帕洛 阿爾托的VMware公司以及英國(guó)劍橋的XenSource得到的技術(shù)。
仍然如所說(shuō)明的,VMM 104可以包括頁(yè)表108的結(jié)構(gòu)。在一些 實(shí)施例中,如隨后圖3所示,可以以分級(jí)的方式組織頁(yè)表108,以用 于將虛擬機(jī)106的客戶機(jī)物理地址映射到計(jì)算設(shè)備102的主機(jī)物理地 址,以及用于計(jì)算設(shè)備102的存儲(chǔ)器頁(yè)面存儲(chǔ)安全域。例如,頁(yè)表 108可以包括基本的和擴(kuò)展的頁(yè)表,用于提供從虛擬機(jī)106的線性虛 擬地址到虛擬機(jī)106的客戶機(jī)物理地址的映射、從客戶機(jī)物理地址到 計(jì)算設(shè)備102的主機(jī)物理地址的映射,以及用于為計(jì)算設(shè)備102的存 儲(chǔ)器頁(yè)面存儲(chǔ)安全域。頁(yè)表108可由VMM 104響應(yīng)于加載虛擬機(jī)106 組件(諸如加載代理114)而更新,來(lái)為那些組件添加用于將它們的客
戶機(jī)物理地址映射以指向主機(jī)物理存儲(chǔ)器頁(yè)面的項(xiàng)。進(jìn)一步地,擴(kuò)展
頁(yè)表108可被稱作擴(kuò)展頁(yè)表指針(EPTP)的處理器寄存器引用。EPTP 可以包含某些位使其能夠標(biāo)記安全域配置選項(xiàng)。擴(kuò)展頁(yè)表的各種級(jí)別 可能包含能夠存儲(chǔ)所有或部分安全域的擴(kuò)展頁(yè)表項(xiàng)(EPTE)。由于 EPTE可以形成多級(jí)分頁(yè)結(jié)構(gòu),所以來(lái)自多個(gè)級(jí)別的保護(hù)域的位可被 結(jié)合以唯一地標(biāo)識(shí)保護(hù)域。示例性EPTP和EPTE結(jié)構(gòu)將隨后參考圖 3做更為詳盡的描述。
在一些實(shí)施例中,如之前暗示的,VMM 104可以包括安全域分 配服務(wù)110(下文中稱為分配服務(wù)),其能夠?yàn)榇泶_定安全域,將所 確定的域和存儲(chǔ)器頁(yè)面或代理頁(yè)面相關(guān)聯(lián),以及將所確定的域存儲(chǔ)在 指向一個(gè)或多個(gè)存儲(chǔ)器頁(yè)面的EPTE結(jié)構(gòu)中。分配服務(wù)110可以向每 個(gè)代理分配一個(gè)唯一的安全域,還可以將同一安全域分配給同一代理 的相關(guān)聯(lián)的模塊或分配給相關(guān)聯(lián)的代理。同樣,分配服務(wù)iio還可以 向虛擬機(jī)106的基礎(chǔ)組件以及向遺留應(yīng)用分配特殊的安全域?;A(chǔ)組 件,例如調(diào)度程序、加載器以及存儲(chǔ)器管理器可以被分配一個(gè)管理安 全域,以允許它們的指令訪問(wèn)具有不同安全域的存儲(chǔ)器頁(yè)面。在這種 意義上,安全域是部分有序的, 一些安全域會(huì)比其他安全域更特權(quán)化 (雖然并不始終如此)。遺留應(yīng)用可能不會(huì)被分配安全域(或給予一個(gè)安 全域"0"),并且從而,可能不會(huì)訪問(wèn)具有安全域的存儲(chǔ)器頁(yè)面。在 各種實(shí)施例中,分配服務(wù)110還可以確定與所確定的安全域相關(guān)聯(lián)的 特征,例如該域被分配到的存儲(chǔ)器頁(yè)面是否是隱藏的存儲(chǔ)器頁(yè)面。在 一個(gè)實(shí)施例中,如以下參考圖3所述,部分安全域可以以嵌套方式存 儲(chǔ)在多個(gè)EPTE中。在這樣的實(shí)施例中,分配服務(wù)110可以從邏輯組 中分配代理,例如網(wǎng)絡(luò)驅(qū)動(dòng)器、對(duì)于每個(gè)代理來(lái)說(shuō)相同的安全域的一 部分以及對(duì)于每個(gè)代理模塊來(lái)說(shuō)唯一的一部分,從而允許分配的安全 域的邏輯組織結(jié)構(gòu)。在替換的實(shí)施例中,分配服務(wù)110可能是虛擬機(jī) (諸如虛擬機(jī)106)的組件,而不是VMM 104的組件。
在各種實(shí)施例中,如之前暗示的,VMM 104還可以包括完整性 測(cè)量模塊(IMM)112,當(dāng)代理114裝載到虛擬機(jī)106的存儲(chǔ)器中時(shí)完 整性測(cè)量模塊112可以驗(yàn)證代理114的完整性。IMM 112可以使用任
何本領(lǐng)域已知的方法來(lái)證實(shí)代理114的完整性,例如存儲(chǔ)器頁(yè)面的密 碼哈希。通過(guò)驗(yàn)證代理114的完整性,IMM 112可以提供額外的安全 層,以即使在分配安全域之前也能夠檢測(cè)到代理114的惡化。在一些 實(shí)施例中,計(jì)算設(shè)備102可以包括附加的虛擬機(jī)(未示出),其可以包 括IMM 112。在這些實(shí)施例中,VMM 104的完整性服務(wù)(未示出)可 以將代理114的存儲(chǔ)器頁(yè)面的拷貝映射到附加的虛擬機(jī),以由IMM 112進(jìn)行評(píng)估,這可以為該代理返回驗(yàn)證結(jié)果。
在各種實(shí)施例中,如之前暗示的,虛擬機(jī)106可以包含一個(gè)或多 個(gè)應(yīng)用程序,例如代理114。代理114可以是任何類(lèi)型的代理,包括 具有需要訪問(wèn)其他代理的存儲(chǔ)器頁(yè)面的指令的程序或程序的模塊。這 樣的訪問(wèn)可能是讀訪問(wèn)或?qū)懺L問(wèn),或者是跳轉(zhuǎn)或調(diào)用以轉(zhuǎn)移到存儲(chǔ)在 被試圖訪問(wèn)的存儲(chǔ)器頁(yè)面中的代理。代理114可能是虛擬機(jī)106的合 法的(或被感染的)代理,或者可能是惡意程序,例如蠕蟲(chóng)或病毒。在 一些實(shí)施例中,代理114可能是許多可信的虛擬機(jī)106的基本組件中 的一個(gè),例如調(diào)度程序、加載器、存儲(chǔ)器管理器或安全域分配服務(wù) IIO(如果不是由VMM104實(shí)現(xiàn)的話)。如上所述,這些組件可以被分 配一個(gè)特殊的管理安全域,以允許組件114的指令訪問(wèn)具有不同安全 域的存儲(chǔ)器頁(yè)面。在其他實(shí)施例中,代理114可能是一個(gè)沒(méi)有被分配 安全域的遺留應(yīng)用。如上所述,代理114可被存儲(chǔ)在本身與一個(gè)安全 域相關(guān)聯(lián)的虛擬機(jī)106的存儲(chǔ)器頁(yè)面中。
如所說(shuō)明的那樣,除本發(fā)明的實(shí)施例的教導(dǎo)之外,處理器116可 以是多種不同類(lèi)型的處理器中的任何一種,例如Intel公司的 Pentium⑧處理器系列、Itanium⑧處理器系列或其他處理器系列中的處 理器,或任何其他通用的或來(lái)自另一家公司的其他處理器中的處理 器。處理器116可以執(zhí)行虛擬機(jī)106及其代理、虛擬機(jī)管理器104及 其代理,并且處理器116可以包括一個(gè)或多個(gè)TLB 118,其中TLB 118 被修改以存儲(chǔ)存儲(chǔ)器頁(yè)面的安全域,并且具有相關(guān)的比較邏輯120, 以及CSD和PSD寄存器12'2??梢栽鰪?qiáng)TLB 118以拷貝由VMM 104 的安全域分配服務(wù)110為不同的存儲(chǔ)器頁(yè)面分配并存儲(chǔ)在頁(yè)表108中 的安全域。在處理試圖訪問(wèn)存儲(chǔ)器頁(yè)面的代理114的指令時(shí),虛擬機(jī)
106的存儲(chǔ)器管理邏輯、VMM 104和處理器116可將指令所引用的 線性地址映射到從虛擬機(jī)106的客戶機(jī)頁(yè)表(未示出)獲得的客戶機(jī)物 理地址,該地址隨后將被該邏輯映射到該指令的線性地址所引用的實(shí) 際存儲(chǔ)器頁(yè)面的主機(jī)物理地址。從客戶機(jī)物理地址到主機(jī)物理地址的 映射可以從VMM 104的頁(yè)表108獲得,頁(yè)表108可以是擴(kuò)展頁(yè)表。 TLB 118可以被廣泛應(yīng)用于這種高速緩存各種級(jí)別的地址轉(zhuǎn)換的處 理中。處理器116的邏輯可以隨后將當(dāng)前存儲(chǔ)于CSD寄存器122中 的存儲(chǔ)器頁(yè)面的安全域拷貝到PSD寄存器122中,并且將正訪問(wèn)的 存儲(chǔ)器頁(yè)面的安全域拷貝到CSD寄存器122中。邏輯120進(jìn)一步比 較CSD和PSD寄存器122中的當(dāng)前和之前的安全域以確定是否禁止 該引用/訪問(wèn)。
在各種實(shí)施例中,TLB 118可以是任何本領(lǐng)域已知的轉(zhuǎn)換后備緩 沖器,不同之處在于做了修改以存儲(chǔ)安全域。此外,TLB118可以高 速緩存從指令所引用的線性存儲(chǔ)器地址到客戶機(jī)物理地址的映射,以 及從客戶機(jī)物理地址到指向指令試圖引用訪問(wèn)的存儲(chǔ)器頁(yè)面的主機(jī) 物理地址的映射。安全域和TLB 118的映射可由處理器116的邏輯來(lái) 更新。
如之前所暗示的,處理器116可以包括PSD和CSD寄存器122 以及比較邏輯120,用于比較存儲(chǔ)于PSD和CSD寄存器122中的安 全域。比較可以根據(jù)任何己知的手段來(lái)實(shí)現(xiàn)。例如,如果安全域與數(shù) 字值相關(guān)聯(lián),則比較邏輯120可以確定該值是否相同,是否一個(gè)或兩 個(gè)值都是零(表示沒(méi)有安全域,如前面所討論的),或者是否一個(gè)或兩 個(gè)值都是默認(rèn)值,例如是表示管理安全域的最大值。比較邏輯120隨 后可以使用通過(guò)比較得到的結(jié)果來(lái)禁止指令引用或訪問(wèn)存儲(chǔ)器頁(yè)面。 在一個(gè)實(shí)施例中,當(dāng)包含有指令的存儲(chǔ)器頁(yè)面的安全域與指令試圖引 用或訪問(wèn)的存儲(chǔ)器頁(yè)面的安全域相同時(shí),比較邏輯120將不禁止該引 用或訪問(wèn),而當(dāng)所述安全域不同時(shí)將禁止該引用或訪問(wèn)。比較邏輯 120將通過(guò)觸發(fā)頁(yè)面錯(cuò)誤異常來(lái)禁止該引用或訪問(wèn)。
此外,比較邏輯120可以基于另外的標(biāo)準(zhǔn)來(lái)確定是否禁止該引用 或訪問(wèn)。例如, 一個(gè)安全域(例如,"0")可以表示沒(méi)有安全域,從而 標(biāo)記為沒(méi)有安全域的存儲(chǔ)器頁(yè)面可以被任何其他頁(yè)面訪問(wèn)。如前所
述,頁(yè)表108的EPTE還可以包含一個(gè)字段或位,其定義了該頁(yè)面是 否是隱藏的??梢詫⒃撐辉O(shè)置為0以允許任何其他頁(yè)面讀取該被引用 的頁(yè)面,而不管安全域比較的結(jié)果如何,或者可以將該位設(shè)置為1來(lái) 允許比較邏輯120基于安全域比較而禁止讀引用或訪問(wèn)。在一些實(shí)施 例中,隱藏的位可以與安全域一起由處理器116的邏輯來(lái)檢索,并被 存儲(chǔ)在TLB 118的頁(yè)表中。不管隱藏位如何設(shè)置,寫(xiě)引用或訪問(wèn)都將 被阻止。
同樣地,比較邏輯120還可以根據(jù)指令控制流來(lái)確定是否禁止該 引用或訪問(wèn)。例如,可以使用指令來(lái)標(biāo)記程序的允許入口點(diǎn)。在根據(jù) Pentium⑧處理器系列架構(gòu)的一個(gè)實(shí)施例中,為了這個(gè)目的,可以加入 新的指令(例如,"定向地址向量(Directed Address Vector)"或"DAV" 指令)。如果從一個(gè)安全域的存儲(chǔ)器頁(yè)面到另一個(gè)安全域的存儲(chǔ)器頁(yè) 面中的DAV指令執(zhí)行跳轉(zhuǎn)或其他控制流指令,則所述引用或訪問(wèn)可 能不會(huì)被禁止。然而,如果跳轉(zhuǎn)是到另一個(gè)安全域的頁(yè)面,而不是到 DAV指令的,則該引用或訪問(wèn)可能被禁止。因此,可以使用DAV指 令以允許僅在一個(gè)可以提供規(guī)定的安全接口的預(yù)期點(diǎn)處,才可進(jìn)入程 序。可以防止從另一個(gè)安全域的程序跳轉(zhuǎn)到程序的隨機(jī)或非預(yù)期部 分。最后,DAV指令可以僅在可執(zhí)行的(例如,不是根據(jù)Pentium 4 和其他處理器系列架構(gòu)的使用了 XD位的eXecute Disabled)頁(yè)面中執(zhí) 行,確保具有表現(xiàn)為DAV指令的偽比特序列的數(shù)據(jù)頁(yè)面不會(huì)被處理 器116執(zhí)行。
此外,比較邏輯120還可以使得頁(yè)面錯(cuò)誤報(bào)告能夠包含頁(yè)面錯(cuò)誤 是否是由安全域不匹配或違反造成的。例如,在觸發(fā)頁(yè)面錯(cuò)誤時(shí),比 較邏輯120可以提供指示,從而將頁(yè)面錯(cuò)誤錯(cuò)誤碼中的一個(gè)位(例如, 根據(jù)Pentium⑧處理器系列架構(gòu)加入堆棧的頁(yè)面錯(cuò)誤錯(cuò)誤碼中的位5) 指定為安全域違反位,并且該位可被設(shè)置為1以指示頁(yè)面錯(cuò)誤由安全 域不匹配觸發(fā)。這個(gè)位將在其他標(biāo)志的上下文中解釋。例如,如果安 全域違反是由取指令引起的,則錯(cuò)誤碼中的取指令位將被設(shè)置為1。 如果安全域違反是由讀或?qū)懸鸬?,則讀/寫(xiě)位將被設(shè)置為對(duì)于讀
為0或?qū)τ趯?xiě)為1。另外,引起錯(cuò)誤的代理114的存儲(chǔ)器頁(yè)面的線性 地址將被保存在例如根據(jù)Pentiuim⑧處理器系列架構(gòu)的處理器的CR2 控制寄存器中。
如所說(shuō)明的,計(jì)算環(huán)境102的存儲(chǔ)器124可以是除VMM 104、 VM 106和它們的組件之外的本領(lǐng)域任何已知類(lèi)型的能夠存儲(chǔ)由處理 器116執(zhí)行的指令的存儲(chǔ)器設(shè)備。在一個(gè)實(shí)施例中,存儲(chǔ)器124可以 在至少包括VMM 104和VM 106的多個(gè)虛擬機(jī)中被分區(qū)。
總之,可以添加安全域分配服務(wù)110以向存儲(chǔ)器頁(yè)面分配安全 域??梢栽鰪?qiáng)頁(yè)表108和TLB 118以存儲(chǔ)分配的安全域,并且可將處 理器116進(jìn)行修改以包含PSD和CSD寄存器122以存儲(chǔ)當(dāng)前和之前 的存儲(chǔ)器頁(yè)面的安全域,并且包含比較邏輯120以比較之前的和當(dāng)前 存儲(chǔ)器頁(yè)面的安全域以確定是否禁止引用/訪問(wèn)。
圖2說(shuō)明了本發(fā)明的各種實(shí)施例的方法的所選操作的流程圖。如 圖所示,在各種實(shí)施例中,每當(dāng)在存儲(chǔ)器中產(chǎn)生那些代理中的一個(gè)時(shí), 計(jì)算設(shè)備的完整性測(cè)量模塊(IMM)可以驗(yàn)證計(jì)算設(shè)備代理的完整性 (方框202)。 IMM可以駐留在計(jì)算設(shè)備的虛擬機(jī)管理器(VMM)中,或 在不包含被驗(yàn)證的代理的計(jì)算設(shè)備的虛擬機(jī)(VM)中。IMM可以接收 包含該代理的存儲(chǔ)器頁(yè)面的拷貝,并且可以參考圖1以如前所述的方 式來(lái)驗(yàn)證該代理。通過(guò)驗(yàn)證該代理,VMM的安全域分配服務(wù)可以向 計(jì)算設(shè)備的VM的代理分配安全域(方框204)。分配服務(wù)可以通過(guò)將 安全域存儲(chǔ)在VMM的擴(kuò)展頁(yè)表的對(duì)應(yīng)的擴(kuò)展頁(yè)表項(xiàng)(EPTE)結(jié)構(gòu)中
來(lái)將所分配的安全域和分配給代理的所有存儲(chǔ)器頁(yè)面進(jìn)行關(guān)聯(lián),并且 可以在與EPTE相關(guān)聯(lián)的擴(kuò)展頁(yè)表指針(EPTP)結(jié)構(gòu)中設(shè)置安全域配置
值,例如如前所述的隱藏位,而所述安全域配置值又被復(fù)制并存儲(chǔ)到 TLB中(方框206)。
如之前進(jìn)一步的描述,當(dāng)與計(jì)算設(shè)備的VM相關(guān)聯(lián)的處理器服務(wù) 于駐留于計(jì)算設(shè)備的第一存儲(chǔ)器頁(yè)面的代理的指令,該指令試圖引用 或訪問(wèn)第二存儲(chǔ)器頁(yè)面時(shí),處理器的邏輯可以更新存儲(chǔ)于PSD和CSD
寄存器中的之前和當(dāng)前存儲(chǔ)器頁(yè)面的安全域(方框208)。
一旦第二存儲(chǔ)器頁(yè)面的安全域被檢索并存儲(chǔ),處理器的比較邏輯
就可以比較存儲(chǔ)在PSD和CSD中的安全域(方框210)。至少部分地 基于比較結(jié)果,比較邏輯將不禁止指令引用或訪問(wèn)第二存儲(chǔ)器頁(yè)面 (方框220),或禁止訪問(wèn)(方框222)。除比較安全域之外,比較邏輯還 適用于執(zhí)行多個(gè)其他測(cè)試。例如,比較邏輯可以確定第一存儲(chǔ)器頁(yè)面 的安全域是否與第二存儲(chǔ)器頁(yè)面的安全域不同(方框212)。如果安全 域相同,則比較邏輯可以不禁止訪問(wèn)(方框220)。反之如果安全級(jí)別 不同,則比較邏輯將進(jìn)一步確定是否為第二存儲(chǔ)器頁(yè)面設(shè)置了前述的 隱藏位(方框214)。如果設(shè)置了隱藏位,則比較邏輯將禁止訪問(wèn)(方框 222)。然而,如果沒(méi)有設(shè)置隱藏位,則比較邏輯可以進(jìn)一步確定試圖 進(jìn)行的訪問(wèn)是否是讀引用或讀訪問(wèn)(方框216)。如果該引用或訪問(wèn)是 讀引用或訪問(wèn),則比較邏輯可以不禁止訪問(wèn)(方框220)。反之,如果 引用或訪問(wèn)不是讀引用或訪問(wèn),則比較邏輯可以確定該引用或訪問(wèn)是 否是到第二存儲(chǔ)器頁(yè)面的經(jīng)核準(zhǔn)的入口點(diǎn)的控制流轉(zhuǎn)移,例如跳轉(zhuǎn)或 調(diào)用指令(前面討論的"DAV指令")(方框218)。如果指令是到允許 入口點(diǎn)的跳轉(zhuǎn)或調(diào)用,則比較邏輯可以不禁止該指令(方框220)。如 果該指令不是跳轉(zhuǎn)或調(diào)用,或者是到未經(jīng)核準(zhǔn)的入口點(diǎn)的存儲(chǔ)器的跳 轉(zhuǎn)或調(diào)用,則比較邏輯將禁止該指令引用或訪問(wèn)第二存儲(chǔ)器頁(yè)面(方 框222)。
如果指令已被禁止弓I用或訪問(wèn)第二存儲(chǔ)器頁(yè)面,則比較邏輯將觸 發(fā)頁(yè)面錯(cuò)誤(方框224)。在一些實(shí)施例中,頁(yè)面錯(cuò)誤可能包含對(duì)引用 或訪問(wèn)的類(lèi)型的描述符,和試圖進(jìn)行被禁止的引用或訪問(wèn)的第一存儲(chǔ) 器頁(yè)面的地址。
圖3說(shuō)明了用于以邏輯有序方式存儲(chǔ)存儲(chǔ)器頁(yè)面安全域的示例 性擴(kuò)展頁(yè)表結(jié)構(gòu)。所示的最左邊的方框是示例性擴(kuò)展頁(yè)表指針 (EPTP),其能夠存儲(chǔ)安全域優(yōu)選項(xiàng)。EPTP可以例如是64位結(jié)構(gòu),包 括配置/允許位、能夠容納512個(gè)擴(kuò)展頁(yè)表項(xiàng)的4KB存儲(chǔ)器頁(yè)面的 物理地址(48位字段)以及多個(gè)保留位,其中所述擴(kuò)展頁(yè)表項(xiàng)例如是中 間和右邊的一系列方框中所示的EPTE方框。保留位用于指示被指令 訪問(wèn)的存儲(chǔ)器頁(yè)面是否具有分配的安全域、該頁(yè)面是否是隱藏的、該 頁(yè)面是否是轉(zhuǎn)移頁(yè)(DAV),等等。中間和右邊所示的EPTE方框可以是由EPTP方框指向的存儲(chǔ)器頁(yè)面的EPTE。EPTE例如可以包括提供 頁(yè)面幀的地址的40位的地址字段,所述頁(yè)面幀是指令試圖訪問(wèn)的物 理頁(yè)面幀,或者提供包含可以進(jìn)一步用于地址轉(zhuǎn)換的另外512個(gè) EPTE的另一存儲(chǔ)器頁(yè)面的地址。圖中示出的指向右邊的EPTE方框 的中間的EPTE方框構(gòu)成這種指向的EPTE。同樣,可以使用EPTE 的IO個(gè)位來(lái)存儲(chǔ)安全域。
在一些實(shí)施例中,CPU至少可以解析EPTE的兩個(gè)域,例如那些 中間和右邊系列的方框,以對(duì)試圖訪問(wèn)的存儲(chǔ)器頁(yè)面的客戶機(jī)物理地 址進(jìn)行轉(zhuǎn)換。因此,因?yàn)閮蓚€(gè)EPTE被關(guān)聯(lián)到任意給定的頁(yè)面幀,所 以可以使用20個(gè)位來(lái)向存儲(chǔ)器頁(yè)面分配安全域。同樣,因?yàn)榈谝粋€(gè) EPTE的10個(gè)位可以被多達(dá)512個(gè)存儲(chǔ)器頁(yè)面幀共享,所以安全域分 配服務(wù)可以利用這一點(diǎn)從而以邏輯模式劃分安全域空間(例如,所有 網(wǎng)絡(luò)驅(qū)動(dòng)器共享它們安全域的相同的前IO個(gè)位)。
圖4說(shuō)明了適用于實(shí)現(xiàn)本發(fā)明的各種實(shí)施例的實(shí)例計(jì)算機(jī)系統(tǒng)。 如圖所示,計(jì)算系統(tǒng)400包含多個(gè)處理器或處理器核402(如處理器 116),以及系統(tǒng)存儲(chǔ)器404(例如存儲(chǔ)器124)。為了這個(gè)應(yīng)用的目的, 包括在權(quán)利要求中,術(shù)語(yǔ)"處理器"和"處理器核"可以看作是同義 的,除非上下文中另有明確要求。另外,計(jì)算系統(tǒng)400包括大容量存 儲(chǔ)裝置406(例如軟盤(pán)、硬驅(qū)動(dòng)器、只讀壓縮盤(pán)存儲(chǔ)器(CDROM)等等)、 輸入/輸出設(shè)備408(例如鍵盤(pán)、光標(biāo)控制等等)以及通信接口 410(例如 網(wǎng)絡(luò)接口卡、調(diào)制解調(diào)器等等)。這些元件經(jīng)由系統(tǒng)總線412相互耦 合,系統(tǒng)總線412代表一個(gè)或多個(gè)總線。在多總線的情況下,它們通 過(guò)一個(gè)或多個(gè)總線橋(未示出)橋接。在各種實(shí)施例中,大容量存儲(chǔ)裝 置406可以被分成多個(gè)分區(qū)以供虛擬機(jī)使用,其中每個(gè)虛擬機(jī)具有獨(dú) 占使用的分配的分區(qū)。
這些元件中的每一個(gè)都執(zhí)行其在本技術(shù)領(lǐng)域所公知的傳統(tǒng)功能。 特別是,禾U用早先描述的改進(jìn)的TLB、 PSD和CSD寄存器以及安全 域比較邏輯對(duì)處理器402進(jìn)行改進(jìn)。此外,系統(tǒng)存儲(chǔ)器404和大容量 存儲(chǔ)裝置406可用于存儲(chǔ)實(shí)現(xiàn)安全域分配服務(wù)、IMM等編程指令的 運(yùn)行中的拷貝和永久拷貝,所述指令在這里統(tǒng)一表示為422。指令422可以由處理器402或高級(jí)語(yǔ)言(例如C語(yǔ)言)所支持的匯編指令進(jìn)行編 譯。
編程指令的永久拷貝可以在工廠中裝入永久存儲(chǔ)裝置406,或者 在該領(lǐng)域,例如可以通過(guò)諸如壓縮盤(pán)(CD)的分發(fā)介質(zhì)(未示出),或通 過(guò)通信接口 410(從分發(fā)服務(wù)器(未示出))裝入永久存儲(chǔ)裝置406。
這些元件402—412的構(gòu)成是已知的,因此相應(yīng)地不再進(jìn)行進(jìn)一 步描述。
雖然在這里對(duì)具體實(shí)施例進(jìn)行了說(shuō)明和描述,但是對(duì)于那些本領(lǐng) 域的普通技術(shù)人員來(lái)說(shuō),可以理解,各種改變和/或等價(jià)的實(shí)現(xiàn)方式 可以替換所示出和描述的具體實(shí)施例,而不背離本發(fā)明的實(shí)施例的范 圍。本申請(qǐng)意在覆蓋這里所討論的實(shí)施例的任何修正或改變。因此, 明確地說(shuō),本發(fā)明的實(shí)施例僅由權(quán)利要求及其等價(jià)物來(lái)限制。
權(quán)利要求
1、一種方法,包括將物理設(shè)備的第一存儲(chǔ)器頁(yè)面的第一安全域和所述物理設(shè)備的第二存儲(chǔ)器頁(yè)面的第二安全域存儲(chǔ)在所述物理設(shè)備的處理器的轉(zhuǎn)換后備緩沖器的寄存器中;當(dāng)所述第一存儲(chǔ)器頁(yè)面的指令試圖引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面時(shí),分析所述第一和第二存儲(chǔ)器頁(yè)面的第一和第二安全域;以及至少部分地基于對(duì)所述第一和第二安全域的分析,禁止所述第一存儲(chǔ)器頁(yè)面的指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
2、 如權(quán)利要求1所述的方法,其中所述存儲(chǔ)操作包括當(dāng)試圖 進(jìn)行引用或訪問(wèn)時(shí),從所述轉(zhuǎn)換后備緩存中檢索所述第一和第二安全 域,并且將所檢索到的第一和第二安全域存儲(chǔ)在所述轉(zhuǎn)換后備緩存的 寄存器中。
3、 如權(quán)利要求2所述的方法,其中所述方法進(jìn)一步包括從所 述物理設(shè)備的虛擬機(jī)管理器的頁(yè)表中檢索所述第一和第二安全域,并 且將所檢索到的第一和第二安全域高速緩存在所述轉(zhuǎn)換后備緩存中, 并且所述虛擬機(jī)管理器的頁(yè)表是擴(kuò)展頁(yè)表,其包括擴(kuò)展頁(yè)表指針結(jié)構(gòu),每個(gè)擴(kuò)展頁(yè)表指針結(jié)構(gòu)指示是否已經(jīng)為相關(guān) 的存儲(chǔ)器頁(yè)面設(shè)置了安全域以及指示與所述安全域相關(guān)的特性,以及 擴(kuò)展頁(yè)表項(xiàng)結(jié)構(gòu),用于存儲(chǔ)分配給相關(guān)的存儲(chǔ)器頁(yè)面的安全域。
4、 如權(quán)利要求3所述的方法,其中來(lái)自多個(gè)擴(kuò)展頁(yè)表項(xiàng)結(jié)構(gòu)的 位可被用于存儲(chǔ)一個(gè)安全域,其中所述多個(gè)擴(kuò)展頁(yè)表項(xiàng)結(jié)構(gòu)中的至少 一些具有彼此不同的嵌套級(jí)別。
5、 如權(quán)利要求1所述的方法,其中所述禁止操作包括如果所 述第一安全域與所述第二安全域不同,則引發(fā)頁(yè)面錯(cuò)誤,并且禁止所述第一存儲(chǔ)器頁(yè)面的指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
6、 如權(quán)利要求1所述的方法,其中所述方法進(jìn)一步包括確定 所述第二存儲(chǔ)器頁(yè)面是否是隱藏的存儲(chǔ)器頁(yè)面,并且如果所述第二存 儲(chǔ)器頁(yè)面是隱藏的存儲(chǔ)器頁(yè)面,則也禁止所述第一存儲(chǔ)器頁(yè)面的指令 引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
7、 如權(quán)利要求6所述的方法,其中所述方法進(jìn)一步包括確定 所述引用或訪問(wèn)是否是讀或?qū)懸没蛟L問(wèn),并且,如果所述第二存儲(chǔ) 器頁(yè)面不是隱藏的存儲(chǔ)器頁(yè)面,則如果所述第一安全域與所述第二安 全域不同并且所述引用或訪問(wèn)是讀引用或訪問(wèn)則不禁止所述指令引 用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面,如果所述第一安全域低于所述第二安 全域并且所述引用或訪問(wèn)是寫(xiě)引用或訪問(wèn)則禁止所述指令引用或訪 問(wèn)所述第二存儲(chǔ)器頁(yè)面。
8、 如權(quán)利要求1所述的方法,進(jìn)一步包括如果所述引用或訪 問(wèn)是到所述第二存儲(chǔ)器頁(yè)面的允許入口點(diǎn)的跳轉(zhuǎn)或調(diào)用之一,則不管 所述第一安全域是否與所述第二安全域不同,都不禁止所述指令引用 或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
9、 如權(quán)利要求1所述的方法,進(jìn)一步包括如果所述第二安全 域不比至少一個(gè)預(yù)定安全域具有更高的特權(quán),則不禁止所述指令引用 或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
10、 如權(quán)利要求1所述的方法,其中所述第二存儲(chǔ)器頁(yè)面存儲(chǔ)關(guān) 鍵的操作系統(tǒng)組件,并且所述第二安全域是管理安全域。
11、 如權(quán)利要求l所述的方法,進(jìn)一步包括由所述物理設(shè)備的 虛擬機(jī)管理器的安全域分配服務(wù)分配至少所述第一和第二安全域。
12、 如權(quán)利要求1所述的方法,進(jìn)一步包括由所述物理設(shè)備的 虛擬機(jī)管理器的完整性測(cè)量模塊驗(yàn)證分配有所述第一存儲(chǔ)器頁(yè)面的 所述物理設(shè)備的虛擬機(jī)的代理的完整性。
13、 一種處理器,包括轉(zhuǎn)換后備緩沖器,包括第一和第二寄存器,用于存儲(chǔ)具有所述處 理器的物理設(shè)備的第一和第二存儲(chǔ)器頁(yè)面的第一和第二安全域;以及 比較邏輯,其耦合到所述轉(zhuǎn)換后備緩沖器,用于比較所述第一存儲(chǔ)器頁(yè)面的第一安全域和所述第二存儲(chǔ)器 頁(yè)面的第二安全域,其中所述安全域己經(jīng)從所述轉(zhuǎn)換后備緩沖器 中檢索出,以及如果所述第一安全域高于或等于所述第二安全域,則不禁止 所述第一存儲(chǔ)器頁(yè)面的指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
14、 如權(quán)利要求13所述的處理器,其中存儲(chǔ)在所述轉(zhuǎn)換后備緩 存中的安全域是從所述物理設(shè)備的虛擬機(jī)管理器的頁(yè)表中檢索的,并 且所述虛擬機(jī)管理器的頁(yè)表是擴(kuò)展頁(yè)表,其包括擴(kuò)展頁(yè)表指針結(jié)構(gòu),每個(gè)擴(kuò)展頁(yè)表指針結(jié)構(gòu)被配置為指示是否已 經(jīng)為相關(guān)的存儲(chǔ)器頁(yè)面設(shè)置了安全域以及指示與所述安全域相關(guān)的 特性,以及擴(kuò)展頁(yè)表項(xiàng)結(jié)構(gòu),其被配置為存儲(chǔ)分配給相關(guān)的存儲(chǔ)器頁(yè)面的安 全域。
15、 如權(quán)利要求13所述的處理器,其中所述比較邏輯進(jìn)一步用 于如果所述第一安全域與所述第二安全域不同,則引起頁(yè)面錯(cuò)誤, 以禁止所述指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
16、 如權(quán)利要求13所述的處理器,其中所述比較邏輯進(jìn)一步用 于確定所述第二存儲(chǔ)器頁(yè)面是否是隱藏的存儲(chǔ)器頁(yè)面,并且如果所 述第二存儲(chǔ)器頁(yè)面是隱藏的存儲(chǔ)器頁(yè)面則也禁止所述第一存儲(chǔ)器頁(yè)面的指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
17、 如權(quán)利要求16所述的處理器,其中所述比較邏輯進(jìn)一步用 于確定所述引用或訪問(wèn)是否是讀或?qū)懸没蛟L問(wèn),并且,如果所述 第二存儲(chǔ)器頁(yè)面不是隱藏的存儲(chǔ)器頁(yè)面,則如果所述第一安全域與所 述第二安全域不同并且所述引用或訪問(wèn)是讀引用或訪問(wèn)則不禁止所 述指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面,如果所述第一安全域與所述 第二安全域不同并且所述引用或訪問(wèn)是寫(xiě)引用或訪問(wèn)則禁止所述指 令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
18、 如權(quán)利要求13所述的處理器,其中所述比較邏輯進(jìn)一步用于如果所述引用或訪問(wèn)是到所述第二存儲(chǔ)器頁(yè)面的允許入口點(diǎn)的跳 轉(zhuǎn)或調(diào)用之一,則不管所述第一安全域與所述第二安全域是否不同, 都不禁止所述指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
19、 如權(quán)利要求13所述的處理器,其中所述第二存儲(chǔ)器頁(yè)面存儲(chǔ)關(guān)鍵的操作系統(tǒng)組件,并且所述第二存儲(chǔ)器頁(yè)面的第二安全域是管 理安全域。
20、 如權(quán)利要求13所述的處理器,其中具有所述處理器的物理 設(shè)備的虛擬機(jī)管理器包括安全域分配服務(wù)以用于分配至少所述第一 和第二安全域,其中所述虛擬機(jī)管理器由所述處理器操作。
21、 如權(quán)利要求13所述的處理器,其中具有所述處理器的物理 設(shè)備的虛擬機(jī)管理器包括完整性管理模塊以用于驗(yàn)證所述第一存儲(chǔ) 器頁(yè)面的完整性,其中所述虛擬機(jī)管理器由所述處理器操作。
22、 一種制造物品,包拮 存儲(chǔ)介質(zhì);以及多個(gè)存儲(chǔ)在所述存儲(chǔ)介質(zhì)上的編程指令,用于例示物理設(shè)備的虛擬機(jī)管理器的安全域分配服務(wù),以為所述物理設(shè)備的第一和第二存儲(chǔ)器頁(yè)面分配至少第一和 第二安全域,以及將所分配的至少第一和第二安全域存儲(chǔ)在所述虛擬機(jī)管理 器的頁(yè)表中,便于所述物理設(shè)備的處理器的比較邏輯檢索所述至 少第一和第二安全域,所述比較邏輯比較所述第一存儲(chǔ)器頁(yè)面的 第一安全域和所述第二存儲(chǔ)器頁(yè)面的第二安全域,其中所述第一 存儲(chǔ)器頁(yè)面的指令正試圖引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面,并且 如果第一安全等級(jí)與第二安全等級(jí)相同則所述比較邏輯不禁止 來(lái)自所述第一存儲(chǔ)器頁(yè)面的指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè) 面。
23、 如權(quán)利要求22所述的物品,其中所述虛擬機(jī)管理器的頁(yè)表 是擴(kuò)展頁(yè)表,包括擴(kuò)展頁(yè)表指針結(jié)構(gòu),每個(gè)擴(kuò)展頁(yè)表指針結(jié)構(gòu)指示是否已經(jīng)為相關(guān) 的存儲(chǔ)器頁(yè)面設(shè)置了安全域以及指示與所述安全域相關(guān)的特性,以及 擴(kuò)展頁(yè)表項(xiàng)結(jié)構(gòu),用于存儲(chǔ)分配給相關(guān)的存儲(chǔ)器頁(yè)面的安全域。
24、 如權(quán)利要求23所述的物品,其中所述指令進(jìn)一步用于例示 所述安全域分配服務(wù)以便為所述至少第一和第二存儲(chǔ)器頁(yè)面中的至 少一個(gè),確定與所確定的安全域相關(guān)的一個(gè)或多個(gè)特性,并將所述一 個(gè)或多個(gè)特性存儲(chǔ)在所述擴(kuò)展頁(yè)表指針結(jié)構(gòu)中。
25、 一種系統(tǒng),包括大容量存儲(chǔ)裝置,其中存儲(chǔ)有至少一個(gè)可實(shí)例化為關(guān)鍵的操作系 統(tǒng)組件代理的關(guān)鍵的操作系統(tǒng)組件程序;以及處理器,其耦合到所述大容量存儲(chǔ)裝置,所述處理器包括轉(zhuǎn)換后備緩沖器,其包括第一和第二寄存器以存儲(chǔ)所述系統(tǒng) 的第一和第二存儲(chǔ)器頁(yè)面的第一和第二安全域,所述第二存儲(chǔ)器 頁(yè)面具有所述關(guān)鍵的操作系統(tǒng)組件代理;以及比較邏輯,其耦合到所述轉(zhuǎn)換后備緩沖器,并且用于比較所述第一存儲(chǔ)器頁(yè)面的第一安全域和所述第二存儲(chǔ)器頁(yè)面的第二安全域,其中所述安全域已經(jīng)從所述轉(zhuǎn)換后備緩沖器中檢索出,以及如果所述第一安全域和所述第二安全域相同,則不禁止來(lái)自所述第一存儲(chǔ)器頁(yè)面的指令訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
26、 如權(quán)利要求25所述的系統(tǒng),其中存儲(chǔ)在所述轉(zhuǎn)換后備緩沖 器中的安全域是從所述系統(tǒng)的虛擬機(jī)管理器的頁(yè)表中檢索的,并且所 述虛擬機(jī)管理器的頁(yè)表是擴(kuò)展頁(yè)表,其包括擴(kuò)展頁(yè)表指針結(jié)構(gòu),每一個(gè)擴(kuò)展頁(yè)表指針結(jié)構(gòu)被配置為指示是否已經(jīng)為相關(guān)的存儲(chǔ)器頁(yè)面設(shè)置了安全域以及指示與所述安全域相關(guān)的特性,以及擴(kuò)展頁(yè)表項(xiàng)結(jié)構(gòu),其被配置為存儲(chǔ)分配給相關(guān)的存儲(chǔ)器頁(yè)面的安全域。
27、 如權(quán)利要求25所述的系統(tǒng),其中所述比較邏輯進(jìn)一步用于 如果所述第一安全域與所述第二安全域不同,則引發(fā)頁(yè)面錯(cuò)誤以禁止 所述指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
28、 如權(quán)利要求25所述的系統(tǒng),其中所述比較邏輯進(jìn)一步用于 如果所述引用或訪問(wèn)是到所述第二存儲(chǔ)器頁(yè)面的允許入口點(diǎn)的跳轉(zhuǎn) 或調(diào)用之一,則不管所述第一安全域是否與所述第二安全域不同,都 不禁止所述指令引用或訪問(wèn)所述第二存儲(chǔ)器頁(yè)面。
29、 如權(quán)利要求25所述的系統(tǒng),其中具有所述關(guān)鍵的操作系統(tǒng) 組件代理的第二存儲(chǔ)器頁(yè)面的第二安全域是管理安全域。
全文摘要
這里描述了用于比較物理設(shè)備的第一存儲(chǔ)器頁(yè)面的第一安全域和該物理設(shè)備的第二存儲(chǔ)器頁(yè)面的第二安全域的方法、裝置、物品以及系統(tǒng),所述安全域存儲(chǔ)在該物理設(shè)備的處理器的一個(gè)或多個(gè)寄存器中。基于該比較,如果第一安全域與第二安全域不同,則處理器禁止來(lái)自第一存儲(chǔ)器頁(yè)面的指令訪問(wèn)第二存儲(chǔ)器頁(yè)面。結(jié)果,可以在VT環(huán)境中更為有效和有力地保護(hù)軟件代理,尤其是關(guān)鍵性的軟件代理。
文檔編號(hào)G06F21/22GK101201885SQ20071030037
公開(kāi)日2008年6月18日 申請(qǐng)日期2007年9月29日 優(yōu)先權(quán)日2006年9月29日
發(fā)明者D·德拉姆, H·科斯拉維, R·薩希塔, U·薩瓦岡卡爾 申請(qǐng)人:英特爾公司