專利名稱::安全內(nèi)存管理系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)安全的領(lǐng)域,特別是保證將數(shù)據(jù)或應(yīng)用程序安全地裝載到易失性的工作內(nèi)存(memory)中或者將并發(fā)的應(yīng)用程序彼此隔離以使得一個(gè)應(yīng)用程序不可以修改用于另一個(gè)應(yīng)用程序的數(shù)據(jù)或代碼。
背景技術(shù):
:數(shù)據(jù)處理系統(tǒng)可以包括硬件資源,諸如處理單元(CPU)、易失性內(nèi)存(RAM)和非易失性內(nèi)存(ROM)。數(shù)據(jù)處理系統(tǒng)可以在至少一個(gè)操作系統(tǒng)的控制下工作并且可以根據(jù)一個(gè)或幾個(gè)軟件資源或應(yīng)用程序來(lái)執(zhí)行例程。應(yīng)用程序可以被存儲(chǔ)在非易失性內(nèi)存中并且在需要被運(yùn)行時(shí)裝載到易失性內(nèi)存中。在應(yīng)用程序的運(yùn)行期間,所述應(yīng)用程序所要求的數(shù)據(jù)或由應(yīng)用程序產(chǎn)生的數(shù)據(jù)可以被存儲(chǔ)在非易失性或易失性內(nèi)存中或者從一個(gè)內(nèi)存?zhèn)魉偷搅硪粋€(gè)內(nèi)存。隨著對(duì)數(shù)據(jù)處理系統(tǒng)的多種連接選擇的出現(xiàn)(包括無(wú)線連接),并且隨著移動(dòng)數(shù)據(jù)處理系統(tǒng)的使用的巨大增長(zhǎng),需要保護(hù)這些系統(tǒng)免受惡意攻擊已經(jīng)變得日益重要。惡意攻擊的目的可以是干擾系統(tǒng)引導(dǎo)、修改操作系統(tǒng)、攔截和/或修改由一些應(yīng)用程序產(chǎn)生或使用的數(shù)據(jù)。實(shí)際上,保護(hù)數(shù)據(jù)處理系統(tǒng)免于欺騙性的操作和對(duì)它們的完整性(integrity)的攻擊現(xiàn)在已經(jīng)變成了必要的要求。這種惡意攻擊可能以如下軟件的形式出現(xiàn),該軟件被設(shè)計(jì)來(lái)在用戶不知道或沒(méi)有批準(zhǔn)的情況下接管數(shù)據(jù)處理系統(tǒng)的操作系統(tǒng)或者干擾數(shù)據(jù)處理系統(tǒng)的正常處理順序。這種軟件一般被稱為惡意軟件(malware)。在數(shù)據(jù)處理系統(tǒng)中惡意軟件的存在一般難以清除(remedy),并且可能導(dǎo)致整個(gè)系統(tǒng)故障,或者甚至導(dǎo)致對(duì)系統(tǒng)的不能修復(fù)的損壞。計(jì)算機(jī)病毒、蠕蟲(chóng)、特洛伊木馬、間諜軟件等都是不同類型的惡意軟件。不同類型的惡意軟件能夠以各種方式攻擊處理系統(tǒng),諸如通過(guò)攔截打算用于其它應(yīng)用程序的數(shù)據(jù)或通過(guò)監(jiān)視擊鍵以便竊取密碼或必須保密的其它信息、修改或改變數(shù)據(jù)或損壞文件、修改程序以便使得它崩潰或運(yùn)行一些用戶原來(lái)沒(méi)有想要的功能。與惡意軟件攻擊斗爭(zhēng)的系統(tǒng)存在并且通常其特征在于內(nèi)存管理單元,其可由系統(tǒng)的CPU配置。因而,如果CPU受到來(lái)自惡意的用戶的攻擊,則安全性受到了損害。由于現(xiàn)代CPU呈現(xiàn)的復(fù)雜性,為了使這種攻擊的可能性最小化所需要的附加的安全功能將導(dǎo)致就實(shí)現(xiàn)這種功能所必需的額外的芯片上有效面積(realestate)方面來(lái)說(shuō)成本顯著增大并且將導(dǎo)致計(jì)算開(kāi)銷,因此損害了運(yùn)行速度。此外,由于典型的CPU的復(fù)雜性,這種修改不能以可接受的置信度水平提供高級(jí)別的安全性。因此,將期望具有提供對(duì)將數(shù)據(jù)或應(yīng)用程序裝載到數(shù)據(jù)處理系統(tǒng)中的內(nèi)存中或從數(shù)據(jù)處理系統(tǒng)中的內(nèi)存向外卸載(unload)的安全管理的成本高效(cost-efficient)和尺寸高效(size-efficient)的解決方案。
發(fā)明內(nèi)容本發(fā)明描述一種用于將數(shù)字信息從存儲(chǔ)設(shè)備安全地裝載到數(shù)據(jù)處理系統(tǒng)中的內(nèi)存模塊中的系統(tǒng)和方法,所述數(shù)據(jù)處理系統(tǒng)包括至少一個(gè)存儲(chǔ)設(shè)備(SD)、至少一個(gè)內(nèi)存模塊(MM)和至少一個(gè)處理器(CP),所述存儲(chǔ)設(shè)備(SD)具有至少一個(gè)數(shù)據(jù)片段(segment)以及與該片段有關(guān)的訪問(wèn)和驗(yàn)證數(shù)據(jù),其特征在于,它包括連接在處理器(CP)和內(nèi)存模塊(MM)之間的內(nèi)存訪問(wèn)控制器(RA)以及與處理器(CP)、內(nèi)存模塊(MM)、存儲(chǔ)設(shè)備(SD)和內(nèi)存訪問(wèn)控制器(RA)連接的安全內(nèi)存管理模塊(SMM),所述安全內(nèi)存管理模塊(SMM)包括用于接收來(lái)自處理器(CP)的對(duì)于存儲(chǔ)在存儲(chǔ)設(shè)備(SD)中的片段的請(qǐng)求的裝置,所述片段具有與它有關(guān)的至少一個(gè)訪問(wèn)條件和至少一段驗(yàn)證數(shù)據(jù),所述安全內(nèi)存管理模塊(SMM)還包括用于將請(qǐng)求的片段從存儲(chǔ)設(shè)備(SD)裝載到內(nèi)存模塊(MM)的裝置、用于使用驗(yàn)證數(shù)據(jù)來(lái)驗(yàn)證訪問(wèn)條件的裝置、用于使用訪問(wèn)條件來(lái)配置內(nèi)存訪問(wèn)控制器(RA)的裝置,所述內(nèi)存訪問(wèn)控制器(RA)具有用于檢測(cè)來(lái)自處理器(CP)的處理器狀態(tài)的裝置和用于將訪問(wèn)條件與處理器狀態(tài)相比較的裝置,內(nèi)存訪問(wèn)控制器(RA)具有用于根據(jù)該比較的結(jié)果來(lái)允許或阻止對(duì)內(nèi)存模塊(MM)的訪問(wèn)的裝置。在本發(fā)明中用來(lái)將數(shù)據(jù)從存儲(chǔ)設(shè)備安全地裝載到內(nèi)存模塊的方法包括以下步驟由安全內(nèi)存管理模塊(SMM)接收來(lái)自處理器(CP)的對(duì)于數(shù)字信息的請(qǐng)求,在存儲(chǔ)設(shè)備(SD)中定位包含所請(qǐng)求的數(shù)字信息的片段,提取與所述片段有關(guān)的訪問(wèn)條件和驗(yàn)證數(shù)據(jù)的集合,利用驗(yàn)證數(shù)據(jù)驗(yàn)證訪問(wèn)條件,確定內(nèi)存模塊(MM)中的用于容納所定位的片段的適當(dāng)?shù)膮^(qū)域,將所述定位的片段裝載到內(nèi)存模塊(MM)中的確定的區(qū)域中,使用所提取的訪問(wèn)條件配置內(nèi)存訪問(wèn)控制器模塊(RA)。因此,本發(fā)明使用內(nèi)存訪問(wèn)控制器(RA)作為在處理器(CP)和內(nèi)存模塊(MM)之間的防火墻,其與安全內(nèi)存管理模塊(SMM)耦合以便裝載內(nèi)存模塊(MM)和配置內(nèi)存訪問(wèn)控制器(RA)。由于安全內(nèi)存管理模塊(SMM)具有簡(jiǎn)單的體系結(jié)構(gòu),其具有簡(jiǎn)化的命令集(諸如裝載和存儲(chǔ)),因此這產(chǎn)生在系統(tǒng)中高級(jí)別的安全性,并且因此比在CPU負(fù)責(zé)配置內(nèi)存訪問(wèn)控制器模塊的情況下的所述CPU更不易于被攻擊。通過(guò)參考以下在結(jié)合附圖閱讀時(shí)的對(duì)優(yōu)選實(shí)施例的詳細(xì)描述,將更好理解本發(fā)明,在附圖中圖1示出數(shù)據(jù)處理系統(tǒng),其包括處理器(CP)、內(nèi)存模塊(MM)、存儲(chǔ)設(shè)備(SD)、內(nèi)存訪問(wèn)控制器模塊(RA)和安全內(nèi)存管理模塊(SMM)。具體實(shí)施例方式現(xiàn)代的數(shù)據(jù)處理系統(tǒng)一般是內(nèi)存密集型的(memoryintensive)。此事實(shí)與片上內(nèi)存會(huì)昂貴的事實(shí)結(jié)合導(dǎo)致在許多數(shù)據(jù)處理系統(tǒng)中必須依賴巨大數(shù)量的片外存儲(chǔ)器。在安全性較重要的情況下,因此需要能夠在片外或不可信的環(huán)境與片上或可信的環(huán)境之間安全地傳送數(shù)據(jù)。另外,由于現(xiàn)代的CPU(處理器)的顯著的復(fù)雜性,因此修改處理器以便能夠?qū)?現(xiàn)所要求的目標(biāo)同時(shí)維持所要求的高級(jí)別的安全性并不容易,就芯片上有效面積方面來(lái)說(shuō)也不便宜。因此,最好具有專用的硬件塊,使用有限數(shù)量的命令(諸如裝載和存儲(chǔ))來(lái)看管與內(nèi)存訪問(wèn)有關(guān)的任務(wù)。本發(fā)明描述了一種用于在數(shù)據(jù)處理系統(tǒng)內(nèi)提供用于將數(shù)字信息從存儲(chǔ)設(shè)備安全地裝載到內(nèi)存模塊中的裝置的硬件解決方案和方法。一般來(lái)說(shuō),存儲(chǔ)設(shè)備處于不可信的環(huán)境中,并且內(nèi)存模塊處于可信的環(huán)境中。本發(fā)明提供可信的環(huán)境和不可信的環(huán)境之間的接口,用于訪問(wèn)數(shù)字信息的請(qǐng)求必須通過(guò)該接口傳遞。本發(fā)明包括如下裝置,該裝置用于配置接口以使得對(duì)存儲(chǔ)在內(nèi)存模塊中的數(shù)據(jù)具有必要的訪問(wèn)權(quán)限的處理器將在它已經(jīng)被裝載時(shí)就真正地能夠訪問(wèn)內(nèi)存的所需的部分。存儲(chǔ)設(shè)備可以采取閃存、EPROM、EEPROM、ROM、硬盤、外部服務(wù)器或其它這種存儲(chǔ)裝置的形式。內(nèi)存模塊將通常采取隨機(jī)訪問(wèn)內(nèi)存(RAM)(即,易失性內(nèi)存)的形式。在本申請(qǐng)文件的上下文中,術(shù)語(yǔ)“數(shù)字信息”用來(lái)描述容易被裝載到內(nèi)存模塊中的數(shù)據(jù),諸如可執(zhí)行的代碼或者由可執(zhí)行的代碼產(chǎn)生或由可執(zhí)行的代碼使用的信息。當(dāng)前發(fā)明的安全內(nèi)存管理系統(tǒng)被集成到數(shù)據(jù)處理系統(tǒng)(圖1)中,該數(shù)據(jù)處理系統(tǒng)至少包括處理器(CP)、內(nèi)存模塊(MM)和存儲(chǔ)設(shè)備(SD),并且安全內(nèi)存管理系統(tǒng)包括連接在一側(cè)的處理器(CP)和內(nèi)存模塊(MM)與另一側(cè)的存儲(chǔ)設(shè)備(SD)之間的被稱為安全內(nèi)存管理模塊(SMM)的專用硬件,安全內(nèi)存管理模塊(SMM)的目的是管理處理器(CP)和內(nèi)存模塊(MM)之間的通信以及在存儲(chǔ)設(shè)備(SD)和內(nèi)存模塊(MM)之間傳送數(shù)字信息,即裝載和卸載內(nèi)存模塊(MM)。安全內(nèi)存管理系統(tǒng)還包括位于處理器(CP)和內(nèi)存模塊(MM)之間的被稱為內(nèi)存訪問(wèn)控制器模塊(RA)的專用硬件。內(nèi)存訪問(wèn)控制器模塊(RA)用作處理器(CP)和內(nèi)存模塊(MM)之間的防火墻。存儲(chǔ)在存儲(chǔ)設(shè)備(SD)中的數(shù)字信息具有與它有關(guān)的與該數(shù)字信息一起存儲(chǔ)的訪問(wèn)條件的集合。假定所述處理器(CP)具有適當(dāng)?shù)脑L問(wèn)權(quán)限,安全內(nèi)存管理模塊(SMM)配置內(nèi)存訪問(wèn)控制器(RA)以使得處理器(CP)能夠正確地訪問(wèn)已被裝載的內(nèi)存模塊(MM)的部分。因而,安全內(nèi)存管理模塊(SMM)與內(nèi)存訪問(wèn)控制器模塊(RA)—起用來(lái)確保內(nèi)存模塊(MM)保持安全。在本發(fā)明中,使用被稱為分段的約定,S卩,以片段的形式存儲(chǔ)數(shù)字信息。分段約定用于存儲(chǔ)在存儲(chǔ)設(shè)備中的數(shù)字信息以及用于存儲(chǔ)在內(nèi)存模塊中的數(shù)字信息。一個(gè)片段由幾個(gè)包括預(yù)定數(shù)量的字節(jié)的數(shù)字信息塊組成。例如,一個(gè)數(shù)字信息塊可以是32字節(jié)長(zhǎng)。每個(gè)片段具有與它有關(guān)的一組屬性,諸如片段標(biāo)識(shí)號(hào)、包含在片段中的數(shù)據(jù)的類型、片段的長(zhǎng)度、片段的地址、數(shù)字簽名、完整性數(shù)字(integrityfigure)(諸如例如片段的內(nèi)容的單向函數(shù)(function))、描述哪些進(jìn)程可以對(duì)片段進(jìn)行讀訪問(wèn)或?qū)懺L問(wèn)或運(yùn)行對(duì)片段的訪問(wèn)的條件權(quán)限的集合。這些屬性被記錄在附接于該片段并與該片段一起存儲(chǔ)的段頭中。圖1示出兩種不同類型的片段,即包括可執(zhí)行代碼的代碼片段(⑶)和包括可以由應(yīng)用程序使用或由應(yīng)用程序產(chǎn)生的數(shù)字信息的數(shù)據(jù)片段(DS)。當(dāng)前正由處理器(CP)使用的數(shù)字信息保持在內(nèi)存模塊(MM)中。當(dāng)處理器(CP)需要訪問(wèn)當(dāng)前不存在于內(nèi)存模塊(MM)中的數(shù)字信息時(shí),處理器(CP)向安全內(nèi)存管理模塊(SMM)發(fā)送對(duì)于所需的數(shù)字信息的請(qǐng)求。在接收到來(lái)自處理器(CP)的請(qǐng)求后,安全內(nèi)存管理模塊(SMM)定位包含所請(qǐng)求的數(shù)字信息的片段或多個(gè)片段,并從段頭提取幾段信息,包括訪問(wèn)條件、數(shù)字簽名和片段完整性數(shù)字。安全內(nèi)存管理模塊(SMM)通過(guò)根據(jù)預(yù)定的密碼技術(shù)檢驗(yàn)數(shù)字簽名來(lái)對(duì)片段進(jìn)行驗(yàn)證。安全內(nèi)存管理模塊(SMM)通過(guò)計(jì)算完整性數(shù)字(諸如片段的內(nèi)容的單向函數(shù))并將計(jì)算的完整性數(shù)字與從段頭提取的完整性數(shù)字進(jìn)行比較,從而對(duì)片段執(zhí)行完整性檢查。安全內(nèi)存管理模塊(SMM)確定內(nèi)存模塊(MM)中的能夠容納定位的片段的適當(dāng)區(qū)域并將所述片段裝載到內(nèi)存模塊(MM)中所確定的區(qū)域處,所述區(qū)域包括多個(gè)可尋址內(nèi)存模塊位置。在當(dāng)前發(fā)明的一個(gè)實(shí)施例中,可以在裝載內(nèi)存模塊(MM)時(shí)即時(shí)(on-the-fly)、逐塊或逐片段地進(jìn)行完整性檢查。在當(dāng)前發(fā)明的另一個(gè)實(shí)施例中,可以在被裝載之后在內(nèi)存模塊(MM)中進(jìn)行完整性檢查。安全內(nèi)存管理模塊(SMM)還將配置內(nèi)存訪問(wèn)控制器(RA),使得具有必要的訪問(wèn)權(quán)限的處理器將具有對(duì)裝載的數(shù)據(jù)的所要求的訪問(wèn)。一般來(lái)說(shuō),數(shù)據(jù)處理系統(tǒng)還將包括一些用于進(jìn)行內(nèi)存映射的裝置,由此處理器使用虛擬地址訪問(wèn)數(shù)字信息的塊或片段,而所述塊或片段存儲(chǔ)在內(nèi)存模塊(MM)中的與虛擬地址不同的某一物理地址處。段頭還可以包括片段的虛擬地址。當(dāng)數(shù)字信息被裝載到內(nèi)存模塊中的可用空間中時(shí),對(duì)映射進(jìn)行更新以便反映虛擬地址和裝載信息的物理地址之間的聯(lián)系。在當(dāng)前發(fā)明的一個(gè)實(shí)施例中,此內(nèi)存映射可以在內(nèi)存模塊(MM)的連續(xù)裝載之間變化。在本發(fā)明的另一個(gè)實(shí)施例中,存儲(chǔ)設(shè)備中的數(shù)字信息優(yōu)選地是加密的格式。在這種情況下,段頭還包括片段密鑰,利用該片段密鑰來(lái)對(duì)片段進(jìn)行解密。優(yōu)選地由安全內(nèi)存管理模塊(SMM)從段頭中提取片段密鑰,并且密鑰用于在裝載到內(nèi)存模塊(MM)中之前對(duì)數(shù)字信息進(jìn)行解密。內(nèi)存訪問(wèn)控制器(RA)包含片段描述符(SDES)。片段描述符保持與已被裝載到內(nèi)存模塊中的數(shù)字信息的每個(gè)片段對(duì)應(yīng)的段頭的部分。當(dāng)裝載每個(gè)片段時(shí),已經(jīng)從段頭提取并驗(yàn)證了對(duì)該片段的訪問(wèn)條件的安全內(nèi)存管理模塊更新片段描述符中的訪問(wèn)條件,以便在處理器具有適當(dāng)?shù)脑L問(wèn)權(quán)限的情況下使得所述處理器能夠訪問(wèn)內(nèi)存模塊中的相應(yīng)片段。直到更新片段描述符,處理器才能夠訪問(wèn)內(nèi)存模塊的正在裝載數(shù)字信息的部分。為了考慮在幾個(gè)不同的操作系統(tǒng)之上的兼容性,片段描述符可以具有“ELF”格式(可執(zhí)行連接格式),其是用于可執(zhí)行文件(executables)、目標(biāo)碼、庫(kù)等的標(biāo)準(zhǔn)文件格式。片段描述符指定處理器允許的訪問(wèn)類型。例如,某一范圍的地址可以僅僅在讀模式下是可訪問(wèn)的,而寫該區(qū)域的任何企圖將不被允許。在片段描述符中指示這類信息。類似地,在片段描述符中指示允許處理器寫或擦除的區(qū)域。片段描述符也可以指示保持可執(zhí)行的例程或功能的區(qū)域,使得處理器將需要具有執(zhí)行的權(quán)限以便能夠從被指示為保持可執(zhí)行文件的區(qū)域取得指令(或某些進(jìn)程id將具有運(yùn)行某些功能的權(quán)限)。除了數(shù)據(jù)和地址總線之外,由限定訪問(wèn)類型的控制線(讀/寫)控制從外圍設(shè)備或向外圍設(shè)備的傳送。其它線可以用于確定是否讀取可執(zhí)行的代碼(執(zhí)行模式)或處理器是否正在讀/寫內(nèi)存中的數(shù)據(jù)。附接于片段的訪問(wèn)條件的一個(gè)示例限定讀、寫或執(zhí)行模式中的條件。根據(jù)另一個(gè)實(shí)施例,與處理器的模式相關(guān)地限定訪問(wèn)條件。那么處理器是否將具有訪問(wèn)某段數(shù)據(jù)的權(quán)限取決于與該段數(shù)據(jù)所處的片段相關(guān)的附接的訪問(wèn)條件,并且取決于處理器在它請(qǐng)求該數(shù)據(jù)時(shí)正運(yùn)行的模式,例如處理器可以處于用戶模式或超級(jí)用戶模式。操作模式通常由與處理器有關(guān)的狀態(tài)或模式寄存器中的一比特指示??梢酝ㄟ^(guò)檢查有關(guān)寄存器的狀態(tài)來(lái)檢驗(yàn)處理器在任何特定的時(shí)間運(yùn)行的模式。此寄存器可以通過(guò)通信線與內(nèi)存訪問(wèn)控制器連接,以便允許后者確定處理器處于哪個(gè)模式。也可以通過(guò)經(jīng)由主總線傳送寄存器值來(lái)將此模式傳送到內(nèi)存訪問(wèn)控制器。根據(jù)處理器的在做出對(duì)一段數(shù)據(jù)的請(qǐng)求時(shí)的操作模式,可以根據(jù)處理器的操作模式和根據(jù)保持在片段描述符中的相關(guān)訪問(wèn)條件的該段數(shù)據(jù)所需的模式之間的比較結(jié)果來(lái)許可或拒絕訪問(wèn)。類似地,容易想到可以按照與處理器模式類似的方式來(lái)使用進(jìn)程標(biāo)識(shí)符(進(jìn)程id),以便指示哪些進(jìn)程具有訪問(wèn)特定的數(shù)據(jù)片段的權(quán)限。然后,內(nèi)存訪問(wèn)控制器的作用是接收處理器模式的值并將此模式和附接于該片段的訪問(wèn)條件的內(nèi)容相比較。在本發(fā)明的另一個(gè)實(shí)施例中,數(shù)據(jù)片段可以具有多組與它有關(guān)的訪問(wèn)條件,每一組與特定的處理器操作模式有關(guān)。當(dāng)處理器請(qǐng)求訪問(wèn)有多個(gè)訪問(wèn)條件的片段中的一段數(shù)據(jù)時(shí),內(nèi)存訪問(wèn)控制器(RA)將應(yīng)用與處理器正在運(yùn)行的模式有關(guān)的那組訪問(wèn)條件。處理器模式限定該組訪問(wèn)條件,并且處理器的類型(讀/寫/執(zhí)行)將用來(lái)限定對(duì)該段數(shù)據(jù)的訪問(wèn)。因此,附接于片段的訪問(wèn)條件限定處理器為了訪問(wèn)該片段需要具有的模式、包括請(qǐng)求的訪問(wèn)類型的狀態(tài)和處理器的操作模式。在本發(fā)明的另一個(gè)實(shí)施例中,在將數(shù)字信息存儲(chǔ)在內(nèi)存模塊中之前可以對(duì)其使用較輕的加密。根據(jù)第一實(shí)施例,加密密鑰將基于由安全內(nèi)存管理模塊產(chǎn)生的隨機(jī)數(shù)。此數(shù)可以在對(duì)系統(tǒng)進(jìn)行初始化時(shí)產(chǎn)生,使得每次開(kāi)啟系統(tǒng),就將產(chǎn)生新的密鑰。將在此密鑰下對(duì)片段中的數(shù)字信息進(jìn)行加密,并且將該密鑰放在與該片段對(duì)應(yīng)的片段描述符中??商鎿Q地,可以在每次上載片段時(shí)產(chǎn)生隨機(jī)密鑰。然后在處理器請(qǐng)求該信息時(shí),由內(nèi)存訪問(wèn)控制器對(duì)數(shù)字信息進(jìn)行解密。在當(dāng)前發(fā)明的又一個(gè)實(shí)施例中,加密密鑰可以是裝載數(shù)字信息的物理地址(內(nèi)存模塊中的實(shí)際地址)的函數(shù)(即,計(jì)算物理地址的單向函數(shù))。當(dāng)前發(fā)明不但確保裝載到內(nèi)存模塊中的數(shù)字信息的安全性,而且允許處理器在正在裝載內(nèi)存模塊的同時(shí)完成其它任務(wù),因?yàn)閷⑴c內(nèi)存模塊的裝載有關(guān)的所有功能都委托給安全內(nèi)存管理模塊。在現(xiàn)代處理器具有高級(jí)別的復(fù)雜性的情況下,本發(fā)明通過(guò)具有由內(nèi)存訪問(wèn)控制器(RA)和安全內(nèi)存管理模塊(SMM)的組合代表的專用硬件系統(tǒng)處理的所述內(nèi)存管理功能,而不是通過(guò)試圖將這些功能包括在已經(jīng)復(fù)雜的處理器中,來(lái)提供保證高級(jí)別的安全性的優(yōu)點(diǎn)。8權(quán)利要求1.一種數(shù)據(jù)處理系統(tǒng),包括至少一個(gè)存儲(chǔ)設(shè)備(SD)、至少一個(gè)內(nèi)存模塊(MM)和至少一個(gè)處理器(CP),所述存儲(chǔ)設(shè)備(SD)具有至少一個(gè)數(shù)據(jù)片段以及與所述片段有關(guān)的訪問(wèn)和驗(yàn)證數(shù)據(jù),其特征在于,所述數(shù)據(jù)處理系統(tǒng)包括連接在處理器(CP)和內(nèi)存模塊(MM)之間的內(nèi)存訪問(wèn)控制器(RA)以及與處理器(CP)、內(nèi)存模塊(MM)、存儲(chǔ)設(shè)備(SD)和內(nèi)存訪問(wèn)控制器(RA)連接的安全內(nèi)存管理模塊(SMM),所述安全內(nèi)存管理模塊(SMM)包括用于接收來(lái)自處理器(CP)的對(duì)于存儲(chǔ)在存儲(chǔ)設(shè)備(SD)中的片段的請(qǐng)求的裝置,所述片段具有與它有關(guān)的至少一個(gè)訪問(wèn)條件和至少一段驗(yàn)證數(shù)據(jù),所述安全內(nèi)存管理模塊(SMM)還包括用于將所請(qǐng)求的片段從存儲(chǔ)設(shè)備(SD)裝載到內(nèi)存模塊(MM)的裝置、用于使用驗(yàn)證數(shù)據(jù)來(lái)驗(yàn)證訪問(wèn)條件的裝置、用于使用訪問(wèn)條件來(lái)配置內(nèi)存訪問(wèn)控制器(RA)的裝置,所述內(nèi)存訪問(wèn)控制器(RA)具有用于檢測(cè)來(lái)自處理器(CP)的處理器狀態(tài)的裝置和用于將訪問(wèn)條件與處理器狀態(tài)進(jìn)行比較的裝置,內(nèi)存訪問(wèn)控制器(RA)具有用于根據(jù)所述比較的結(jié)果來(lái)允許或阻止對(duì)內(nèi)存模塊(MM)的訪問(wèn)的裝置。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中所述片段還包括完整性數(shù)字,并且所述安全內(nèi)存管理模塊(SMM)包括用于通過(guò)將所述完整性數(shù)字與基于該片段中的數(shù)據(jù)計(jì)算的完整性數(shù)字進(jìn)行比較來(lái)檢查所述片段的完整性的裝置。3.根據(jù)權(quán)利要求1或2中的任何一個(gè)所述的數(shù)據(jù)處理系統(tǒng),其中訪問(wèn)條件限定用于從所述內(nèi)存模塊(MM)讀或向所述內(nèi)存模塊(MM)中寫或用于執(zhí)行來(lái)自所述內(nèi)存模塊(MM)的指令的條件,其是由內(nèi)存訪問(wèn)控制器(RA)根據(jù)處理器(CP)請(qǐng)求的訪問(wèn)類型來(lái)確定的。4.根據(jù)權(quán)利要求1到3中的任何一個(gè)所述的數(shù)據(jù)處理系統(tǒng),其中訪問(wèn)條件包括多組訪問(wèn)數(shù)據(jù),處理器(CP)將處理器模式傳送給內(nèi)存訪問(wèn)控制器(RA),所述內(nèi)存訪問(wèn)控制器(RA)基于接收到的處理器模式選擇一組訪問(wèn)數(shù)據(jù)。5.一種用于將數(shù)字信息從存儲(chǔ)設(shè)備(SD)安全地裝載到數(shù)據(jù)處理系統(tǒng)中的內(nèi)存模塊(MM)中的方法,所述數(shù)據(jù)處理系統(tǒng)包括至少一個(gè)存儲(chǔ)設(shè)備(SD)、至少一個(gè)內(nèi)存模塊(MM)和至少一個(gè)處理器(CP),所述數(shù)據(jù)處理系統(tǒng)還包括連接在處理器(CP)和內(nèi)存模塊(MM)之間的內(nèi)存訪問(wèn)控制器模塊(RA)以及與處理器(CP)、內(nèi)存模塊(MM)、存儲(chǔ)設(shè)備(SD)和內(nèi)存訪問(wèn)控制器(RA)連接的安全內(nèi)存管理模塊(SMM),所述方法包括以下步驟由安全內(nèi)存管理模塊(SMM)接收來(lái)自處理器(CP)的對(duì)于數(shù)字信息的請(qǐng)求,在存儲(chǔ)設(shè)備(SD)中定位包含所請(qǐng)求的數(shù)字信息的片段,提取與所述片段有關(guān)的訪問(wèn)條件和驗(yàn)證數(shù)據(jù)的集合,利用驗(yàn)證數(shù)據(jù)驗(yàn)證訪問(wèn)條件,確定內(nèi)存模塊(MM)中的用于容納所定位的片段的適當(dāng)?shù)膮^(qū)域,將所述定位的片段裝載到內(nèi)存模塊(MM)中的確定的區(qū)域中,使用所提取的訪問(wèn)條件配置內(nèi)存訪問(wèn)控制器模塊(RA)。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,它還包括以下步驟提取與數(shù)字信息的所述片段有關(guān)的完整性數(shù)字,計(jì)算數(shù)字信息的所述片段的完整性數(shù)字,通過(guò)將提取的完整性數(shù)字與計(jì)算的完整性數(shù)字進(jìn)行比較,檢驗(yàn)數(shù)字信息的片段的完整性。7.根據(jù)權(quán)利要求5或6中的任何一個(gè)所述的方法,其特征在于,存儲(chǔ)設(shè)備(SD)處于不可信的環(huán)境中,并且內(nèi)存模塊(MM)處于可信的環(huán)境中。8.根據(jù)權(quán)利要求5到7中的任何一個(gè)所述的方法,其特征在于,使用映射方案,由此虛擬地址與物理地址有關(guān),所述虛擬地址是由處理器使用來(lái)指出一段數(shù)字信息的地址,并且所述物理地址是在內(nèi)存模塊(MM)中存儲(chǔ)所述數(shù)字信息的位置的地址。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,在裝載內(nèi)存模塊(MM)后,至少修改一次虛擬地址和物理地址之間的關(guān)系。10.根據(jù)權(quán)利要求5到9中的任何一個(gè)所述的方法,其特征在于,存儲(chǔ)設(shè)備中的數(shù)字信息的片段是加密的格式,并且它還包括以下步驟提取與數(shù)字信息的所述片段有關(guān)的片段密鑰,使用提取的片段密鑰對(duì)數(shù)字信息的所述片段進(jìn)行解密。11.根據(jù)權(quán)利要求5到10中的任何一個(gè)所述的方法,其特征在于,在裝載到內(nèi)存模塊(MM)中之前通過(guò)密鑰對(duì)數(shù)字信息的片段進(jìn)行加密。12.根據(jù)權(quán)利要求11所述的方法,其特征在于,加密密鑰基于在安全內(nèi)存管理模塊(SMM)中產(chǎn)生的隨機(jī)數(shù)。13.根據(jù)權(quán)利要求11所述的方法,其特征在于,加密密鑰基于物理地址。14.根據(jù)權(quán)利要求5到13中的任何一個(gè)所述的方法,其特征在于,內(nèi)存模塊(MM)是易失性內(nèi)存。全文摘要本發(fā)明描述了一種用于將數(shù)字信息從存儲(chǔ)設(shè)備安全地裝載到數(shù)據(jù)處理系統(tǒng)中的內(nèi)存模塊中的系統(tǒng)和方法,所述數(shù)據(jù)處理系統(tǒng)包括至少一個(gè)存儲(chǔ)設(shè)備、至少一個(gè)內(nèi)存模塊和至少一個(gè)處理器,所述數(shù)據(jù)處理系統(tǒng)還包括連接在處理器和內(nèi)存模塊之間的內(nèi)存訪問(wèn)控制器模塊以及與處理器、內(nèi)存模塊、存儲(chǔ)設(shè)備和內(nèi)存訪問(wèn)控制器連接的安全內(nèi)存管理模塊。將處理器發(fā)出的對(duì)于數(shù)據(jù)的請(qǐng)求傳輸?shù)桨踩珒?nèi)存管理模塊,安全內(nèi)存管理模塊將數(shù)據(jù)從存儲(chǔ)設(shè)備裝載到內(nèi)存模塊中,并且配置內(nèi)存訪問(wèn)控制器使得處理器將能夠訪問(wèn)數(shù)據(jù)。文檔編號(hào)G06F21/79GK102077204SQ200980123826公開(kāi)日2011年5月25日申請(qǐng)日期2009年6月23日優(yōu)先權(quán)日2008年6月24日發(fā)明者C·戈尼亞特,F·格里瑪?shù)?M·貝爾齊歐,P·夫徹斯申請(qǐng)人:納格拉影像股份有限公司