專利名稱:使用受保護(hù)的非易失性存儲(chǔ)器的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明公開的內(nèi)容一般涉及使用受保護(hù)的非易失性存儲(chǔ)器。
技術(shù)背景使用軟件可編程設(shè)備的電子設(shè)備供應(yīng)商關(guān)心軟件安全性。為了解決 對(duì)這些安全的擔(dān)心,這種設(shè)備經(jīng)常使用安全技術(shù)諸如驗(yàn)證和加密。雖 然驗(yàn)證和加密是有用的工具,但這種方法依賴于保護(hù)一個(gè)或多個(gè)用于驗(yàn) 證或解密程序數(shù)據(jù)的密鑰。經(jīng)常將需要被保護(hù)的密鑰存儲(chǔ)在出售和使 用的電子設(shè)備的諸如非易失性存儲(chǔ)器之類的存儲(chǔ)器內(nèi)。在使用所述電 子設(shè)備乃至在開發(fā)期間,包含所述密鑰的存儲(chǔ)器可以由未被授權(quán)的第三 方訪問,從而引起安全問題。因此,需要一種保護(hù)軟件程序數(shù)據(jù)及保護(hù) 所述程序數(shù)據(jù)的安全程序的相關(guān)密鑰安全性的改進(jìn)系統(tǒng)和方法,其中這 種密鑰被存儲(chǔ)在非易失性存儲(chǔ)器中。
圖1是說明能訪問部分受保護(hù)的非易失性存儲(chǔ)器設(shè)備的系統(tǒng)的方框圖;圖2是提供一部分圖1系統(tǒng)的更多細(xì)節(jié)的方框圖;以及 圖3是激活能訪問部分受保護(hù)非易失性存儲(chǔ)器的處理器設(shè)備的方法 流程圖。
具體實(shí)施方式
參見圖1,示出數(shù)據(jù)處理系統(tǒng)100。 該系統(tǒng)100包括處理器設(shè)備 102、易失性存儲(chǔ)器104、第一非易失性存儲(chǔ)器106和第二非易失性存儲(chǔ) 器108。系該統(tǒng)100還包括控制寄存器110和到JTAG控制模塊112的 JTAG接口 130。處該理器設(shè)備102被耦合用于訪問控制寄存器110并 且具有輸入端以經(jīng)由JTAG接口 130接收外部測(cè)試時(shí)鐘輸入。處理器設(shè) 備102包括與JTAG測(cè)試接口 130連接的測(cè)試保護(hù)邏輯126。處理器設(shè) 備102經(jīng)由存儲(chǔ)器總線114與易失性存儲(chǔ)器104耦合。在具體的實(shí)施
例中,該易失性存儲(chǔ)器104是隨機(jī)存取存儲(chǔ)器(RAM)設(shè)備。處理器 設(shè)備102經(jīng)由存儲(chǔ)器總線114以及經(jīng)由中間的屏蔽邏輯122與第一非易 失性存儲(chǔ)器106耦合。該屏蔽邏輯122耦合第一非易失性存儲(chǔ)器106 到存儲(chǔ)器總線114并且具有ROM屏蔽位124的輸入。ROM屏蔽位124 可以被存儲(chǔ)并且編程,作為多個(gè)控制寄存器110中的一個(gè)或可以在分離 的一次寫入存儲(chǔ)設(shè)備中執(zhí)行。該處理器設(shè)備102經(jīng)由存儲(chǔ)器總線114 與第二非易失性存儲(chǔ)器108耦合。第一非易失性存儲(chǔ)器106包括到屏 蔽邏輯122的第一接口 120和到存儲(chǔ)器總線114的外部接口 118。該第 二非易失性存儲(chǔ)器108包括到存儲(chǔ)器總線114的接口 116。該第一非易失性存儲(chǔ)器106包括存儲(chǔ)器第一屏蔽部分150,該第一 屏蔽部分150是屏蔽的部分;以及存儲(chǔ)器第二部分160。該屏蔽部分150 包括存儲(chǔ)的密鑰集數(shù)據(jù)152。在具體的實(shí)施例中,密鑰數(shù)據(jù)152包括驗(yàn) 證密鑰、加密密鑰、密鑰集提取數(shù)據(jù)以及檢索和使用密鑰集信息所需的 密鑰集提取程序邏輯。第二非易失性存儲(chǔ)器108在具體的實(shí)施例中可 以實(shí)現(xiàn)為快速存儲(chǔ)器并且包括諸如引導(dǎo)程序代碼140的數(shù)據(jù)。在具體 的實(shí)施例中,第一非易失性存儲(chǔ)器106可以被實(shí)現(xiàn)為只讀存儲(chǔ)器 (ROM)。在具體的實(shí)施例中,引導(dǎo)程序代碼140包括多個(gè)散布的驗(yàn)證字。多 個(gè)驗(yàn)證字在從第二非易失性存儲(chǔ)器108傳輸引導(dǎo)程序代碼到隨機(jī)存取存 儲(chǔ)器104期間使用,并且提供一種驗(yàn)證引導(dǎo)程序代碼有效性的方法以檢 測(cè)第三方的越權(quán)使用或黑客攻擊。在具體的實(shí)施例中,使用在非易失 性存儲(chǔ)器106的屏蔽部分150的密鑰集152內(nèi)得到的驗(yàn)證密鑰評(píng)估和驗(yàn) 證所述驗(yàn)證字。在操作期間, 一旦給系統(tǒng)100加電,非易失性存儲(chǔ)器106的屏蔽部 分150處于無屏蔽模式,該模式允許對(duì)密鑰集152的讀訪問。在無屏蔽 模式中的初始化期間,處理器102可以檢索密鑰集152并且可以使用密 鑰集內(nèi)的密鑰以執(zhí)行將所述應(yīng)用程序代碼140從第二非易失性存儲(chǔ)器108 傳輸?shù)诫S機(jī)存取存儲(chǔ)器104中的傳輸處理。密鑰集可能包括驗(yàn)證密鑰 和/或解密密鑰。驗(yàn)證密鑰可被用于驗(yàn)證程序代碼的有效性以及訪問和 比較傳輸?shù)臄?shù)據(jù)和第一驗(yàn)證字,并且如果這種代碼已經(jīng)在先前加密,解
密密鑰可被用于解密所述程序代碼。因此,密鑰集152可以由處理器設(shè)備102使用以提供將程序代碼140從非易失性存儲(chǔ)器108到隨機(jī)存取 存儲(chǔ)器104的安全初始傳輸。在程序代碼已經(jīng)被傳輸?shù)诫S機(jī)存取存儲(chǔ)器104中之后,但是在由處 理器102執(zhí)行所述程序代碼之前,ROM屏蔽位124可以由處理器102 設(shè)置。通過設(shè)置ROM屏蔽位124,第一非易失性存儲(chǔ)器106的屏蔽部 分150進(jìn)入屏蔽模式,其中在該模式下密鑰集152不可讀。在這個(gè)情 況中,屏蔽邏輯122阻止對(duì)第一非易失性存儲(chǔ)器106的屏蔽部分150的 訪問,并且代之以可能提供表示已屏蔽和不可讀存儲(chǔ)器狀態(tài)的錯(cuò)誤代碼 或固定值。在ROM屏蔽位124已經(jīng)被設(shè)置并且第一非易失性存儲(chǔ)器106 的屏蔽部分150進(jìn)入屏蔽模式以限制對(duì)密鑰集152的訪問之后,處理器 設(shè)備102可以從監(jiān)控模式轉(zhuǎn)換為用戶操作模式并且然后可以執(zhí)行來自隨 機(jī)訪問存儲(chǔ)器104的指令。其后,在用戶模式下的處理器設(shè)備102在 正常操作期間執(zhí)行指令。在用戶執(zhí)行模式和正常操作期間,應(yīng)注意屏 蔽部分150保持在屏蔽模式從而限制對(duì)密鑰集152的訪問。因此,ROM 屏蔽位124和第一非易失性存儲(chǔ)器106的屏蔽部分150,連同密鑰集152 一起,提供程序代碼傳輸?shù)诫S機(jī)存取存儲(chǔ)器104的增強(qiáng)的安全性。未被授權(quán)的第三方可能經(jīng)由諸如JTAG控制接口 130之類的測(cè)試接 口嘗試對(duì)密鑰集152的訪問。為了限制這種未授權(quán)訪問,處理器設(shè)備102 包括測(cè)試保護(hù)邏輯126。測(cè)試保護(hù)邏輯126響應(yīng)于外部時(shí)鐘輸入并且可 以檢測(cè)屏蔽部分150的嘗試未授權(quán)訪問。在具體的實(shí)施例中,處理器 設(shè)備102,響應(yīng)于由測(cè)試保護(hù)邏輯126檢測(cè)多個(gè)超過閾值的時(shí)鐘周期, 可以設(shè)置ROM屏蔽位124。在具體的范例中,檢測(cè)閾值小于四十時(shí)鐘 周期,諸如一組二十時(shí)鐘周期。在JTAG指令的情況中,最小JTAG指 令將需要多個(gè)大于二十的時(shí)鐘周期。因此,小于四十的閾值和優(yōu)選的 二十時(shí)鐘周期可被用于檢測(cè)并且然后對(duì)經(jīng)由JTAG接口訪問密鑰集152 的未授^i嘗試作出響應(yīng)。參見圖2,示出系統(tǒng)100部分的具體實(shí)施例,其說明第一非易失性 存儲(chǔ)器106和屏蔽邏輯122的功能。第一非易失性存儲(chǔ)器106經(jīng)由第 一接口 120與讀多路復(fù)用器(MUX) 202耦合。MUX202經(jīng)由接口 118
與存儲(chǔ)器總線114耦合。MUX 202具有固定值206的輸入,其可能是 錯(cuò)誤代碼或屏蔽狀態(tài)的其他指示。MUX 202包括由邏輯模塊204提供 的選擇輸入。邏輯模塊204響應(yīng)于可能由一次寫入存儲(chǔ)器220提供的 ROM屏蔽位124。邏輯模塊204還響應(yīng)于經(jīng)由存儲(chǔ)器接口 118從存儲(chǔ) 器總線114提供的地址代碼118。在操作期間,ROM屏蔽位124被提供到邏輯模塊204以指示非易 失性存儲(chǔ)器106的屏蔽部分150的狀態(tài)。邏輯模塊204還從存儲(chǔ)器總 線114中接收地址。當(dāng)從存儲(chǔ)器總線114中請(qǐng)求的地址在存儲(chǔ)器150 的屏蔽部分之外時(shí),然后數(shù)據(jù)諸如引導(dǎo)程序或來自于存儲(chǔ)器160的無屏 蔽部分內(nèi)的其他數(shù)據(jù),從第一非易失性存儲(chǔ)器106通過MUX 202經(jīng)由 接口 118提供到存儲(chǔ)器總線114中。然而,當(dāng)從存儲(chǔ)器總線114中請(qǐng)求的地址是在存儲(chǔ)器150的屏蔽部 分內(nèi)的地址時(shí)以及當(dāng)ROM屏蔽位已經(jīng)設(shè)置時(shí),邏輯模塊204提供選擇 器給MUX 202,以僅僅經(jīng)由接口 118提供固定值206作為給存儲(chǔ)器總 線114的輸出。在這種情況下,存儲(chǔ)器150的屏蔽部分內(nèi)容處于安全 屏蔽狀態(tài)并且被保護(hù)不受訪問。此外,為了避免對(duì)ROM屏蔽位124的 未授權(quán)修改,ROM屏蔽位可以存儲(chǔ)和編程到一次寫入存儲(chǔ)器220中。對(duì) 于一次寫入存儲(chǔ)器, 一旦ROM屏蔽位已經(jīng)設(shè)置,存儲(chǔ)器不能被修改。使 用一次寫入存儲(chǔ)器從而對(duì)于保持屏蔽非易失性存儲(chǔ)器106的第一部分150 提供增強(qiáng)的安全性。在具體的實(shí)施例中,作為在無屏蔽操作模式期間 從非易失性存儲(chǔ)器中檢索密鑰集的需要,存儲(chǔ)器150的屏蔽部分包括驗(yàn) 證密鑰、解密密鑰,和密鑰集提取程序和數(shù)據(jù)。因此,非易失性存儲(chǔ) 器106包括存儲(chǔ)器150的第一部分,該第一部分是受保護(hù)的并且在當(dāng)屏 蔽位指示無屏蔽操作模式時(shí)是可讀的,但是當(dāng)屏蔽位指示屏蔽操作模式 時(shí)是不可讀的。此外,非易失性存儲(chǔ)器106包括未保護(hù)的第二部分160, 不管屏蔽位124的值如何該第二部分160是可讀的。參見附圖3,示出激活能訪問非易失性存儲(chǔ)器的處理器設(shè)備的方 法。所述方法包括給處理器設(shè)備加電,如在302所示。在具體的實(shí)施 例中,處理器設(shè)備耦合到只讀存儲(chǔ)器(ROM),該只讀存儲(chǔ)器具有屏蔽 的存儲(chǔ)器的受保護(hù)部分,但是一旦加電受保護(hù)的部分處于無屏蔽模式。
所述方法進(jìn)一步包括從處于無屏蔽操作模式的非易失性存儲(chǔ)器的受保護(hù) 部分讀密鑰集數(shù)據(jù),如在304所示,并且從諸如快速存儲(chǔ)器之類的第二非易失性存儲(chǔ)器傳輸數(shù)據(jù)到諸如隨機(jī)存取存儲(chǔ)器(RAM)之類的主存儲(chǔ) 器中。這個(gè)步驟還包括訪問密鑰集提取數(shù)據(jù)以及使用密鑰集提取數(shù)據(jù) 和程序邏輯以訪問密鑰集來執(zhí)行如傳輸數(shù)據(jù)所需要的驗(yàn)證和解密操作, 如在306所示。在具體的例證性的范例中,傳輸?shù)臄?shù)據(jù)是包括由處理 器執(zhí)行的程序指令的應(yīng)用程序。所述方法進(jìn)一步包括設(shè)置屏蔽位,從而設(shè)置非易失性存儲(chǔ)器的受保 護(hù)部分在密鑰集不可讀時(shí)處于屏蔽模式。在數(shù)據(jù)傳送已經(jīng)完成之后但 是在由處理器執(zhí)行RAM中的傳輸?shù)某绦虼a之前,存儲(chǔ)器受保護(hù)的部 分被設(shè)置為屏蔽模式。所述方法進(jìn)一步包括由處理器執(zhí)行程序數(shù)據(jù),其中這種程序數(shù)據(jù)包 括被傳輸?shù)絉AM中的指令,如在310所示。在由處理器從RAM中執(zhí) 行程序代碼期間,處理器設(shè)備可以在用戶模式中執(zhí)行,并且在這種用戶 模式中非易失性存儲(chǔ)器的屏蔽部分保持設(shè)置以阻止對(duì)密鑰集的未授權(quán)訪 問。因此,說明的激活處理器設(shè)備的方法提供從非易失性存儲(chǔ)器到隨機(jī) 存取存儲(chǔ)器由處理器設(shè)備可用的程序代碼的初始安全傳輸。上述公開的主題被認(rèn)為是示例性而不是限制性的,并且附加權(quán)利要 求書意圖覆蓋落入本發(fā)明真實(shí)精神和范圍內(nèi)的所有修改、改進(jìn)及其他實(shí) 施例。因此,在法律所允許的最大范圍,本發(fā)明的范圍將由下列權(quán)利 要求書和它們的等效表述的最寬可允許解釋來限定,而不應(yīng)該由上述詳 細(xì)說明約束或限制。
權(quán)利要求
1、 一種系統(tǒng),包括 處理器;處理器可訪問的易失性存儲(chǔ)器;處理器可訪問的第一非易失性存儲(chǔ)器,該第一非易失性存儲(chǔ)器包括 存儲(chǔ)器的第一部分,該存儲(chǔ)器的第一部分是受保護(hù)的并且當(dāng)屏蔽位指示 無屏蔽的操作模式時(shí)是可讀的,但是當(dāng)屏蔽位指示屏蔽操作模式時(shí)是不 可讀的;以及存儲(chǔ)器的第二部分,該存儲(chǔ)器的第二部分是未受保護(hù)的并 且不管屏蔽位的值如何該存儲(chǔ)器的第二部分是可讀的;和第二非易失性存儲(chǔ)器,該第二非易失性存儲(chǔ)器包括被傳輸?shù)揭资?存儲(chǔ)器中的數(shù)據(jù)。
2、 如權(quán)利要求1所述的系統(tǒng),其中密鑰集存儲(chǔ)在第一部分內(nèi),一 旦密鑰集傳輸?shù)揭资源鎯?chǔ)器,該密鑰集至少執(zhí)行對(duì)第二非易失性存儲(chǔ) 器中的數(shù)據(jù)進(jìn)行驗(yàn)證和解密的其中一種操作。
3、 如權(quán)利要求1所述的系統(tǒng),其中被傳輸?shù)臄?shù)據(jù)是程序代碼。
4、 如權(quán)利要求3所述的系統(tǒng),其中該程序代碼包括多個(gè)驗(yàn)證字。
5、 如權(quán)利要求3所述的系統(tǒng),其中所述屏蔽位在執(zhí)行從第二非易 失性存儲(chǔ)器傳輸程序代碼到易失性存儲(chǔ)器的操作之后、但在由處理器執(zhí) 行程序代碼之前被設(shè)置。
6、 如權(quán)利要求5所述的系統(tǒng),其中所述屏蔽位在執(zhí)行程序代碼的 第一指令之前被設(shè)置。
7、 如權(quán)利要求1所述的系統(tǒng),進(jìn)一步包括外部測(cè)試接口保護(hù)邏輯, 所述外部測(cè)試接口保護(hù)邏輯響應(yīng)于外部測(cè)試時(shí)鐘輸入,并且其中該屏蔽 位在檢測(cè)到外部測(cè)試時(shí)鐘輸入的多個(gè)周期超過閾值之后被設(shè)置。
8、 如權(quán)利要求7所述的系統(tǒng),其中所述閾值小于40時(shí)鐘周期。
9、 如權(quán)利要求8所述的系統(tǒng),其中所述閾值是20時(shí)鐘周期并且其 中該外部測(cè)試時(shí)鐘輸入是與JTAG指令有關(guān)的JTAG時(shí)鐘。
10、 如權(quán)利要求2所述的系統(tǒng),其中密鑰集與唯一的產(chǎn)品制造商有關(guān)。
11、 如權(quán)利要求1所述的系統(tǒng),其中第一非易失性存儲(chǔ)器的第二部 分包括音頻數(shù)據(jù)。
12、 如權(quán)利要求2所述的系統(tǒng),其中所述密鑰集包括驗(yàn)證密鑰和解 密密鑰。
13、 如權(quán)利要求1所述的系統(tǒng),其中該第一非易失性存儲(chǔ)器是只讀 存儲(chǔ)器,并且該第二非易失性存儲(chǔ)器是快速存儲(chǔ)器。
14、 一種存儲(chǔ)設(shè)備,包括存儲(chǔ)器的第一部分,該存儲(chǔ)器的第一部分是受保護(hù)的并且當(dāng)屏蔽位 指示無屏蔽操作模式時(shí)是可讀的,而當(dāng)屏蔽位指示屏蔽模式操作時(shí)是不 可讀的;和存儲(chǔ)器的第二部分,該存儲(chǔ)器的第二部分是未受保護(hù)的并且不管屏 蔽位的值如何該存儲(chǔ)器的第二部分是可讀的。
15、 如權(quán)利要求14所述的存儲(chǔ)設(shè)備,進(jìn)一步包括與存儲(chǔ)器的第一 部分耦合的讀多路復(fù)用器,控制所述多路復(fù)用器以至少部分地響應(yīng)于屏蔽位。
16、 如權(quán)利要求15所述的存儲(chǔ)設(shè)備,其中該多路復(fù)用器在無屏蔽 操作模式期間從存儲(chǔ)器的第一部分中輸出值,并且其中該多路復(fù)用器在 屏蔽操作模式期間輸出指示錯(cuò)誤狀態(tài)的固定輸出值。
17、 如權(quán)利要求14所述的存儲(chǔ)設(shè)備,其中屏蔽位被存儲(chǔ)在一次寫 入存儲(chǔ)設(shè)備中,以便在單一的寫操作之后屏蔽位不是用戶可變更的。
18、 一種激活能訪問只讀存儲(chǔ)器的處理器設(shè)備的方法,所述方法包括給處理器設(shè)備加電,其中只讀存儲(chǔ)器具有存儲(chǔ)器受保護(hù)的部分,該 存儲(chǔ)器受保護(hù)的部分是可屏蔽的并且一旦加電處于無屏蔽模式;從存儲(chǔ)器保護(hù)部分中讀取密鑰集連同執(zhí)行向隨機(jī)存取存儲(chǔ)器 (RAM)傳輸數(shù)據(jù);和在執(zhí)行數(shù)據(jù)傳輸之后,設(shè)置存儲(chǔ)器受保護(hù)的部分為屏蔽模式,其中 密鑰集不再是從只讀存儲(chǔ)器中可讀的。
19、 如權(quán)利要求18所述的方法,其中在讀出密鑰集之后,該密鑰 集被用于對(duì)傳輸?shù)絉AM中的數(shù)據(jù)執(zhí)行驗(yàn)證和解密。
20、 如權(quán)利要求18所述的方法,其中傳輸?shù)絉AM的數(shù)據(jù)包括程序指令以及進(jìn)一步包括由處理器設(shè)備執(zhí)行程序指令。
21、 如權(quán)利要求18所述的方法,其中受保護(hù)的部分進(jìn)一步包括密 鑰集提取數(shù)據(jù),當(dāng)受保護(hù)的部分處于無屏蔽模式時(shí)該密鑰集提取數(shù)據(jù)是 可讀的。
22、 如權(quán)利要求18所述的方法,其中與存儲(chǔ)器受保護(hù)部分有關(guān)的 屏蔽位存儲(chǔ)在一次寫入存儲(chǔ)器中。
全文摘要
本發(fā)明所公開的內(nèi)容包括使用處理器和受保護(hù)存儲(chǔ)器的系統(tǒng)和方法。在具體的實(shí)施例中,所述系統(tǒng)包括處理器、處理器可訪問的易失性存儲(chǔ)器和處理器可訪問的第一非易失性存儲(chǔ)器。該第一非易失性存儲(chǔ)器包括受保護(hù)的存儲(chǔ)器的第一部分,當(dāng)屏蔽位指示無屏蔽操作模式時(shí)該存儲(chǔ)器的第一部分是可讀的,但是當(dāng)屏蔽位指示屏蔽操作模式時(shí)該存儲(chǔ)器的第一部分是不可讀的;以及未保護(hù)的存儲(chǔ)器的第二部分,不管屏蔽位的值如何該存儲(chǔ)器的第二部分是可讀的。所述系統(tǒng)包括第二非易失性存儲(chǔ)器,該第二非易失性存儲(chǔ)器包括被傳輸?shù)揭资源鎯?chǔ)器的數(shù)據(jù)。
文檔編號(hào)G06F12/14GK101124768SQ200580017575
公開日2008年2月13日 申請(qǐng)日期2005年9月20日 優(yōu)先權(quán)日2005年6月24日
發(fā)明者D·C·巴克 申請(qǐng)人:西格馬特爾公司