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

一種用于信息安全的嵌入式cpu的制作方法

文檔序號:6420178閱讀:224來源:國知局
專利名稱:一種用于信息安全的嵌入式cpu的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種嵌入式CPU,具體涉及一種用于信息安全的嵌入式CPU。
背景技術(shù)
目前信息安全領(lǐng)域中,最重要的一個部分就是嵌入式系統(tǒng)安全的問題,而嵌入式系統(tǒng)中的一個重要組成部分就是CPU,因而CPU核的安全性則決定了整個嵌入式系統(tǒng)的安全性能的高低。
由于目前普通的嵌入式CPU核在結(jié)構(gòu)設(shè)計中主要考慮的是速度、可靠性、功耗等一些非安全性的因素,產(chǎn)品的安全漏洞很多,根本不能滿足構(gòu)建信息安全系統(tǒng)的要求,因此要根據(jù)信息安全應(yīng)用中的特殊要求設(shè)計專用的信息安全芯片。目前國內(nèi)的信息安全產(chǎn)品,以銀行卡、社保卡、手機SIM卡等卡類產(chǎn)品為例,絕大多數(shù)仍然停留在8位機的水平,并且多數(shù)的市場也是被一些國外的大公司(如Atmel、Philips、Infineon等)所控制。8位CPU構(gòu)成的產(chǎn)品功耗和成本相對較低,但是在當前政務(wù)網(wǎng)安全、電子商務(wù)安全、網(wǎng)絡(luò)傳媒安全、網(wǎng)絡(luò)安全管理等方面的應(yīng)用中,8位機在處理能力、安全性等各個方面都已經(jīng)顯得力不從心。
針對高端的32位機產(chǎn)品中,英國的ARM公司推出了SC100、SC200以及SC210三款針對信息安全的專用CPU,MIPS也推出了其4Ks系例的信息安全CPU。但是這些產(chǎn)品在使用方面不符合國家密碼管理委員會規(guī)定的關(guān)于我國商用密碼必須使用自主知識產(chǎn)權(quán)的要求;在安全性方面仍存在一些漏洞,比如ARM公司的SC200中的MPU就沒有地址數(shù)據(jù)的加解密功能,而只有簡單的內(nèi)存保護功能。在國內(nèi),已發(fā)布的32位機有龍芯、方舟等,但這些公司目前還沒有推出針對信息安全的專用CPU。因此,目前國內(nèi)在32位信息安全專用CPU方面的產(chǎn)品還是一片空白。
有鑒于此,本發(fā)明提出了一種用于信息安全的嵌入式CPU。該嵌入式CPU通過設(shè)置存儲器加密保護單元(Memory Encryption and Protection Unit,縮寫MEPU)實現(xiàn)了先進的數(shù)據(jù)/地址加解密機制和反攻擊機制,對系統(tǒng)數(shù)據(jù)進行了不同層次的保護,大大提高了系統(tǒng)運行的安全性。其中,MEPU的設(shè)計構(gòu)思適用32位、16位、8位等各種信息安全CPU。

發(fā)明內(nèi)容
為達到上述目的,本發(fā)明采用的技術(shù)方案是一種用于信息安全的嵌入式CPU,在未采用安全保護措施的原始CPU核與存儲器以及外部設(shè)備之間設(shè)有一個專門的存儲器加密保護單元(以下簡稱MEPU),CPU核通過地址、控制、數(shù)據(jù)三總線經(jīng)過MEPU與存儲器以及外部設(shè)備通訊溝通。系統(tǒng)復(fù)位后將內(nèi)存邏輯空間劃分成三類區(qū)域,即若干個超級用戶可編程區(qū)塊、一個系統(tǒng)區(qū)、一個存儲器保護單元控制區(qū),同時將訪問用戶分為超級用戶和普通用戶兩種。
MEPU中包含有一訪問屬性保護單元、一存儲區(qū)加密單元和一系統(tǒng)區(qū)加密單元,其中(1)、訪問屬性保護單元,用于對上述三類區(qū)塊進行訪問保護,其內(nèi)容包括。
①、地址范圍寄存器,用于存放識別存儲器及外設(shè)對應(yīng)各區(qū)塊的地址范圍信息。
②、訪問屬性寄存器,用于存放存儲器及外設(shè)對應(yīng)各區(qū)塊的訪問屬性信息。
③、地址比較器,用于將CPU核發(fā)出的一個地址與對應(yīng)各區(qū)塊的地址范圍進行比較,如果說一個或多個區(qū)塊包含該地址,將產(chǎn)生對應(yīng)這些包含區(qū)塊的信號,如果地址不在各區(qū)塊地址范圍,將產(chǎn)生一個地址異常信號。
④、屬性判別邏輯,響應(yīng)地址比較器產(chǎn)生的對應(yīng)包含區(qū)塊信號,按照優(yōu)先原則選擇最嚴格的訪問屬性來確定屬性對照標準,并輸出對應(yīng)區(qū)塊的屬性與這次訪問的屬性進行比較,如果屬性匹配將產(chǎn)生一個訪問正常信號,如果不匹配將產(chǎn)生一個訪問異常信號。
⑤、門開關(guān),響應(yīng)地址比較器和屬性判別邏輯的信號,對應(yīng)作出關(guān)閉或開啟地址、控制及數(shù)據(jù)總線的反應(yīng)。
(2)、存儲區(qū)加密單元,用于對若干個超級用戶可編程區(qū)塊進行加密保護,其內(nèi)容包括①、加密使能寄存器,用來配置各個超級用戶可編程區(qū)塊的加密使能。
②、密鑰寄存器,用于存放可軟件編程的密鑰。
③、數(shù)據(jù)加密/解密器,使用密鑰寄存器中的軟密鑰對CPU核輸出到各個超級用戶可編程區(qū)塊的數(shù)據(jù)進行加密,對各個超級用戶可編程區(qū)塊輸入到CPU核的數(shù)據(jù)進行解密。
④、地址加密器,使用密鑰寄存器中的軟密鑰將CPU核輸出到各個超級用戶可編程區(qū)塊的地址打散。
(3)、系統(tǒng)區(qū)加密單元,用于對系統(tǒng)區(qū)進行加密保護,其內(nèi)容包括①、硬密鑰,該密鑰為硬件編程的密鑰,用于對系統(tǒng)區(qū)加密。
②、數(shù)據(jù)加密/解密器,使用硬密鑰對CPU核輸出到系統(tǒng)區(qū)的數(shù)據(jù)進行加密,對系統(tǒng)區(qū)輸入到CPU核的數(shù)據(jù)進行解密。
③、地址加密器,使用硬密鑰將CPU核輸出到系統(tǒng)區(qū)的地址打散。
上述技術(shù)方案的內(nèi)容解釋如下1、上述方案中,為了進一實現(xiàn)反攻擊機制,訪問屬性保護單元中還包括訪問狀態(tài)寄存器和計數(shù)器,其中訪問狀態(tài)寄存器,用于記錄非法訪問發(fā)生的區(qū)塊和訪問類型信息,其中包含訪問狀態(tài)位,對應(yīng)記錄所有區(qū)塊中的訪問狀態(tài)合法/非法;TC位,存放傳輸代碼信號,該信號與上一次非法訪問相聯(lián)系;RW位,記錄上次非法訪問時讀/寫引腳信號;計數(shù)器,用于記錄相同類型非法訪問次數(shù),如果記錄的次數(shù)到達設(shè)定次數(shù)后,系統(tǒng)檢測到外部的惡意攻擊和破解,產(chǎn)生一個信號將阻塞系統(tǒng)。
2、上述方案中,為了使超級用戶可編程區(qū)塊實現(xiàn)有效的保護,MEPU還包括一對應(yīng)超級用戶可編程區(qū)塊的使能控制寄存器,用于將系統(tǒng)復(fù)位時處于禁止訪問狀態(tài)的超級用戶可編程區(qū)塊使能。
3、上述方案中,為了使每個超級用戶可編程區(qū)塊具有更好的加密性,在對超級用戶可編程區(qū)塊進行加密時,每個區(qū)塊的加密密鑰都是不同的。
4、上述方案中,在采用軟密鑰對若干個超級用戶可編程區(qū)塊中的數(shù)據(jù)加密時,是以1個字節(jié)為單位進行的,而對地址加密時則是在1K字節(jié)區(qū)內(nèi)以四個字節(jié)為單位而進行的,即32位地址中最高的22位及最低的2位是不加密的,中間8位地址是要通過打亂進行加密的。
5、上述方案中,所述若干個超級用戶可編程區(qū)塊的訪問屬性可選擇下列不同類型中的一種訪問屬性代碼普通用戶訪問超級用戶訪問0000RWX RWX0001R-X RWX
0010R---- RWX0011----X RWX0100------RWX0101------R-X0110------R----0111----------X1000R-X R-X1001R---- R----1010----X ----X1011------------1100RW-- RW-1101------RW-其中R表示讀操作,W表示寫操作,X表示執(zhí)行操作,---表示不允許。
6、上述方案中,超級用戶可編程區(qū)塊數(shù)≤存儲器保護單元中所設(shè)的配置寄存器的數(shù)量,各配置寄存器與各區(qū)塊一一對應(yīng)。
7、上述方案中,為了便于實現(xiàn),每個超級用戶可編程區(qū)塊的大小在1K字節(jié)~4G字節(jié)范圍,并以2的冪的倍數(shù)變化。
8、上述方案中,每個超級用戶可編程區(qū)塊的基地址可以位于邏輯空間中的任意位置,并且自動變?yōu)樵摲謪^(qū)大小的整數(shù)倍。在若干個超級用戶可編程區(qū)塊配置中,各個區(qū)塊之間允許重疊,重疊區(qū)域的訪問屬性選擇對應(yīng)的最嚴格訪問屬性。
9、上述方案中,為了使超級用戶靈活、有效的控制可編程區(qū)塊,超級用戶可以通過相關(guān)寄存器對各超級用戶可編程區(qū)塊的基地址、大小、是否加密以及訪問屬性進行配置。
本發(fā)明的安全保護原理是MEPU在系統(tǒng)復(fù)位后提供了以下三種安全保護措施(1)、MEPU通過軟件將訪問用戶分為超級用戶和普通用戶兩種,超級用戶對系統(tǒng)區(qū)和MEPU控制區(qū)具有訪問權(quán)限,超級用戶通過一組區(qū)塊配置寄存器對若干個超級用戶可編程區(qū)塊的基地址、大小、是否加密以及訪問屬性進行配置。
(2)、MEPU對系統(tǒng)區(qū)采用硬密鑰進行加密;對若干個超級用戶可編程區(qū)塊采用軟密鑰進行加密,而且加密方式采用的是對數(shù)據(jù)加密同時將數(shù)據(jù)存放的地址打散,軟密鑰存放在上述密鑰寄存器中。
(3)、MEPU設(shè)有非法訪問類型判定和計數(shù)機制,該機制由地址比較器、各區(qū)塊配置寄存器、控制和狀態(tài)寄存器以及相應(yīng)的軟件配合形成,地址比較器將訪問的地址與所有區(qū)塊進行比較以確定所處的區(qū)塊;軟件將相應(yīng)區(qū)塊配置寄存器中設(shè)置的訪問屬性與企圖訪問的屬性進行對比來檢測該訪問的合法性;控制和狀態(tài)寄存器記錄非法訪問發(fā)生的區(qū)塊和訪問類型,非法訪問的類型信息將更新一個計數(shù)器,當計數(shù)器記錄相同類型非法訪問次數(shù)到達設(shè)定次數(shù)后,系統(tǒng)檢測到外部的惡意攻擊和破解,MEPU將鎖定系統(tǒng)。
由于上述技術(shù)方案運用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點1、本發(fā)明采用對數(shù)據(jù)加密同時將數(shù)據(jù)存放的地址打散的做法,在MEPU中實現(xiàn)了先進的反跟蹤機制(anti-trace),這樣確保了非法的跟蹤者不能通過對系統(tǒng)程序的跟蹤而探察到系統(tǒng)內(nèi)部的敏感信息。
2、本發(fā)明將用戶分為了超級用戶和普通用戶兩種,超級用戶具有特定的權(quán)限能配置MEPU,設(shè)置普通用戶的權(quán)限,從而很好地保證了系統(tǒng)地訪問權(quán)限的管理。
3、本發(fā)明將整個內(nèi)存空間分成了系統(tǒng)區(qū)塊、MEPU控制區(qū)塊和若干個超級用戶可編程區(qū)塊,其中若干個超級用戶可編程區(qū)塊是可以由超級用戶設(shè)置其大小及所處的位置,以及指定其各個區(qū)塊的訪問權(quán)限和是否需要加密,因此使這些區(qū)塊具有靈活的訪問屬性和數(shù)據(jù)/地址加密特性。
4、本發(fā)明采用了兩個類型的密鑰,即硬密鑰(hard-code key)和軟密鑰(soft-code key)。對于若干個超級用戶可編程區(qū)塊采用軟密鑰,只有超級用戶才能設(shè)置,而且每個區(qū)塊的加密密鑰都是可以設(shè)成不同的。對于系統(tǒng)區(qū)塊采用硬件加密編程,該密鑰與若干個超級用戶可編程的區(qū)塊是不一樣的,只有芯片制造商知道,從而大大保證了系統(tǒng)安全性。
5、本發(fā)明MEPU中設(shè)有訪問非法類型判定及計數(shù)機制,能檢測到外部的惡意攻擊和破解,從而阻塞系統(tǒng)防止非法的攻擊,保護系統(tǒng)。


附圖1為本發(fā)明系統(tǒng)框圖;附圖2為本發(fā)明實施例CS320-32位信息安全專用CPU芯片系統(tǒng)結(jié)構(gòu)圖;附圖3為本發(fā)明MEPU系統(tǒng)初始化流程圖;
附圖4為本發(fā)明MEPU內(nèi)存空間配置實施圖,其中,圖4(a)表示復(fù)位后系統(tǒng)配置情況;圖4(b)表示一個典型的系統(tǒng)應(yīng)用配置情況;圖4(c)表示與圖4(b)相似的一種配置情況;圖4(d)表示當系統(tǒng)檢測到非法攻擊時的一種配置情況。
具體實施例方式
下面結(jié)合附圖及實施例對本發(fā)明作進一步描述實施例參見附圖1、圖2所示,一種CS320-32位嵌入式信息安全專用CPU芯片,由原始CPU核、MEPU、存儲器以及外部設(shè)備組成,CPU核通過地址、控制、數(shù)據(jù)三總線經(jīng)過MEPU與存儲器以及外部設(shè)備通訊溝通。
原始CPU核是一個低功耗的32位RISC核心,采用load/store的架構(gòu),可以支持byte/halfword/word訪問,并針對16位的外設(shè)做了性能優(yōu)化。原始CPU核中包含16個32位通用寄存器,13個32位控制寄存器以及16個32位交替寄存器文件用于快速中斷過程中保存上下文信息。CPU芯片具有高度優(yōu)化的流水線結(jié)構(gòu),多數(shù)指令為單周期完成,跳轉(zhuǎn)指令需要兩個指令周期,其優(yōu)化的16位指令體系能夠大大提高CPU的代碼密度,在價格敏感的智能卡芯片產(chǎn)品中,這顯得尤為重要。CPU核中具有增強的位操作指令,另外還有一個單周期32×16硬件乘法器,可以提高CS320在實現(xiàn)信息安全領(lǐng)域常用算法如RSA、ECC時的性能。
針對信息安全的特殊應(yīng)用,CS320-32位嵌入式信息安全專用CPU芯片中專門設(shè)計了一個MEPU。MEPU是整個CPU芯片安全保護核心結(jié)構(gòu),它是CPU核與存儲器以及外部設(shè)備之間的一道閘門。CPU核與存儲器以及外設(shè)之間的通訊要經(jīng)過地址比較、訪問屬性許可、存儲器加密單元的加解密等環(huán)節(jié)的處理才能完成。如果出現(xiàn)訪問屬性不匹配等情況,MEPU會把所有與存儲器以及外設(shè)通訊的總線信號關(guān)閉,防止外界通過多次試探獲得CPU核的信息。
一、MEPU特性1、安全保護措施MEPU在系統(tǒng)復(fù)位后將內(nèi)存邏輯空間劃分成三類區(qū)域,即一個系統(tǒng)區(qū)、一個MEPU控制區(qū)、8個超級用戶可編程區(qū)塊,并提供以下三種安全保護措施(1)、MEPU通過軟件將訪問用戶分為超級用戶和普通用戶兩種,超級用戶對系統(tǒng)區(qū)和MEPU控制區(qū)具有訪問權(quán)限,超級用戶通過8個區(qū)塊配置寄存器對8個超級用戶可編程區(qū)塊的基地址、大小、是否加密以及訪問屬性進行配置。
(2)、MEPU采用硬件加密電路對系統(tǒng)區(qū)單獨進行硬加密;采用密鑰寄存器以及軟件密鑰對8個超級用戶可編程區(qū)塊進行軟加密。
(3)、MEPU設(shè)有非法訪問類型判定和計數(shù)機制,該機制由地址比較器、各區(qū)塊配置寄存器、控制和狀態(tài)寄存器以及相應(yīng)的軟件配合形成,當計數(shù)器記錄相同類型非法訪問次數(shù)到達設(shè)定次數(shù)后,系統(tǒng)檢測到外部的惡意攻擊和破解,MEPU將鎖定系統(tǒng)。
2、8個超級用戶可編程區(qū)MEPU具有8個超級用戶可編程區(qū)塊,也就是說超級用戶能在系統(tǒng)復(fù)位后通過對MEPU配置寄存器進行編程而靈活的將系統(tǒng)內(nèi)存空間劃分為8個區(qū)塊,每個區(qū)塊的大小是可變的,但最小為1K字節(jié),最大為4G字節(jié),具體可以設(shè)置的區(qū)塊的大小及其對應(yīng)的編碼如表1所示。
表1 可設(shè)置的區(qū)塊大小及其對應(yīng)的編碼


每個區(qū)塊的基地址可以位于4G字節(jié)內(nèi)存映象的任何位置內(nèi),并且會自動變?yōu)樵摲謪^(qū)大小的整數(shù)倍(例如,一個區(qū)塊的大小為4K字節(jié),則該區(qū)塊的基地址會自動根據(jù)設(shè)置變?yōu)闉?K的倍數(shù),如0x0000000,0x00001000,...,)。
每個區(qū)塊的地址和數(shù)據(jù)可以單獨的由超級用戶指定是否被加密,如果被加密的話,則該區(qū)域內(nèi)存中的數(shù)據(jù)被加密同時將數(shù)據(jù)存放的地址打亂,但CPU核讀寫執(zhí)行該區(qū)塊的數(shù)據(jù)時會自動的進行解密,這樣在用戶看來感覺不到其中的加解密過程,但卻有效的防止了非法用戶對系統(tǒng)內(nèi)部數(shù)據(jù)的讀取,另外這8個分區(qū)可以由超級用戶對寄存器AP[3:0]編程而指定各自的問屬性,這些屬性主要包括超級用戶訪問、普通用戶訪問、寫操作、讀操作、執(zhí)行(取指)操作等要素,MEPU中8個區(qū)塊所具有的訪問屬性如表2所示。
表2 MEPU可設(shè)定的區(qū)塊訪問屬性表


其中R表示讀操作,W表示寫操作,X表示執(zhí)行操作,---表示不允許。
還要指出的是在設(shè)置8個內(nèi)存空間區(qū)塊時,各個區(qū)塊之間是可以重疊的,發(fā)生重疊時,重疊區(qū)域的訪問屬性將采用最嚴格的訪問屬性,并且當重疊的區(qū)塊中有一個是要加密時,則該重疊的部分將要加密。
3、系統(tǒng)區(qū)MEPU具有一個4K字節(jié)固定大小的區(qū)塊,這個區(qū)塊的基地址為0x00000000,它是用來存放異常向量表和操作系統(tǒng)(OS),這個區(qū)塊的數(shù)據(jù)和地址是加密的,該區(qū)塊的訪問屬性為超級用戶讀/寫/執(zhí)行訪問,即該區(qū)塊只能由超級用戶執(zhí)行讀、寫、執(zhí)行指令等訪問,普通用戶無權(quán)訪問該區(qū)塊。在這4K字節(jié)的空間中,512字節(jié)的區(qū)塊0x00000000~0x000001FF主要用來存放128個異常向量,而0x00000200-0x00000FFF用來存放操作系統(tǒng)程序,注意到這部分程序已經(jīng)是經(jīng)過加密的,因此只有超級用戶通過解密才能正確地訪問該區(qū)域。但是操作系統(tǒng)程序有可能會大于3.5K字節(jié),如果出現(xiàn)這種情況的話,則可以在這3.5K字節(jié)的空間內(nèi)存放系統(tǒng)的初始化程序,對MEPU進行配置在8個超級用戶可編程區(qū)中以提供一個可以存放所有操作系統(tǒng)程序的區(qū)塊,并對該區(qū)塊進行加密。
4、MEPU控制區(qū)MEPU還具有一個64K字節(jié)的固定大小的區(qū)塊,這個區(qū)塊的基地址為0xFFFF0000,它是用來進行MEPU控制的,該區(qū)塊中沒有數(shù)據(jù)和地址的加密,它的訪問屬性為超級用戶讀/寫訪問,也就是說只有超級用戶才能對該區(qū)域的地址進行讀/寫訪問。
為了加解密,MEPU中還有一個可編程32位的數(shù)據(jù)/地址密鑰,該密鑰存放在該區(qū)塊中的MEPU密鑰寄存器中(MEPU Encryption Key Register),在MEPU對數(shù)據(jù)加密時,是以1個字節(jié)為單位進行的,而對地址加密時則是在1K字節(jié)區(qū)內(nèi)以四個字節(jié)為單位而進行的,也就是說32位地址中最高的22位及最低的2位是不打亂的,中間8位地址是要進行加密的。
為了記錄非法訪問的情況,MEPU中還提供了一個控制和狀態(tài)寄存器,則CPU核可以根據(jù)該寄存器中的記錄情況判斷系統(tǒng)是否受到非法的攻擊和破解,如果產(chǎn)生了上述情況則CPU核將阻塞系統(tǒng),只有拿到廠商處由專人解鎖,這樣將更好的保護系統(tǒng)數(shù)據(jù)。
5、MEPU工作狀態(tài)在系統(tǒng)復(fù)位后,MEPU將始終處于使能狀態(tài),而異常處理向量表/操作系統(tǒng)區(qū)塊(系統(tǒng)區(qū))和MEPU控制區(qū)塊將是始終處于保護狀態(tài),也就是只有超級用戶能對該區(qū)域進行訪問。而那些可編程的區(qū)塊在系統(tǒng)復(fù)位后將是被禁止的,只有通過超級用戶對這8個區(qū)塊進行配置并使能。
二、MEPU內(nèi)存空間MEPU作為CS320系統(tǒng)的一部分,本身占用了64K字節(jié)的地址空間,這個空間也就是MEPU的控制空間。下表3是整個CPU處理器地址空間。
表3CPU處理器地址空間

超級用戶能訪問所有的地址空間(除了已經(jīng)編程過的),而普通用戶能夠訪問的最大地址范圍為0x00001000 to 0xFFFEFFFF。普通用戶訪問這個范圍外的地址將產(chǎn)生訪問錯誤。
4G字節(jié)的地址空間一共可以分成十個地址區(qū)塊,有兩個地址區(qū)塊是固定的,而其它8個分區(qū)是通過MEPU中的寫分區(qū)配置寄存器來設(shè)定的。兩個固定的分區(qū)如下1、系統(tǒng)區(qū)用于存放異常向量表和操作系統(tǒng)地址范圍 0x00000000~0x00000FFF;大小 4Kbyte;訪問權(quán)限和屬性只允許超級用戶讀/寫/執(zhí)行訪問;使能 總是使能;加密措施采用硬密鑰加密數(shù)據(jù),同時將數(shù)據(jù)存放的地址打散。
2、MEPU控制區(qū)用來進行存儲器保護單元的控制地址范圍 0xFFFF0000~0xFFFFFFFF;大小 64Kbyte;訪問權(quán)限和屬性 只允許超級用戶讀/寫訪問;使能 總是使能;加密措施 不加密。
三、MEPU編程
MEPU的編程共包括以下10個寄存器,見表4表4 MEPU編程模型表

內(nèi)存空間0xFFFF_0028~0xFFFF_FFFF被保留,對該區(qū)域讀訪問將得到的數(shù)據(jù)是0,而對該區(qū)域的寫操作也將沒有任何效果,并且還將產(chǎn)生一個傳輸應(yīng)答信號。任何對MEPU控制空間區(qū)塊的訪問不管是有效還是無效將使所有的地址及選通信號被立即關(guān)閉。而mpu_tbusy_b、mpu_data_out信號將在訪問的數(shù)據(jù)傳輸周期中被關(guān)閉。
1、MEPU控制和狀態(tài)寄存器(MPUCSR)MEPU控制和狀態(tài)寄存器有兩個目的一個是提供MEPU的使能作用,另一個是保存上一次內(nèi)存訪問的狀態(tài)信息。表5給出了寄存器的細節(jié)。
表5 MEPU控制及狀態(tài)寄存器

RnVRegion Violation n1在區(qū)塊n中出現(xiàn)訪問非法0在區(qū)塊n中沒有出現(xiàn)訪問非法注意到R8V對應(yīng)系統(tǒng)區(qū)塊(0x00000000 to 0x00000FFF),而R9V是對應(yīng)MEPU控制區(qū)塊(0xFFFF0000 to 0xFFFFFFFF)。
TC Transfer Code
TC位則存放著傳輸代碼信號Transfer Code signal(rce_tc[2:01),這個信號是和上一次的非法訪問想聯(lián)系的。
RWRead/WriteRW位則記錄著上次非法訪問時讀/寫引腳信號。
ENMEPU Enable1MEPU的可編程區(qū)塊是被使能的0MEPU的可編程區(qū)塊是被禁止的注意到MEPU使能位只能使能/禁止可編程的8個區(qū)塊,而預(yù)先定義的系統(tǒng)區(qū)塊(Exception Vector and OS Region)和MEPU控制區(qū)塊(MEPU Control Space Region)是始終使能的。
2、MEPU密鑰寄存器(MEPU Encryption Key Register)MEPU密鑰寄存器MPUEKR是用來存放一個32位的密鑰,通過這個密鑰可以對外部數(shù)據(jù)輸入/輸出總線進行加密/解密,也可以對8個可編程的區(qū)域地址總線進行加密,當然前提條件是相應(yīng)區(qū)塊的加密使能位應(yīng)該有效(具體可見下一部分的介紹)。
數(shù)據(jù)總線的加密是在字節(jié)基礎(chǔ)上進行的,也就是說半字或者整字的訪問也是各自加密的,而對地址總線的加密則是在1K字節(jié)的區(qū)塊內(nèi)以整字為單位進行的,也就是說地址總線的最高的22位和最低的2位在加密過程中是保持不變的,而只有中間的8位是被加密的。8個區(qū)塊中某個區(qū)塊若加密使能,則在CPU核訪問該區(qū)塊時,MEPU也會進行解密,這樣對合法用戶來說會感覺不到這個加解密過程的存在,但是卻很好的保護了系統(tǒng)內(nèi)存中的數(shù)據(jù),這對信息安全系統(tǒng)來說就非常的有利。表6給出了MEPU密鑰寄存器細節(jié)。
表6 MEPU密鑰寄存器

值得提出的是對系統(tǒng)區(qū)塊(Exception Vector and OS Region)的加解密是采用硬密鑰(hard-code key)進行加密的,該密鑰在芯片制作時,是由硬件編程的一個32位的密鑰,用于對系統(tǒng)區(qū)塊的加密,只有芯片制造商知道,這樣對系統(tǒng)區(qū)塊的保護就更加可靠。
8個可編程區(qū)塊的加解密雖然都是采用密鑰寄存器,但是各個區(qū)塊的加密密鑰是不相同,因此進一步提高了系統(tǒng)的安全措施。該密鑰是一個軟密鑰(softcode key),即由一個可以軟件編程的32位的密鑰,只有超級用戶才能知道。該密鑰用于8個可編程區(qū)塊的加密。
MEPU的控制區(qū)塊(MEPU Control Space Region)則沒有進行加密。
3、MEPU區(qū)塊配置寄存器0-7(MEPU Region Configuration Register 0-7)MEPU區(qū)塊配置寄存器(MPURRn)共有8個32位的寄存器,分別對應(yīng)超級用戶可編程的8個區(qū)塊。這8個寄存器分別用來配置8個可編程的區(qū)域的基地址、大小、是否加密和屬性。而系統(tǒng)區(qū)塊(Exception Vector and OSRegion)與MEPU控制區(qū)塊(MEPU Control Space Region)是由硬件控制并不需要相應(yīng)的配置寄存器。表7給出了該寄存器的細節(jié)。
表7 MEPU區(qū)塊配置寄存器MPURR0-MPPURR7

ADDRESSRegion Base Address區(qū)塊的基地址,注意到地址比較時將自動取區(qū)塊大小的整數(shù)倍,而區(qū)塊的大小是在SIZE項中定義的。
SIZE Region Size定義的區(qū)塊的大小,細節(jié)見表1EE Region Encryption Enable1該區(qū)塊的地址將被加密而數(shù)據(jù)也將被加密/解密,加密和解密將使用密鑰寄存器MPUEKR中存放的密鑰。
0該區(qū)塊中的地址和數(shù)據(jù)將不被加密。
AP Region Access Permissions這部分值將決定該區(qū)塊保護的具體級別(讀/寫/執(zhí)行),詳細的定義可以參見表2,表中給出了相應(yīng)設(shè)置所對應(yīng)的訪問權(quán)限。
四、MEPU工作原理1、訪問非法檢測機制當處理器通過CPU核的MLB總線對內(nèi)存進行一次訪問時,MEPU將對訪問的地址和MEPU的10個區(qū)塊(8個超級用戶可編程的區(qū)塊和系統(tǒng)區(qū)塊以及MEPU控制空間區(qū)塊)的地址進行比較以確定訪問地址所處的區(qū)塊,任何一次都將進行10次比較。在有多個區(qū)塊重疊的情況下,比較后有可能會發(fā)現(xiàn)訪問的地址可以同時屬于多個區(qū)塊,因此這時就采用訪問屬性最嚴格的區(qū)塊,然后將這次訪問的屬性(主要是傳輸代碼和讀/寫指示信號)與所處區(qū)域的屬性進行對比,如果不匹配將產(chǎn)生訪問異常,如果發(fā)現(xiàn)訪問的地址不是這十個區(qū)域中的地址范圍,則會導(dǎo)致一個訪問非法,所有的地址和控制總線的信號都將被立即關(guān)閉,并且產(chǎn)生一個傳輸錯誤異常信號TEA,而在下一個周期中數(shù)據(jù)總線也將被全部關(guān)閉。
每當發(fā)生傳輸錯誤時,將把訪問的屬性存進MEPU控制及狀態(tài)寄存器MPUCSR。而由軟件根據(jù)該寄存器的內(nèi)容來判定訪問非法的類型。如果某種原因有連續(xù)多個訪問非法產(chǎn)生(比如一個訪問非法產(chǎn)生后,緊接著訪問異常向量讀取也造成訪問非法),只有最近一次的非法訪問的傳輸屬性將被記錄在MEPU控制狀態(tài)寄存器MPUCSR中的TC和RW。注意到在正常情況下,當出現(xiàn)兩個或兩個以上的訪問異常時,系統(tǒng)將執(zhí)行不可恢復(fù)的異常處理子程序,而不是一般的訪問異常處理子程序。在執(zhí)行不可恢復(fù)的異常處理子程序時又有訪問非法產(chǎn)生,則系統(tǒng)將很可能停止工作。在每次訪問時,如果出現(xiàn)了訪問非法,則相應(yīng)的MEPU控制狀態(tài)寄存器MPUCSR中的RnV將被設(shè)置。
2、非法類型的判定軟件應(yīng)該能判定訪問非法的類型和所在的區(qū)塊,因此MEPU提供記錄在MEPU控制狀態(tài)寄存器MPUCSR的上一次訪問非法信息。RnV位表示訪問非法發(fā)生的區(qū)塊,而TC[5:3]和RW[2]位表示企圖進行的訪問的類型,而訪問非法異常子程序應(yīng)該檢查那些RnV位被設(shè)置的分區(qū)配置寄存器MPURRn,當MPURRn的AP[3:0]位設(shè)置訪問權(quán)信息與保存的企圖進行的訪問的類型進行比較,這樣就有可能判定訪問非法的類型。這個訪問非法的類型信息將被用來更新內(nèi)部的一個計數(shù)器,該計數(shù)器將記錄訪問相同類型非法訪問的次數(shù),當?shù)竭_一定次數(shù)后,將表明系統(tǒng)有可能收到了惡意的攻擊,MEPU將阻塞系統(tǒng),這樣就有效的防止了系統(tǒng)收到攻擊,提高了系統(tǒng)的安全性。
3、鎖定MEPU鎖定MEPU也就是使MEPU保持當前的狀態(tài)不變化,例如當對一個超級用戶只讀的MEPU控制空間區(qū)塊進行編程并使能MEPU時,則將鎖定MEPU。只有當系統(tǒng)復(fù)位后才能解開MEPU的鎖定。
4、反跟蹤機制(anti-trace)在CS320中還實現(xiàn)了先進的反跟蹤機制,在普通的CPU中,一般復(fù)位0地址中存放的是復(fù)位異常處理程序的地址,比如說是一個32位地址Addr_data1。然后根據(jù)該地址,程序跳轉(zhuǎn)到相應(yīng)的地址執(zhí)行復(fù)位的初始化程序,一般非法跟蹤者就可能通過內(nèi)存中的0地址中的內(nèi)容而對復(fù)位程序進行跟蹤,從而探察CPU內(nèi)部的工作,在CS320中,因為地址總線和數(shù)據(jù)總線都是經(jīng)過加密的,因此復(fù)位向量存放的地址0經(jīng)過加密后已經(jīng)變成了另一個地址,而在該地址中存放的初始化程序的首地址也因為數(shù)據(jù)加密的原因不是原來的Addr_data1,例如變成了Addr_data2,因此非法跟蹤者就很難通過對內(nèi)存0地址的探查而跟蹤CPU的工作。
5、安全系統(tǒng)的初始化CS320采用了兩個類型的密鑰,即硬密鑰(hard-code key)和軟密鑰(soft-code key),硬密鑰(hard-code key)是只有IC設(shè)計者知道并用于給4K系統(tǒng)區(qū)塊(Exception Vector and OS Region)進行加密,超級用戶(Supervisor)也不知道該密鑰,并且每塊CPU的特定硬密鑰(hard-code key)也是不一樣的,這樣可以最大程度的保護系統(tǒng)區(qū)塊內(nèi)的數(shù)據(jù)。而軟密鑰(soft-code key)是由supervisor指定并存放在密鑰寄存器MPUEKR中,用以對8個區(qū)塊進行加密,普通用戶無法訪問該密鑰。
為了使得MEPU能夠在信息安全芯片系統(tǒng)中提供最大可能的安全性能,系統(tǒng)區(qū)塊(Exception Vector and OS Region)將是由硬件進行加密編程的一個超級用戶讀/寫/執(zhí)行的4K字節(jié)大小的區(qū)塊,該區(qū)塊的基地址在0x00000000。
系統(tǒng)初始化開始時,首先從0x00000000獲取復(fù)位異常向量,該向量指向復(fù)位異常處理子程序的首地址,該邏輯地址應(yīng)該存放于地址0x00000200到0x0000FFF之間,復(fù)位異常處理子程序一開始就要使能MEPU(即對地址0xFFFF0000的MEPU控制和狀態(tài)寄存器MPUCSR寫1),接著向密鑰寄存器MPUEKR和MEPU分區(qū)配置寄存器MPURR0-MPURR7中寫入適當?shù)臄?shù)據(jù)對8個超級用戶可編程區(qū)塊進行配置。其中的一個或者更多的區(qū)塊將被用來存放附加的操作系統(tǒng),以彌補系統(tǒng)區(qū)塊(Exception Vector and OS Region)的不足。這些分區(qū)采用不同的密鑰進行加密,它們將由系統(tǒng)區(qū)塊(ExceptionVector and OS Region)中的程序進行編程。整個初始化過程由圖3表示。
下面是MEPU配置的實例圖4給出了不同的MEPU配置實例。圖4(a)中給出了復(fù)位后的系統(tǒng)配置情況,只有兩個區(qū)塊被使能的映射圖底部4K字節(jié)加密的超級用戶讀/寫/執(zhí)行區(qū)塊和項部64K字節(jié)的MEPU控制區(qū)塊,剩下的部分將是不能被訪問的。這時系統(tǒng)將不進行針對應(yīng)用的系統(tǒng)安全應(yīng)用的MEPU配置。
圖4(b)給出了一個典型的系統(tǒng)應(yīng)用配置。在下面的4K字節(jié)空間將被擴展為放置附加的系統(tǒng)程序。另外附加的兩個加密的內(nèi)存區(qū)塊被用來放置用戶應(yīng)用程序。另外的區(qū)域?qū)⑹遣荒鼙辉L問到的。
圖4(c)給出了與圖4(b)相似的配置情況,不同的只是不同的區(qū)塊被使能。這將使得一個不同的用戶應(yīng)用程序,圖4(b)和(c)共同享有超級用戶加密塊(supervisor encrypted)。
圖4(d)給出了當系統(tǒng)檢測到非法攻擊時的一種配置,例如連續(xù)發(fā)生了同一種特定類型的非法訪問,超級用戶將禁止整個內(nèi)存空間,注意到這將是永久性的禁止整個內(nèi)存空間。
上述實施例只為說明本發(fā)明的技術(shù)構(gòu)思及特點,其目的在于讓熟悉此項技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,并不能以此限制發(fā)明的保護范圍。凡根據(jù)本發(fā)明精神實質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種用于信息安全的嵌入式CPU,其特征在于在CPU核與存儲器及外設(shè)之間設(shè)置一存儲器加密保護單元,系統(tǒng)復(fù)位后將內(nèi)存邏輯空間劃分成三類區(qū)域,即若干個超級用戶可編程區(qū)塊、一個系統(tǒng)區(qū)、一個存儲器保護單元控制區(qū),同時將訪問用戶分為超級用戶和普通用戶兩種;存儲器加密保護單元中包含有一訪問屬性保護單元、一存儲區(qū)加密單元和一系統(tǒng)區(qū)加密單元,其中(1)、訪問屬性保護單元,用于對上述三類區(qū)塊進行訪問保護,其內(nèi)容包括①、地址分塊寄存器,用于存放識別存儲器及外設(shè)對應(yīng)各區(qū)塊的地址范圍信息;②、訪問屬性寄存器,用于存放存儲器及外設(shè)對應(yīng)各區(qū)塊的訪問屬性信息;③、地址比較器,用于將CPU核發(fā)出的一個地址與對應(yīng)各區(qū)塊的地址范圍進行比較,如果說一個或多個區(qū)塊包含該地址,將產(chǎn)生對應(yīng)這些包含區(qū)塊的信號,如果地址不在各區(qū)塊地址范圍,將產(chǎn)生一個地址異常信號;④、屬性判別邏輯,根據(jù)地址比較器產(chǎn)生的對應(yīng)包含區(qū)塊信號,按照優(yōu)先原則選擇最嚴格的訪問屬性來確定屬性對照標準,并輸出對應(yīng)區(qū)塊的屬性與這次訪問的屬性進行比較,如果屬性匹配將產(chǎn)生一個訪問正常信號,如果不匹配將產(chǎn)生一個訪問異常信號;⑤、門開關(guān),響應(yīng)地址比較器和屬性判別邏輯的信號,對應(yīng)作出關(guān)閉或開啟地址、控制及數(shù)據(jù)總線的反應(yīng);(2)、存儲區(qū)加密單元,用于對若干個超級用戶可編程區(qū)塊進行加密保護,其內(nèi)容包括①、加密使能寄存器,用來配置各個超級用戶可編程區(qū)塊的加密使能;②、密鑰寄存器,用于存放可軟件編程的密鑰;③、數(shù)據(jù)加密/解密器,使用密鑰寄存器中的軟密鑰對CPU核輸出到各個超級用戶可編程區(qū)塊的數(shù)據(jù)進行加密,對各個超級用戶可編程區(qū)塊輸入到CPU核的數(shù)據(jù)進行解密;④、地址加密器,使用密鑰寄存器中的軟密鑰將CPU核輸出到各個超級用戶可編程區(qū)塊的地址打散;(3)、系統(tǒng)區(qū)加密單元,用于對系統(tǒng)區(qū)進行加密保護,其內(nèi)容包括①、硬密鑰,該密鑰為硬件編程的密鑰,用于對系統(tǒng)區(qū)加密;②、數(shù)據(jù)加密/解密器,使用硬密鑰對CPU核輸出到系統(tǒng)區(qū)的數(shù)據(jù)進行加密,對系統(tǒng)區(qū)輸入到CPU核的數(shù)據(jù)進行解密;③、地址加密器,使用硬密鑰將CPU核輸出到系統(tǒng)區(qū)的地址打散。
2.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于上述訪問屬性保護單元中還包括訪問狀態(tài)寄存器和計數(shù)器,其中訪問狀態(tài)寄存器,用于記錄非法訪問發(fā)生的區(qū)塊和訪問類型信息,其中包含訪問狀態(tài)位,對應(yīng)記錄所有區(qū)塊中的訪問狀態(tài)合法/非法;TC位,存放傳輸代碼信號,該信號與上一次非法訪問相聯(lián)系;RW位,記錄上次非法訪問時讀/寫引腳信號;計數(shù)器,用于記錄相同類型非法訪問次數(shù),如果記錄的次數(shù)到達設(shè)定次數(shù)后,系統(tǒng)檢測到外部的惡意攻擊和破解,產(chǎn)生一個信號將鎖定系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于上述存儲器加密保護單元還包括一對應(yīng)超級用戶可編程區(qū)塊的使能控制寄存器,用于將系統(tǒng)復(fù)位時處于禁止訪問狀態(tài)的超級用戶可編程區(qū)塊使能。
4.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于上述超級用戶可編程區(qū)塊加密中,每個區(qū)塊的加密密鑰設(shè)成不同的。
5.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于所述軟密鑰對若干個超級用戶可編程區(qū)塊中的數(shù)據(jù)加密時,是以1個字節(jié)為單位進行的,而對地址加密時則是在1K字節(jié)區(qū)內(nèi)以四個字節(jié)為單位而進行的,即32位地址中最高的22位及最低的2位是不加密的,中間8位地址是要通過打亂進行加密的。
6.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于所述若干個超級用戶可編程區(qū)塊的訪問屬性可選擇下列不同類型中的一種訪問屬性代碼普通用戶訪問 超級用戶訪問0000 RWX RWX0001 R-X RWX0010 R----RWX0011 ----XRWX0100 ------ RWX0101 ------ R-X0110 ------ R----0111 ------ ----X1000 R-XR-X1001 R---- R----1010 ----X ----X1011 ------ ------1100 RW-- RW---1101 ------ RW--其中R表示讀操作,W表示寫操作,X表示執(zhí)行操作,---表示不允許。
7.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于上述超級用戶可編程區(qū)塊數(shù)≤存儲器保護單元中所設(shè)的配置寄存器的數(shù)量,各配置寄存器與各區(qū)塊一一對應(yīng)。
8.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于上述超級用戶可編程區(qū)塊中,每個區(qū)塊的大小在1K字節(jié)~4G字節(jié)范圍,并以2的冪的倍數(shù)變化。
9.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于上述超級用戶可編程區(qū)塊中,每個區(qū)塊的基地址可以位于邏輯空間中的任意位置,并且自動變?yōu)樵摲謪^(qū)大小的整數(shù)倍,
10.根據(jù)權(quán)利要求1所述的嵌入式CPU,其特征在于上述超級用戶通過相關(guān)寄存器對若干個超級用戶可編程區(qū)塊的基地址、大小、是否加密以及訪問屬性進行配置。
全文摘要
一種用于信息安全的嵌入式CPU,其特征是在CPU核與存儲器及外設(shè)間設(shè)置一道MEPU(存儲器加密保護單元)閘門。特點是1.采用對數(shù)據(jù)加密同時將數(shù)據(jù)存放的地址打散的做法實現(xiàn)了先進的反跟蹤機制;2.將用戶分為超級用戶和普通用戶,超級用戶具有特定的權(quán)限能配置MEPU,設(shè)置普通用戶的權(quán)限;3.將內(nèi)存空間分成系統(tǒng)區(qū)塊、MEPU控制區(qū)塊和若干個超級用戶可編程區(qū)塊,其中各可編程區(qū)塊可由超級用戶設(shè)置其大小和位置,指定其訪問權(quán)限和是否加密;4.對超級用戶可編程區(qū)塊采用軟密鑰加密,而且每個區(qū)塊的加密密鑰不相同,對系統(tǒng)區(qū)塊采用硬密鑰加密,該密鑰只有芯片制造商知道;5.設(shè)有訪問非法類型判定及計數(shù)機制,能檢測到外部的惡意攻擊和破解,并采取措施保護系統(tǒng)。
文檔編號G06F9/30GK1545023SQ20031010640
公開日2004年11月10日 申請日期2003年11月21日 優(yōu)先權(quán)日2003年11月21日
發(fā)明者季紅彬, 于麥口, 孫濤, 蔣斌 申請人:蘇州國芯科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1