欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

具有敏感數(shù)據(jù)訪問模式的處理裝置的制作方法

文檔序號:11520153閱讀:315來源:國知局
具有敏感數(shù)據(jù)訪問模式的處理裝置的制造方法

本公開內(nèi)容涉及具有特權(quán)操作模式的計算系統(tǒng)的領(lǐng)域,并且具體地涉及具有敏感數(shù)據(jù)訪問模式的處理裝置。



背景技術(shù):

已知向計算系統(tǒng)提供具有不同等級的特權(quán)的操作模式。例如,計算系統(tǒng)可以能夠在管理員模式操作,在管理員模式允許所有或大多數(shù)操作,包括與操作系統(tǒng)相關(guān)的某些核心程序文件的修改。其還可以能夠在用戶模式操作,在用戶模式阻止某些操作,例如對那些核心程序文件的訪問。

一般地,當(dāng)計算系統(tǒng)以高級特權(quán)操作時運行的應(yīng)用應(yīng)當(dāng)已經(jīng)經(jīng)受嚴(yán)格的審核過程以確保它們?nèi)缙谕牟僮鞑⑶也粫惺共僮飨到y(tǒng)不穩(wěn)定的風(fēng)險。另外,代碼必須來自可靠源。實際上,必須不能夠使這樣的應(yīng)用損壞與操作系統(tǒng)的校正功能相關(guān)的某些文件或允許數(shù)據(jù)被欺詐性地訪問。

在一些情況下,將期望尚未經(jīng)受嚴(yán)格的審核過程的某些軟件應(yīng)用能夠從特權(quán)操作模式運行。然而,在允許這樣的運行而不降低計算系統(tǒng)的安全性上存在技術(shù)問題。另外,在本領(lǐng)域中存在對提供針對諸如加密密鑰的敏感數(shù)據(jù)的增加的安全性的計算系統(tǒng)的需要。



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

本公開內(nèi)容的實施例的目標(biāo)在于至少部分地解決現(xiàn)有技術(shù)中的一個或多個細(xì)節(jié)。

根據(jù)一個方面,提供了一種保護(hù)敏感數(shù)據(jù)的方法,其包括:由處理裝置進(jìn)入敏感數(shù)據(jù)訪問模式,在敏感數(shù)據(jù)訪問模式,敏感數(shù)據(jù)是可訪問的;由在敏感數(shù)據(jù)訪問模式運行的程序限制針對非安全函數(shù)的一個或多個可訪問地址范圍,并且從敏感數(shù)據(jù)訪問模式調(diào)用非安全函數(shù);并且由處理裝置進(jìn)入另一操作模式以運行非安全函數(shù),在運行非安全函數(shù)期間處理裝置具有對僅僅一個或多個可訪問地址范圍的訪問。

根據(jù)一個實施例,該方法還包括由在敏感數(shù)據(jù)訪問模式運行的程序?qū)⒃诜前踩瘮?shù)的運行期間要處理的輸入數(shù)據(jù)存儲在一個或多個可訪問地址范圍中。

根據(jù)一個實施例,限制針對非安全函數(shù)的一個或多個可訪問地址范圍包括在存儲器保護(hù)電路的一個或多個配置寄存器中配置一個或多個可訪問地址范圍。

根據(jù)一個實施例,該方法還包括:由存儲器保護(hù)電路接收在非安全函數(shù)的運行期間要訪問的地址;將要訪問的地址與一個或多個可訪問地址范圍進(jìn)行比較;并且只有當(dāng)要訪問的地址處于一個或多個可訪問地址范圍內(nèi)時觸發(fā)存儲器訪問。

根據(jù)一個實施例,該方法還包括在寄存器中定義指向在一個或多個可訪問地址范圍中存儲的并且要由非安全函數(shù)使用的調(diào)用參數(shù)的堆棧指針。

根據(jù)一個實施例,該方法還包括通過從指令代碼存儲器擷取指令代碼來在另一操作模式運行非安全函數(shù)。

根據(jù)一個實施例,在指令代碼存儲器中存儲的指令代碼被加密,該方法還包括對指令代碼進(jìn)行解密。

根據(jù)一個實施例,指令代碼由解密電路使用與另一操作模式相關(guān)聯(lián)的第一密鑰來解密,并且指令代碼存儲器還存儲與敏感操作模式相關(guān)聯(lián)的并且能夠使用與第一密鑰不同的第二密鑰來解密的另一指令代碼,其中,解密電路被配置為僅僅在處理裝置處于敏感數(shù)據(jù)訪問模式時使第二密鑰可訪問。

根據(jù)一個實施例,該方法還包括在沙箱函數(shù)調(diào)用的終止時返回到敏感數(shù)據(jù)訪問模式。

根據(jù)一個實施例,沙箱函數(shù)調(diào)用的終止由在處理裝置外部的事件觸發(fā)。

根據(jù)一個實施例,沙箱函數(shù)調(diào)用的終止由以下中的至少一個觸發(fā):由存儲器保護(hù)電路檢測到試圖訪問一個或多個可訪問地址范圍之外的地址;檢測到試圖訪問禁用外圍裝置;檢測到試圖訪問禁用寄存器;檢測到試圖訪問未知的或禁用的指令;以及檢測到由外圍裝置生成的中斷。

根據(jù)另一方面,提供了一種計算系統(tǒng),其包括;處理裝置,其能夠在敏感數(shù)據(jù)訪問模式操作,在敏感數(shù)據(jù)訪問模式,敏感數(shù)據(jù)是可訪問的,并且在另一模式,處理裝置被配置為:由在敏感數(shù)據(jù)訪問模式運行的程序限制針對非安全函數(shù)的一個或多個可訪問地址范圍;從敏感數(shù)據(jù)訪問模式調(diào)用非安全函數(shù);并且進(jìn)入另一操作模式以運行非安全函數(shù),在運行非安全函數(shù)期間處理裝置具有對僅僅一個或多個可訪問地址范圍的訪問。

根據(jù)一個實施例,該計算系統(tǒng)還包括解密電路,其被配置為在由處理裝置對非安全函數(shù)的指令代碼的運行之前對非安全函數(shù)的指令代碼進(jìn)行解密。

根據(jù)一個實施例,該計算系統(tǒng)還包括:指令代碼存儲器,其存儲指令代碼和與敏感操作模式相關(guān)聯(lián)的另一指令代碼;以及解密電路,其適于使用與另一操作模式相關(guān)聯(lián)的第一密鑰來對指令代碼進(jìn)行解密,并且使用與第一密鑰不同的第二密鑰來對另一指令代碼進(jìn)行解密,其中,解密電路被配置為只有當(dāng)處理裝置處于敏感數(shù)據(jù)訪問模式時使第二密鑰可訪問。

根據(jù)一個實施例,處理裝置被配置為響應(yīng)于中斷而終止沙箱函數(shù)調(diào)用,中斷響應(yīng)于檢測到以下的一個或多個而生成:試圖訪問一個或多個可訪問地址范圍之外的地址;試圖訪問禁用外圍裝置;試圖訪問禁用寄存器;試圖訪問未知的或禁用的指令;以及由外圍裝置生成的中斷。

附圖說明

前述和其他特征和優(yōu)點將從參考附圖通過說明而非限制的方式給出的實施例的下面的詳細(xì)描述中變得顯而易見,在附圖中:

圖1是表示根據(jù)示例實施例的處理裝置的操作模式的狀態(tài)圖;

圖2示意性地表示根據(jù)本公開內(nèi)容的示例實施例的具有訪問保護(hù)電路的計算系統(tǒng);

圖3a是圖示了根據(jù)示例實施例的從敏感數(shù)據(jù)訪問模式執(zhí)行非安全函數(shù)調(diào)用的方法中的操作的流程圖;

圖3b是圖示了根據(jù)示例實施例的用于在非安全函數(shù)調(diào)用期間處理存儲器訪問請求的操作的流程圖;

圖4是圖示了根據(jù)示例實施例的更詳細(xì)的導(dǎo)致從敏感數(shù)據(jù)訪問模式的非安全函數(shù)調(diào)用的操作的流程圖;

圖5a示意性地圖示了根據(jù)其中計算系統(tǒng)包括存儲器保護(hù)單元的示例實施例的圖2的計算系統(tǒng)的操作模式的存儲器映射;以及

圖5b示意性地圖示了根據(jù)其中計算系統(tǒng)包括存儲器管理單元的另一示例實施例的圖2的計算機(jī)系統(tǒng)的操作模式的存儲器映射。

具體實施方式

圖1是表示根據(jù)示例實施例的計算機(jī)處理裝置的操作模式的狀態(tài)圖。在圖1的示例中,處理裝置能夠在三種可用操作模式之一中操作,三種可用操作模式為用戶模式(usermode)、管理員模式(supervisormode)和敏感數(shù)據(jù)訪問模式(sensitivedataaccessmode)。

計算機(jī)處理裝置例如實現(xiàn)基于環(huán)的安全性的形式,其中存在各操作模式之中的特權(quán)的等級。例如,在圖1的系統(tǒng)中,用戶模式具有最低特權(quán),管理員模式具有相對于用戶模式增大的特權(quán),并且敏感數(shù)據(jù)訪問模式具有相對于管理員模式進(jìn)一步增大的特權(quán)。

能夠損壞或危害計算系統(tǒng)的某些操作例如在用戶模式被阻止,并且管理員模式必須例如從用戶模式被調(diào)用以便運行這樣的操作。另外,涉及敏感數(shù)據(jù)的某些操作例如在用戶模式和管理員模式被阻止,并且敏感數(shù)據(jù)訪問模式必須例如從較低的特權(quán)模式中的任一個被調(diào)用以便使這樣的操作被運行。

操作模式中的每個與能夠僅僅從對應(yīng)操作模式運行的專用指令代碼相關(guān)聯(lián),但是在下文中描述了沙箱函數(shù)調(diào)用,其允許從較高的特權(quán)操作模式調(diào)用低特權(quán)操作模式的代碼。

當(dāng)處理裝置處于用戶模式時,能夠例如運行某些操作,但是阻止其他操作。另外,不能夠例如直接訪問諸如定時器、模數(shù)轉(zhuǎn)換器、串行接口、等等的關(guān)鍵外圍裝置。存儲器的部分也是不可訪問的,使得不能夠讀取或修改敏感數(shù)據(jù)。術(shù)語“敏感數(shù)據(jù)”在本文中用于指定應(yīng)當(dāng)限制對其的訪問的任何數(shù)據(jù),并且包括例如在處理裝置的啟動序列期間運行的啟動例程、加密密鑰、執(zhí)行加密操作的例程、等等。可以當(dāng)處理裝置處于用戶模式時運行的應(yīng)用例如為不能夠訪問敏感數(shù)據(jù)的應(yīng)用。

當(dāng)處理裝置處于管理員模式時,能夠例如運行允許在用戶模式運行的所有操作,并且可在用戶模式訪問的存儲器的所有區(qū)域也是可訪問的。另外,能夠運行不能夠在用戶模式運行的一個或多個另外的操作,和/或能夠訪問不能夠在用戶模式訪問的更多的存儲器區(qū)域。例如,能夠在管理員模式運行操作系統(tǒng)、驅(qū)動器和/或系統(tǒng)調(diào)用。

當(dāng)處理裝置處于敏感數(shù)據(jù)訪問模式時,例如允許在用戶模式和管理員模式允許的所有操作,并且能夠額外地訪問和/或運行敏感數(shù)據(jù)和/或涉及敏感數(shù)據(jù)的操作。為了在程序開發(fā)期間保護(hù)可從敏感數(shù)據(jù)訪問模式運行的代碼和訪問的數(shù)據(jù),例如僅僅允許授權(quán)的程序開發(fā)者來修改敏感數(shù)據(jù)訪問模式的程序的內(nèi)容,并且訪問具有與敏感數(shù)據(jù)訪問模式程序相同的特權(quán)的調(diào)試器。其他用戶例如僅僅能夠編寫包含對敏感數(shù)據(jù)訪問模式的調(diào)用的代碼,而不能夠獲得關(guān)于敏感數(shù)據(jù)訪問模式程序的運行的信息,或者訪問該程序的匯編程序代碼,或者訪問由該程序訪問的存儲器內(nèi)容。如下面更詳細(xì)地描述的,例如取決于上下文以各種形式實現(xiàn)訪問保護(hù),并且可以包括密碼和/或激活密鑰的驗證。

處理裝置的操作模式例如由硬件保護(hù)機(jī)制實現(xiàn),該硬件保護(hù)機(jī)制確保僅僅從允許的操作模式訪問數(shù)據(jù)和程序。例如,在可從互聯(lián)網(wǎng)網(wǎng)站http://www.multicians.org/protection.html獲得的m.d.schroeder和j.h.saltzer的題為“ahardwarearchitectureforimplementingprotectionrings”的公開物中更詳細(xì)地描述這樣的硬件機(jī)制,將其內(nèi)容通過引用在法律許可的范圍內(nèi)并入本文。存儲器訪問保護(hù)例如依靠存儲器管理單元(mmu),其將由諸如管理員模式或敏感數(shù)據(jù)訪問模式的最高優(yōu)先級模式中的一個或多個配置為要么保護(hù)存儲器的段和/或使用地址轉(zhuǎn)換來隱藏它們。

圖1中的各操作模式之間的箭頭表示可以從一個模式到另一模式進(jìn)行的轉(zhuǎn)變。例如能夠從任何其他模式直接進(jìn)入這些模式中的任何。

如由箭頭102所表示的,處理裝置可以例如經(jīng)由系統(tǒng)調(diào)用或通過在上下文切換期間的中斷在管理員模式與用戶模式之間進(jìn)行切換。

中斷例如由外圍觸發(fā)并被提供給處理裝置,其使處理裝置對各操作模式進(jìn)行切換以運行對應(yīng)的中斷處理程序。一旦中斷處理程序已經(jīng)完成了運行,處理器就返回到先前活動模式和路線。例如,中斷能夠由定時器的到期觸發(fā),或者當(dāng)接收到數(shù)據(jù)或準(zhǔn)備好發(fā)送數(shù)據(jù)時由串行通信外圍觸發(fā),或者由適于通知處理器事件的任何其他外圍觸發(fā)。在一些實施例中,還在用戶模式以程序方式從程序觸發(fā)中斷。

系統(tǒng)調(diào)用涉及在用戶模式對指令的運行,其允許該模式改變到管理員模式以運行系統(tǒng)調(diào)用例程。例如,系統(tǒng)調(diào)用是軟件中斷,該中斷處理程序?qū)浖袛嗟拇a進(jìn)行解碼、驗證和運行。該例程檢查是否允許調(diào)用者(其例如為在用戶模式運行的任務(wù))執(zhí)行調(diào)用,并且如果不是,則拒絕查詢。該例程之后執(zhí)行相關(guān)聯(lián)的操作,例如為調(diào)用過程分配存儲器或?qū)ν鈬脑L問,并且切換回到用戶模式以繼續(xù)調(diào)用者任務(wù)的運行。

上下文切換用于在用戶模式任務(wù)之間共享運行周期,并且包括在管理員模式運行的并且一般由定時器外圍觸發(fā)的中斷例程。該中斷例程例如保存當(dāng)前運行的任務(wù)的上下文,使用調(diào)度算法來定義下一活動過程,恢復(fù)過程的上下文,并且將處理器返回到用戶模式以運行該過程。

如由圖1中的箭頭104和106所表示的,可以從管理員模式或用戶模式訪問敏感數(shù)據(jù)訪問模式。在任一情況下,該轉(zhuǎn)變例如由與敏感數(shù)據(jù)訪問模式相關(guān)聯(lián)的特定調(diào)用的運行完成,由安全中斷完成,或者由安全異常完成。特定調(diào)用(其例如為敏感數(shù)據(jù)訪問模式調(diào)用)例如涉及允許這種模式改變的指令的運行。異常是由處理器中的內(nèi)部事件觸發(fā)的特殊類型的中斷。異常的簡單示例是當(dāng)處理器試圖運行不正確的程序(例如相對于指令集沒有正確地編碼的程序)時發(fā)生的異常。

在一些實施例中,通過允許操作系統(tǒng)僅僅對專用于外圍裝置的中斷而非與敏感數(shù)據(jù)訪問模式相關(guān)的那些(其例如具有最高優(yōu)先級)進(jìn)行配置來致使中斷安全。中斷的優(yōu)先級等級例如由能夠例如僅僅從敏感數(shù)據(jù)訪問模式寫入的配置寄存器管理。

如由圖1中的箭頭108所表示的,在一些實施例中,可以從敏感數(shù)據(jù)訪問模式調(diào)用并運行用戶模式的一個或多個函數(shù)(f)。為了確保在這些函數(shù)的運行期間的安全性,它們例如使用在本文中被稱為“沙箱”函數(shù)調(diào)用的方式來調(diào)用。例如,使用處理裝置的指令集的特定指令進(jìn)行這樣的沙箱調(diào)用,該指令使特權(quán)等級以對存儲器訪問的對應(yīng)的限制被臨時降低,使得能夠以安全方式(例如在用戶模式或在專用沙箱模式)運行非安全函數(shù)。具體地,沙箱函數(shù)調(diào)用例如允許運行包含非安全例程的函數(shù)同時確保安全,并且由此允許在敏感數(shù)據(jù)訪問模式內(nèi)訪問和使用從這些函數(shù)的運行返回的結(jié)果。例如,要從敏感數(shù)據(jù)模式運行的用戶模式的函數(shù)能夠包括標(biāo)準(zhǔn)庫,例如數(shù)學(xué)庫或加密算法,其尚未被審核用于在敏感數(shù)據(jù)訪問模式使用。這樣的函數(shù)將在本文中被稱為非安全函數(shù)。

沙箱調(diào)用允許隔離函數(shù)的運行,并且將其操作局限于用于讀操作和寫操作兩者的有限存儲器空間。該存儲器空間被保留用于敏感數(shù)據(jù)訪問模式,并且例如禁用對外圍裝置的訪問,這確保這樣的裝置不能夠訪問沙箱函數(shù)之外的數(shù)據(jù),也不能夠?qū)?shù)據(jù)發(fā)送到處理裝置之外。

例如,在沙箱調(diào)用期間,在以下事件中的一個或多個發(fā)生時將控制傳遞回到敏感數(shù)據(jù)訪問模式程序:

-調(diào)用的函數(shù)正確地終止;

-觸發(fā)安全中斷,例如在外圍裝置檢測諸如故障注入的攻擊的情況下的外部安全異常,或者例如通過由處理裝置運行不正確代碼或者對存儲器或?qū)ν鈬慕玫脑L問觸發(fā)的內(nèi)部安全異常;

-沙箱函數(shù)試圖執(zhí)行諸如以下的禁用操作:訪問沙箱區(qū)之外的存儲器地址;執(zhí)行系統(tǒng)調(diào)用;或者訪問外圍裝置;

-在沙箱函數(shù)終止之前觸發(fā)中斷。例如,這樣的機(jī)制允許要使用諸如看門狗定時器的外圍裝置分配給沙箱調(diào)用的有限時間。

這樣的沙箱調(diào)用的優(yōu)點在于其允許從敏感數(shù)據(jù)訪問模式調(diào)用尚未被審核以用于在敏感數(shù)據(jù)訪問模式使用的非安全函數(shù)而不引入安全風(fēng)險。另外,其允許通過使用用戶模式和敏感數(shù)據(jù)訪問模式的共同函數(shù)的相同實現(xiàn)方式來減少程序的總體存儲器印跡(footprint)。換言之,其避免在安全運行空間與不安全運行空間之間的共同代碼的重復(fù)。

盡管在圖1的示例中,處理裝置能夠在三種操作模式操作,但是在備選實施例中,至少存在敏感數(shù)據(jù)訪問模式以及一個或多個另外的較低特權(quán)模式。例如,在一些實施例中,僅僅支持用戶模式和敏感數(shù)據(jù)訪問模式。

圖2示意性地圖示了根據(jù)示例實施例的具有訪問保護(hù)電路的計算系統(tǒng)200。

如圖示的,計算系統(tǒng)例如包括處理裝置(mcu)202,其例如為微控制器單元。處理裝置202例如包括被配置為運行指令代碼的一個或多個處理器。處理裝置202例如與存儲器(memory)204(其例如為ram(隨機(jī)訪問存儲器),例如sram(靜態(tài)ram)或dram(動態(tài)ram))進(jìn)行通信。處理裝置202與存儲器204之間的接口包括訪問保護(hù)電路(accessprotection)206。該電路206例如由mpu(存儲器保護(hù)單元)或mmu(存儲器管理單元)實現(xiàn),并且被耦合在處理裝置的數(shù)據(jù)(data)和地址/命令(addr+cmd)線路與存儲器204的數(shù)據(jù)和地址/命令線路之間。

另外,處理裝置202例如經(jīng)由另外的訪問保護(hù)電路210被耦合到指令存儲器(instrcode)208。在一些實施例中,該電路210保護(hù)對存儲在存儲器208中的指令代碼的訪問和/或提供存儲在存儲器208中的代碼的加密保護(hù)。例如,電路210基于由電路210存儲的例如安全寄存器212中的一個或多個密鑰來對從存儲器208擷取的指令進(jìn)行解密。在一些實施例中,電路210被配置為針對不同的操作模式激活不同的密鑰,使得能夠擷取并運行與當(dāng)前操作模式相關(guān)聯(lián)的唯一代碼。電路210例如從mcu202接收指示當(dāng)前操作模式的信號mode,使得合適的密鑰被激活。如果mcu202試圖擷取并運行與和其當(dāng)前模式不同的操作模式相關(guān)聯(lián)的代碼,則將由電路210應(yīng)用不正確的密鑰,從而產(chǎn)生異常,其例如被通信到mcu202并使當(dāng)前操作終止。

在一些實施例中,緩存控制器214被提供用于與存儲器208交接。在圖2中示出的一個示例中,緩存控制器214被放置在電路210與指令代碼存儲器208之間,但是其能夠被放置在其他地方。緩存控制器例如存儲在長度上等于或大于在解密期間使用的塊大小的指令代碼的線路。緩存控制器214因此通過存儲合適大小的代碼塊以用于解密來輔助解密操作。

處理裝置202例如包括計數(shù)器(cntr)216以及一個或多個寄存器(rgstr)218。

當(dāng)要從敏感數(shù)據(jù)訪問模式調(diào)用用戶模式函數(shù)時,使用將在本文中被稱為“user_mode_call”的特定指令。該指令例如指示要運行的函數(shù)的地址。寄存器218例如為存儲與user_mode_call相關(guān)聯(lián)的狀態(tài)“ufcall_status”的并且尤其是存儲調(diào)用的結(jié)果的特殊函數(shù)寄存器。例如,該寄存器的可能的值以及它們對應(yīng)的含義如下:

-ufcall_ok:函數(shù)調(diào)用已經(jīng)正確地終止;

-ufcall_err_instruction:沙箱函數(shù)試圖運行禁用的或未知的指令;

-ufcall_err_memory:沙箱函數(shù)試圖訪問禁用地址范圍中的地址;

-ufcall_err_sfr:沙箱函數(shù)試圖訪問禁用特殊函數(shù)寄存器(sfr);

-ufcall_interrupt:在函數(shù)調(diào)用的結(jié)束之前發(fā)生中斷,其中,中斷已經(jīng)被處理并且函數(shù)調(diào)用被中斷。

在函數(shù)調(diào)用的運行期間,計數(shù)器216例如被用于跟蹤另外的函數(shù)調(diào)用。例如,計數(shù)器被初始化為1,并且在每個另外的函數(shù)調(diào)用時增加,并且在每個函數(shù)調(diào)用的終止時減少。當(dāng)沙箱函數(shù)調(diào)用終止時計數(shù)器下降為0,并且處理裝置之后例如返回到敏感數(shù)據(jù)訪問模式,并且跳到在user_mode_call指令之后的指令。

應(yīng)當(dāng)指出,用戶模式和敏感數(shù)據(jù)訪問模式例如不使用相同的返回寄存器(rtr),其在本地存儲函數(shù)的返回地址。因此,沙箱函數(shù)不能夠更改函數(shù)調(diào)用的返回地址。以這種方式,不能夠使非審核的代碼在敏感數(shù)據(jù)訪問模式運行。

處理裝置202還例如經(jīng)由中斷控制器(interruptcontroller)220(其在備選實施例中能夠與處理裝置202集成)被耦合到一個或多個外圍裝置(toperipherals)。外圍例如包括諸如定時器、模數(shù)轉(zhuǎn)換器(adc)、數(shù)模轉(zhuǎn)換器(dac)、脈寬調(diào)制器、串行接口(例如i2c、spi(串行外圍接口)或uart(通用異步接收器/發(fā)送器)接口)、傳感器、等等的裝置。中斷控制器220例如從各自的輸入線路上的外圍接收中斷,并且還從處理裝置接收當(dāng)前模式的指示。中斷控制器220例如包括優(yōu)先級控制電路222,其例如管理中斷之中的優(yōu)先級等級,并且例如當(dāng)其處于敏感數(shù)據(jù)訪問模式時可由處理裝置重新配置。

訪問保護(hù)電路206例如為mmu(存儲器管理單元),其被配置為在從敏感數(shù)據(jù)訪問模式的沙箱函數(shù)調(diào)用期間限制可由存儲器204訪問的存儲器地址的范圍。例如,電路206包括當(dāng)處理裝置在敏感數(shù)據(jù)訪問模式操作時可由處理裝置202訪問的配置寄存器224。在沙箱函數(shù)調(diào)用之前并且當(dāng)處理裝置202處于敏感數(shù)據(jù)訪問模式時,其例如設(shè)置配置寄存器224中的一個或多個地址范圍,以便在沙箱函數(shù)調(diào)用期間限制能夠后續(xù)當(dāng)在用戶模式操作時由處理裝置202訪問的存儲器204的地址范圍。例如,在沙箱調(diào)用期間可訪問的地址范圍受限于在與敏感數(shù)據(jù)訪問模式相關(guān)聯(lián)的那些之中的某些地址范圍。

電路206例如將來自處理裝置202的讀或?qū)懻埱蟮拿總€地址與由配置寄存器218定義的一個或多個允許的地址范圍進(jìn)行比較,并且僅僅在地址處于允許的范圍中時將讀或?qū)懻埱笾欣^到存儲器204。

在沙箱調(diào)用的結(jié)束,處理裝置202例如返回到敏感數(shù)據(jù)訪問模式并且對寄存器224進(jìn)行重新配置,使得與敏感數(shù)據(jù)訪問模式相關(guān)聯(lián)的所有地址范圍再次可訪問。

圖3a是圖示了根據(jù)示例實施例的從敏感數(shù)據(jù)訪問模式執(zhí)行非安全函數(shù)調(diào)用的方法中的操作的流程圖。這些操作例如由圖2的處理裝置202在從存儲器208擷取的指令代碼的控制下實現(xiàn)。

在操作301中,例如使用以上關(guān)于圖1討論的機(jī)制之一進(jìn)入敏感數(shù)據(jù)訪問模式。

在操作302中,當(dāng)要調(diào)用非安全函數(shù)時,限制對處理裝置的存儲器地址空間的訪問保護(hù)。該操作例如通過將圖2中的寄存器224配置為將可訪問存儲器地址限制為與敏感數(shù)據(jù)訪問模式相關(guān)聯(lián)的某個地址范圍來執(zhí)行。

在操作303中,對非安全函數(shù)進(jìn)行函數(shù)調(diào)用,非安全函數(shù)例如為僅僅允許在用戶模式運行的函數(shù)。操作模式因此切換到用戶模式或適合于運行調(diào)用的函數(shù)的另一模式,使得與非安全函數(shù)相關(guān)聯(lián)的指令代碼能夠被訪問和運行。然而,函數(shù)調(diào)用是沙箱的,意味著因為敏感數(shù)據(jù)訪問模式的調(diào)用程序已經(jīng)在操作302中設(shè)置了配置寄存器224中的允許的地址范圍,在函數(shù)的運行期間將可訪問的地址受限制。

在后續(xù)操作304中,在調(diào)用的函數(shù)已經(jīng)結(jié)束之后,或者當(dāng)沙箱函數(shù)已經(jīng)出于諸如安全異常的另一原因而離開時,處理裝置例如返回到敏感數(shù)據(jù)訪問模式,并且基于通??蓮拿舾袛?shù)據(jù)訪問模式訪問的地址范圍來對保護(hù)電路206的寄存器224進(jìn)行重新配置。該操作例如通過對圖2中的寄存器224進(jìn)行重新配置來執(zhí)行。

圖3b是表示根據(jù)示例實施例的在沙箱函數(shù)調(diào)用期間限制存儲器訪問的方法中的操作的流程圖。這些操作例如由圖2的訪問保護(hù)電路206執(zhí)行。

在操作310中,在調(diào)用的函數(shù)的運行期間,生成存儲器訪問請求,其可以是讀操作或?qū)懖僮?。該存儲器訪問請求例如由來自處理裝置202的訪問保護(hù)電路206接收。

在操作311中,由訪問保護(hù)電路206確定請求訪問的存儲器地址是否處于例如由存儲在配置寄存器224中的數(shù)據(jù)定義的允許的范圍中。如果是的話,則在操作313中允許存儲器訪問,并且該方法返回到操作310以進(jìn)行下一存儲器訪問操作。備選地,如果地址未處于允許的范圍中,則在操作312中由訪問保護(hù)電路206阻止存儲器訪問。在這樣的情況下,控制例如被返回到敏感數(shù)據(jù)訪問模式的程序。

圖4是圖示了根據(jù)示例實施例的導(dǎo)致沙箱函數(shù)調(diào)用的操作的流程圖;

在操作401中,例如存儲器204中的存儲器區(qū)被保留以用于運行沙箱函數(shù),并且由在敏感數(shù)據(jù)訪問模式運行的程序被分配用于該目的。

在后續(xù)操作402中,輸入數(shù)據(jù)例如被復(fù)制到保留存儲器區(qū),該數(shù)據(jù)提供調(diào)用的函數(shù)的輸入。該操作能夠在一些實施例中由在敏感數(shù)據(jù)訪問模式運行的程序執(zhí)行,其例如指定已經(jīng)包含調(diào)用的函數(shù)的輸入數(shù)據(jù)的敏感數(shù)據(jù)訪問模式的地址范圍,由此避免存儲器復(fù)制步驟的代價。

在后續(xù)操作403中,外圍裝置“看門狗定時器”例如被配置為限制函數(shù)的運行時間。該看門狗定時器例如為適于在特定時間持續(xù)時間之后斷言中斷的定時電路。以這種方式限制函數(shù)的運行時間的優(yōu)點在于調(diào)用的函數(shù)的未經(jīng)核實的代碼能夠循環(huán),由此直到定時器系統(tǒng)就位才凍結(jié)系統(tǒng)。

后續(xù)操作404例如對應(yīng)于圖3a的操作302,其中存儲器保護(hù)電路206被配置以便在用戶模式限制對存儲器的保留區(qū)的訪問。在后續(xù)操作405中,例如初始化調(diào)用棧指針。調(diào)用棧指針例如由處理裝置202中的通用寄存器實現(xiàn),并且例如在存儲器中的保留區(qū)的結(jié)尾處被分配一值,使得在棧延伸到授權(quán)區(qū)之外時,這能夠由如以上描述的sfr寄存器的狀態(tài)ufcall_err_memory來檢測。

在后續(xù)操作406中,沙箱調(diào)用參數(shù)例如使用以上定義的寄存器來堆放。當(dāng)堆放的參數(shù)包括指針時,還考慮地址轉(zhuǎn)換。以這種方式,例如防止沙箱調(diào)用得知其正在訪問的絕對地址范圍。例如,沙箱存儲器區(qū)以給定絕對地址(例如地址“100”)開始。然而,沙箱函數(shù)相信此為地址“0”。如果指針被傳遞到位于絕對地址“250”處的變量,則將對于沙箱函數(shù)將該地址轉(zhuǎn)換為值“150”,換言之,為指針的絕對地址“250”減去開始地址“100”。

在后續(xù)操作407中,用戶模式棧指針例如被配置為指向該存儲器區(qū)中的棧中的保留空間,同時在合適的情況下考慮任何地址轉(zhuǎn)換。

在操作408中,用戶模式函數(shù)之后由指令“user_mode_call”調(diào)用。

被提供為偽代碼、c和匯編程序的混合的以下代碼提供與解密函數(shù)相關(guān)的沙箱函數(shù)調(diào)用的示例。在該代碼中,“key”是包含解密密鑰的大小key_size的緩沖,并且“ciphered”是包含要解密的數(shù)據(jù)的大小ciphered_size的緩沖。假定,在敏感數(shù)據(jù)訪問模式運行的程序是要恢復(fù)解密的數(shù)據(jù)及其大小。

圖5a示意性地圖示了根據(jù)假定圖2的訪問保護(hù)電路202是存儲器保護(hù)單元(mpu)的示例實施例的在敏感數(shù)據(jù)訪問模式、管理員模式、用戶模式和沙箱函數(shù)調(diào)用期間的圖2的計算系統(tǒng)200中可用的存儲器映射。

在圖示的示例中,在用戶模式,僅僅第一數(shù)據(jù)(針對用戶任務(wù)1的數(shù)據(jù))502和第二數(shù)據(jù)(針對用戶任務(wù)2的數(shù)據(jù))504是可訪問的。在管理員模式,不僅數(shù)據(jù)502和504是可訪問的,而且操作系統(tǒng)os數(shù)據(jù)(osdata)506也是可訪問的,其中,os數(shù)據(jù)對應(yīng)于os的內(nèi)部數(shù)據(jù)結(jié)構(gòu),例如任務(wù)的描述、信號、信號量、等等。在敏感數(shù)據(jù)訪問模式,不僅數(shù)據(jù)502、504和506是可訪問的,而且關(guān)鍵數(shù)據(jù)(criticaldata)508(其例如表示由系統(tǒng)保存的敏感數(shù)據(jù),例如加密密鑰、啟動時間例程、等等)也是可訪問的。在沙箱函數(shù)調(diào)用期間,該關(guān)鍵數(shù)據(jù)508的部分510例如是可訪問的,但是沒有其他數(shù)據(jù)是可訪問的,使得調(diào)用的函數(shù)例如不能夠?qū)?shù)據(jù)傳遞到存儲器的其他非授權(quán)區(qū)。

圖5b圖示了與圖5a的情況類似的情況,但是在該情況下訪問保護(hù)電路是能夠執(zhí)行除了訪問保護(hù)之外的地址轉(zhuǎn)換的存儲器管理單元。因此,僅僅較高特權(quán)模式可訪問的存儲器區(qū)的信息被隱藏,并且因此從任務(wù)視角不存在。

本文中描述的實施例的優(yōu)點在于,通過允許從敏感數(shù)據(jù)訪問模式調(diào)用非安全函數(shù),并且通過在該調(diào)用的運行期間限制可訪問地址范圍,這樣的函數(shù)能夠在敏感數(shù)據(jù)訪問模式期間被使用而不降低安全性。

已經(jīng)由此描述了至少一個說明性實施,本領(lǐng)域技術(shù)人員將容易進(jìn)行各種更改、修改和改進(jìn)。例如,對于本領(lǐng)域技術(shù)人員將顯而易見的是,盡管描述了具有三種操作模式的處理裝置,但是在備選實施例中,能夠存在任何數(shù)量的操作模式。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
云和县| 光泽县| 澳门| 苍南县| 广灵县| 修文县| 南木林县| 白沙| 贵定县| 六安市| 高邑县| 社会| 民丰县| 水城县| 林甸县| 富顺县| 枣强县| 遵义市| 青海省| 建德市| 泌阳县| 南昌市| 阜新市| 晋城| 沈阳市| 丰宁| 孝昌县| 广饶县| 宁津县| 大宁县| 门源| 三都| 富阳市| 渑池县| 忻州市| 龙南县| 胶州市| 龙游县| 三河市| 百色市| 利辛县|