專利名稱:一種電子設備和電子設備中固件的驗證方法
技術領域:
本發明涉及固件技術領域,特別涉及一種電子設備和電子設備中固件的驗 證方法。
背景技術:
現有的電子設備,比如手機、便攜播放器、刻錄機等,內部都可設置固件。
固件(Firmware)保存在電子設備內部,是驅動電子設備運行的程序。固 件通常存儲在電子設備的ROM (Read Only Memory,只讀存儲器)、PROM (Programmable Read-Only Memory,可編程只讀存葉諸器)、EPROM ( Erasable Programmable Read-Only Memory ,可擦可編程只讀存j諸器)、EEPROM (Electrically Erasable Programmable Read-Only Memory ,電可擦可編程只讀存 儲器)、Flash (閃存)等存儲介質中。
現有電子設備中的固件通常都可以更新,以便為固件增加更多的功能或改 進固件的性能,但固件可以更新也帶來了安全問題,比如l)某個電子設備 廠商的電子設備軟件可能會被黑客改寫,造成電子設備廠商的商業損失;2) 為某個運營商定制的電子設備軟件可能會被黑客改寫為另 一個運營商的電子 設備軟件,造成運營商的商業損失;3)黑客通過改寫電子設備軟件達到一些 非法的目的,比如竊取用戶賬號等。
面臨這些安全問題, 一個很重要的解決思路就是要求電子設備上的固件不 被非法改寫,并且一旦被非法改寫,電子設備就不再可用。按照這個解決思路, 現有技術通常通過不對稱加密算法(如RSA)對固件進行簽名和驗證。這一 技術方案通常包括下列幾個部分
一、對固件進行簽名
對固件進行簽名的過程為對固件進行Hash運算,并用不對稱加密算法 的私鑰對Hash運算的結果進行加密,形成固件簽名。之后,將固件、固件簽名、不對稱加密算法的公鑰、不對稱加密算法的簽 名驗證算法存儲到電子設備的存儲器中,不再變更。較佳地,將固件和固件簽
名寫入到電子設備的FLASH中,將不對稱加密算法的公鑰寫入電子設備的一 次性寫入寄存器中(使不對稱加密算法的公鑰不會被非法修改),將不對稱加 密算法的簽名驗證算法寫入到電子設備的ROM中。
二、電子設備接收到開機信號時,對固件進行驗證
現有技術中,對固件進行驗證通常在電子設備接收到開才幾信號時進行,如 果驗證結果為固件正確,說明固件沒有被非法改寫,則電子設備進入服務狀態 (正常開機);如果驗證結果為固件錯誤,說明固件可能已經被非法改寫,則 電子設備進入非服務狀態(關機、重啟或者不可用狀態),這樣便實現了固件 一旦被非法改寫電子設備就不再可用的目的。
如圖1所示,以不對稱加密算法為RSA為例,電子設備接收到開機信號 時,對固件進行驗證的過程包括如下步驟
5101、 獲取存儲器中的固件,運行存儲器中RSA的簽名驗證算法對固件 進行Hash運算,得到一個Hash運算的結果。
5102、 獲取存儲器中的固件簽名、RSA的公鑰,用RSA的公鑰對固件簽 名進行解密,得到一個Hash運算的結果(該結果等同于對固件進行簽名過程 中得到的Hash運算的結果)。
5103、 確定步驟S101得到的Hash運算的結果,與步驟S102得到的Hash 運算的結果運算結果是否相同,如果是則說明固件正確;否則說明固件錯誤。
但是,由于現有的不對稱加密算法通常建立在512位到1024位的大數運 算之上,使得在電子設備開機時對固件進行驗證的時間較長,從而大大增加了 電子設備的開機時間,影響了用戶的使用體驗。
發明內容
本發明實施例提供了一種電子設備和電子設備中固件的驗證方法,用以解 決現有技術使得電子設備的開機時間較長、用戶使用電子設備的體驗較差的問 題。
為解決上述技術問題,本發明實施例提供了一種電子設備,包括用于接收關機信號或開機信號的信號接收模塊,還包括
獲取模塊,用于在所述信號接收模塊接收到開機信號時,獲取在所述信號
接收;f莫塊接收到關機信號時對所述固件的驗證結果;
控制模塊,用于在所述獲取模塊獲取的驗證結果為固件正確時,控制所迷
電子設備進入服務狀態;在所述獲取模塊獲取的驗證結果為固件錯誤時,控制
所述電子設備進入非服務狀態。
本發明實施例還提供了 一種電子設備中固件的驗證方法,包括 電子設備接收到開機信號時,獲取關機時對固件的驗證結果; 在獲取的驗證結果為所述固件正確時,控制所述電子設備進入服務狀態; 在獲取的驗證結果為所述固件錯誤時,控制所述電子設備進入非服務狀態。
本發明實施例的技術方案在電子設備接收到關機信號之后對固件進行驗 證,在電子設備接收到開機信號時,直接利用關機時得到的驗證結果控制電子 設備進入服務狀態或者非服務狀態,相比現有技術,本發明實施例技術方案極 大地減少了電子設備的開機時間,極大地提高了用戶使用電子設備的體驗。
圖1為現有技術中對固件進行驗證的方法流程圖2為本發明實施例電子設備中固件的驗^t方法的流程圖3為本發明具體實施例電子設備中固件的驗證方法示意圖4為本發明具體實施例電子設備中固件的駘3正方法流程圖5為本發明實施例電子設備的結構圖6為本發明實施例另一電子設備的結構圖。
具體實施例方式
為了解決現有^l支術存在的問題,本發明實施例提供了 一種電子設備和電子 設備中固件的驗證方法。
參閱圖2所示,本發明實施例提供的電子設備中固件的驗證方法,包括下 列步驟5201、 電子設備接收到關機信號。
5202、 驗證電子設備中的固件是否正確,產生一驗證結果。
頭Y,浪、止笵禾e^J左閨1干止力用、閨fMf^矢I^^f,。」以用一半艾明又子付禾衣
示。驗證電子設備中的固件是否正確的方法包括如下步驟
A、 獲取電子設備中的固件,運行電子設備中RSA的簽名驗證算法對固 件進行Hash運算,得到一個Hash運算的結果;
B、 獲取電子設備中的固件簽名、RSA的公鑰,用RSA的公鑰對固件簽 名進行解密,得到一個Hash運算的結果。
C、 確定步驟A得到的Hash運算的結果,與步驟B得到的Hash運算的 結果運算結果是否相同,如果是則說明固件正確;否則說明固件錯誤。
5203、 將步驟S202得到的驗證結果存儲到電子設備的存儲器中。
其中,存儲驗證結果的方式有兩種, 一種是將驗證結果直接存儲到電子設 備的存儲器中;另一種是對驗證結果進行加密,產生加密驗證結果,將加密驗 證結果存儲到電子設備的存儲器中。在加密時,可以利用電子設備主芯片中的 硬件密鑰,采用對稱加密算法對驗證結果進行加密,比如用電子設備主芯片 中的硬件密鑰對-險證結果進行3DES加密。
對驗證結果進行加密,可以降低驗證結果被改寫和復制的可能性,保證電 子設備中存儲的驗證結果的真實性;尤其用電子設備主芯片中的硬件密鑰對驗 證結果進行對稱加密時效果更好,這是因為電子設備主芯片中的硬件密鑰只有 電子設備可以得到,其它電子設備無法得到,這樣,即使黑客利用其它電子設 備得到了加密驗證結果,其也無法通過對加密驗證結果進行解密來得到驗證結 果,進而無法改寫或者復制驗證結果。
較佳地,可以將驗證結果存儲到電子設備的FLASH中。
5204、 電子設備接收到開機信號。
5205、 獲取存儲器中的驗證結果。
其中,如果驗證結果是被直接存儲到存儲器中的,則在電子設^l^接收到開 機信號時,可以直接讀取存儲器中存儲的驗證結果,得到驗證結果。
如果驗證結果是加密后才被存儲到存儲器中的,則在電子設備接收到開機信號時,可以通過對存儲器中的加密驗證結果進行解密來得到驗證結果。
另外,獲取存儲器中的驗證結果之后,還可以刪除存儲器中存儲的驗證結 果(具體為加密驗證結果或者被直接存儲到存儲器中的驗證結果),這樣便可 保證存儲器中存儲的驗證結果是電子設備最后一次關機時產生的驗證結果,進
生的驗證結果。
S206、當驗證結果為固件正確時,控制電子設備進入服務狀態(正常開機); 當驗證結果為固件錯誤時,控制電子設備進入非服務狀態(關機、重啟或者不 可用狀態)。
本發明實施例的技術方案在電子設備接收到關機信號之后對固件進行驗 證,在電子設備接收到開機信號時,利用關機時得到的驗證結果控制電子設備 進入服務狀態或者非服務狀態,相比現有技術,本發明實施例技術方案極大地 縮短了電子設備的開機時間,極大地提高了用戶使用電子設備的體驗。
下面以 一具體實施例來說明本發明實施例提供的方法
以手機為例,如圖3所示,手機的FLASH中設置三個區域,分別是固件 存儲區域、固件簽名存儲區域、驗證結果存儲區域,其中,固件簽名的形成方 法是對固件進行Hash運算,并用RSA的私鑰對Hash運算的結果進行加密 后形成;手機的一次性寫入寄存器中存儲有RSA的公鑰;手機的ROM中存 儲有RSA的簽名驗證算法;手機主芯片的某一寄存器中存儲有硬件密鑰HEK, 該寄存器只能被手機中的ROM訪問。
如圖4所示,本發明具體實施例包括下列步驟
5401、 手機接收到關機信號。
5402、 通過觸發中斷或直接調用,控制處理器驗證手機中的固件是否正確, 產生一驗證結果。
其中,驗證結果包括固件正確、固件錯誤兩種,可以用一段明文字符來表 示。驗證電子設備中的固件是否正確的方法包括如下步驟
A、獲取電子設備中的固件,運行電子設備中RSA的簽名驗證算法對固 件進行Hash運算,得到一個Hash運算的結果;B、 獲取電子設備中的固件簽名、RSA的公鑰,用RSA的公鑰對固件簽 名進行解密,得到一個Hash運算的結果。
C、 確定步驟A得到的Hash運算的結果,與步驟B得到的Hash運算的 結果運算結果是否相同,如果是則說明固件正確;否則說明固件錯誤。
5403、 獲取主芯片某一寄存器中的硬件密鑰HEK,利用HEK對驗證結果 進行3DES加密得到加密驗證結果,并將加密驗證結果存儲到驗證結果存儲區 域。
5404、 手機接收到開機信號。
5405、 獲取驗證結果存儲區域中的加密驗證結果,獲取主芯片某一寄存器 中的硬件密鑰HEK,并刪除驗證結果存儲區域中的加密驗證結果。
5406、 利用HEK對加密驗證結果進行解密,得到驗證結果。 硬件密鑰HEK的存儲區域如果只能被手機中的ROM訪問,會產生一個
好處防止HEK被其它電子設備獲取到,進而避免了其它電子設備得到驗證 結果。
5407、 當驗證結果為固件正確時,控制電子設備進入服務狀態;當驗證結 果為固件錯誤時,控制電子設備進入非服務狀態。
當然,在步驟S403中,也可以直接將驗證結果存儲到驗證結果存儲區域, 相應地,在執行步驟S404之后,直接讀取驗證結果存儲區域中的驗證結果并 刪除驗證結果存儲區域中的驗證結果,接著執行步驟S407即可。
相比現有技術,本發明具體實施例極大地縮短了電子設備的開機時間,極 大地提高了用戶使用電子設備的體驗。
如圖5所示,本發明實施例還提供了一種電子設備,包括固件、信號接收 模塊501,信號接收模塊501用于接收關機信號或開機信號,還包括
獲取模塊502,用于在信號接收模塊501接收到開機信號時,獲取在信號 接收模塊501接收到關機信號時對固件的驗證結果;
控制模塊503,用于在獲取模塊502獲取的驗證結果為固件正確時,控制 電子設備進入服務狀態;在獲取模塊502獲取的驗證結果為固件錯誤時,控制 電子設備進入非服務狀態。圖5所示的電子設備相比現有電子設備,極大地縮短了電子設備的開機時 間,極大地提高了用戶使用電子設備的體驗。
另外,如圖6所示,圖5所示的電子設備還可以包括
驗證模塊601,用于在信號接收模塊501接收到上述關機信號時,驗證固 件是否正確,產生一-驗證結果;
存儲器602,用于存儲驗證結果,并在信號接收模塊501接收到開機信號 時,將驗證結果發送給獲取模塊502。
再如圖6所示,上述電子設備還可以包括
刪除模塊603;用于在獲取模塊502獲取驗證結果之后,刪除存儲器602 中的驗證結果。
刪除模塊603可保證存儲器602中存儲的驗證結果是驗證模塊601在電子 設備最后一次關機時產生的驗證結果,進而保證了控制模塊503所依據的驗證 結果是驗證模塊601在電子設備最后一次關機時產生的驗證結果。
進一步地,上述電子設備還可以包括
加密模塊,用于對驗證模塊601產生的驗證結果進行加密,產生加密驗證 結果;
此時,存儲器602還用于存儲加密驗證結果; 此時,獲取^f莫塊502具體可以為
獲取子模塊,用于在信號接收模塊501接收到開機信號時,對存儲器602 中的加密驗證結果進行解密,得到驗證結果。
其中,加密模塊對驗證結果進行加密,可以降低驗證結果被改寫和復制的 可能性。
另外,加密模塊具體可以為
加密子模塊,用于利用電子設備主芯片中的硬件密鑰,采用對稱加密算法 對驗證結果進行加密,產生加密驗證結果。加密子模塊可更好地降低驗證結果 被改寫和復制的可能性。
本發明實施例提供的電子設備相比現有電子設備,極大地縮短了電子設備 的開機時間,極大地提高了用戶使用電子設備的體驗。是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于一計算機可 讀取存儲介質中,該程序在執行時,包括如上述方法實施例的步驟),所述的
存儲介質,如ROM/RAM、石茲碟、光盤等。
以上所述是本發明的優選實施方式,應當指出,對于本技術領域的普通技 術人員來說,在不脫離本發明所述原理的前提下,還可以作出若千改進和潤飾, 這些改進和潤飾也應^L為本發明的保護范圍。
權利要求
1、一種電子設備,包括用于接收關機信號或開機信號的信號接收模塊,其特征在于,還包括獲取模塊,用于在所述信號接收模塊接收到開機信號時,獲取在所述信號接收模塊接收到關機信號時對固件的驗證結果;控制模塊,用于在所述獲取模塊獲取的驗證結果為固件正確時,控制所述電子設備進入服務狀態;在所述獲取模塊獲取的驗證結果為固件錯誤時,控制所述電子設備進入非服務狀態。
2、 如權利要求1所述的電子設備,其特征在于,還包括驗證模塊,用于在所述信號接收模塊接收到所述關機信號時,驗證所述固 件是否正確,產生一驗證結果;存儲器,用于存儲所述驗證結果,并在所述信號接收模塊接收到開機信號 時,將所述驗證結果發送給所述獲取模塊。
3、 如權利要求2所述的電子設備,其特征在于,還包括刪除模塊,用于在所述獲取模塊獲取所述驗證結果之后,刪除所述存儲器 中的驗證結果。
4、 如權利要求2或3所述的電子設備,其特征在于,還包括 加密模塊,用于對所述驗證模塊產生的驗證結果進行加密,產生加密驗證結果;所述存儲器還用于存儲所述加密驗證結果; 所述獲取模塊具體為獲取子模塊,用于在所述信號接收模塊接收到開機信號時,對所述存儲器 中的加密驗證結果進行解密,得到所述驗證結果。
5、 如權利要求4所述的電子設備,其特征在于,所述加密模塊具體為 加密子模塊,用于利用所述電子設備主芯片中的硬件密鑰,采用對稱加密算法對所述驗證結果進行加密,產生加密驗證結果。
6、 一種電子設備中固件的驗證方法,其特征在于,包括電子設備接收到開機信號時,獲取矢機時對固件的驗證結果; 在獲取的驗證結果為所述固件正確時,控制所述電子設備進入服務狀態; 在獲取的驗證結果為所述固件錯誤時,控制所述電子設備進入非服務狀態。
7、 如權利要求6所述的方法,其特征在于,所述方法還包括 接收到關機信號時,驗證所述固件是否正確,產生一驗證結果; 存儲所述驗證結果;所述電子設備接收到開機信號時,獲取關機時對固件的驗證結果,具體為 所述電子設備接收到開機信號時,獲取存儲的所述驗證結果。
8、 如權利要求7所述的方法,其特征在于,獲取關機時對固件的驗證結 果之后,所述方法還包括刪除存儲的所述驗證結果。
9、 如權利要求7或8所述的方法,其特征在于,所述產生一驗證結果之 后,所述方法還包括對所述驗證結果進行加密,產生加密驗證結果; 存儲所述加密驗證結果;所述電子設備接收到開機信號時,獲取存儲的所述驗證結果,具體為 所述電子設備接收到開機信號時,對存儲的所述加密驗證結果進行解密, 得到所述驗證結果。
10、 如權利要求9所述的方法,其特征在于,對所述驗證結果進行加密, 產生加密驗證結果,具體為利用所述電子設備主芯片中的硬件密鑰,采用對稱加密算法對所述驗證結 果進行加密,產生加密驗證結果。
全文摘要
本發明提供了一種電子設備和電子設備中固件的驗證方法,用以解決現有技術使得電子設備的開機時間較長、用戶使用電子設備的體驗較差的問題。本發明技術方案是在電子設備接收到關機信號之后對固件進行驗證,在電子設備接收到開機信號時,直接利用關機時得到的驗證結果控制電子設備進入服務狀態或者非服務狀態的,相比現有技術,本發明技術方案極大地減少了電子設備的開機時間,極大地提高了用戶使用電子設備的體驗。
文檔編號G06F21/22GK101447012SQ20081024070
公開日2009年6月3日 申請日期2008年12月22日 優先權日2008年12月22日
發明者張曉鵬 申請人:深圳華為通信技術有限公司