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