本發(fā)明涉及車輛信息安全領(lǐng)域,尤其是涉及一種基于信息安全技術(shù)的車輛遠程固件更新方法及裝置。
背景技術(shù):
近年來,得益于互聯(lián)網(wǎng)信息技術(shù)不斷取得的重大突破,汽車行業(yè)開始邁入信息化時代,汽車產(chǎn)品也逐步走向智能化?!爸悄芙煌ā?、“車聯(lián)網(wǎng)”等相關(guān)概念也受到了國內(nèi)外學(xué)者的廣泛關(guān)注。在這些領(lǐng)域上的相關(guān)技術(shù)的發(fā)展與不斷完善都將促進汽車不斷智能化和信息化。傳統(tǒng)的固件更新方法主要是通過串行燒寫的方式,這種方式雖然成本低,安全性好,但是不能在線編程,而且不能遠程操作,降低了燒寫的方便性,限制了應(yīng)用場合。所以,車輛ECU的遠程固件更新技術(shù)開始出現(xiàn)并開始應(yīng)用。
但是隨著車聯(lián)網(wǎng)技術(shù)以及汽車智能化的提升,汽車通過無線網(wǎng)絡(luò)進行遠程固件更新時面臨的信息安全問題也越來越多。在進行車輛遠程固件的過程中,由遠程服務(wù)器發(fā)送的信息報文、新版本的固件以及由目標ECU返回的信息將有可能受到非法的跟蹤、記錄與篡改,因此需要使用相應(yīng)的信息安全技術(shù)對這些信息進行保護。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于信息安全技術(shù)的車輛遠程固件更新方法及裝置,能夠保證消息以及固件傳輸過程中的匿名性、真實性與可靠性。
本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
一種基于信息安全技術(shù)的車輛遠程固件更新方法,包括以下步驟:
1)遠程服務(wù)器生成一固件更新請求消息,根據(jù)該固件更新請求消息的消息摘要生成第一哈希值,對所述固件更新請求消息和第一哈希值進行對稱加密封裝為第一消息,發(fā)送給目標ECU;
2)目標ECU對所述第一消息進行對稱解密,根據(jù)解密獲得的固件更新請求消息的消息摘要計算第二哈希值,判斷所述第二哈希值與所述第一哈希值是否相同,若是,則執(zhí)行步驟3),若否,則忽略所述第一消息;
3)目標ECU生成一密鑰K,將該密鑰K對稱加密后發(fā)送給遠程服務(wù)器;
4)遠程服務(wù)器通過所述密鑰K對新固件及與所述新固件對應(yīng)的第三哈希值進行加密,生成第二消息發(fā)送給目標ECU;
5)目標ECU對所述第二消息進行解密,根據(jù)解密獲得的新固件計算第四哈希值,判斷所述第四哈希值與所述第三哈希值是否相同,若是,則將所述新固件下載至目標ECU的RAM中,執(zhí)行步驟6),若否,則忽略所述第二消息;
6)目標ECU對新固件進行燒寫。
所述遠程服務(wù)器與目標ECU之間的對稱密鑰在目標ECU出廠時設(shè)置。
所述步驟3)中,目標ECU對密鑰K和與該密鑰K對應(yīng)的第五哈希值進行加密后送給遠程服務(wù)器,遠程服務(wù)器對所述第五哈希值進行驗證,在驗證通過后向目標ECU發(fā)送確認消息。
所述確認消息為由帶有對應(yīng)哈希值的加密消息。
在執(zhí)行所述步驟6)之前,驗證新固件的安全性,具體為:
通過串口偵聽以及通信協(xié)議的分析,獲得新固件傳輸過程中的二進制數(shù)據(jù),將二進制數(shù)據(jù)進行哈希計算得到第六哈希值,判斷所述第六哈希值與第三哈希值是否相同,若是,是判定新固件安全,若否,則判定新固件不安全。
一種基于信息安全技術(shù)的車輛遠程固件更新裝置,該更新裝置設(shè)置于車輛通信系統(tǒng)中,所述車輛通信系統(tǒng)包括通過無線網(wǎng)絡(luò)連接的遠程服務(wù)器和目標ECU,所述更新裝置包括設(shè)置于目標ECU中的加密模塊和第一通信模塊以及設(shè)置于遠程服務(wù)器內(nèi)的第二通信模塊,其中,
所述加密模塊生成與遠程服務(wù)器通信的對稱密鑰和用于新固件加密的密鑰K;
所述第二通信模塊利用所述對稱密鑰向目標ECU發(fā)送加密的固件更新請求消息,并在所述固件更新請求消息被接收后利用密鑰K向目標ECU發(fā)送加密的新固件;
所述第一通信模塊解密所述固件更新請求消息和新固件,在利用哈希值驗證所述固件更新請求消息和新固件安全后,將所述新固件下載至目標ECU的RAM中。
所述第二通信模塊包括:
更新消息生成單元,生成一固件更新請求消息,根據(jù)該固件更新請求消息的消息摘要生成第一哈希值,根據(jù)對稱密鑰對所述固件更新請求消息和第一哈希值進行對稱加密封裝為第一消息,發(fā)送給目標ECU;
新固件發(fā)送單元,在接收到經(jīng)驗證后的密鑰K時響應(yīng),通過所述密鑰K對新固件及與所述新固件對應(yīng)的第三哈希值進行加密,生成第二消息發(fā)送給目標ECU。
所述第一通信模塊包括:
更新消息驗證單元,對所述第一消息進行對稱解密,根據(jù)解密獲得的固件更新請求消息的消息摘要計算第二哈希值,判斷所述第二哈希值與所述第一哈希值是否相同;
固件密鑰發(fā)送單元,在所述更新消息驗證單元的判斷結(jié)果為是時響應(yīng),將密鑰K對稱加密后發(fā)送給遠程服務(wù)器;
固件驗證單元,對所述第二消息進行解密,根據(jù)解密獲得的新固件計算第四哈希值,判斷所述第四哈希值與所述第三哈希值是否相同;
固件下載單元,在所述固件驗證單元的判斷結(jié)果為是時響應(yīng),將所述新固件下載至目標ECU的RAM中,對新固件進行燒寫。
該更新裝置還包括:
信任鏈建立模塊,將新固件由第一通信模塊發(fā)送至加密模塊,通過串口偵聽以及通信協(xié)議的分析,獲得新固件傳輸過程中的二進制數(shù)據(jù),將二進制數(shù)據(jù)進行哈希計算得到第六哈希值,判斷所述第六哈希值與第三哈希值是否相同,若是,是判定新固件安全,若否,則判定新固件不安全;
在判定新固件安全后對新固件進行燒寫。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
1)對稱加密技術(shù)速度快、計算量小且效率高,可以應(yīng)用該方法對傳輸?shù)臄?shù)據(jù)進行保密;哈希算法能夠?qū)⑷我忾L度的二進制值轉(zhuǎn)換為較短的固定長度的二進制值,如果一段明文數(shù)據(jù)只更改一個數(shù)值,隨后生成的哈希值都會不同。而且根據(jù)哈希值逆推消息報文的運算量相當(dāng)大,實際上基本是不可能做到的,因此,哈希算法可以用于驗證傳輸數(shù)據(jù)的完整性。本發(fā)明在固件遠程更新中應(yīng)用了對稱加密技術(shù)和哈希算法保證了消息傳輸?shù)陌踩院屯暾?,解決了現(xiàn)有傳統(tǒng)固件更新方便性差、應(yīng)用場合少的問題,同時也解決了現(xiàn)有遠程更新的信息安全問題,方便性、適應(yīng)性和可靠性高。
2)本發(fā)明在固件遠程更新過程中進行多次加密和哈希驗證,極大地保證了消息傳輸?shù)陌踩浴?/p>
3)本發(fā)明在下載完新固件后,還設(shè)置了一個信任鏈,對所下載的新固件進行了安全性和完整性的驗證,進一步提高了固件更新的安全性。
附圖說明
圖1為本發(fā)明實施例中遠程服務(wù)器與目標ECU之間通信的建立示意圖;
圖2為本發(fā)明實施例中遠程服務(wù)器向目標ECU傳輸新版本固件的示意圖;
圖3為本發(fā)明實施例中目標ECU對固件的完整性驗證流程圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。本實施例以本發(fā)明技術(shù)方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。
本實施例提供一種基于信息安全技術(shù)的車輛遠程固件更新裝置,該更新裝置設(shè)置于車輛通信系統(tǒng)中,所述車輛通信系統(tǒng)包括通過無線網(wǎng)絡(luò)連接的遠程服務(wù)器和目標ECU,所述更新裝置包括設(shè)置于目標ECU中的加密模塊和第一通信模塊以及設(shè)置于遠程服務(wù)器內(nèi)的第二通信模塊,其中,所述加密模塊生成與遠程服務(wù)器通信的對稱密鑰和用于新固件加密的密鑰K,也用于安全存儲;所述第二通信模塊利用所述對稱密鑰向目標ECU發(fā)送加密的固件更新請求消息,并在所述固件更新請求消息被接收后利用密鑰K向目標ECU發(fā)送加密的新固件;所述第一通信模塊解密所述固件更新請求消息和新固件,在利用哈希值驗證所述固件更新請求消息和新固件安全后,將所述新固件下載至目標ECU的RAM中。
所述第二通信模塊包括:更新消息生成單元,生成一固件更新請求消息,根據(jù)該固件更新請求消息的消息摘要生成第一哈希值,根據(jù)對稱密鑰對所述固件更新請求消息和第一哈希值進行對稱加密封裝為第一消息,發(fā)送給目標ECU;新固件發(fā)送單元,在接收到經(jīng)驗證后的密鑰K時響應(yīng),通過所述密鑰K對新固件及與所述新固件對應(yīng)的第三哈希值進行加密,生成第二消息發(fā)送給目標ECU。
所述第一通信模塊包括:更新消息驗證單元,對所述第一消息進行對稱解密,根據(jù)解密獲得的固件更新請求消息的消息摘要計算第二哈希值,判斷所述第二哈希值與所述第一哈希值是否相同;固件密鑰發(fā)送單元,在所述更新消息驗證單元的判斷結(jié)果為是時響應(yīng),將密鑰K對稱加密后發(fā)送給遠程服務(wù)器;固件驗證單元,對所述第二消息進行解密,根據(jù)解密獲得的新固件計算第四哈希值,判斷所述第四哈希值與所述第三哈希值是否相同;固件下載單元,在所述固件驗證單元的判斷結(jié)果為是時響應(yīng),將所述新固件下載至目標ECU的RAM中,對新固件進行燒寫。
在本發(fā)明的另一實施例中,該更新裝置還包括:信任鏈建立模塊,將新固件由第一通信模塊發(fā)送至加密模塊,通過串口偵聽以及通信協(xié)議的分析,獲得新固件傳輸過程中的二進制數(shù)據(jù),將二進制數(shù)據(jù)進行哈希計算得到第六哈希值,判斷所述第六哈希值與第三哈希值是否相同,若是,是判定新固件安全,若否,則判定新固件不安全;在判定新固件安全后對新固件進行燒寫。
如圖1所示,利用上述更新裝置實現(xiàn)遠程服務(wù)器2和目標ECU1的通信的建立具體為:
加密模塊11生成對稱密鑰K_com和密鑰K,第二通信模塊21通過對稱密鑰K_com對固件更新請求消息以及消息的摘要生成的哈希值MAC進行加密,生成K_com(Req_meg+MAC),封裝成以太網(wǎng)的報文格式,通過以太網(wǎng)收發(fā)器發(fā)送給目標ECU1的第一通信模塊12。第一通信模塊12在收到請求之后,向加密模塊請求通信對稱密鑰K_com以及生成的用于固件更新的密鑰K。第一通信模塊用密鑰K_com將信息進行解密,得到固件更新請求消息以及消息摘要生成的哈希值:Req_meg+MAC,然后計算固件更新請求消息摘要的哈希值與發(fā)送來的哈希值進行比對,如果相同,就可以證明遠程服務(wù)器發(fā)送的加密消息并沒有受到非法的篡改,保證了固件更新請求消息的真實性與完整性。接下來,第一通信模塊將用于固件更新的密鑰K、回復(fù)消息及其摘要生成的哈希值K_com(Res_ecu+K_enc+MAC)返回給遠程服務(wù)器,由遠程服務(wù)器進行解密以及驗證,獲取其中的密鑰K。最后遠程服務(wù)器返回一個確認消息K_com(Res_ser+MAC)給目標ECU,標志著整個通信環(huán)境已經(jīng)搭建好了,目標ECU進行一系列操作,比如發(fā)布停車命令以及更新警告等,切換到可編程模式,可以開始傳輸新版本的固件。
對稱加密技術(shù)通過硬件的方式加以實現(xiàn),本實施例采用恩智浦公司開發(fā)的一款加密芯片MPC5748G,可解決在硬件層次上實現(xiàn)對稱加密解密以及密鑰安全存儲的問題。哈希算法則可以通過軟件算法的方法加以實現(xiàn)。
如圖2所示,新固件傳輸過程具體為:遠程服務(wù)器接收到目標ECU返回的進入到可編程模式的確認消息之后,通過密鑰K對新的固件及其摘要生成的哈希值進行加密K(Firmware+MAC),發(fā)送給目標ECU,第一通信模塊12則解密并驗證更新固件的哈希值。如果通過解密和認證,則將固件下載到ECU的RAM中。為了加以保護,將固件Firmware及其MAC值其存入加密模塊11的ROM中。
如圖3所示,在目標ECU下載完所有的固件之后,需要建立一個信任鏈,即對每次新固件安裝的安全性進行計算。通過串口偵聽,獲得固件傳輸過程中的二進制數(shù)據(jù),將二進制數(shù)據(jù)進行哈希計算得到一個該版本固件的哈希值,將其與遠程服務(wù)器傳來的哈希值進行對比。如果相同的話,則可以證明該固件的安全性和完整性。最后重啟目標ECU硬件,將新版本的固件從ROM中進行燒寫。