亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于在數(shù)據(jù)處理器的不同操作域之間切換的安全機(jī)制的制作方法

文檔序號(hào):8435869閱讀:332來源:國(guó)知局
用于在數(shù)據(jù)處理器的不同操作域之間切換的安全機(jī)制的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理的領(lǐng)域,且具體來講涉及使用不同安全域的數(shù)據(jù)處理設(shè)備及 方法。
【背景技術(shù)】
[0002] 眾多數(shù)據(jù)處理系統(tǒng)及架構(gòu)提供隔離及保護(hù)敏感數(shù)據(jù)及代碼區(qū)段以免被未經(jīng)授權(quán) 的個(gè)人或處理進(jìn)行存取的方法。盡管能夠提供安全性十分重要,但與此保護(hù)相關(guān)的性能及 電路面積則存在開銷。
[0003] 保持?jǐn)?shù)據(jù)及代碼安全的一個(gè)方法由英國(guó)劍橋的ARM?公司利用其TrustZone? 架構(gòu)提供,在該架構(gòu)中存在安全狀態(tài)及非安全狀態(tài),且異常指令用于在這些狀態(tài)之間進(jìn)行 轉(zhuǎn)換,同時(shí)由異常處理程序保護(hù)安全側(cè)的安全性。盡管此方法提供較高程度的安全性,但需 要以軟件異常處理程序的形式進(jìn)行大量軟件介入以改變安全狀態(tài),此舉既降低系統(tǒng)性能, 又增加開發(fā)安全軟件的外部應(yīng)用程序編程接口API所需的工作量,因?yàn)樗姓{(diào)用必須經(jīng)由 異常處理程序代理。
[0004] 對(duì)于諸如微控器的較小系統(tǒng)而言,TrustZone系統(tǒng)中存在的開銷可能無法容忍,因 此,必須發(fā)現(xiàn)用于在狀態(tài)之間進(jìn)行轉(zhuǎn)換的不同方法,該方法在不損及安全性的情況下提供 增強(qiáng)的性能。
[0005] 用以自安全性較低的域切換至安全性較高的域的一種方法具有相對(duì)較低的開銷 且允許多個(gè)登錄點(diǎn)進(jìn)入安全狀態(tài),該方法使用分支指令以自公共域分支至私用域中的函 數(shù)。該函數(shù)可在起始處包括安全檢查例程,該安全檢查例程檢查調(diào)用該函數(shù)的進(jìn)程是否具 有充分特權(quán)以允許該進(jìn)程調(diào)用該函數(shù),由此可能存在密碼或執(zhí)行的其他檢查。
[0006] 用以避免此檢查的一種方法為分支至在安全檢查例程以外一點(diǎn)處的代碼內(nèi)。另一 攻擊可涉及向函數(shù)的結(jié)束處分支為私用函數(shù),且此舉可導(dǎo)致僅一個(gè)或兩個(gè)指令得到執(zhí)行, 然后該函數(shù)分支返回公共側(cè)。然而,如若此舉可得以多次執(zhí)行,則可以以稱作返回導(dǎo)向編程 的編程來建立函數(shù)。
[0007] 已授予英國(guó)劍橋ARM_?有限公司的專利US8010772公開一種禁止攻擊者利用位 于此類函數(shù)起始處的允許指令來跳越至此函數(shù)中間的能力的方法,亦即由處理電路驗(yàn)證來 自安全性較低的域的分支指令在分支至安全性較高的域時(shí)分支至此允許指令。此系統(tǒng)的缺 點(diǎn)為處理器必須了解已發(fā)送至允許指令的指令即為來自安全性較低的域的分支指令。
[0008] 圖1示出了程序代碼實(shí)例,該程序代碼中有自公共側(cè)到私用側(cè)上的允許指令PG的 分支。其中,如圖1所示,當(dāng)在分支指令與允許指令之間發(fā)生異常的情況下,由于此情況導(dǎo) 致異常處理碼在PG指令之前得以執(zhí)行,因此處理器將無法以任何直接方式確定哪一指令 導(dǎo)致該處理器分支。用以解決在此處發(fā)生異常的問題的一種方法為利用可在分支指令執(zhí)行 時(shí)設(shè)定的標(biāo)志,使得即使發(fā)生異常,后一指令亦將了解來自安全性較低的域的分支先前已 經(jīng)出現(xiàn)且尚未經(jīng)檢查。然而,此舉卻導(dǎo)致潛在的安全性影響,因?yàn)闃?biāo)志本身可遭篡改。
[0009]目前需要以處理有效的方式提高狀態(tài)之間進(jìn)行切換的安全性。

【發(fā)明內(nèi)容】

[0010] 由第一方面可見,本發(fā)明提供一種數(shù)據(jù)處理設(shè)備,包括:
[0011] 處理電路,用于響應(yīng)于程序指令而執(zhí)行數(shù)據(jù)處理操作,所述處理電路具有多個(gè)具 有不同安全等級(jí)的操作域,所述操作域包括安全域及另一不同安全域,其中,當(dāng)在所述安全 域內(nèi)操作時(shí),所述處理電路可存取在所述另一不同安全域內(nèi)無法存取的至少一些數(shù)據(jù);
[0012] 數(shù)據(jù)存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)及指令,所述數(shù)據(jù)存儲(chǔ)器包括多個(gè)區(qū)域,每一區(qū)域與所 述多個(gè)操作域中的一個(gè)域?qū)?yīng),且所述數(shù)據(jù)存儲(chǔ)器包括至少一個(gè)安全區(qū)域和安全性較低的 區(qū)域,所述至少一個(gè)安全區(qū)域用于存儲(chǔ)敏感數(shù)據(jù),所述敏感數(shù)據(jù)能夠由在所述安全域內(nèi)操 作的所述數(shù)據(jù)處理電路存取,但無法由在所述另一不同安全域內(nèi)操作的所述數(shù)據(jù)處理電路 存取,所述安全性較低的區(qū)域用于存儲(chǔ)敏感性較低的數(shù)據(jù);
[0013] 所述處理電路被配置為:
[0014] 針對(duì)待執(zhí)行的程序指令,驗(yàn)證存儲(chǔ)所述程序指令的數(shù)據(jù)存儲(chǔ)器的區(qū)域與所述處理 電路的當(dāng)前操作域?qū)?yīng);及
[0015] 響應(yīng)于偵測(cè)到所述程序指令存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)器與所述處理電路的所述當(dāng)前 操作域不對(duì)應(yīng)的區(qū)域中;
[0016] 驗(yàn)證所述程序指令是否包括防護(hù)指令;及
[0017] 若所述程序指令包括所述防護(hù)指令,則將所述操作域切換至與存儲(chǔ)所述程序指令 的所述數(shù)據(jù)存儲(chǔ)器的所述區(qū)域?qū)?yīng)的域;及
[0018] 若所述程序指令不包括所述防護(hù)指令,則產(chǎn)生安全違規(guī)指示。
[0019] 本發(fā)明辨識(shí)在不同安全域的處理之間切換時(shí)產(chǎn)生的安全影響,這些安全域中的一 些安全域可能具有不同安全等級(jí)。就此方面而言,眾多處理電路在具有不同安全等級(jí)的域 中操作,并存取僅當(dāng)在安全性較高的域內(nèi)操作時(shí)才可用的一些敏感數(shù)據(jù)。不同域可具有不 同安全等級(jí),或它們可以為具有相同安全等級(jí)但卻彼此隔離的同級(jí)域。一般而言,安全性較 高的域中的處理操作將可存取內(nèi)存的安全性較低區(qū)域中及內(nèi)存的相對(duì)安全區(qū)域中的數(shù)據(jù)。 當(dāng)存在不同但卻具有相同安全等級(jí)的同級(jí)域時(shí),則這些同級(jí)域可存取數(shù)據(jù)存儲(chǔ)器中同樣的 安全性較低的區(qū)域,但卻不可存取具有相同敏感性且存儲(chǔ)在其安全等級(jí)與它們的域不對(duì)應(yīng) 而與同級(jí)域?qū)?yīng)的內(nèi)存的區(qū)域中的數(shù)據(jù)。正在處理的程序指令亦存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器的不同 安全區(qū)域內(nèi),數(shù)據(jù)存儲(chǔ)器中存儲(chǔ)當(dāng)前正在執(zhí)行的指令的區(qū)域的安全等級(jí)一般與當(dāng)前操作域 的安全等級(jí)對(duì)應(yīng)。就此而言,亦有內(nèi)存區(qū)域與同級(jí)域?qū)?yīng)。由此,如若處理電路確定待執(zhí)行 的指令已從與不同域?qū)?yīng)的區(qū)域取回至當(dāng)前操作域的區(qū)域,則此情況指示有問題存在,或 在取回的指令為防護(hù)指令時(shí)指示將發(fā)生域切換。
[0020] 就此而言,應(yīng)注意,盡管處理電路可能無法存取存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中具有高于當(dāng) 前操作域的安全等級(jí)的安全性的區(qū)域中的敏感數(shù)據(jù),但存儲(chǔ)在安全性較高的區(qū)域或同級(jí)安 全區(qū)域中的指令則可被提取。這是因?yàn)閿?shù)據(jù)存取與指令提取的存取許可的設(shè)定是不同的, 因?yàn)橹噶钐崛〔粫?huì)呈現(xiàn)與數(shù)據(jù)存取相同的安全影響,指令提取對(duì)軟件不可見。盡管提取存 儲(chǔ)在安全性更高或不同的區(qū)域中的指令可能與安全影響不相關(guān),但可能存在與執(zhí)行這些指 令有關(guān)的安全影響。
[0021] 由此,在提取指令時(shí),執(zhí)行檢查以查看數(shù)據(jù)存儲(chǔ)器中從其提取指令的區(qū)域是否與 當(dāng)前操作域?qū)?yīng)。如若不對(duì)應(yīng),則確定該程序指令是否為防護(hù)指令。如若該程序指令為防 護(hù)指令,則處理電路切換至與數(shù)據(jù)存儲(chǔ)器中從其提取防護(hù)指令的區(qū)域?qū)?yīng)的操作域,反之, 如若該指令并非防護(hù)指令,則產(chǎn)生安全違規(guī)指示。
[0022] 以此方式,由對(duì)不同域中的指令的分支所觸發(fā)的域切換僅經(jīng)由防護(hù)指令而得到允 許。此舉確保域切換僅在防護(hù)指令處發(fā)生,同時(shí)避免處理電路需要了解其如何到達(dá)防護(hù)指 令,處理電路僅需了解其當(dāng)前操作域及與待執(zhí)行的下一指令所存儲(chǔ)的區(qū)域?qū)?yīng)的域。此方 法有效,因?yàn)橹敝练雷o(hù)指令已被存取才發(fā)生域切換,因此在切換之前的操作域被稱為當(dāng)前 操作域,且防護(hù)指令的存在足以指示切換為可接受的。此外,由于是從與當(dāng)前操作域不對(duì)應(yīng) 的內(nèi)存區(qū)域中提取指令而觸發(fā)對(duì)該指令的檢查及在該指令為防護(hù)指令時(shí)的可能的域變更, 因此該檢查及域變更作為單一原子操作而執(zhí)行,意味著該操作不可被半途中斷。
[0023] 如若位于與不同域?qū)?yīng)的區(qū)域中的指令被存取并且其并非防護(hù)指令,則產(chǎn)生安全 違規(guī)指示。
[0024] 應(yīng)注意,盡管域及數(shù)據(jù)存儲(chǔ)器可具有對(duì)應(yīng)的安全等級(jí),但可能并不存在一一對(duì)應(yīng) 的關(guān)系。就此而言,數(shù)據(jù)存儲(chǔ)器區(qū)域中所具有的安全等級(jí)可能高于處理電路的操作域。但 每一區(qū)域?qū)⑴c域?qū)?yīng),因此可能存在兩個(gè)處理域,即一公共域及一私用域,及四個(gè)數(shù)據(jù)存儲(chǔ) 器區(qū)域,即與該公共域?qū)?yīng)的公共區(qū)域及具有不同安全等級(jí)的三個(gè)不同的內(nèi)存安全區(qū)域, 每一區(qū)域與私用域?qū)?yīng),使得存儲(chǔ)在這些私用區(qū)域中的任何一個(gè)中的防護(hù)指令將觸發(fā)至私 用域中的處理的切換。
[0025] 盡管在一些實(shí)施例中,安全域與另一不同安全域可能為具有相同安全等級(jí)的同級(jí) 域,但在其他實(shí)施例中,所有域具有不同安全等級(jí),且所述另一不同安全域包括安全性低于 所述安全域的域。
[0026] 在一些實(shí)施例中,所述處理電路被配置為僅響應(yīng)于偵測(cè)到所述程序指令存儲(chǔ)在所 述數(shù)據(jù)存儲(chǔ)器的、安全等級(jí)高于所述處理電路的當(dāng)前操作域的所述安全等級(jí)的區(qū)域中,而 驗(yàn)證所述程序指令是否包括防護(hù)指令。
[0027] 在一些實(shí)施例中,響應(yīng)于所述程序指令存儲(chǔ)在所述數(shù)據(jù)存儲(chǔ)器的、與安全等級(jí)低 于當(dāng)前操作域的所述安全等級(jí)的域?qū)?yīng)的區(qū)域中,所述處理電路被配置為將所述操作域切 換至所述較低的安全等級(jí),無論所述指令是否包括所述防護(hù)指令。
[0028] 盡管防護(hù)指令一般可用于控制不同安全等級(jí)之間的切換,但在一些實(shí)施例中,防 護(hù)指令僅在從安全性較低的域切換至安全性較高的域時(shí)使用。顯而易見,安全問題在從安 全性較低的域切換至安全性較高的域時(shí)更為頻繁地出現(xiàn),因此,在此切換時(shí),使用者務(wù)必在 預(yù)定點(diǎn)進(jìn)行切換以便需要執(zhí)行的任何安全檢查將得以執(zhí)行。由此,防護(hù)指令對(duì)控制從安全 性較低的域至安全性較高的域的切換尤其實(shí)用,且在一些情況下,處理電路僅檢查防護(hù)指 令,在此情況下,指令的域?yàn)檩^高的安全等級(jí),且總是允許向較低的安全等級(jí)的域切換。
[0029] 盡管如此,在其他情況下,尤其在有兩個(gè)以上域的情況下,如若從安全性較低或較 高的域向相當(dāng)安全的域的切換采用經(jīng)由防護(hù)指令的相同方式執(zhí)行,則該切換可得到有效管 理。提供此對(duì)稱性使得用于控制此切換的軟件寫入更為直接并使代碼更為有效。
[0030] 在一些實(shí)施例中,所述處理電路響應(yīng)于所述安全違規(guī)指示產(chǎn)生異常并執(zhí)行故障處 理碼。
[0031] 如若來自與不同域?qū)?yīng)的數(shù)據(jù)存儲(chǔ)器的區(qū)域的指令并非防護(hù)指令,則可執(zhí)行不同 的安全操作。例如,可產(chǎn)生異常,隨后可執(zhí)行故障處理碼,該碼辨識(shí)當(dāng)前正在執(zhí)行的軟件可 能為攻擊軟件且不應(yīng)允許該
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1