本發(fā)明涉及一種車輛遠程診斷方法,尤其是涉及一種基于信息安全技術(shù)的車輛遠程診斷方法。
背景技術(shù):
近年來,得益于互聯(lián)網(wǎng)信息技術(shù)不斷取得的重大突破,汽車行業(yè)開始邁入信息化時代,汽車產(chǎn)品也逐步走向智能化?!爸悄芙煌ā薄ⅰ败嚶?lián)網(wǎng)”等相關概念也受到了國內(nèi)外學者的廣泛關注。在這些領域上的相關技術(shù)的發(fā)展與不斷完善都將促進汽車不斷智能化和信息化。其中,通過以太網(wǎng)以及V2X技術(shù)對車輛進行遠程診斷的方法也已經(jīng)日趨成熟。
但是隨著車聯(lián)網(wǎng)技術(shù)以及汽車智能化的提升,汽車面臨的信息安全問題也愈來愈受到重視。在進行車輛遠程固件的過程中,由遠程診斷服務器發(fā)送的信息報文以及由目標ECU(電子控制單元)返回的診斷信息將有可能受到非法的跟蹤、記錄與篡改,因此需要使用相應的信息安全技術(shù)對這些信息進行保護。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種車輛遠程診斷方法。
本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
一種基于信息安全技術(shù)的車輛遠程診斷系統(tǒng),該系統(tǒng)包括診斷目標ECU和遠程診斷服務器,該系統(tǒng)還包括車輛診斷接收網(wǎng)關,所述的車輛診斷接收網(wǎng)關設置在診斷目標ECU和遠程診斷服務器之間并分別與兩者通信連接,所述的車輛診斷接收網(wǎng)關與遠程診斷服務器之間設有非對稱加密單元,所述的車輛診斷接收網(wǎng)關和診斷目標ECU之間設有對稱加密單元;
所述的非對稱加密單元用于在遠程診斷服務器端對遠程診斷服務器的診斷請求進行非對稱加密,同時在車輛診斷接收網(wǎng)關端進行解密驗證通信是否安全,若是則車輛診斷接收網(wǎng)關進入診斷狀態(tài),遠程診斷服務器發(fā)送密鑰K至車輛診斷接收網(wǎng)關;
所述的對稱加密單元用于在車輛診斷接收網(wǎng)關進入診斷狀態(tài)時在車輛診斷接收網(wǎng)關端對診斷請求進行對稱加密,同時在診斷目標ECU端進行解密驗證通信是否安全,若是則診斷目標ECU進入診斷狀態(tài),車輛診斷接收網(wǎng)關將密鑰K發(fā)送至診斷目標ECU,進而遠程診斷服務器通過密鑰K加密對目標ECU進行遠程診斷。
所述的非對稱加密單元包括:
設置在車輛診斷接收網(wǎng)關端的第一密鑰生成分發(fā)存儲模塊:該模塊生成非對稱加密的公鑰Kg_pu和對應的私鑰Kg_pr,并將公鑰Kg_pu發(fā)送至遠程診斷服務器,將私鑰Kg_pr保存;
設置在遠程診斷服務器端的第二密鑰生成分發(fā)存儲模塊:該模塊生成非對稱加密的公鑰Kr_pu和對應的私鑰Kr_pr,并將公鑰Kr_pu發(fā)送至車輛診斷接收網(wǎng)關,將私鑰Kr_pr保存;
設置在遠程診斷服務器端的哈希值生成模塊:該模塊用于生成診斷請求消息摘要的哈希值MAC;
設置在遠程診斷服務器端的非對稱加密模塊:該模塊采用公鑰Kg_pu對診斷請求消息Req_meg以及診斷請求消息摘要的哈希值MAC進行加密生成Kg_pu(Req_meg+MAC)并發(fā)送至車輛診斷接收網(wǎng)關;
設置在車輛診斷接收網(wǎng)關端的非對稱解密模塊:該模塊采用第一密鑰生成分發(fā)存儲模塊保存的私鑰Kg_pr進行解密得到診斷請求消息以及診斷請求消息摘要的哈希值Req_meg+MAC;
設置在車輛診斷接收網(wǎng)關端的第一驗證確認模塊:該模塊根據(jù)接收到的Kg_pu(Req_meg+MAC)計算得到診斷請求消息摘要的哈希計算值,并將此哈希計算值與解密得到的診斷請求消息摘要的哈希值MAC進行對比,若相同,則車輛診斷接收網(wǎng)關進入診斷狀態(tài),驗證確認模塊通過公鑰Kr_pu對Req_meg+MAC進行加密得到Kr_pu(Res_meg+MAC)并發(fā)送至遠程診斷服務器確認;
設置在遠程診斷服務器端端的第二驗證確認模塊:該模塊采用第二密鑰生成分發(fā)存儲模塊保存的私鑰Kr_pr對Kr_pu(Res_meg+MAC)進行解密并驗證消息正確性,若正確,第二驗證確認模塊通過公鑰Kg_pu將密鑰K和診斷請求消息摘要的哈希值MAC進行非對稱加密得到Kg_pu(K+MAC)并發(fā)送至車輛診斷接收網(wǎng)關;
設置在車輛診斷接收網(wǎng)關端的第一密鑰保存模塊:該模塊通過第一密鑰生成分發(fā)存儲模塊中的私鑰Kg_pr對Kg_pu(K+MAC)進行解密得到密鑰K并保存。
所述的對稱加密單元包括:
設置在車輛診斷接收網(wǎng)關端的第一對稱加密密鑰存儲模塊:該模塊存儲對稱加密私鑰Ke_pr;
設置在診斷目標ECU端的第二對稱加密密鑰存儲模塊:該模塊存儲對稱加密私鑰Ke_pr;
設置在車輛診斷接收網(wǎng)關端的對稱加密模塊:該模塊采用第一對稱加密密鑰存儲模塊中的對稱加密私鑰Ke_pr對診斷請求消息Req_meg以及診斷請求消息摘要的哈希值MAC進行加密生成Ke_pr(Req_meg+MAC)并發(fā)送至診斷目標ECU;
設置在診斷目標ECU端的對稱解密模塊:該模塊采用第二對稱加密密鑰存儲模塊中的對稱加密私鑰Ke_pr對Ke_pr(Req_meg+MAC)進行解密;
設置在診斷目標ECU端的第三驗證確認模塊:該模塊根據(jù)接收到的Ke_pr(Req_meg+MAC)計算得到診斷請求消息摘要的哈希計算值,并將此哈希計算值與對稱解密模塊解密得到的診斷請求消息摘要的哈希值MAC進行對比,若兩者相同,則發(fā)送確認信息至車輛診斷接收網(wǎng)關;
設置在車輛診斷接收網(wǎng)關的第四驗證確認模塊:該模塊驗證第三驗證確認模塊發(fā)送的確認信息的正確性,并將密鑰保存模塊中的密鑰K和診斷請求消息摘要的哈希值MAC進行對稱加密得到Ke_pr(K+MAC)并發(fā)送至診斷目標ECU;
設置在目標ECU端的第二密鑰保存模塊:該模塊通過第二對稱加密密鑰存儲模塊中的對稱加密私鑰Ke_pr對Ke_pr(K+MAC)進行解密得到密鑰K并保存。
一種基于信息安全技術(shù)的車輛遠程診斷方法,該方法包括如下步驟:
(1)遠程診斷服務器對診斷請求進行非對稱加密并發(fā)送至車輛診斷接收網(wǎng)關,執(zhí)行步驟(2);
(2)車輛診斷接收網(wǎng)關對接收的診斷請求進行解密驗證通信是否安全,若是則車輛診斷接收網(wǎng)關進入診斷狀態(tài),遠程診斷服務器發(fā)送密鑰K至車輛診斷接收網(wǎng)關,并執(zhí)行步驟(3),否則結(jié)束;
(3)車輛診斷接收網(wǎng)關對診斷請求進行對稱加密并發(fā)送至診斷目標ECU;
(4)診斷目標ECU對接收的診斷請求進行解密驗證通信是否安全,若是則診斷目標ECU進入診斷狀態(tài),車輛診斷接收網(wǎng)關將密鑰K發(fā)送至診斷目標ECU,進而遠程診斷服務器通過密鑰K加密對目標ECU進行遠程診斷,否則結(jié)束。
所述的診斷請求包括診斷請求消息Req_meg以及診斷請求消息摘要的哈希值MAC,步驟(1)對診斷請求進行加密前首先采用哈希算法生成診斷請求消息摘要的哈希值MAC。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點:
(1)本發(fā)明設置了車輛診斷接收網(wǎng)關作為中間通信橋梁,提高了診斷目標ECU和遠程診斷服務器直接通信的安全性;
(2)本發(fā)明車輛診斷接收網(wǎng)關和遠程診斷服務器使用以太網(wǎng)通信時使用非對稱加密技術(shù),而在車輛內(nèi)部車輛診斷接收網(wǎng)關和診斷目標ECU之間則使用實時性更好,占資源更少的對稱加密技術(shù),非對稱加密雖然安全性更高,但是加密和解密花費時間長、速度慢,對稱加密技術(shù)速度快、計算量小且效率高但是保密性不如非對稱加密方法好,采用兩只方法的有效結(jié)合,能夠綜合兩者優(yōu)缺點,從而實現(xiàn)在提高通信安全的同時保證一定的通信速度,提高效率;
(3)將非對稱加密技術(shù)應用于車輛診斷接收網(wǎng)關與遠程診斷服務器之間的通信,利用其強大的安全特性,對傳輸?shù)臄?shù)據(jù)進行保密,保證了傳輸過程中的可靠性與匿名性;
(4)將對稱加密技術(shù)應用于診斷接收網(wǎng)關與診斷目標ECU之間的通信,利用對稱加密技術(shù)速度快、計算量小且效率高的特性,對傳輸?shù)臄?shù)據(jù)進行保密,保證傳輸過程中的可靠性與匿名性;
(5)在加密的同時對診斷請求消息采用哈希算法生成診斷請求消息摘要的哈希值MAC,利用了哈希算法不可逆的特性,用于驗證傳輸數(shù)據(jù)的完整性和真實性。
附圖說明
圖1為本發(fā)明基于信息安全技術(shù)的車輛遠程診斷系統(tǒng)的結(jié)構(gòu)框圖;
圖2為本發(fā)明遠程診斷服務器與車輛診斷接收網(wǎng)關之間的通信結(jié)構(gòu)框圖;
圖3為本發(fā)明車輛診斷接收網(wǎng)關和診斷目標ECU之間的通信結(jié)構(gòu)框圖。
圖中,1為診斷目標ECU,2為車輛診斷接收網(wǎng)關,3為遠程診斷服務器,4為通信模塊,5為加密模塊。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。
實施例
如圖1所示,一種基于信息安全技術(shù)的車輛遠程診斷系統(tǒng),該系統(tǒng)包括診斷目標ECU和遠程診斷服務器3,該系統(tǒng)還包括車輛診斷接收網(wǎng)關2,車輛診斷接收網(wǎng)關2設置在診斷目標ECU1和遠程診斷服務器3之間并分別與兩者通信連接,車輛診斷接收網(wǎng)關2與遠程診斷服務器3之間設有非對稱加密單元,車輛診斷接收網(wǎng)關2和診斷目標ECU1之間設有對稱加密單元;非對稱加密單元用于在遠程診斷服務器3端對遠程診斷服務器3的診斷請求進行非對稱加密,同時在車輛診斷接收網(wǎng)關2端進行解密驗證通信是否安全,若是則車輛診斷接收網(wǎng)關2進入診斷狀態(tài),遠程診斷服務器3發(fā)送密鑰K至車輛診斷接收網(wǎng)關2;對稱加密單元用于在車輛診斷接收網(wǎng)關2進入診斷狀態(tài)時在車輛診斷接收網(wǎng)關2端對診斷請求進行對稱加密,同時在診斷目標ECU1端進行解密驗證通信是否安全,若是則診斷目標ECU1進入診斷狀態(tài),車輛診斷接收網(wǎng)關2將密鑰K發(fā)送至診斷目標ECU1,進而遠程診斷服務器3通過密鑰K加密對目標ECU進行遠程診斷。圖中,診斷目標ECU1、車輛診斷接收網(wǎng)關2和遠程診斷服務器3均設有一個通信模塊4和一個加密模塊5,通信模塊4實現(xiàn)信息通訊,加密模塊5實現(xiàn)對稱加密以及非對稱加密,遠程診斷服務器3和車輛診斷接收網(wǎng)關2中的加密模塊4組成了所述的非對稱加密單元,診斷目標ECU1和車輛診斷接收網(wǎng)關2中的加密模塊4組成了所述的對稱加密單元。
非對稱加密單元包括:
設置在車輛診斷接收網(wǎng)關2端的第一密鑰生成分發(fā)存儲模塊:該模塊生成非對稱加密的公鑰Kg_pu和對應的私鑰Kg_pr,并將公鑰Kg_pu發(fā)送至遠程診斷服務器3,將私鑰Kg_pr保存;設置在遠程診斷服務器3端的第二密鑰生成分發(fā)存儲模塊:該模塊生成非對稱加密的公鑰Kr_pu和對應的私鑰Kr_pr,并將公鑰Kr_pu發(fā)送至車輛診斷接收網(wǎng)關2,將私鑰Kr_pr保存;設置在遠程診斷服務器3端的哈希值生成模塊:該模塊用于生成診斷請求消息摘要的哈希值MAC;設置在遠程診斷服務器3端的非對稱加密模塊:該模塊采用公鑰Kg_pu對診斷請求消息Req_meg以及診斷請求消息摘要的哈希值MAC進行加密生成Kg_pu(Req_meg+MAC)并發(fā)送至車輛診斷接收網(wǎng)關2;設置在車輛診斷接收網(wǎng)關2端的非對稱解密模塊:該模塊采用第一密鑰生成分發(fā)存儲模塊保存的私鑰Kg_pr進行解密得到診斷請求消息以及診斷請求消息摘要的哈希值Req_meg+MAC;設置在車輛診斷接收網(wǎng)關2端的第一驗證確認模塊:該模塊根據(jù)接收到的Kg_pu(Req_meg+MAC)計算得到診斷請求消息摘要的哈希計算值,并將此哈希計算值與解密得到的診斷請求消息摘要的哈希值MAC進行對比,若相同,則車輛診斷接收網(wǎng)關2進入診斷狀態(tài),驗證確認模塊通過公鑰Kr_pu對Req_meg+MAC進行加密得到Kr_pu(Res_meg+MAC)并發(fā)送至遠程診斷服務器3確認;設置在遠程診斷服務器3端端的第二驗證確認模塊:該模塊采用第二密鑰生成分發(fā)存儲模塊保存的私鑰Kr_pr對Kr_pu(Res_meg+MAC)進行解密并驗證消息正確性,若正確,第二驗證確認模塊通過公鑰Kg_pu將密鑰K和診斷請求消息摘要的哈希值MAC進行非對稱加密得到Kg_pu(K+MAC)并發(fā)送至車輛診斷接收網(wǎng)關2;設置在車輛診斷接收網(wǎng)關2端的第一密鑰保存模塊:該模塊通過第一密鑰生成分發(fā)存儲模塊中的私鑰Kg_pr對Kg_pu(K+MAC)進行解密得到密鑰K并保存。
對稱加密單元包括:
設置在車輛診斷接收網(wǎng)關2端的第一對稱加密密鑰存儲模塊:該模塊存儲對稱加密私鑰Ke_pr;設置在診斷目標ECU1端的第二對稱加密密鑰存儲模塊:該模塊存儲對稱加密私鑰Ke_pr;設置在車輛診斷接收網(wǎng)關2端的對稱加密模塊:該模塊采用第一對稱加密密鑰存儲模塊中的對稱加密私鑰Ke_pr對診斷請求消息Req_meg以及診斷請求消息摘要的哈希值MAC進行加密生成Ke_pr(Req_meg+MAC)并發(fā)送至診斷目標ECU1;設置在診斷目標ECU1端的對稱解密模塊:該模塊采用第二對稱加密密鑰存儲模塊中的對稱加密私鑰Ke_pr對Ke_pr(Req_meg+MAC)進行解密;設置在診斷目標ECU1端的第三驗證確認模塊:該模塊根據(jù)接收到的Ke_pr(Req_meg+MAC)計算得到診斷請求消息摘要的哈希計算值,并將此哈希計算值與對稱解密模塊解密得到的診斷請求消息摘要的哈希值MAC進行對比,若兩者相同,則發(fā)送確認信息至車輛診斷接收網(wǎng)關2;設置在車輛診斷接收網(wǎng)關2的第四驗證確認模塊:該模塊驗證第三驗證確認模塊發(fā)送的確認信息的正確性,并將密鑰保存模塊中的密鑰K和診斷請求消息摘要的哈希值MAC進行對稱加密得到Ke_pr(K+MAC)并發(fā)送至診斷目標ECU1;設置在目標ECU端的第二密鑰保存模塊:該模塊通過第二對稱加密密鑰存儲模塊中的對稱加密私鑰Ke_pr對Ke_pr(K+MAC)進行解密得到密鑰K并保存。
一種基于信息安全技術(shù)的車輛遠程診斷方法,該方法包括如下步驟:
(1)遠程診斷服務器3對診斷請求進行非對稱加密并發(fā)送至車輛診斷接收網(wǎng)關2,執(zhí)行步驟(2);
(2)車輛診斷接收網(wǎng)關2對接收的診斷請求進行解密驗證通信是否安全,若是則車輛診斷接收網(wǎng)關2進入診斷狀態(tài),遠程診斷服務器3發(fā)送密鑰K至車輛診斷接收網(wǎng)關2,并執(zhí)行步驟(3),否則結(jié)束;
(3)車輛診斷接收網(wǎng)關2對診斷請求進行對稱加密并發(fā)送至診斷目標ECU1;
(4)診斷目標ECU1對接收的診斷請求進行解密驗證通信是否安全,若是則診斷目標ECU1進入診斷狀態(tài),車輛診斷接收網(wǎng)關2將密鑰K發(fā)送至診斷目標ECU1,進而遠程診斷服務器3通過密鑰K加密對目標ECU進行遠程診斷,否則結(jié)束。
診斷請求包括診斷請求消息Req_meg以及診斷請求消息摘要的哈希值MAC,步驟(1)對診斷請求進行加密前首先采用哈希算法生成診斷請求消息摘要的哈希值MAC。由此,一個可信任的診斷信任鏈就建立起來了,目標ECU與遠程診斷接收網(wǎng)關之間的診斷服務、詢問與應答,則可以通過密鑰K進行加解密與哈希MAC值驗證,這種方法確保了整個車輛遠程診斷過程的匿名性、完整性及真實性。
圖2為遠程診斷服務器3與車輛診斷接收網(wǎng)關2之間的通信結(jié)構(gòu)框圖,非對稱加密技術(shù)通過軟件的方式加以實現(xiàn),遠程診斷服務器3獲取車輛診斷接收網(wǎng)關2的公鑰Kg_pu對診斷請求消息,以及消息的摘要生成的哈希值MAC進行加密,生成Kg_pu(Req_meg+MAC),封裝成以太網(wǎng)的報文格式,通過以太網(wǎng)收發(fā)器發(fā)送給車輛診斷接收網(wǎng)關2。車輛診斷接收網(wǎng)關2在收到診斷請求之后,向車輛診斷接收網(wǎng)關2的加密模塊請求車輛診斷接收網(wǎng)關2的私人密鑰Kg_pr以及遠程診斷服務器3的公共密鑰Kr_pu。車輛診斷接收網(wǎng)關2用私鑰Kg_pr將信息進行解密,得到診斷請求消息以及消息摘要生成的哈希值:Req_meg+MAC,然后計算診斷消息摘要的哈希值與發(fā)送來的哈希值進行比對,如果相同,則可以證明遠程診斷服務器3發(fā)送的加密消息并沒有受到非法的篡改,則保證了診斷請求消息的真實性與完整性。車輛診斷接收網(wǎng)關2則進入診斷狀態(tài)。接下來,車輛診斷接收網(wǎng)關2使用遠程診斷服務器3的公共密鑰Kr_pu返回遠程診斷服務器3一個確認消息Kr_pu(Res_meg+MAC)。遠程診斷服務器3收到并驗證該確認消息之后,將一個通信密鑰K通過非對稱加密的方式Kg_pu(K+MAC)發(fā)送給車輛診斷接收網(wǎng)關2。為了確保安全,密鑰K存儲在第一密鑰保存模塊之中。
圖3為車輛診斷接收網(wǎng)關2和診斷目標ECU1之間的通信結(jié)構(gòu)框圖,進入診斷狀態(tài)的車輛診斷接收網(wǎng)關2使用從安全模塊傳來的私鑰Ke_pr,通過對稱加密的方式,發(fā)送診斷請求消息與消息摘要生成的哈希MAC值Ke_pr(Req_meg+MAC)給診斷目標ECU1。對稱加密的方式則通過硬件加以實現(xiàn)。目標ECU接收到發(fā)來的信息,用加密模塊發(fā)來的私鑰Ke_pr進行解密,并計算信息摘要的哈希值與發(fā)送來的哈希值進行比對,以證明消息的真實性與可靠性。驗證成功之后,目標ECU的通信模塊將返回給車輛診斷接收網(wǎng)關2的通信模塊一個加密的確認消息Ke_pr(Res_meg+MAC),最后則由車輛診斷接收網(wǎng)關2將密鑰K通過對稱加密的方式Ke_pr(K+MAC)發(fā)送給目標ECU。目標ECU將密鑰存儲在加密模塊中,確保其安全性。這標志著目標ECU進入診斷模式。