亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

訪問(wèn)控制與代碼調(diào)度的制作方法

文檔序號(hào):12287855閱讀:195來(lái)源:國(guó)知局
訪問(wèn)控制與代碼調(diào)度的制作方法與工藝

本技術(shù)涉及數(shù)據(jù)處理系統(tǒng)的領(lǐng)域。更具體地,本技術(shù)涉及通過(guò)使用不同特權(quán)模式連同控制將執(zhí)行的代碼的調(diào)度來(lái)進(jìn)行訪問(wèn)控制。



背景技術(shù):

提供具有不同特權(quán)模式的數(shù)據(jù)處理系統(tǒng)是公知的。這些不同特權(quán)模式能夠給予訪問(wèn)的不同權(quán)利。具有較高特權(quán)級(jí)別的特權(quán)模式通常將具有對(duì)與在較低特權(quán)模式中可用的資源相比更多資源的訪問(wèn)權(quán)(例如,能夠訪問(wèn)存儲(chǔ)器的更多區(qū)域、更多外部設(shè)備、更多功能等)。在一些系統(tǒng)中,可以提供具有操作的最高特權(quán)模式的管理程序(hypervisor)代碼,以便控制對(duì)提供給其他代碼(諸如,在系統(tǒng)上執(zhí)行的應(yīng)用程序代碼)的系統(tǒng)資源的訪問(wèn)??傮w來(lái)說(shuō),管理程序代碼的安全性因此在系統(tǒng)的安全性中是重要的。

在數(shù)據(jù)處理系統(tǒng)內(nèi)提供調(diào)度代碼也是公知的,其用來(lái)控制將執(zhí)行的代碼的不同部分的調(diào)度。



技術(shù)實(shí)現(xiàn)要素:

從一方面來(lái)看,本技術(shù)提供了一種處理數(shù)據(jù)的方法,所述方法使用具有包括第一特權(quán)模式和第二特權(quán)模式的多個(gè)特權(quán)模式的數(shù)據(jù)處理裝置,所述第一特權(quán)模式給予在所述第二特權(quán)模式中不可用的訪問(wèn)權(quán)利,所述方法包括以下步驟:

在所述第二特權(quán)模式中執(zhí)行應(yīng)用程序代碼,從而生成對(duì)管理程序代碼的功能調(diào)用以使用所述訪問(wèn)權(quán)利來(lái)執(zhí)行安全功能;

在所述功能調(diào)用的生成時(shí),在所述第一特權(quán)模式中執(zhí)行管理程序代碼以至少控制所述安全功能的執(zhí)行;以及

在所述第二特權(quán)模式中執(zhí)行調(diào)度代碼以通過(guò)所述數(shù)據(jù)處理裝置來(lái)控制所述應(yīng)用程序代碼和所述管理程序代碼的執(zhí)行的調(diào)度。

本技術(shù)認(rèn)識(shí)到,通過(guò)提供調(diào)度代碼,使得其在第二特權(quán)模式中執(zhí)行并且控制應(yīng)用程序代碼和管理程序代碼的執(zhí)行的調(diào)度,管理程序代碼能夠以促進(jìn)其安全操作的方式減少?gòu)?fù)雜度。一般來(lái)說(shuō),代碼塊越復(fù)雜,其將具有安全性弱點(diǎn)的可能性越高。在操作系統(tǒng)設(shè)計(jì)的領(lǐng)域內(nèi)通常的設(shè)計(jì)偏見(jiàn)會(huì)是提供調(diào)度代碼作為管理程序代碼的部分,使得運(yùn)行在第一特權(quán)模式(最高特權(quán)級(jí)別)中的管理程序代碼具有調(diào)度哪個(gè)代碼用于執(zhí)行的控制。實(shí)際上,這種在管理程序代碼內(nèi)增加了的復(fù)雜度可以降低其安全性。設(shè)置管理程序代碼保留在需要在第一特權(quán)模式中可用的訪問(wèn)權(quán)利的安全功能的控制中,可以維護(hù)安全性。管理程序代碼負(fù)責(zé)服務(wù)試圖執(zhí)行安全功能的功能調(diào)用。

應(yīng)當(dāng)理解的是,管理程序代碼可以自己執(zhí)行安全功能。在其他實(shí)施例中,管理程序代碼還可以將安全功能的執(zhí)行委托給其他代碼(即,委托代碼)并且臨時(shí)地授予該其他代碼執(zhí)行安全功能所需要的訪問(wèn)權(quán)利。

一些實(shí)施例的特征是對(duì)管理程序代碼的中斷會(huì)中斷安全功能的執(zhí)行??赡芡ǔF诖踩δ苊馐苓@樣的中斷,但是隨著調(diào)度代碼在管理程序代碼的外部的第二特權(quán)模式中執(zhí)行,這樣的安排將潛在地導(dǎo)致困難。

調(diào)度代碼可以被安排為在調(diào)度事件的發(fā)生時(shí)選擇將執(zhí)行的下一個(gè)代碼。這些調(diào)度事件可以采用各種不同形式??赡艿恼{(diào)度事件的示例是由調(diào)度代碼調(diào)度執(zhí)行的代碼的執(zhí)行的完成、計(jì)時(shí)器中斷和當(dāng)數(shù)據(jù)處理裝置開始執(zhí)行代碼時(shí)的喚醒事件(例如,在睡眠事件之后或者可能在重置之后)。

在第一特權(quán)模式中可用并且在第二特權(quán)模式中不可用的訪問(wèn)權(quán)利可以采取是各種不同形式。訪問(wèn)權(quán)利的示例是針對(duì)某些存儲(chǔ)器地址訪問(wèn)數(shù)據(jù)的能力(例如,寫入許可、讀取許可、執(zhí)行許可等)或者訪問(wèn)外部設(shè)備(例如,映射了存儲(chǔ)器的外部設(shè)備,諸如DMA引擎、UART等)的權(quán)利。

如先前提到的,管理程序代碼可以調(diào)用在第二特權(quán)模式中執(zhí)行的委托代碼作為服務(wù)功能調(diào)用的部分,而不是完全由自己服務(wù)功能調(diào)用。在一些實(shí)施例中用這樣的安排,委托代碼可以依賴于數(shù)據(jù)處理裝置的配置參數(shù)執(zhí)行處理操作并且管理程序代碼可以執(zhí)行與這些配置參數(shù)獨(dú)立的處理操作。這促進(jìn)在不同數(shù)據(jù)處理裝置環(huán)境中的管理程序代碼的再使用并且因此減少與管理程序代碼相關(guān)聯(lián)的測(cè)試和驗(yàn)證的開銷,該管理程序代碼由于其在保護(hù)系統(tǒng)安全性中的角色而需要滿足高安全性標(biāo)準(zhǔn)。

委托代碼可以執(zhí)行各種不同操作。這種操作的示例是用于從在數(shù)據(jù)處理裝置操作期間產(chǎn)生的錯(cuò)誤狀況中恢復(fù)的錯(cuò)誤恢復(fù)操作和儲(chǔ)存在該數(shù)據(jù)處理裝置的閃存內(nèi)的程序代碼的程序更新。在一些實(shí)施例中,委托代碼可以負(fù)責(zé)這些操作的全部或部分。

本技術(shù)的至少一些實(shí)施例對(duì)于在低開銷低功率數(shù)據(jù)處理系統(tǒng)中維護(hù)安全性是有用的,該系統(tǒng)始終使用物理地址而不支持虛擬編址(例如,由應(yīng)用程序代碼使用的虛擬編址)。物理編址的使用避免了需要提供和支持用于在虛擬地址和物理地址之間進(jìn)行翻譯的存儲(chǔ)器管理單元。這樣的存儲(chǔ)器管理單元通常表現(xiàn)出顯著的電路區(qū)域、功率和代碼復(fù)雜性開銷。

取代存儲(chǔ)器管理單元,本技術(shù)的一些實(shí)施例可以提供存儲(chǔ)器保護(hù)電路系統(tǒng),其配置為接收指定在存儲(chǔ)器地址空間內(nèi)的物理地址的存儲(chǔ)器訪問(wèn)請(qǐng)求,并且被配置為依賴于可編程存儲(chǔ)器保護(hù)配置數(shù)據(jù)和數(shù)據(jù)處理裝置當(dāng)前是在第一特權(quán)模式中還是第二特權(quán)模式中,分別地控制對(duì)在存儲(chǔ)器地址空間內(nèi)多個(gè)不同區(qū)域的訪問(wèn)。因此,存儲(chǔ)器保護(hù)單元能夠以區(qū)域的粒度分割存儲(chǔ)器地址空間(可以具有不同大小和/或可變大小),并且依賴于當(dāng)前特權(quán)模式控制對(duì)這些區(qū)域的訪問(wèn)。

在包括這種存儲(chǔ)器保護(hù)電路系統(tǒng)的系統(tǒng)的背景下,應(yīng)用程序代碼可以用于生成向管理程序代碼的請(qǐng)求以訪問(wèn)存儲(chǔ)器地址空間的給定區(qū)域,該給定區(qū)域在應(yīng)用程序代碼執(zhí)行的第二特權(quán)模式中不可訪問(wèn)。管理程序代碼可以臨時(shí)地改變可編程存儲(chǔ)器保護(hù)配置以許可在第二特權(quán)模式中執(zhí)行的應(yīng)用程序代碼訪問(wèn)給定區(qū)域。因此,管理程序代碼可以在來(lái)自應(yīng)用程序代碼的適當(dāng)請(qǐng)求的接收時(shí),臨時(shí)地更改訪問(wèn)給定區(qū)域的特權(quán)要求,并且接著在該被許可的訪問(wèn)之后恢復(fù)保護(hù)使得其他應(yīng)用程序代碼將不能不適當(dāng)?shù)卦L問(wèn)給定區(qū)域。

管理程序代碼可以用于在臨時(shí)地改變可編程存儲(chǔ)器保護(hù)配置以許可這樣的訪問(wèn)之前,檢查應(yīng)用程序代碼是否被許可訪問(wèn)給定區(qū)域。作為示例,管理程序代碼可以包含應(yīng)用程序代碼的哪些實(shí)例/塊臨時(shí)地被許可訪問(wèn)在存儲(chǔ)器地址空間內(nèi)的哪些區(qū)域的列表。如果接收到來(lái)自應(yīng)用程序代碼的訪問(wèn)存儲(chǔ)器區(qū)域的請(qǐng)求,而該存儲(chǔ)器區(qū)域沒(méi)有被包含在被許可訪問(wèn)該給定區(qū)域的存儲(chǔ)器區(qū)域的列表內(nèi),那么將不會(huì)提供訪問(wèn)許可。

在一些實(shí)施例中,管理程序代碼可以在存儲(chǔ)器地址空間內(nèi)生成棧存儲(chǔ)器。存儲(chǔ)器保護(hù)電路系統(tǒng)可以被安排為防止由在第一特權(quán)模式中執(zhí)行的管理程序代碼本身對(duì)多個(gè)區(qū)域的一個(gè)或更多個(gè)區(qū)域的訪問(wèn),使得如果棧存儲(chǔ)器的超載運(yùn)行(over-run)和欠載運(yùn)行(under-run)導(dǎo)致訪問(wèn)管理程序代碼不能訪問(wèn)的存儲(chǔ)器的區(qū)域的嘗試,那么將產(chǎn)生存儲(chǔ)器許可異常。這個(gè)特征協(xié)助防止管理程序代碼危害系統(tǒng)安全性的故障。

應(yīng)該理解的是,提供的特權(quán)模式的數(shù)量可以變化。在一些簡(jiǎn)單實(shí)施例中,可以僅提供第一特權(quán)模式和第二特權(quán)模式,但應(yīng)當(dāng)理解的是在其他實(shí)施例中,可以提供超過(guò)兩個(gè)特權(quán)模式。

在一些實(shí)施例中,終端和異常用于觸發(fā)管理程序代碼的執(zhí)行。管理程序代碼可以然后將這些中斷和異常的至少一些的處理委托給管理程序代碼本身以外的代碼。

從另一方面來(lái)看,本技術(shù)提供具有包括第一特權(quán)模式和第二特權(quán)模式的多個(gè)特權(quán)模式的數(shù)據(jù)處理裝置,所述第一特權(quán)模式給予在所述第二特權(quán)模式中不可用的訪問(wèn)權(quán)利,所述裝置包括:

執(zhí)行電路系統(tǒng),配置為:

在所述第二特權(quán)模式中執(zhí)行應(yīng)用程序代碼,從而生成對(duì)管理程序代碼的功能調(diào)用以使用所述訪問(wèn)權(quán)利來(lái)執(zhí)行安全功能;

在所述功能調(diào)用的生成時(shí),在所述第一特權(quán)模式中執(zhí)行管理程序代碼以至少控制所述安全功能的執(zhí)行;以及

在所述第二特權(quán)模式中執(zhí)行調(diào)度代碼以通過(guò)所述數(shù)據(jù)處理裝置來(lái)控制所述應(yīng)用程序代碼和所述管理程序代碼的執(zhí)行的調(diào)度。

從另一方面來(lái)看,本發(fā)明提供一種具有包括第一特權(quán)模式和第二特權(quán)模式的多個(gè)特權(quán)模式的數(shù)據(jù)處理裝置,所述第一特權(quán)模式給予在所述第二特權(quán)模式中不可用的訪問(wèn)權(quán)利,所述裝置包括:

用于執(zhí)行代碼的執(zhí)行部件,所述執(zhí)行部件配置為:

在所述第二特權(quán)模式中執(zhí)行應(yīng)用程序代碼,從而生成對(duì)管理程序代碼的功能調(diào)用以使用所述訪問(wèn)權(quán)利來(lái)執(zhí)行安全功能;

在所述功能調(diào)用的生成時(shí),在所述第一特權(quán)模式中執(zhí)行管理程序代碼以至少控制所述安全功能的執(zhí)行;以及

在所述第二特權(quán)模式中執(zhí)行調(diào)度代碼以通過(guò)所述數(shù)據(jù)處理裝置來(lái)控制所述應(yīng)用程序代碼和所述管理程序代碼的執(zhí)行的調(diào)度。

附圖說(shuō)明

現(xiàn)在將僅以示例的方式,參考附圖來(lái)描述實(shí)施例,在附圖中:

圖1示意性地圖示出在不同特權(quán)模式內(nèi)執(zhí)行的代碼的不同塊;

圖2示意性地圖示出包括用于在純物理編址的系統(tǒng)內(nèi)處理存儲(chǔ)器許可的存儲(chǔ)器保護(hù)電路系統(tǒng)的數(shù)據(jù)處理裝置硬件;

圖3是示意性地圖示出管理程序代碼、應(yīng)用程序代碼、調(diào)度代碼和委托代碼的交互的流程圖;以及

圖4是示意性地圖示出存儲(chǔ)器保護(hù)電路系統(tǒng)臨時(shí)地改變?cè)L問(wèn)在存儲(chǔ)器地址空間內(nèi)存儲(chǔ)器的給定區(qū)域所需要的特權(quán)級(jí)別的動(dòng)作的圖表。

具體實(shí)施方式

圖1示意性地圖示出在數(shù)據(jù)處理裝置內(nèi)執(zhí)行的代碼的不同塊。具體地,代碼的塊包括:管理程序代碼2,應(yīng)用程序代碼4、6的多個(gè)實(shí)例,調(diào)度代碼8和委托代碼10。管理程序代碼2在第一特權(quán)模式中執(zhí)行。應(yīng)用程序代碼4、6,調(diào)度代碼8和委托代碼10全部在第二特權(quán)模式中執(zhí)行。

調(diào)度代碼8負(fù)責(zé)調(diào)度應(yīng)用程序代碼4、6和管理程序代碼2的執(zhí)行。調(diào)度代碼8在調(diào)度事件的發(fā)生時(shí)執(zhí)行這樣的調(diào)度操作。調(diào)度事件可以包括已經(jīng)由調(diào)度代碼8調(diào)度用于執(zhí)行的代碼的執(zhí)行完成、計(jì)時(shí)器中斷的發(fā)生和/或當(dāng)數(shù)據(jù)處理裝置開始執(zhí)行代碼時(shí)的喚醒事件。數(shù)據(jù)處理裝置可以被置于睡眠模式并且喚醒事件可以由例如計(jì)時(shí)器、由用戶按壓的按鈕、從其他地方接收的網(wǎng)絡(luò)分組等觸發(fā)而發(fā)生。

管理程序代碼2相對(duì)于在其上執(zhí)行該管理程序代碼2的數(shù)據(jù)處理裝置是配置參數(shù)獨(dú)立的。委托代碼10依賴于其上執(zhí)行該委托代碼10的裝置的配置參數(shù)。這樣,同樣的管理程序代碼2可以運(yùn)行在若干硬件平臺(tái)上并且在委托代碼10內(nèi)硬件平臺(tái)特定功能被隔離。

管理程序代碼2包括安全功能代碼12,其運(yùn)行在第一特權(quán)模式中并執(zhí)行安全功能,諸如使用密碼數(shù)據(jù)(例如,密鑰)的密碼功能。應(yīng)用程序代碼4、6向管理程序代碼2做出功能調(diào)用以便管理程序代碼代表應(yīng)用程序代碼4、6執(zhí)行安全功能。管理程序代碼可以適當(dāng)?shù)貙⑦@個(gè)安全功能的一些或者全部委托給委托代碼10。當(dāng)安全功能完成后,安全功能的結(jié)果返回到調(diào)用應(yīng)用程序代碼4、6。這樣,管理程序代碼2能夠保護(hù)諸如密碼數(shù)據(jù)的安全數(shù)據(jù),并且僅將諸如通過(guò)/失敗的結(jié)果返回到應(yīng)用程序代碼4、6。

由管理程序代碼2執(zhí)行的安全功能可以包括將對(duì)系統(tǒng)的存儲(chǔ)器地址空間的給定區(qū)域的訪問(wèn)授權(quán)給應(yīng)用程序代碼4、6的調(diào)用塊的功能。管理程序代碼2可以首先確認(rèn)接收的請(qǐng)求的有效性,并然后臨時(shí)地授權(quán)或者不授權(quán)對(duì)存儲(chǔ)器的區(qū)域的訪問(wèn)。可以通過(guò)用于臨時(shí)地修改與相關(guān)存儲(chǔ)器的區(qū)域關(guān)聯(lián)的特權(quán)級(jí)別的管理程序代碼2來(lái)授權(quán)訪問(wèn),使得在第二特權(quán)模式中執(zhí)行的代碼可以臨時(shí)地訪問(wèn)那個(gè)區(qū)域,然而正常的配置是僅在第一特權(quán)模式中執(zhí)行的代碼能夠訪問(wèn)那個(gè)區(qū)域。管理程序代碼2因此在安全性中做出臨時(shí)的“洞”(“hole”)以許可應(yīng)用程序代碼4、6的給定塊訪問(wèn)那個(gè)存儲(chǔ)器區(qū)域,并且當(dāng)那個(gè)應(yīng)用程序代碼的執(zhí)行已經(jīng)完成時(shí),如由調(diào)度代碼8或應(yīng)用程序/委托代碼4、6、10通知的,管理程序代碼2可以蓋住那個(gè)“洞”并且將特權(quán)保護(hù)配置返回到其原始形式。

如之前所提及的,委托代碼可以被委托以執(zhí)行依賴于所涉及的硬件平臺(tái)的配置參數(shù)的功能??梢杂晌写a執(zhí)行的功能的示例包括用于從在數(shù)據(jù)處理裝置的操作中產(chǎn)生的狀況中恢復(fù)的錯(cuò)誤恢復(fù)操作。另一個(gè)示例是儲(chǔ)存在數(shù)據(jù)處理裝置的閃存中的程序代碼的程序更新。

管理程序代碼2可以包含當(dāng)接收到來(lái)自應(yīng)用程序代碼4、6的請(qǐng)求時(shí),這樣的應(yīng)用程序代碼4、6的哪些塊被許可訪問(wèn)存儲(chǔ)器地址空間的哪些區(qū)域的列表。如果從表明為具有這種許可的應(yīng)用程序代碼的塊接收到訪問(wèn)給定存儲(chǔ)器區(qū)域的請(qǐng)求,那么管理程序代碼2將通過(guò)更改存儲(chǔ)器許可配置來(lái)臨時(shí)地將訪問(wèn)許可給調(diào)用應(yīng)用程序代碼4、6,使得在第二特權(quán)模式執(zhí)行的代碼臨時(shí)地被給予對(duì)存儲(chǔ)器地址空間的給定區(qū)域的訪問(wèn)權(quán)利。

管理程序代碼2在存儲(chǔ)器地址空間內(nèi)可以自己生成棧存儲(chǔ)器。管理程序代碼2的故障或?qū)芾沓绦虼a2的攻擊可以與這樣的棧存儲(chǔ)器的超載運(yùn)行或欠載運(yùn)行相關(guān)聯(lián)??梢圆贾么鎯?chǔ)器許可使得這種類型的超載運(yùn)行或欠載運(yùn)行將觸發(fā)存儲(chǔ)器許可異常并且因此可以給予管理程序代碼2對(duì)抗其自身故障的一些保護(hù)。

在圖1中圖示的示例中,僅為系統(tǒng)提供兩種特權(quán)模式,即第一特權(quán)模式和第二特權(quán)模式(當(dāng)在第一特權(quán)模式中執(zhí)行時(shí)比當(dāng)在第二特權(quán)模式執(zhí)行時(shí)有更多訪問(wèn)權(quán)利可用)。這樣簡(jiǎn)單的布置促進(jìn)安全性的嚴(yán)格控制。然而,在其他實(shí)施例中,可以提供超過(guò)兩種特權(quán)模式,但是這些特權(quán)模式將包括第一特權(quán)模式和第二特權(quán)模式兩者。

在圖1中圖示的示例中,可以看出,中斷和異常首先被路由到在第一特權(quán)模式中運(yùn)行的管理程序代碼2。這樣的中斷和異??梢匀缓筮m當(dāng)?shù)乇晃?轉(zhuǎn)發(fā))到在第二特權(quán)模式中運(yùn)行的應(yīng)用程序代碼4、6或委托代碼10(處理代碼)。實(shí)際中,僅中斷/異常的相對(duì)小的子集將是安全性關(guān)鍵的并且保持于管理程序代碼2的控制下(例如,系統(tǒng)重置),而其他中斷和異常以使得管理程序代碼2更為簡(jiǎn)單并相應(yīng)地更加安全的方式,在管理程序代碼2的外部被處理。

圖2是示意性地圖示出用于根據(jù)本技術(shù)的至少一些示例運(yùn)行的數(shù)據(jù)處理裝置14的硬件實(shí)施例的圖。這個(gè)數(shù)據(jù)處理裝置14包括用于執(zhí)行程序指令(包括應(yīng)用程序代碼4、6,調(diào)度代碼8,管理程序2和委托代碼10)的處理器核心16(其可以包括用于在處理運(yùn)行期間保持操作數(shù)的值的通用寄存器)、存儲(chǔ)器保護(hù)電路系統(tǒng)18(例如,由英國(guó)劍橋的ARM有限公司設(shè)計(jì)的類型的存儲(chǔ)器保護(hù)單元(MPU))、顯示器單元20、輸入/輸出電路系統(tǒng)22、網(wǎng)絡(luò)接口電路系統(tǒng)24和存儲(chǔ)器電路系統(tǒng)26(包括易失存儲(chǔ)器28和諸如閃存的非易失儲(chǔ)存器30兩者)。在圖2中圖示出的數(shù)據(jù)處理裝置14始終使用物理地址以指明在存儲(chǔ)器26的存儲(chǔ)器地址空間內(nèi)的存儲(chǔ)器儲(chǔ)存位置。因此,處理器核心16生成物理地址并且在處理器核心16上執(zhí)行的程序代碼2、4、6、8、10被安排以生成物理地址。由處理器核心16生成的存儲(chǔ)器訪問(wèn)請(qǐng)求被傳遞到實(shí)施存儲(chǔ)器保護(hù)的存儲(chǔ)器保護(hù)電路系統(tǒng)18。存儲(chǔ)器保護(hù)單元18響應(yīng)于可編程(由處理器核心16)存儲(chǔ)器保護(hù)配置數(shù)據(jù)32。這個(gè)配置數(shù)據(jù)32能夠指定全部存儲(chǔ)器地址空間的不同區(qū)域并且相對(duì)于這些不同區(qū)域關(guān)聯(lián)要被提供用于不同特權(quán)模式的不同訪問(wèn)許可。區(qū)域本身的大小和設(shè)置能夠變化,例如,他們可以重疊。

存儲(chǔ)器保護(hù)電路系統(tǒng)18可以被布置為提供訪問(wèn)控制,使得存儲(chǔ)器地址空間的不同區(qū)域或者僅當(dāng)在第一特權(quán)模式中運(yùn)行時(shí)可訪問(wèn)或者當(dāng)在第一特權(quán)模式或第二特權(quán)模式任一個(gè)中運(yùn)行時(shí)可訪問(wèn)??梢栽谝恍?shí)施例中得到支持的具體的更詳細(xì)的訪問(wèn)許可包括分別地涉及讀取訪問(wèn)、寫入訪問(wèn)、執(zhí)行訪問(wèn)等的許可。還可以提供更多特權(quán)模式,使得能夠以更差異化的方式基于特權(quán)模式管理許可。

存儲(chǔ)器保護(hù)電路系統(tǒng)18從處理器核心16接收訪問(wèn)請(qǐng)求。存儲(chǔ)器保護(hù)電路系統(tǒng)18使用配置數(shù)據(jù)32以識(shí)別訪問(wèn)許可要求,該訪問(wèn)許可要求與在由接收到的訪問(wèn)請(qǐng)求指定的(物理的)存儲(chǔ)器地址內(nèi)的區(qū)域相關(guān)聯(lián)。存儲(chǔ)器保護(hù)電路系統(tǒng)18然后比較這些訪問(wèn)許可要求與數(shù)據(jù)處理裝置14的當(dāng)前運(yùn)行狀態(tài),以確定是否授權(quán)或者拒絕該訪問(wèn)請(qǐng)求。如果請(qǐng)求被拒絕,那么存儲(chǔ)器許可異常被生成并可以由合適的異常處理器服務(wù)。如果滿足存儲(chǔ)器許可要求,那么將訪問(wèn)請(qǐng)求從存儲(chǔ)器保護(hù)電路系統(tǒng)18傳遞到存儲(chǔ)器地址空間的相關(guān)部分,諸如在存儲(chǔ)器26內(nèi)的位置或者映射了外部設(shè)備(諸如,顯示器20、輸入/輸出電路系統(tǒng)22或者網(wǎng)絡(luò)接口24之一)的存儲(chǔ)器。

圖3示意性地圖示出管理程序代碼2、應(yīng)用程序代碼4、6、調(diào)度代碼8和委托代碼10之間的交互。調(diào)度代碼8負(fù)責(zé)調(diào)度接下來(lái)將執(zhí)行哪個(gè)代碼。在如之前所討論的合適的調(diào)度事件發(fā)生時(shí),調(diào)度代碼8將觸發(fā)應(yīng)用程序代碼的給定塊的執(zhí)行,例如,在圖1中圖示出的應(yīng)用程序代碼4、6的塊中的一個(gè)塊。當(dāng)應(yīng)用程序代碼4、6已經(jīng)完成執(zhí)行時(shí),其然后將應(yīng)用程序代碼完成通知(返回)發(fā)回到調(diào)度代碼8,調(diào)度代碼8將然后調(diào)度將執(zhí)行的下一個(gè)代碼。如在圖3中所圖示的,水平虛線示出無(wú)特權(quán)(第二)模式執(zhí)行和特權(quán)(第一)模式執(zhí)行之間的分隔。管理程序代碼2在特權(quán)模式中執(zhí)行。應(yīng)用程序代碼4、6、調(diào)度代碼8和委托代碼10全部在無(wú)特權(quán)模式中運(yùn)行。如果應(yīng)用程序代碼4、6需要訪問(wèn)資源(例如,訪問(wèn)存儲(chǔ)器地址空間的給定區(qū)域),那么其將向管理程序代碼2做出安全功能調(diào)用以被授權(quán)該訪問(wèn)。如果管理程序代碼2確定應(yīng)用程序代碼4、6被合適地授權(quán),并且相應(yīng)地訪問(wèn)請(qǐng)求是有效的,那么其將臨時(shí)地改變存儲(chǔ)器保護(hù)電路系統(tǒng)18的配置數(shù)據(jù)32以許可由調(diào)用的應(yīng)用程序代碼4、6從第二特權(quán)模式(無(wú)特權(quán)級(jí)別)做出的對(duì)存儲(chǔ)器的給定區(qū)域的訪問(wèn)。在這種情況下,向管理程序代碼2做出的安全功能調(diào)用的結(jié)果會(huì)是對(duì)許可已被授權(quán)的指示。

安全功能調(diào)用的其他示例可以是驗(yàn)證數(shù)據(jù)簽名、密鑰等的請(qǐng)求。在這種情況中,管理程序代碼2可以執(zhí)行被請(qǐng)求的安全功能并且返回諸如通過(guò)/失敗的結(jié)果,或者當(dāng)安全功能調(diào)用是解密該數(shù)據(jù)塊的請(qǐng)求時(shí)返回諸如解密的數(shù)據(jù)塊的結(jié)果。管理程序代碼2可以向委托代碼10做出委托功能調(diào)用以執(zhí)行被請(qǐng)求的安全功能的部分或全部。委托代碼10將把安全功能的結(jié)果返回到管理程序代碼2,其隨后轉(zhuǎn)而將安全功能調(diào)用的結(jié)果傳遞回應(yīng)用程序代碼4、6。

如在圖3中所圖示的,調(diào)度代碼8還可以直接觸發(fā)管理程序代碼的執(zhí)行。調(diào)度代碼8因此負(fù)責(zé)調(diào)度應(yīng)用程序代碼4、6和管理程序代碼2兩者的執(zhí)行。調(diào)度代碼8在第二特權(quán)模式(無(wú)特權(quán))中執(zhí)行。

如圖示的,中斷和異常,諸如計(jì)時(shí)器中斷和喚醒事件,被路由進(jìn)入管理程序代碼2。通過(guò)首先將他們重定向到調(diào)度代碼8,然后調(diào)度代碼8響應(yīng)于計(jì)時(shí)器中斷或喚醒事件而調(diào)度合適的應(yīng)用程序代碼4、6來(lái)執(zhí)行,這些中斷和異??梢员晃薪o管理程序代碼2以外的代碼。

所描述的實(shí)施例運(yùn)行以將由管理程序代碼2接收的特權(quán)異常/中斷轉(zhuǎn)發(fā)到在第二特權(quán)模式中運(yùn)行的處理代碼。這允許系統(tǒng)支持如可能是支持用戶接口所需要的對(duì)異常/中斷的實(shí)時(shí)響應(yīng),例如,通過(guò)許可無(wú)特權(quán)代碼處理這樣的異常/中斷以中斷可能正在運(yùn)行長(zhǎng)期密碼操作(例如,解密數(shù)據(jù)流)的特權(quán)代碼。管理程序代碼2更多地為保護(hù)秘密(例如,數(shù)據(jù)/密鑰、時(shí)間)而運(yùn)行,并且更少地為保護(hù)代碼而運(yùn)行。從這一方面而言,管理程序2的中斷不允許對(duì)這些秘密的非期待的訪問(wèn)。

在這個(gè)場(chǎng)景中一個(gè)顯著的安全性威脅是中斷特權(quán)操作的代碼將得到當(dāng)前寄存器內(nèi)容的快照。在觸發(fā)中斷時(shí)使用足夠密集的計(jì)時(shí)器可以使得可以從這些寄存器樣本中重建密碼秘密,并且因此泄露管理程序(密碼盒)秘密??梢栽诠芾沓绦虻姆祷貢r(shí)恢復(fù)寄存器值。

考慮到該問(wèn)題,可以增加泄露應(yīng)對(duì)措施:

-當(dāng)將控制轉(zhuǎn)移到第二特權(quán)模式代碼時(shí)(作為硬件事件/異常的結(jié)果),在調(diào)用無(wú)特權(quán)代碼之前,通過(guò)保存所有活躍的寄存器并消除或用隨機(jī)值覆寫它們而清除處理器的通用寄存器。

-確保針對(duì)由管理程序2執(zhí)行的密碼操作的固定的時(shí)間界限

-通過(guò)記錄從密碼操作前到完成密碼操作的時(shí)間,使得來(lái)自引起密碼操作的對(duì)管理程序的功能調(diào)用的返回延遲至直到以下的一個(gè)或多個(gè)事件發(fā)生:

a)在循環(huán)中等待/旋轉(zhuǎn)直到最小時(shí)間經(jīng)過(guò)

b)觸發(fā)CPU睡眠直到最小時(shí)間經(jīng)過(guò)

c)等待直到達(dá)到粗時(shí)間段的倍數(shù)(例如可以確保100ms塊-操作將總是使用100ms,200ms或其他倍數(shù)-這降低針對(duì)操作所測(cè)量的時(shí)間的密碼分析的質(zhì)量)

d)等待隨機(jī)時(shí)間

以上應(yīng)對(duì)措施幫助防止無(wú)特權(quán)代碼通過(guò)探測(cè)特權(quán)加密API并且測(cè)量執(zhí)行時(shí)間而泄露秘密。

可以分開使用或以不同組合使用的其他可能應(yīng)對(duì)措施包括:

a)確保CPU性能計(jì)數(shù)器或者由MPU保護(hù)或者,如果不可能的話,那么由偽操作(dummy operation)調(diào)整。

示例:

如果無(wú)特權(quán)軟件能夠讀取指令計(jì)數(shù)器:

應(yīng)對(duì)措施可以是在返回對(duì)無(wú)特權(quán)代碼的控制之前在循環(huán)中旋轉(zhuǎn),以將指令計(jì)數(shù)器增加到固定邊界(類似時(shí)間方法)。

b)在管理程序中具有專用混淆模式,其中應(yīng)用程序代碼能夠從管理程序請(qǐng)求針對(duì)選定間隔的定時(shí)/功率消耗混淆作為服務(wù)。

示例:

-管理程序?qū)⒃O(shè)置計(jì)時(shí)器以使其中執(zhí)行虛擬操作的隨機(jī)化間隔密集,

-對(duì)外部攻擊者混淆無(wú)特權(quán)代碼的定時(shí)和功率消耗,

-由無(wú)特權(quán)代碼訪問(wèn)ADC轉(zhuǎn)換器(或者其他輸入/輸出設(shè)備)會(huì)導(dǎo)致對(duì)特權(quán)側(cè)的側(cè)信道攻擊,導(dǎo)致秘密泄露。管理程序2可以使用隨機(jī)化硬件計(jì)時(shí)器來(lái)執(zhí)行偽操作以混淆其操作。

圖4示例性地圖示出通過(guò)存儲(chǔ)器保護(hù)電路系統(tǒng)18的訪問(wèn)許可控制的示例。在圖示的示例中,存儲(chǔ)器地址空間被分割為多個(gè)物理存儲(chǔ)器地址空間,區(qū)域0、1、2、3、4。由存儲(chǔ)器保護(hù)單元18持有的配置數(shù)據(jù)32(并且由處理器核心16編程的)對(duì)于這些區(qū)域的每一個(gè)定義當(dāng)數(shù)據(jù)處理裝置14在第一特權(quán)模式中時(shí)是否限制訪問(wèn),或者當(dāng)數(shù)據(jù)處理裝置14在第二特權(quán)模式中執(zhí)行時(shí)是否還許可訪問(wèn)。在圖1中圖示的示例中,區(qū)域1在第二特權(quán)模式中是永久地可訪問(wèn)的。在圖4圖示的瞬間,區(qū)域0、區(qū)域2和區(qū)域4僅在第一特權(quán)模式中可訪問(wèn)。區(qū)域3已經(jīng)臨時(shí)地被重配置為在第二特權(quán)模式中可訪問(wèn)。這許可將由當(dāng)數(shù)據(jù)處理裝置14在第二特權(quán)模式中時(shí)執(zhí)行的程序指令做出對(duì)那個(gè)區(qū)域(物理存儲(chǔ)器地址的范圍)內(nèi)數(shù)據(jù)的臨時(shí)訪問(wèn)。

在一些實(shí)施例中,應(yīng)用程序代碼4、6的不同塊可以存儲(chǔ)在物理存儲(chǔ)器地址空間的不同區(qū)域內(nèi)。管理程序代碼2可以被安排為臨時(shí)地許可第二特權(quán)模式訪問(wèn)這些包含與應(yīng)用程序代碼4、6的不同塊關(guān)聯(lián)的不同區(qū)域。因此,在管理程序代碼2的控制下,在給定瞬間執(zhí)行許可(執(zhí)行需要相關(guān)程序指令的讀取和相應(yīng)地需要存儲(chǔ)器訪問(wèn))被限制到應(yīng)用程序代碼4、6的給定塊。如果做出不合適地將執(zhí)行轉(zhuǎn)移到不組成已經(jīng)由管理程序代碼2給予執(zhí)行許可的代碼塊的部分的嘗試,那么這樣的代碼將不會(huì)執(zhí)行,因?yàn)橄到y(tǒng)將在第二特權(quán)模式并且包含未授權(quán)代碼的區(qū)域?qū)⒉粫?huì)被配置成在系統(tǒng)處于第二特權(quán)模式中時(shí)可訪問(wèn)。相應(yīng)地,管理程序代碼2打開存儲(chǔ)器地址空間的區(qū)域,因?yàn)檫@些區(qū)域與應(yīng)用程序代碼4、6的不同塊相關(guān)聯(lián),所以在這些區(qū)域中的代碼被執(zhí)行。管理程序代碼2還可以臨時(shí)地打開包含將由已經(jīng)被許可執(zhí)行的應(yīng)用程序代碼4、6所操縱的數(shù)據(jù)的物理存儲(chǔ)器地址空間內(nèi)的區(qū)域。當(dāng)調(diào)度代碼通知管理程序代碼2應(yīng)用程序代碼的給定塊已經(jīng)完成其執(zhí)行時(shí),可以反轉(zhuǎn)在配置數(shù)據(jù)32中的臨時(shí)改變,使得用于應(yīng)用程序代碼4、6的那個(gè)塊的執(zhí)行許可被移除。在管理程序代碼2的控制下,通過(guò)在配置數(shù)據(jù)32中的進(jìn)一步改變,應(yīng)用程序代碼4、6的另一個(gè)塊或相同塊能夠然后被授權(quán)執(zhí)行。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1