午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

終端設(shè)備及其啟動方法與流程

文檔序號:11199858閱讀:687來源:國知局
終端設(shè)備及其啟動方法與流程

本發(fā)明涉及智能終端領(lǐng)域,特別是涉及一種終端設(shè)備及其啟動方法。



背景技術(shù):

隨著移動終端智能化程度的發(fā)展,智能終端操作系統(tǒng)已經(jīng)可以提供各類應(yīng)用軟件的運行環(huán)境,智能終端的普及和移動互聯(lián)網(wǎng)應(yīng)用的繁榮使得越來越多的用戶借助智能終端處理各類安全敏感業(yè)務(wù),從而使得移動終端面臨著各種安全威脅。

所有對智能終端領(lǐng)域的入侵都需要更改系統(tǒng)內(nèi)容,幾乎所有的入侵都需要更改關(guān)鍵的系統(tǒng)文件,因此對系統(tǒng)進行完整性和一致性驗證非常有必要,對系統(tǒng)的完整性和一致性的驗證在智能終端啟動時進行,從而保證智能終端安全啟動。請參照圖1所示的智能終端芯片的典型結(jié)構(gòu),芯片主要由負(fù)責(zé)控制、運算功能的處理器及配套片內(nèi)只讀存儲器(readonlymemory,rom)、隨機存取存儲器(radomaccessmemory,ram)、聯(lián)合測試工作組制定的測試接口標(biāo)準(zhǔn)(jointtestactiongroup,jtag)接口和通用輸入輸出口(generalpurposeinput/out,gpio)和其他功能模塊組成。由于受到片內(nèi)存儲器容量的限制,智能終端的主要程序都放在外部的非易失性存儲器(non-volatilememory,nvm)中。外部ram是芯片運行期間主要系統(tǒng)的正常啟動過程為:

1、從片內(nèi)rom開始啟動;

2、將引導(dǎo)程序從nvm移到處理器的內(nèi)部ram中去;

3、運行引導(dǎo)程序,初始化外部ram,將代碼從nvm拷貝至外部ram;

4、程序指針指向外部ram,開始執(zhí)行外部ram中的程序。

上述過程沒有對代碼進行校驗,代碼可以隨意被更改和破解,無法保障智能終端的安全,比如鎖網(wǎng)鎖卡很容易被破解。然而,有些芯片支持安全啟動,但有些芯片并沒有加入有關(guān)安全啟動的模塊,對于本身不涉及安全啟動功能的芯片而言,終端設(shè)備在啟動時安全性較差。



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

本發(fā)明解決的技術(shù)問題是提供一種終端設(shè)備及其啟動方法,在原本不涉及安全啟動功能的芯片的基礎(chǔ)上實現(xiàn)終端設(shè)備的安全啟動,保證使用這類芯片的終端設(shè)備啟動過程的安全性。

為解決上述技術(shù)問題,本發(fā)明實施例提供一種終端設(shè)備的啟動方法,包括:

運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行;

運行所述第一安全代碼,驗證基本安全內(nèi)容;

當(dāng)所述基本安全內(nèi)容驗證通過時,運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序;

當(dāng)所述引導(dǎo)程序驗證通過時,運行所述引導(dǎo)程序;

其中,所述第一安全代碼存儲于非易失性的第一存儲器中的一次性可編程的存儲區(qū)域,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述非易失性的第一存儲器中,所述啟動代碼存儲于只讀的第二存儲器中,所述第一存儲器與所述第二存儲器處于不同的晶片。

可選地,所述運行所述第一安全代碼,驗證基本安全內(nèi)容,包括:

運行所述第一安全代碼,以計算出所述基本安全內(nèi)容的第一哈希摘要;

當(dāng)所述第一哈希摘要與預(yù)先保存的哈希摘要相同時,驗證所述基本安全內(nèi)容通過,其中,所述預(yù)先保存的哈希摘要存儲于所述第一存儲器中的一次性可編程的存儲區(qū)域中。

可選地,所述運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序,包括:

運行基本安全內(nèi)容中的第二安全代碼,使用公開密鑰算法驗證所述引導(dǎo)程序。

可選地,所述運行基本安全內(nèi)容中的第二安全代碼,使用公開密鑰算法驗證所述引導(dǎo)程序,包括:

運行所述第二安全代碼,以使用所述基本安全內(nèi)容中的公鑰對所述引導(dǎo)程序中的第二哈希摘要的密文進行解密得到所述第二哈希摘要的明文,并計算所述引導(dǎo)程序中需要驗證部分的實際哈希摘要;

當(dāng)所述引導(dǎo)程序中需要驗證部分的實際哈希摘要與解密得到的所述第二哈希摘要的明文相同,則驗證引導(dǎo)程序通過;

其中,所述第二哈希摘要的密文預(yù)先被第一私鑰進行加密,所述第一私鑰與所述基本安全內(nèi)容中的公鑰構(gòu)成一組密鑰對。

可選地,所述公開密鑰算法為非對稱密鑰算法。

可選地,所述基本安全內(nèi)容還包括以下一個或多個:

國際移動設(shè)備識別碼、產(chǎn)品號、地區(qū)碼和語言碼。

可選地,所述第二存儲器與處理器在同一個晶?;蚣稍谕粋€物理芯片上,所述第一存儲器與所述物理芯片片外耦合。

可選地,所述終端設(shè)備的啟動方法,還包括:

當(dāng)驗證所述引導(dǎo)程序通過時,運行所述引導(dǎo)程序,驗證映像文件;

其中,所述映像文件存儲于所述非易失性的第一存儲器中。

可選地,所述運行所述引導(dǎo)程序,驗證映像文件,包括:

運行所述引導(dǎo)程序,以使所述引導(dǎo)程序中的公鑰對所述映像文件中的第三哈希摘要的密文進行解密得到所述第三哈希摘要的明文,并計算所述映像文件中需要驗證部分的實際哈希摘要;

當(dāng)所述映像文件中需要驗證部分的實際哈希摘要與解密得到的所述第三哈希摘要的明文相同,則驗證所述映像文件通過;

其中,所述第三哈希摘要的密文預(yù)先被第二私鑰進行加密,所述第二私鑰與所述引導(dǎo)程序中的公鑰構(gòu)成一組密鑰對。

本發(fā)明實施例還提供一種終端設(shè)備,所述終端設(shè)備包括:處理器、非易失性的第一存儲器和只讀的第二存儲器;

所述處理器,適于運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行;

所述非易失性的第一存儲器,具有用于存儲所述第一安全代碼的一次性可編程的存儲區(qū)域,并存儲基本安全內(nèi)容和引導(dǎo)程序;

所述只讀的第二存儲器,適于存儲所述啟動代碼;

其中,所述處理器運行所述第一安全代碼,以驗證所述基本安全內(nèi)容;當(dāng)驗證所述基本安全內(nèi)容通過時,運行所述基本安全內(nèi)容中的第二安全代碼,以驗證所述引導(dǎo)程序;當(dāng)驗證所述引導(dǎo)程序通過時,運行所述引導(dǎo)程序。

可選地,所述處理器適于:

運行所述第一安全代碼,以計算出所述基本安全內(nèi)容的第一哈希摘要;

當(dāng)所述第一哈希摘要與預(yù)先保存的哈希摘要相同時,驗證所述基本安全內(nèi)容通過,其中,所述預(yù)先保存的哈希摘要存儲于所述第一存儲器中的一次性可編程的存儲區(qū)域中。

可選地,所述處理器適于運行基本安全內(nèi)容中的第二安全代碼,使用公開密鑰算法驗證所述引導(dǎo)程序。

可選地,所述處理器適于:

運行基本安全內(nèi)容中的第二安全代碼,以使用所述基本安全內(nèi)容中的公鑰對所述引導(dǎo)程序中的第二哈希摘要的密文進行解密得到所述第二哈希摘要的明文,并計算所述引導(dǎo)程序中需要驗證部分的實際哈希摘要;

當(dāng)所述引導(dǎo)程序中需要驗證部分的實際哈希摘要與解密得到的所述第二哈希摘要的明文相同,則驗證引導(dǎo)程序通過;

其中,所述第二哈希摘要的密文預(yù)先被第一私鑰進行加密,所述第一私鑰與所述基本安全內(nèi)容中的公鑰構(gòu)成一組密鑰對。

可選地,所述公開密鑰算法為非對稱密鑰算法。

可選地,所述基本安全內(nèi)容還包括以下一個或多個:

國際移動設(shè)備識別碼、產(chǎn)品號、地區(qū)碼和語言碼。

可選地,所述第二存儲器與處理器在同一個晶粒或集成在同一個物理芯片上,所述第一存儲器與所述物理芯片片外耦合。

可選地,所述處理器還適于:

當(dāng)驗證所述引導(dǎo)程序通過時,運行所述引導(dǎo)程序,驗證映像文件,其中,所述映像文件存儲于非易失性的第一存儲器中。

可選地,所述處理器還適于:

運行所述引導(dǎo)程序,以使用所述引導(dǎo)程序中的公鑰對所述映像文件中的第三哈希摘要的密文進行解密得到所述第三哈希摘要的明文,并計算所述映像文件中需要驗證部分的實際哈希摘要;

當(dāng)所述映像文件中需要驗證部分的實際哈希摘要與解密得到的所述第三哈希摘要的明文相同,則驗證所述映像文件通過;

其中,所述第三哈希摘要的密文預(yù)先被第二私鑰進行加密,所述第二私鑰與所述引導(dǎo)程序中的公鑰構(gòu)成一組密鑰對。

與現(xiàn)有技術(shù)相比,本發(fā)明實施例的技術(shù)方案具有以下有益效果:

本發(fā)明實施例通過運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行,運行所述第一安全代碼,驗證基本安全內(nèi)容,當(dāng)所述基本安全內(nèi)容驗證通過時,運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序,當(dāng)所述引導(dǎo)程序驗證通過時,運行所述引導(dǎo)程序,其中,所述第一安全代碼存儲于非易失性的第一存儲器中的一次性可編程的存儲區(qū)域,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述非易失性的第一存儲器中,所述啟動代碼存儲于只讀的第二存儲器中,所述第一存儲器與所述第二存儲器處于不同的晶片,從而保證基本安全內(nèi)容和引導(dǎo)程序的完整性和一致性,進而在原本不支持安全啟動功能的芯片的基礎(chǔ)上實現(xiàn)了終端設(shè)備的安全啟動。

此外,本發(fā)明實施例還通過引導(dǎo)程序驗證映像文件的完整性和一致性。因此,雖然本發(fā)明實施例中的終端設(shè)備芯片本身不具有安全啟動功能,但本發(fā)明實施例的技術(shù)方案通過建立自下而上的信任鏈,以第一存儲器中的一次性可編程存儲區(qū)域中的代碼和數(shù)據(jù)作為信任鏈的最底層,驗證了安全啟動代碼的完整性和一致性,進而確保終端設(shè)備的安全啟動。

進一步地,通過采用公開密鑰算法驗證引導(dǎo)程序和映像文件,從而保證 軟件的可升級性。

附圖說明

圖1是現(xiàn)有技術(shù)中一種典型的終端設(shè)備芯片的結(jié)構(gòu)示意圖;

圖2是本發(fā)明實施例中的一種終端設(shè)備的啟動方法的流程圖;

圖3是本發(fā)明實施例中的一種已簽名引導(dǎo)程序的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實施例中的另一種終端設(shè)備的啟動方法的流程圖;

圖5是本發(fā)明實施例中的一種終端設(shè)備的結(jié)構(gòu)示意圖。

具體實施方式

如背景技術(shù)所言,所有對智能終端領(lǐng)域的入侵都需要更改系統(tǒng)內(nèi)容,幾乎所有的入侵都需要更改關(guān)鍵的系統(tǒng)文件,因此對系統(tǒng)進行完整性和一致性驗證非常有必要,對系統(tǒng)的完整性和一致性的驗證在智能終端啟動時進行,從而保證智能終端安全啟動。目前,有些芯片支持安全啟動,但有些芯片并沒有加入有關(guān)安全啟動的模塊,而且由于存儲資源等各方面原因的限制,也無法加入安全啟動的模塊,例如無法集成基本安全內(nèi)容或是類似的涉及安全啟動的內(nèi)容。對于本身不涉及安全啟動功能的芯片而言,無法確保終端設(shè)備啟動的安全性。

本發(fā)明實施例通過運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行,運行所述第一安全代碼,驗證基本安全內(nèi)容,當(dāng)所述基本安全內(nèi)容驗證通過時,運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序,當(dāng)所述引導(dǎo)程序驗證通過時,運行所述引導(dǎo)程序,其中,所述第一安全代碼存儲于非易失性的第一存儲器中的一次性可編程的存儲區(qū)域,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述非易失性的第一存儲器中,所述啟動代碼存儲于只讀的第二存儲器中,所述第一存儲器與所述第二存儲器處于不同的晶片,從而保證基本安全內(nèi)容和引導(dǎo)程序的完整性和一致性,進而在原本不支持安全啟動功能的芯片的基礎(chǔ)上實現(xiàn)了終端設(shè)備的安全啟動。

此外,本發(fā)明實施例還通過引導(dǎo)程序驗證映像文件的完整性和一致性。因此,雖然本發(fā)明實施例中的終端設(shè)備芯片本身不具有安全啟動功能,但本 發(fā)明實施例的技術(shù)方案通過建立自下而上的信任鏈,以第一存儲器中的一次性可編程存儲區(qū)域中的代碼和數(shù)據(jù)作為信任鏈的最底層,驗證了安全啟動代碼的完整性和一致性,進而確保終端設(shè)備的安全啟動。

為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施例做詳細的說明。

圖2是本發(fā)明實施例中的一種終端設(shè)備的啟動方法的流程圖。如圖2所示的終端設(shè)備的啟動方法,可以包括如下步驟:

步驟s201:運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行;

步驟s202:運行所述第一安全代碼,驗證基本安全內(nèi)容;

步驟s203:當(dāng)所述基本安全內(nèi)容驗證通過時,運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序;

步驟s204:當(dāng)所述引導(dǎo)程序驗證通過時,運行所述引導(dǎo)程序。

其中,所述第一安全代碼存儲于非易失性的第一存儲器中的一次性可編程的存儲區(qū)域,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述非易失性的第一存儲器中,所述啟動代碼存儲于只讀的第二存儲器中,所述第一存儲器與所述第二存儲器處于不同的晶片(die)。

在具體實施中,所述第二存儲器與處理器在同一個晶?;蚣稍谕粋€物理芯片上,所述第二存儲器為只讀類型,所述第一存儲器與所述第二存儲器處于不同的晶片。

在步驟s201的具體實施中,所述啟動代碼的功能與常規(guī)的啟動代碼的功能一樣,不涉及安全啟動的功能。芯片加電后,系統(tǒng)從只讀的第二存儲器處開始執(zhí)行所述啟動代碼,接著自動跳轉(zhuǎn)至所述第一安全代碼處運行。

在步驟s202的具體實施中,基本安全內(nèi)容(basalsecurecontent,bsc)由用戶數(shù)據(jù)組成,用戶數(shù)據(jù)包含用戶公鑰和用戶想要加入的不可升級的任何信息,bsc存儲于非易失性的第一存儲器中,所述非易失性的第一存儲器可以是閃存(flash)和嵌入式多媒體卡(embeddedmultimediacard,emmc)。

所述第一安全代碼存儲于位于所述第一存儲器中的一次性可編程存儲區(qū) 域(one-time-programmablememory,otp)中,運行所述第一安全代碼,可以驗證基本安全內(nèi)容的完整性,在具體實施中,可以通過哈希算法驗證所述基本安全內(nèi)容。具體而言,通過運行所述第一安全代碼,可計算出所述基本安全內(nèi)容的第一哈希摘要,當(dāng)實際計算出來的所述第一哈希摘要與預(yù)先保存的哈希摘要相同時,bsc驗證通過。其中,所述預(yù)先保存的哈希摘要存儲于所述第一存儲器的otp中。

所述一次性可編程的存儲區(qū)域可以是微電熔絲等具有一次性可編程功能的模塊。所述一次性可編程的存儲區(qū)域一旦被編程后就不能被修改,一次性可編程的存儲區(qū)域還可以存儲本終端設(shè)備的芯片唯一標(biāo)識(uniqueidentifier,uid),芯片的uid為產(chǎn)品唯一卻不重復(fù)的編號,uid在產(chǎn)品出廠前寫入,對用戶只讀,保證uid不被篡改。在具體實施中,所述一次性可編程的存儲區(qū)域中預(yù)先保存的哈希摘要可以占256比特,uid占128比特。

所述預(yù)先保存的哈希摘要需要在基本安全內(nèi)容確定后才能確定,基本安全內(nèi)容有國際移動設(shè)備識別碼等信息,每個終端都會不同,因此使用otp存儲所述預(yù)先保存的哈希摘要可以滿足按設(shè)備定制的需要。

在具體實施中,任何基本安全內(nèi)容的改動都會導(dǎo)致開機后實際計算出來的第一哈希摘要發(fā)生變動,當(dāng)實際計算出來的所述第一哈希摘要和所述一次性可編程的存儲區(qū)域中預(yù)先保存的哈希摘要不一致時,中止開機,如果計算出來的第一哈希摘要和所述一次性可編程的存儲區(qū)域中預(yù)先保存的哈希摘要一致,那么基本安全內(nèi)容完整且一致,從而確?;景踩珒?nèi)容沒有被更改,提高終端設(shè)備啟動的安全性。

在步驟s203的具體實施中,當(dāng)所述基本安全內(nèi)容驗證通過時,也即基本安全內(nèi)容完整且與初始狀態(tài)一致時,開始驗證引導(dǎo)程序。可以運行所述基本安全內(nèi)容中的第二安全代碼,使用公開密鑰算法驗證所述引導(dǎo)程序。

具體地,當(dāng)程序運行到驗證引導(dǎo)程序時,運行所述第二安全代碼,讀取保存在引導(dǎo)程序中的第二哈希摘要,使用所述基本安全內(nèi)容中的公鑰對所述引導(dǎo)程序中的第二哈希摘要的密文進行解密得到所述第二哈希摘要的明文,并計算所述引導(dǎo)程序中需要驗證部分的實際哈希摘要。請參考圖3,已簽名引 導(dǎo)程序由數(shù)字簽名,簽名部分和未簽名部分組成,所述簽名部分為引導(dǎo)程序中需要驗證部分,所述數(shù)字簽名包含所述引導(dǎo)程序簽名部分的位置信息、長度信息和用私鑰簽名的哈希摘要,其中長度信息為需校驗的引導(dǎo)程序的長度,根據(jù)長度信息可以計算出這個長度的引導(dǎo)程序的實際哈希摘要。

當(dāng)所述引導(dǎo)程序中需要驗證部分的實際哈希摘要與解密得到的所述第二哈希摘要的明文相同,則驗證引導(dǎo)程序通過。其中,所述第二哈希摘要的密文預(yù)先被第一私鑰進行加密,所述第一私鑰與所述基本安全內(nèi)容中的公鑰構(gòu)成一組密鑰對。任何引導(dǎo)程序的變動導(dǎo)致的不完整或不一致都會導(dǎo)致實際計算出來的哈希摘要發(fā)生變化,從而和公開密鑰算法解密出來的第二哈希摘要的明文不一致,程序則中止開機,只有兩者一致才代表驗證通過,終端設(shè)備才正常啟動,從而保證了終端設(shè)備啟動的安全性。

在具體實施中,所述公開密鑰算法為非對稱密鑰算法,例如可以是rsa算法,也可以是橢圓曲線算法。

在具體實施中,所述基本安全內(nèi)容還可以包括以下一個或多個:國際移動設(shè)備識別碼、產(chǎn)品號、地區(qū)碼和語言碼。

本發(fā)明實施例通過運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行,運行所述第一安全代碼,驗證基本安全內(nèi)容,當(dāng)所述基本安全內(nèi)容驗證通過時,運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序,當(dāng)所述引導(dǎo)程序驗證通過時,運行所述引導(dǎo)程序,其中,所述第一安全代碼存儲于非易失性的第一存儲器中的一次性可編程的存儲區(qū)域,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述非易失性的第一存儲器中,所述啟動代碼存儲于只讀的第二存儲器中,從而保證基本安全內(nèi)容和引導(dǎo)程序的完整性和一致性,所述第一存儲器與所述第二存儲器處于不同的晶片,進而在原本不支持安全啟動功能的芯片的基礎(chǔ)上實現(xiàn)了終端設(shè)備的安全啟動。此外,本發(fā)明實施例還通過引導(dǎo)程序驗證映像文件的完整性和一致性。因此,雖然本發(fā)明實施例中的終端設(shè)備芯片本身不具有安全啟動功能,但本發(fā)明實施例的技術(shù)方案通過建立自下而上的信任鏈,以第一存儲器中的一次性可編程存儲區(qū)域中的代碼和數(shù)據(jù)作為信任鏈的最底層,驗證了安全啟動代碼的完整性和一致性,進而確保終端設(shè)備的安全啟動。

進一步地,通過采用公開密鑰算法驗證引導(dǎo)程序,從而保證軟件的可升級性。

圖4是本發(fā)明實施例中的另一種終端設(shè)備的啟動方法的流程圖。如圖4所示的終端設(shè)備的啟動方法,可以包括以下步驟:

步驟s401:運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行;

步驟s402:運行所述第一安全代碼,驗證基本安全內(nèi)容;

步驟s403:當(dāng)所述基本安全內(nèi)容驗證通過時,運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序;

步驟s404:當(dāng)所述引導(dǎo)程序驗證通過時,運行所述引導(dǎo)程序;

步驟s405:當(dāng)驗證所述引導(dǎo)程序通過時,運行所述引導(dǎo)程序,驗證映像文件,其中,所述映像文件存儲于所述非易失性的第一存儲器中。

上述步驟中,同樣地,所述啟動代碼存儲于只讀的第二存儲器中,所述第一安全代碼存儲于非易失性的第一存儲器中的一次性可編程的存儲區(qū)域,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述非易失性的第一存儲器中,所述第一存儲器與所述第二存儲器處于不同的晶片。

在具體實施中,所述第二存儲器與處理器可以在同一個晶粒或集成在同一個物理芯片上,所述第一存儲器與所述物理芯片片外耦合。

在具體實施中,步驟s401至步驟s404的說明可對應(yīng)參照步驟s201至步驟s203的描述,在此不再贅述。

在具體實施中,驗證映像文件時,同樣可以采用公開密鑰算法進行驗證,可以運行所述引導(dǎo)程序,以使所述引導(dǎo)程序中的公鑰對所述映像文件中的第三哈希摘要的密文進行解密得到所述第三哈希摘要的明文,并計算所述映像文件中需要驗證部分的實際哈希摘要,當(dāng)所述映像文件中需要驗證部分的實際哈希摘要與解密得到的所述第三哈希摘要的明文相同,則驗證所述映像文件通過。其中,所述第三哈希摘要的密文預(yù)先被第二私鑰進行加密,所述第二私鑰與所述引導(dǎo)程序中的公鑰構(gòu)成一組密鑰對。

具體地,當(dāng)程序跳轉(zhuǎn)到引導(dǎo)程序,引導(dǎo)程序讀取保存在映像文件數(shù)字簽 名中的哈希摘要,使用引導(dǎo)程序內(nèi)保存的公鑰解密預(yù)先被第二私鑰加密的第三哈希摘要的密文,得到解密后的第三哈希摘要的明文。運行引導(dǎo)程序讀取映像文件數(shù)字簽名中保存的校驗長度,根據(jù)該校驗長度計算映像文件的實際需要驗證部分的哈希摘要,當(dāng)映像文件中需要驗證部分的實際哈希摘要與解密得到的所述第三哈希摘要的明文相同,則驗證所述映像文件通過。任何映像文件的變動都會導(dǎo)致實際計算出來的實際哈希摘要相比所述第三哈希摘要的明文發(fā)生變動,則程序中止開機,反之,如果計算出來的實際哈希摘要與解密得到的第三哈希摘要的明文相同,則程序執(zhí)行正常開機流程,從而保證了映像文件的完整性和一致性。

本實施例在引導(dǎo)程序通過驗證的基礎(chǔ)上,通過引導(dǎo)程序驗證映像文件的完整性和一致性。因此,本實施例通過建立自下而上的信任鏈實現(xiàn)驗證啟動代碼的完整性和一致性,最底層是所述第一存儲器的otp內(nèi)保存的代碼和數(shù)據(jù),最高層是系統(tǒng)應(yīng)用程序。本發(fā)明實施例中的終端設(shè)備芯片本身雖不具有安全啟動功能,但本發(fā)明實施例通過建立自下而上的信任鏈,驗證安全啟動代碼的完整性和一致性,進而確保終端設(shè)備的安全啟動。

進一步地,通過采用公開密鑰算法驗證引導(dǎo)程序和映像文件,從而保證軟件的可升級性。

需要指出的是,本領(lǐng)域的技術(shù)人員可以基于本實施例的發(fā)明構(gòu)思進行等同的改變,例如區(qū)分所述引導(dǎo)程序和映像文件,經(jīng)所述基本安全內(nèi)容中的第二安全代碼驗證通過的引導(dǎo)程序,同樣可以使用公開密鑰算法驗證下一引導(dǎo)程序,由最后一個引導(dǎo)程序使用公開密鑰算法驗證所述第一存儲器中的第一個映像文件,再由前面的映像文件驗證下一個映像文件,從而實現(xiàn)使用信任鏈的逐級信任機制,為不涉及安全啟動功能的芯片提供一種終端設(shè)備的安全啟動的解決方案。

圖5是本發(fā)明實施例中的一種終端設(shè)備的結(jié)構(gòu)示意圖。如圖5所示的終端設(shè)備50,可以包括:處理器501、非易失性的第一存儲器502、只讀的第二存儲器503和一次性可編程的存儲區(qū)域504。其中:

所述處理器501,適于運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行;

所述非易失性的第一存儲器502,具有用于存儲所述第一安全代碼的一次性可編程的存儲區(qū)域,并存儲基本安全內(nèi)容和引導(dǎo)程序;

所述只讀的第二存儲器503,適于存儲所述啟動代碼;

所述一次性可編程的存儲區(qū)域504,適于存儲預(yù)先保存的哈希摘要。

其中,所述處理器501運行所述第一安全代碼,以驗證所述基本安全內(nèi)容;當(dāng)驗證所述基本安全內(nèi)容通過時,運行所述基本安全內(nèi)容中的第二安全代碼,以驗證所述引導(dǎo)程序;當(dāng)驗證所述引導(dǎo)程序通過時,運行所述引導(dǎo)程序。

請參見圖5,所述第一安全代碼存儲于所述第一存儲器502中的一次性可編程的存儲區(qū)域504,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述第一存儲器502中,所述啟動代碼存儲于只讀的第二存儲器503中。

在具體實施中,所述處理器501可以包括基本安全內(nèi)容驗證單元和引導(dǎo)程序驗證單元。

所述基本安全內(nèi)容驗證單元,適于運行所述第一安全代碼,以計算出所述基本安全內(nèi)容的第一哈希摘要;當(dāng)所述第一哈希摘要與預(yù)先保存的哈希摘要相同時,驗證所述基本安全內(nèi)容通過,其中,所述預(yù)先保存的哈希摘要存儲于所述第一存儲器中的一次性可編程的存儲區(qū)域504中。

具體實施中,所述一次性可編程的存儲區(qū)域504可以是微電熔絲等具有一次性可編程功能的模塊。

所述引導(dǎo)程序驗證單元,適于運行基本安全內(nèi)容中的第二安全代碼,使用公開密鑰算法驗證所述引導(dǎo)程序。

在具體實施中,所述引導(dǎo)程序驗證單元,適于運行基本安全內(nèi)容中的第二安全代碼,以使用所述基本安全內(nèi)容中的公鑰對所述引導(dǎo)程序中的第二哈希摘要的密文進行解密得到所述第二哈希摘要的明文,并計算所述引導(dǎo)程序中需要驗證部分的實際哈希摘要;當(dāng)所述引導(dǎo)程序中需要驗證部分的實際哈希摘要與解密得到的所述第二哈希摘要的明文相同,則驗證引導(dǎo)程序通過;其中,所述第二哈希摘要的密文預(yù)先被第一私鑰進行加密,所述第一私鑰與 所述基本安全內(nèi)容中的公鑰構(gòu)成一組密鑰對。

在具體實施中,所述公開密鑰算法為非對稱密鑰算法,例如可以是rsa算法,也可以是橢圓曲線算法。

在具體實施中,所述基本安全內(nèi)容還可以包括國際移動設(shè)備識別碼、產(chǎn)品號、地區(qū)碼和語言碼中的一個或多個。

在具體實施中,所述第二存儲器與處理器在同一個晶?;蚣稍谕粋€物理芯片上,所述第一存儲器與所述物理芯片片外耦合。

在具體實施中,所述處理器501還適于當(dāng)驗證所述引導(dǎo)程序通過時,運行所述引導(dǎo)程序,驗證映像文件;其中,所述映像文件存儲于所述非易失性的第一存儲器502中。

在具體實施中,所述處理器501還可以包括映像文件驗證單元,適于運行所述引導(dǎo)程序,以使用所述引導(dǎo)程序中的公鑰對所述映像文件中的第三哈希摘要的密文進行解密得到所述第三哈希摘要的明文,并計算所述映像文件中需要驗證部分的實際哈希摘要;當(dāng)所述映像文件中需要驗證部分的實際哈希摘要與解密得到的所述第三哈希摘要的明文相同,則驗證所述映像文件通過;其中,所述第三哈希摘要的密文預(yù)先被第二私鑰進行加密,所述第二私鑰與所述引導(dǎo)程序中的公鑰構(gòu)成一組密鑰對。

本發(fā)明實施例通過運行啟動代碼以跳轉(zhuǎn)至第一安全代碼處運行,運行所述第一安全代碼,驗證基本安全內(nèi)容,當(dāng)所述基本安全內(nèi)容驗證通過時,運行所述基本安全內(nèi)容中的第二安全代碼,驗證引導(dǎo)程序,當(dāng)所述引導(dǎo)程序驗證通過時,運行所述引導(dǎo)程序,其中,所述第一安全代碼存儲于非易失性的第一存儲器中的一次性可編程的存儲區(qū)域,所述基本安全內(nèi)容和所述引導(dǎo)程序存儲于所述非易失性的第一存儲器中,所述啟動代碼存儲于只讀的第二存儲器中,所述第一存儲器與所述第二存儲器處于不同的晶片,從而保證基本安全內(nèi)容和引導(dǎo)程序的完整性和一致性,進而在原本不支持安全啟動功能的芯片的基礎(chǔ)上實現(xiàn)了終端設(shè)備的安全啟動。此外,本發(fā)明實施例還通過引導(dǎo)程序驗證映像文件的完整性和一致性。因此,雖然本發(fā)明實施例中的終端設(shè)備芯片本身不具有安全啟動功能,但本發(fā)明實施例的技術(shù)方案通過建立自下 而上的信任鏈,以第一存儲器中的一次性可編程存儲區(qū)域中的代碼和數(shù)據(jù)作為信任鏈的最底層,驗證了安全啟動代碼的完整性和一致性,進而確保終端設(shè)備的安全啟動。

進一步地,通過采用公開密鑰算法驗證引導(dǎo)程序和映像文件,從而保證軟件的可升級性。

本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于以計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:rom、ram、磁盤或光盤等。

雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改,因此本發(fā)明的保護范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1