專利名稱:車載診斷安全驗證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及汽車電子技術(shù)領(lǐng)域,尤其涉及一種車載診斷安全驗證方法。
背景技術(shù):
目前,各汽車廠商使用的診斷協(xié)議主要有IS014230、IS015765和IS0142^。為了對診斷操作進(jìn)行權(quán)限控制,這些診斷協(xié)議都規(guī)定了安全驗證服務(wù)。診斷儀必須通過安全驗證,才能夠?qū)囕dE⑶(Electric Control Unit,電子控制單元)進(jìn)行權(quán)限限定的診斷操作?,F(xiàn)有的安全驗證流程包括以下步驟第1步,診斷儀向車載ECU發(fā)出請求種子的命令;第2步,車載ECU計算出一個種子,并將該種子發(fā)送給診斷儀;第3步,診斷儀根據(jù)收到的種子按照一種安全驗證算法,計算出一個密鑰,并將該密鑰發(fā)送給車載ECU ;第4步,車載 ECU使用第2步計算出來的種子,按照第3步同樣的安全驗證算法,計算出一個密鑰,并與診斷儀所發(fā)送的密鑰進(jìn)行比較。如果兩個密鑰相同,則安全驗證通過,如果不相同,則不通過。 第5步,車載ECU將安全驗證的結(jié)果發(fā)送給診斷儀。安全驗證的安全性,關(guān)鍵在于安全驗證算法的保密性。而上述安全驗證流程并沒有包含防破解的策略,非法分子可以不斷用不同的數(shù)字去嘗試,將有可能破解密鑰,從而對車載ECU進(jìn)行非法操作,安全性低。
發(fā)明內(nèi)容
本發(fā)明提出一種車載診斷安全驗證方法,能夠有效地阻止非法破解,提高車載診斷的安全性。本發(fā)明實施例提供一種車載診斷安全驗證方法,包括
51、車載ECU根據(jù)安全驗證算法,對診斷儀進(jìn)行安全驗證;
52、當(dāng)安全驗證不通過時,計數(shù)器加1;
53、判斷計數(shù)器的值是否達(dá)到預(yù)置的次數(shù)閥值;若是,則標(biāo)志位置1,啟用定時器進(jìn)行計時;若否,標(biāo)志位的值保持不變;
54、判斷定時器的值是否達(dá)到預(yù)置的時間閥值;若是,計數(shù)器減1,標(biāo)志位清零;若否, 標(biāo)志位的值保持不變;
若標(biāo)志位為1,車載ECU禁止診斷儀進(jìn)行安全驗證操作;若標(biāo)志位為0,車載ECU允許診斷儀進(jìn)行安全驗證操作。進(jìn)一步的,所述步驟S3還包括
在定時器計時期間,若診斷儀發(fā)送診斷命令將車載ECU復(fù)位,或者車載ECU重新上電, 則計數(shù)器清零,標(biāo)志位保持不變,重新啟用定時器進(jìn)行計時;在重新啟用定時器之后,計數(shù)器的值被置為所述次數(shù)閥值。本發(fā)明實施例提供的車載診斷安全驗證方法,在車載ECU對診斷儀進(jìn)行安全驗證的過程中,當(dāng)安全驗證失敗的次數(shù)達(dá)到預(yù)置的閥值時,啟用定時器進(jìn)行延時。在定時器啟用過程中,車載ECU將禁止一切有關(guān)安全驗證的請求,延時結(jié)束后再允許診斷儀進(jìn)行安全驗證。之后的每一次安全驗證失敗后都會啟用定時器,使得非法操作過程當(dāng)中不斷進(jìn)行延時, 有效地阻止非法侵入者采用破解密鑰的方式對車載ECU進(jìn)行非法診斷操作,從而提高車載診斷的安全性。
圖1是本發(fā)明實施一提供的車載診斷安全驗證方法的流程示意圖; 圖2是本發(fā)明實施二提供的車載診斷安全驗證方法的流程示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述。參見圖1,是本發(fā)明實施一提供的車載診斷安全驗證方法的流程示意圖。本發(fā)明實施例針對安全驗證的防破解策略在ECU內(nèi)部設(shè)置三個參數(shù),包括 計數(shù)器(FAAcoimter)用于記錄安全驗證失敗的次數(shù);
標(biāo)志位(FAAflag)用來標(biāo)記安全驗證失敗的次數(shù)是否達(dá)到預(yù)置的閾值,若達(dá)到,則標(biāo)志位置1 ;
定時器(SAtimer):當(dāng)安全驗證失敗的次數(shù)達(dá)到預(yù)置的閾值,定時器將啟用,定時器啟用過程當(dāng)中,將禁止一切有關(guān)安全驗證的請求。上述計數(shù)器、標(biāo)志位和定時器設(shè)置在所述車載E⑶中。如圖1所示,本實施例提供的車載診斷安全驗證方法,包括以下步驟
51、車載ECU根據(jù)安全驗證算法,對診斷儀進(jìn)行安全驗證;
52、當(dāng)安全驗證不通過時,計數(shù)器加1;
53、判斷計數(shù)器的值是否達(dá)到預(yù)置的次數(shù)閥值;若是,則標(biāo)志位置1,啟用定時器進(jìn)行計時;若否,標(biāo)志位的值保持不變;
54、判斷定時器的值是否達(dá)到預(yù)置的時間閥值;若是,計數(shù)器減1,標(biāo)志位清零;若否, 標(biāo)志位的值保持不變;
若標(biāo)志位為1(即在定時器啟用過程中),車載ECU禁止診斷儀進(jìn)行安全驗證操作;若標(biāo)志位為0,車載ECU允許診斷儀進(jìn)行安全驗證操作。所述步驟S3還包括
在定時器計時期間,若診斷儀發(fā)送診斷命令將車載ECU復(fù)位,或者車載ECU重新上電, 則計數(shù)器清零,標(biāo)志位保持不變,重新啟用定時器進(jìn)行計時;在重新啟用定時器之后,計數(shù)器的值被置為所述次數(shù)閥值。在所述步驟Sl中,若診斷儀通過安全驗證,則車載ECU接受診斷儀的診斷操作;否則車載ECU禁止診斷儀進(jìn)行診斷操作。參見圖2,是本發(fā)明實施二提供的車載診斷安全驗證方法的流程示意圖。本實施例假設(shè)“預(yù)置的次數(shù)閥值”等于3,“預(yù)置的時間閥值”等于10秒,車載診斷安全驗證防破解流程如下
5100、車載E⑶重新上電,或者車載E⑶重啟;
5101、計數(shù)器FAAcounter 清零;5102、判斷標(biāo)志位FAAflag是否為0,若是,則執(zhí)行S104;若否,則執(zhí)行S103 ;
5103、計數(shù)器FAAcounter的值被置為3,并執(zhí)行SllO;
5104、上鎖;即禁止診斷儀對車載E⑶進(jìn)行診斷操作;
5105、車載ECU對診斷儀進(jìn)行安全驗證,若安全驗證成功,則執(zhí)行S106,否則執(zhí)行 S107 ;
5106、解鎖;即允許診斷儀對車載ECU進(jìn)行診斷操作;
5107、計數(shù)器FAAcounter 力口 1 ;
5108、判斷計數(shù)器FAAcounter的值是否達(dá)到預(yù)置的次數(shù)閥值3;若是,則執(zhí)行S109,否則返回S104 ;
5109、標(biāo)志位FAAflag 置 1 ;
5110、啟用定時器SAtimer進(jìn)行計時;在定時器啟用過程中,車載E⑶將禁止一切有關(guān)安全驗證的請求;
5111、判斷定時器SAtimer的計時時間是否達(dá)到10秒;若是,則執(zhí)行S112;否則等待; Sl 12、計數(shù)器 FAAcounter 減 1 ;
Sl 13、標(biāo)志位FAAflag置0,此時,車載E⑶允許診斷儀進(jìn)行安全驗證操作;返回S104。綜上所述,如果不法分子通過不斷嘗試的方式來破解安全算法,由于經(jīng)過三次安全驗證嘗試失敗之后,接下來的每一次嘗試失敗都將等待10秒,這種插入延時的方案能有效地阻止非法破解密鑰,即使非法分子想通過不斷的上電重啟使計數(shù)器FAAcounter清零, 但是由于此時標(biāo)志位FAAflag不會被清零,同樣要求等待10秒,從而也起到了延時保護(hù)的作用。本發(fā)明實施例提供的車載診斷安全驗證方法,在車載ECU對診斷儀進(jìn)行安全驗證的過程中,當(dāng)安全驗證失敗的次數(shù)達(dá)到預(yù)置的閥值時,啟用定時器進(jìn)行延時。在定時器啟用過程中,車載ECU將禁止一切有關(guān)安全驗證的請求,延時結(jié)束后再允許診斷儀進(jìn)行安全驗證。之后的每一次安全驗證失敗后都會啟用定時器,使得非法操作過程當(dāng)中不斷進(jìn)行延時, 有效地阻止非法侵入者采用破解密鑰的方式對車載ECU進(jìn)行非法診斷操作,從而提高車載診斷的安全性。以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種車載診斷安全驗證方法,其特征在于,包括51、車載ECU根據(jù)安全驗證算法,對診斷儀進(jìn)行安全驗證;52、當(dāng)安全驗證不通過時,計數(shù)器加1;53、判斷計數(shù)器的值是否達(dá)到預(yù)置的次數(shù)閥值;若是,則標(biāo)志位置1,啟用定時器進(jìn)行計時;若否,標(biāo)志位的值保持不變;54、判斷定時器的值是否達(dá)到預(yù)置的時間閥值;若是,計數(shù)器減1,標(biāo)志位清零;若否, 標(biāo)志位的值保持不變;若標(biāo)志位為1,車載ECU禁止診斷儀進(jìn)行安全驗證操作;若標(biāo)志位為0,車載ECU允許診斷儀進(jìn)行安全驗證操作。
2.如權(quán)利要求1所述的車載診斷安全驗證方法,其特征在于,所述步驟S3還包括 在定時器計時期間,若診斷儀發(fā)送診斷命令將車載ECU復(fù)位,或者車載ECU重新上電,則計數(shù)器清零,標(biāo)志位保持不變,重新啟用定時器進(jìn)行計時; 在重新啟用定時器之后,計數(shù)器的值被置為所述次數(shù)閥值。
3.如權(quán)利要求2所述的車載診斷安全驗證方法,其特征在于,所述計數(shù)器、標(biāo)志位和定時器設(shè)置在所述車載E⑶中。
4.如權(quán)利要求1 3任一項所述的車載診斷安全驗證方法,其特征在于,在所述步驟 Sl中,若診斷儀通過安全驗證,則車載ECU接受診斷儀的診斷操作;否則車載ECU禁止診斷儀進(jìn)行診斷操作。
全文摘要
本發(fā)明公開了一種車載診斷安全驗證方法,在車載ECU對診斷儀進(jìn)行安全驗證的過程中,當(dāng)安全驗證失敗的次數(shù)達(dá)到預(yù)置的閥值時,啟用定時器進(jìn)行延時。在定時器啟用過程中,車載ECU禁止一切有關(guān)安全驗證的請求,延時結(jié)束后再允許診斷儀進(jìn)行安全驗證。之后的每一次安全驗證失敗后都會啟用定時器,使得非法操作過程當(dāng)中不斷進(jìn)行延時,有效地阻止非法侵入者采用破解密鑰的方式對車載ECU進(jìn)行非法診斷操作,提高車載診斷的安全性。
文檔編號H04L29/08GK102255901SQ201110187678
公開日2011年11月23日 申請日期2011年7月6日 優(yōu)先權(quán)日2011年7月6日
發(fā)明者張斌, 李濟(jì)泰, 黃麗芳, 黃少堂 申請人:廣州汽車集團(tuán)股份有限公司