本發(fā)明涉及一種安全元件。安全元件是防篡改的處理電路。
背景技術(shù):
如今,安全元件是可拆卸的獨(dú)立芯片并且焊接在最大電子設(shè)備的主板上。一般,安全元件通常包括具有易失性存儲(chǔ)器和非易失性存儲(chǔ)器的微處理器、頻繁地密碼化處理器以及專用于安全化的某種硬件電路。與智能卡芯片有關(guān)的現(xiàn)有技術(shù)構(gòu)成關(guān)于安全化并且關(guān)于應(yīng)用這些安全元件是可能的大部分。
然而,安全元件中所加載的軟件必須是安全的并且安全地加載在安全元件中。一般,芯片制造商可以將空白安全元件提供給組件集成商,其將在受信組件是真正空白的來自組件制造商的保證的情況下對(duì)安全元件加載受信軟件。組件集成商通常在芯片內(nèi)部加載安全操作系統(tǒng)(os)。芯片及其os可以然后嵌入在類似便攜式卡的設(shè)備中,或交付給另一設(shè)備制造商以包括在更大的電子設(shè)備(例如智能電話、計(jì)算機(jī)、車輛、測量設(shè)備等)中。
在接收到其os之后,安全元件可以遠(yuǎn)程地并且安全地加載應(yīng)用。處理安全元件的存取密鑰的組件集成商保證安全加載的信任度。因?yàn)椴僮飨到y(tǒng)必須適配為接收最終應(yīng)用,所以某種問題可能產(chǎn)生。另一問題是,電子設(shè)備的最終客戶不能選取作為其應(yīng)用的安全化的保證的組件集成商。
理想地,將最佳的是,安全元件將以在購買電子設(shè)備之后可以進(jìn)行完整定制的這樣的方式完全空白地集成到電子設(shè)備中。但主要問題是具體地在電子設(shè)備的多次轉(zhuǎn)售之后如何對(duì)最終客戶保證安全元件是真正空白的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提出一種包括用于保證組件是真正空白的一些硬件特征的嵌入式電路的新結(jié)構(gòu)。具體地說,本發(fā)明是一種安全元件,其包括至少一個(gè)處理器、至少一個(gè)通信接口、至少一個(gè)存儲(chǔ)器以及至少一個(gè)總線存取控制器。所述總線存取控制器至少定義第一區(qū)域、第二區(qū)域和安全區(qū)域。所述第一區(qū)域包括能夠在所述第二區(qū)域中加載程序包的第一加載器程序。所述安全區(qū)域包括能夠?qū)λ龅诙^(qū)域中所加載的程序包進(jìn)行鑒權(quán)的鑒權(quán)密鑰。在對(duì)所述第二區(qū)域中所加載的所述程序包進(jìn)行鑒權(quán)之后,所述第一加載器程序的存取權(quán)限以所述第一區(qū)域中的程序不再可以存取所述第二區(qū)域的這樣的方式改變。
使用具有在加載程序保證之后改變的存取權(quán)限的第一加載器程序消除通過第一加載器攻擊的可能方式。
優(yōu)選地,所述第二區(qū)域中所加載的所述程序包可以包括鑒權(quán)令牌,其包括可以通過所述鑒權(quán)密鑰鑒權(quán)的所加載的程序包的簽名。所加載的程序包可以包含通過所述鑒權(quán)密鑰加密的第二密鑰,所述第二密鑰用于對(duì)所述程序包的至少一個(gè)部分進(jìn)行解密。
所述第二區(qū)域中所加載的所述程序包可以包括第二加載器程序。該第二加載器包是由os制作商制作的,對(duì)該第二加載器的控制是更可靠的,并且當(dāng)所有環(huán)境在控制下時(shí)使得能夠使用本領(lǐng)域公知的更復(fù)雜的保護(hù)機(jī)制。所述第二加載器程序進(jìn)行的隨后加載可以通過加密的方式得以進(jìn)行,所述解密是使用所述第二密鑰進(jìn)行的。
可以通過附加硬件防火墻化進(jìn)行安全化的增加。所述總線存取控制器可以定義可以僅由第二加載器程序加載的例如專用于所述操作系統(tǒng)的第三區(qū)域。另一安全化改進(jìn)可以包括:將所述第二密鑰存儲(chǔ)在所述安全區(qū)域中。所述總線存取控制器可以定義可以從在另一區(qū)域中運(yùn)行的任何程序在讀取和寫入模式下存取的中性區(qū)域,所述中性區(qū)域用于在各區(qū)域之間傳遞數(shù)據(jù),并且其中,在所述總線存取控制器檢測到存取權(quán)限違反的情況下,擦除所述中性區(qū)域中的所有數(shù)據(jù)。所述安全區(qū)域可以包括加密和解密的一些安全功能,其可以從另一區(qū)域啟動(dòng),但它們的執(zhí)行是僅在所述安全區(qū)域中進(jìn)行的。
為了反復(fù)使用的目的,在完成擦除所述第二區(qū)域之后,所述第一加載器程序可以再次存取所述第二區(qū)域。該機(jī)制可以允許反復(fù)使用芯片而沒有公開機(jī)密數(shù)據(jù)的風(fēng)險(xiǎn),因?yàn)樗鼈儽徊脸?。在此情況下,如果存在第三區(qū)域,則應(yīng)與所述第二區(qū)域同時(shí)擦除所述第三區(qū)域。為了防止意外擦除,應(yīng)僅在來自連接到所述通信接口的主機(jī)設(shè)備的關(guān)于擦除的鑒權(quán)之后進(jìn)行所述第二區(qū)域的擦除。
附圖說明
將參照附圖更詳細(xì)地描述本發(fā)明,其中:
圖1示出安全元件的框圖,
圖2示出根據(jù)本發(fā)明的安全元件的安全化域,
圖3示出根據(jù)本發(fā)明的安全化域所定義的存儲(chǔ)器映射,
圖4和圖5示出存儲(chǔ)器根據(jù)其安全化域的的存取表,
圖6示出密鑰管理的表,
圖7是安裝副引導(dǎo)加載器的流程圖。
具體實(shí)施方式
圖1示出安全元件100的架構(gòu)的示例,其包括連接到總線存取控制器103所監(jiān)控的中央總線102的處理單元101。中央總線還連接到通信接口104、易失性存儲(chǔ)器(ram)105、非易失性存儲(chǔ)器106以及密碼化協(xié)處理器107。安全元件的其它架構(gòu)可以適用于本發(fā)明。在集成電路中制作該安全元件100。但考慮安全元件將是所配置的軟件,其可以看作一片芯片。換言之,安全元件可以集成在片上系統(tǒng)內(nèi)部,其中,安全元件是通過其通信接口104進(jìn)行通信的模塊。
對(duì)于片上系統(tǒng)內(nèi)部所嵌入的安全元件100,通信接口104可以是連接到soc的中央總線的并行接口。在此情況下,安全元件100的主機(jī)是soc。通信接口104將主要包括緩沖器,用于從主機(jī)接收命令和數(shù)據(jù)。
如果將安全元件100制作為在集成電路內(nèi)部是單獨(dú)的,則通信接口104可以包括根據(jù)一個(gè)或多個(gè)公知協(xié)議的一個(gè)或多個(gè)接口。優(yōu)選地,使用串行接口(例如iso7816、iso、usb、i2c、spi、swp或?qū)τ趦蓚€(gè)芯片之間的通信所普遍使用的任何串行接口)。也可以具有無接觸接口,以將天線直接耦合到芯片(例如iso14443、zigbee、藍(lán)牙或任何其它接口)。
實(shí)現(xiàn)密碼化協(xié)處理器107,以用于使得計(jì)算專用于密碼化的某種操作比處理單元101更快。即使使用密碼化協(xié)處理器107并非必要的,也推薦具有用于執(zhí)行可能在通用處理器(例如處理單元101)上耗費(fèi)長的處理時(shí)間的強(qiáng)密碼化功能的密碼化協(xié)處理器107。
非易失性存儲(chǔ)器106可以包括若干類型的存儲(chǔ)器(例如rom、prom、e2prom或閃存e2prom)。典型地,存儲(chǔ)器的部分僅受編程一次,并且可以直接由ic制造商編程。ic制造商所提供的所有種類的數(shù)據(jù)和程序可以使用不可擦除的技術(shù)。易失性存儲(chǔ)器105和非易失性存儲(chǔ)器106被布置為在可由它們的地址容易地標(biāo)識(shí)的不同區(qū)域中是可分離的。
中央總線102是并行微處理器總線,其包括三個(gè)部分:一個(gè)部分用于地址,一個(gè)部分用于數(shù)據(jù),并且最后部分用于控制信號(hào)。總線存取控制器103監(jiān)控中央總線102的地址和控制信號(hào)。地址映射由用于在若干區(qū)域中分離存儲(chǔ)器的硬件定義,每個(gè)區(qū)域?qū)?yīng)于將稍后詳述的安全化域??刂菩盘?hào)使得總線存取控制器能夠獲知存儲(chǔ)器存取是讀取操作、寫入操作還是提取操作??紤]提取是用于執(zhí)行指令,存取總線控制器獲知從哪個(gè)地址將進(jìn)行下一存取。優(yōu)選地,總線控制器103通過不能修改安全元件100的所監(jiān)控的地址映射的這樣的方式硬引線化。總線存取控制器103包括可以編程以用于改變一個(gè)存取規(guī)則的非易失性類型的至少一個(gè)比特。本領(lǐng)域技術(shù)人員可以取決于將詳述的要實(shí)現(xiàn)的規(guī)則容易地制作該總線存取控制器。
圖2示出可以通過本發(fā)明實(shí)現(xiàn)的不同安全化域。第一域201是ic制造商的域。第一域201主要包含將用于安全地加載隨后軟件的主引導(dǎo)加載器。第二域202處于os制作商的控制下。第二域202包含副引導(dǎo)加載器。副引導(dǎo)加載器是由主引導(dǎo)加載器加載的,并且將用于加載操作系統(tǒng)。第三域203處于os制作商的控制下。第三域包含操作系統(tǒng)。第四域?qū)S糜谙M(fèi)者,并且包含應(yīng)用。所有域以一個(gè)域的軟件不能存取其它域的數(shù)據(jù)的這樣的方式通過防火墻得以分離。
在本發(fā)明優(yōu)選實(shí)現(xiàn)方式中,第一域與第二域之間以及第二域與第三域之間的防火墻是硬件防火墻,而第三域與第四域之間的防火墻是由os的軟件進(jìn)行的。在變形中,第二域和第三域也可以構(gòu)成沒有防火墻的單個(gè)域。第一域與第二域之間的硬件防火墻保證ic制造商與os制作商之間的秘密性。
圖3詳述對(duì)應(yīng)于不同域的存儲(chǔ)器映射,以用于解釋如何確保硬件安全化。在圖3中,第一域201在兩個(gè)存儲(chǔ)器區(qū)域中是共享的,一個(gè)專用于主引導(dǎo)加載器(pbl區(qū)域),并且另一個(gè)用于安全化功能(mz區(qū)域)。mz區(qū)域包括安全化功能,并且不能從pbl區(qū)域存取。第二域202包含副引導(dǎo)加載器,并且構(gòu)成sbl區(qū)域。第二域和第三域203和204放置在單個(gè)區(qū)域(os區(qū)域)中。這四個(gè)區(qū)域(pbl區(qū)域、mz區(qū)域、sbl區(qū)域和os區(qū)域)是通過總線存取控制器103所管理的硬件防火墻fw1、fw2和fw3彼此分離的區(qū)域。第五區(qū)域?qū)?yīng)于在關(guān)于所有區(qū)域的寫入和讀取方面是開放的共享區(qū)域。共享區(qū)域用于使得能夠在各分離的區(qū)域之間安全地交換信息。
區(qū)域的特定硬件防火墻化目的是防止原生地強(qiáng)制第一域與第二域之間的防火墻化的主引導(dǎo)加載器與副引導(dǎo)加載器之間的秘密的任何泄露。即使pbl具有軟件功能障礙或惡意程序已經(jīng)插入,于是證書化的硬件也將防止任何秘密泄露到相應(yīng)域外部??傊?,pbl不能公開sbl的秘密,并且反之亦然。
關(guān)于總線存取控制器的存取規(guī)則的更多細(xì)節(jié),參照?qǐng)D4和圖5。圖4對(duì)應(yīng)于在加載副引導(dǎo)加載器之前的存取規(guī)則,圖5對(duì)應(yīng)于在加載并且鑒權(quán)副引導(dǎo)加載器之后的存取規(guī)則。通過以密封規(guī)則達(dá)組件的壽命的這樣的方式在總線存取控制器中硬引線化實(shí)現(xiàn)這些圖4和圖5。如之前所指示的那樣,總線存取控制器103監(jiān)控總線和所處理的指令。在任何時(shí)間,總線存取控制器103獲知當(dāng)前所執(zhí)行的指令所來自的區(qū)域。取決于發(fā)源的區(qū)域,可以在其它區(qū)域上給予某種權(quán)限。在表中,r指示允許關(guān)于讀取操作的存取權(quán)限,w指示允許關(guān)于寫入操作的存取權(quán)限,x指示允許關(guān)于將來執(zhí)行的提取操作。
可見,圖4和圖5所定義的權(quán)限允許執(zhí)行僅在其區(qū)域中的指令。兩幅圖之間的僅一個(gè)差異是從pbl區(qū)域到sbl區(qū)域的存取權(quán)限。在圖4上,pbl區(qū)域具有用于讀取并且寫入sbl區(qū)域方面的存取的權(quán)限,以用于在sbl區(qū)域中下載程序包并且驗(yàn)證加載得以執(zhí)行。在下載包之后,包的鑒權(quán)將得以進(jìn)行并且是成功的,總線存取控制器的非易失性比特改變,并且從pbl區(qū)域到sbl區(qū)域的存取于是被禁止,如圖5中所指示的那樣。
可以由本領(lǐng)域技術(shù)人員取決于安全化和某選項(xiàng)的等級(jí)修改這種存儲(chǔ)器映射。在說明書的示例中,os區(qū)域與sbl區(qū)域分離。sbl區(qū)域具有讀取和寫入方面的os區(qū)域中的存取權(quán)限,因?yàn)閼?yīng)通過副引導(dǎo)加載器進(jìn)行os的所有更新。關(guān)于os區(qū)域,對(duì)于sbl區(qū)域,具體地說,對(duì)于使用可以感興趣于加載軟件應(yīng)用的來自sbl區(qū)域的一些信息,也給予一些存取權(quán)限??紤]兩個(gè)對(duì)應(yīng)域可以是相同的域,也可以定義用于sbl區(qū)域和os區(qū)域二者的單個(gè)區(qū)域。這是可能的,因?yàn)閛s制作商制作副引導(dǎo)加載器,以用于對(duì)os制作商保證完全標(biāo)識(shí)的引導(dǎo)加載器軟件安全地加載操作系統(tǒng)。操作系統(tǒng)與副引導(dǎo)加載器之間的防火墻化可以由軟件進(jìn)行。
可見,一些數(shù)據(jù)可以通過共享區(qū)域從一個(gè)區(qū)域傳遞到另一區(qū)域。通過該機(jī)制,僅數(shù)據(jù)正常地從一個(gè)區(qū)域傳送到另一區(qū)域。此外,接收數(shù)據(jù)的區(qū)域具有對(duì)接收到的數(shù)據(jù)的完全控制,因?yàn)槠湔5赜伤鰠^(qū)域的程序讀取。然而,如果總線存取控制器103檢測到權(quán)限違反,或如果檢測到處理單元的故障,則完全擦除共享存儲(chǔ)器??蛇x地,安全元件100可以包括一些安全化傳感器,以用于根據(jù)對(duì)于該安全組件已經(jīng)獲知的內(nèi)容檢測物理攻擊。如果安全化傳感器檢測到潛在攻擊,則也擦除共享存儲(chǔ)器。
對(duì)于從一個(gè)區(qū)域到另一區(qū)域的切換,兩種機(jī)制是可能的。第一種機(jī)制是在共享存儲(chǔ)器中加載與啟動(dòng)最終具有一些數(shù)據(jù)的功能對(duì)應(yīng)的指針并且然后激活指示切換到所選擇的區(qū)域的中斷。區(qū)域的激活可以然后讀取指針以及最終數(shù)據(jù)。在讀取之后,在區(qū)域中進(jìn)行指針的驗(yàn)證,以用于啟動(dòng)所指向的功能。
另一機(jī)制是在每個(gè)區(qū)域中定義一個(gè)或多個(gè)入口點(diǎn)。這些入口點(diǎn)可以與總線存取控制器標(biāo)識(shí)為對(duì)普通存取規(guī)則的所授權(quán)的例外的特定地址對(duì)應(yīng)。當(dāng)然,應(yīng)通過共享存儲(chǔ)器傳遞互補(bǔ)數(shù)據(jù)。
如之前所介紹的那樣,mz區(qū)域包含芯片的安全化功能。mz區(qū)域連同將由安全元件使用的密鑰一起包含一個(gè)或多個(gè)密碼化功能的代碼。通過相同方式,密碼化協(xié)處理器僅在mz域中正常地運(yùn)行。一些其它功能也專用于mz域(例如sbl域中所加載的代碼的鑒權(quán)、sbl區(qū)域的擦除、總線存取控制器的非易失性比特的鎖定和解鎖)。mz區(qū)域完全處于ic制造商的控制下,并且其應(yīng)是通過其軟件得以證書化的證書化域。因?yàn)椴⑽葱薷拇a,所以非易失性存儲(chǔ)器的部分可以是rom類型的。替代地,包含到mz中的某種功能可以啟動(dòng)替代處理單元進(jìn)行動(dòng)作以用于執(zhí)行一些功能的某種硬引線化的狀態(tài)機(jī)。
所有密碼化處理是在mz區(qū)域內(nèi)部進(jìn)行的。mz區(qū)域連同存取權(quán)限的表一起存儲(chǔ)所有密鑰。作為示例,圖6示出現(xiàn)將詳述的具有作為待在安裝處理期間使用的密鑰的三個(gè)密鑰的表。第一密鑰kpbl是分配給主引導(dǎo)加載器的密鑰,以用于對(duì)所加載的程序包具有被加載的權(quán)限進(jìn)行鑒權(quán),對(duì)尚未修改pbl區(qū)域進(jìn)行鑒權(quán),并且還對(duì)作為用于對(duì)副引導(dǎo)加載器inx加密的密鑰的第二密鑰ksbl進(jìn)行解密。優(yōu)選地,第三密鑰koem用于啟動(dòng)某種功能(例如存儲(chǔ)器擦除)。第一密鑰和第三密鑰是以授權(quán)分離可能地使用兩種不同算法的兩個(gè)不同功能的管理的這樣的方式分離的密鑰,這兩個(gè)密鑰kpbl和koem由ic制造商直接加載。在變形中,可以具有替代第一密鑰和第三密鑰的單個(gè)密鑰。
如圖6中所指示的那樣,密鑰對(duì)于一些域是可用的,而對(duì)于一些其它域并非可用的??紤]在mz區(qū)域內(nèi)部進(jìn)行所有密碼化處理,密鑰總是保留在mz區(qū)域中,但它們可以僅使用的處理是從所授權(quán)的區(qū)域啟動(dòng)的。在任何情況下,mz區(qū)域內(nèi)部寄存的密鑰從不離開mz區(qū)域,并且密鑰的所有用途必須在mz區(qū)域內(nèi)部執(zhí)行。第一密鑰kpbl對(duì)從sbl區(qū)域或從mz區(qū)域請(qǐng)求的處理是可用的,但如果請(qǐng)求出自另一區(qū)域,則不能使用該第一密鑰kpbl。第二密鑰ksbl對(duì)于sbl區(qū)域、mz區(qū)域和os區(qū)域是可用的,而對(duì)于其它區(qū)域并非可用的。第三密鑰koem對(duì)于pbl區(qū)域和mz區(qū)域是可用的。
參照?qǐng)D7的算法描述安裝處理。一旦安全元件通電,處理就開始(步驟700)。當(dāng)認(rèn)為電壓處于操作等級(jí)時(shí),執(zhí)行初始化的步驟701。該步驟主要重置組件的所有緩沖器并且將pbl區(qū)域中的程序指針定位在對(duì)應(yīng)于測試702的指令上。測試702包括:驗(yàn)證指示副引導(dǎo)加載器是否有效的非易失性存儲(chǔ)器中的標(biāo)志。如果sbl并非有效的,則將安全元件100置于等待狀態(tài)下
(703)。等待狀態(tài)是空閑狀態(tài),其中,來自通信接口104的中斷指示接收允許進(jìn)入下一步驟(其為測試704)的命令。測試704驗(yàn)證接收到的命令是否為擦除命令。如果命令并非擦除命令,則測試705驗(yàn)證其是否為加載命令。如果命令并非加載命令,則測試706驗(yàn)證其是否為安裝命令。如果命令并非安裝命令,則處理回到空閑步驟703,直到下一命令接收。
本領(lǐng)域技術(shù)人員可以注意,主引導(dǎo)加載器僅對(duì)出自主機(jī)的僅三條命令進(jìn)行反應(yīng)。這三條命令是對(duì)于加載程序必要的最小命令集合。必要的是,pbl是具有最小數(shù)量的命令的最小可能大小,以用于減少潛在攻擊風(fēng)險(xiǎn)。
如果接收到的命令是擦除命令,則執(zhí)行擦除步驟707。在該擦除步驟707期間,pbl將驗(yàn)證鑒權(quán)令牌。作為示例,鑒權(quán)令牌可以包括隨機(jī)數(shù),并且所述隨機(jī)數(shù)通過第三密鑰koem得以加密。加密方法可以是例如aes算法。pbl區(qū)域?qū)⑴R時(shí)請(qǐng)求mz區(qū)域要么使用第三密鑰koem計(jì)算數(shù)字的aes要么對(duì)所加密的數(shù)字進(jìn)行解密。結(jié)果將然后與令牌的其它部分比較。如果令牌得以鑒權(quán),則擦除sbl區(qū)域和os區(qū)域的所有非易失性存儲(chǔ)器。對(duì)于完成步驟707,重新寫入兩個(gè)非易失性標(biāo)志,一個(gè)指示sbl并非有效,另一個(gè)指示擦除非易失性存儲(chǔ)器。然后,處理可以回到空閑步驟703。
如果接收到的命令是加載命令,則執(zhí)行測試708。測試708僅驗(yàn)證指示是否正確地擦除存儲(chǔ)器的標(biāo)志的狀態(tài)。如果并非正確地擦除存儲(chǔ)器,則處理返回到空閑步驟703。如果擦除存儲(chǔ)器,則開始加載步驟709,其中,在sbl區(qū)域中加載指示不再擦除存儲(chǔ)器并且其中出自通信接口的程序包的加載的非易失性標(biāo)志。本領(lǐng)域技術(shù)人員可以注意,因?yàn)閟bl并非有效的,所以pbl區(qū)域可以在該步驟709期間存取sbl區(qū)域。
程序包包括sbl的加密的代碼、鑒權(quán)令牌以及第二密鑰ksbl。存在用于制作該程序包的很多替選,并且將主要詳述僅一個(gè)示例。加密的代碼是例如使用第二密鑰ksbl根據(jù)aes算法加密的。關(guān)于鑒權(quán)令牌,重要的是,定義可以使得能夠驗(yàn)證代碼完整性并且還允許加載代碼的令牌。關(guān)于對(duì)第二密鑰koem進(jìn)行加密,我們也應(yīng)使用第一密鑰kpbl,但os制造商無需獲知密鑰kpbl。關(guān)于允許該機(jī)制,ic制造商可以提供一對(duì)兩條信息構(gòu)成的標(biāo)識(shí)信息,一條信息是數(shù)字rpbl,另一條信息是與使用第一密鑰kpbl通過aes算法加密rpbl對(duì)應(yīng)的所加密的數(shù)字cpbl。用于加密第二密鑰ksbl的一種方式是使用信息rpbl進(jìn)行密碼化,信息cpbl傳遞到包中。然后,可以通過連同替代cpbl的信息rpbl一起制作整個(gè)包的散列函數(shù)來制作包的簽名。
為了通過公式使得示例清楚,ic制造商對(duì)os制造商給出成對(duì)信息:
{cpbl;rpbl}
其中:
cpbl=aes[kpbl](rpbl)
rpbl=aes-1[kpbl](cpbl)
包對(duì)應(yīng)于以下信息群組:
{ec;cpbl;cksbl;xsbl}
其中:
-ec是加密的代碼:
ec=aes[kpbl](code)
-cksbl是第二密鑰ksbl的密碼化:
cksbl=ksblxorrpbl
-xsbl是包的簽名
xsbl=sha256(ec;rpbl;cksbl)
sha256是本領(lǐng)域技術(shù)人員公知的256比特上的安全散列值。
鑒權(quán)令牌在此情況下是在包內(nèi)部所發(fā)送的一對(duì){cpbl;xsbl}。
當(dāng)然,可以進(jìn)行其它編碼可能性??梢允褂镁哂衦sa代替對(duì)稱密鑰aes的公鑰基礎(chǔ)架構(gòu)。重要的是,能夠?qū)Υa進(jìn)行鑒權(quán)并且使用第一密鑰kpbl對(duì)第二密鑰ksbl進(jìn)行加密,而不將密鑰kpbl給予os制造商。
在公開sbl區(qū)域中所加載的程序包之后,繼續(xù)公開圖7的處理將變得更容易。在接收到安裝命令時(shí),主引導(dǎo)加載器啟動(dòng)mz區(qū)域所執(zhí)行的鑒權(quán)步驟710。鑒權(quán)步驟710目的是檢查包的完整性和鑒權(quán),但其也必須驗(yàn)證pbl區(qū)域的完整性,將pbl區(qū)域存取鎖定在sbl區(qū)域上并且最終對(duì)代碼進(jìn)行解密。
考慮一對(duì)信息{cpbl;rpbl}和包{ec;cpbl;cksbl;xsbl},mz區(qū)域讀取cpbl,以用于使用kpbl計(jì)算rpbl。然后,計(jì)算簽名,以用于驗(yàn)證簽名xsbl是正確的。如果簽名xsbl不是正確的,則將錯(cuò)誤消息發(fā)送到通信接口104,并且擦除sbl區(qū)域和os區(qū)域的存儲(chǔ)器。如果簽名xsbl是正確的,則這說明包得以鑒權(quán),并且于是設(shè)置指示sbl得以鑒權(quán)的非易失性標(biāo)志,以防止從pbl區(qū)域到sbl區(qū)域中的存取。在對(duì)代碼進(jìn)行解密之前,還例如通過對(duì)所有pbl區(qū)域執(zhí)行sha256例如使用來檢查pbl區(qū)域的完整性的驗(yàn)證,然后與mz區(qū)域中先前記錄的簽名進(jìn)行比較。確保組件完整性,第二密鑰ksbl得以從cksbl提取并且存儲(chǔ)在mz區(qū)域中。
最后,mz切換到sbl區(qū)域,以用于解密步驟711,其中,使用第二密鑰ksbl對(duì)代碼進(jìn)行解密。
sbl有效,處理繼續(xù)于運(yùn)行測試712,其驗(yàn)證是否安裝操作系統(tǒng)。副引導(dǎo)加載器代碼功能主要是提供用于操作系統(tǒng)的安全引導(dǎo)加載器。因此,如果并未加載os,則執(zhí)行加載步驟713,以用于在os區(qū)域中加載os。加載os可能是更復(fù)雜的,并且因?yàn)楦币龑?dǎo)加載器進(jìn)行的os安裝由os制作商進(jìn)行并且保證,所以也可以定義用于應(yīng)用的軟件防火墻。僅副引導(dǎo)加載器可以加載os的事實(shí)使得os的加載是更安全的。具體地說,同一密鑰ksbl也可以用于對(duì)操作系統(tǒng)的包進(jìn)行解密。在加載os之后,os變?yōu)橛行?,并且可以運(yùn)行os和所安裝的應(yīng)用。
本發(fā)明的一個(gè)附加優(yōu)點(diǎn)是,包括本發(fā)明的安全元件的設(shè)備可以實(shí)現(xiàn)可以出自不同源的不同應(yīng)用并且不必使用相同os。在此情況下,應(yīng)用、os以及引導(dǎo)加載器的加密備份可以在主機(jī)上進(jìn)行,并且存儲(chǔ)器可以得以完全擦除,以用于通過其os及其應(yīng)用接收另一副引導(dǎo)加載器。
本領(lǐng)域技術(shù)人員應(yīng)理解,在不改變所附權(quán)利要求中所限定的本發(fā)明的范圍的情況下,可以修改實(shí)施例的示例。