本發(fā)明涉及智能網(wǎng)聯(lián)汽車、車內(nèi)網(wǎng)、一次一密等領(lǐng)域,尤其涉及車內(nèi)電子控制單元的安全通信領(lǐng)域。
背景技術(shù):
2013年以來特斯拉、寶馬、通用、克萊斯等國外汽車巨頭率先推出了智能網(wǎng)聯(lián)汽車的雛形產(chǎn)品,但隨之發(fā)生了一系列針對汽車智能網(wǎng)聯(lián)系統(tǒng)的破解和攻擊事件。2013年charliemiller&chrisvalasek通過車載obd接口破解了豐田普銳斯;2014年,寶馬公司因其connecteddrive系統(tǒng)存在安全漏洞,召回220萬輛汽車;2015年來自于卡內(nèi)基梅隆大學(xué)和uber公司合作的先進技術(shù)研究中心的信息安全專家charliemiller和chrisvalasek發(fā)布了12款智能網(wǎng)聯(lián)車型的信息安全報告,并公布了信息安全攻擊的細節(jié):通過切諾基的聯(lián)網(wǎng)娛樂系統(tǒng)侵入其電子系統(tǒng),完成了行駛速度、空調(diào)、雨刮器、電臺等方面內(nèi)容的遠程控制。同年360公司率先宣布破解了tesla汽車遠程控制功能以及毫米波雷達系統(tǒng),接著受比亞迪公司委托對比亞迪汽車云服務(wù)、遙控駕駛功能等功能進行了信息安全攻防測試。2016年日產(chǎn)leaf汽車api遭泄露,黑客可遠程控制車輛。正如清華大學(xué)李克強教授在解讀工信部發(fā)布的“智能網(wǎng)聯(lián)汽車技術(shù)發(fā)展路線圖”時所說:“信息安全技術(shù)是智能網(wǎng)聯(lián)汽車成功與否的重要因素之一”。
車內(nèi)網(wǎng)絡(luò)ecu節(jié)點間廣播通信方式難以滿足智能網(wǎng)聯(lián)汽車環(huán)境下的安全需求,為了保證智能網(wǎng)聯(lián)汽車環(huán)境下車內(nèi)網(wǎng)絡(luò)的通信安全,國內(nèi)外專家學(xué)者在車內(nèi)網(wǎng)絡(luò)廣播通信協(xié)議的安全性方面做了大量的研究,但很多研究中車內(nèi)網(wǎng)絡(luò)ecu節(jié)點間以非一次一密的加密方式進行信息交互,不可避免的帶來車內(nèi)信息泄露及ecu節(jié)點身份假冒風(fēng)險的增加。針對此問題,本方案將基于車內(nèi)網(wǎng)絡(luò)電源系統(tǒng)的真隨機特性,建立基于ecu屬性的一次一密車載通信方法,對車內(nèi)網(wǎng)絡(luò)的敏感信息進行有效保護。
技術(shù)實現(xiàn)要素:
為解決上述情況,本發(fā)明提出了一種更全面的安全方案,在會話密鑰的生成過程中結(jié)合車輛受外部環(huán)境影響的隨機特性考慮密鑰更新,滿足真隨機的要求,克服以上的缺點。本發(fā)明的目的在于,提出一種基于ecu身份隱藏的車內(nèi)網(wǎng)絡(luò)一次一密通信方法,用以解決車內(nèi)網(wǎng)絡(luò)中ecu的隱私數(shù)據(jù)信息被篡改、假冒等安全問題。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
一種基于ecu身份隱藏的車內(nèi)網(wǎng)絡(luò)一次一密通信方法,包括以下步驟:(1)建立系統(tǒng)模型:包括電子控制單元ecu、網(wǎng)關(guān)中的數(shù)據(jù)庫、車內(nèi)電源(引擎/動力電源等)、發(fā)電機以及真隨機數(shù)生成模塊;(2)ecu(電子控制單元)在進行一次一密加密之前在網(wǎng)關(guān)數(shù)據(jù)庫中注冊信息,車輛點火時,ecu在安全存儲中加載公私密鑰對,利用elgamal算法產(chǎn)生該密鑰對,ecu隱藏私鑰,而將公鑰存放在數(shù)據(jù)庫的目錄中,使得需要通信的ecu能夠查詢;(3)智能ecu以車輛的操控行為為媒介,與車內(nèi)電源系統(tǒng)之間產(chǎn)生耦合作用,使得車內(nèi)電源電壓變化具有馬爾科夫特性,將得到的電壓值作為真隨機數(shù),生成會話密鑰;(4)將車速與方向盤組合在一起,500ms周期動態(tài)生成車速,作為ecu下一次相互通信的會話密鑰,防止重放攻擊;(5)根據(jù)得到的會話密鑰,利用數(shù)據(jù)庫中ecu的屬性,建立基于ecu密文屬性的一次一密數(shù)據(jù)通信,保證了車內(nèi)ecu的安全通信。
進一步,所述步驟(2)ecu(電子控制單元)在進行一次一密加密之前在網(wǎng)關(guān)數(shù)據(jù)庫中注冊信息,車輛點火時,ecu在安全存儲中加載公私密鑰對,利用elgamal算法產(chǎn)生該密鑰對,ecu隱藏私鑰,而將公鑰存放在數(shù)據(jù)庫的目錄中,使得需要通信的ecu能夠查詢;其步驟如下:
步驟2.1:車輛啟動時,ecu向網(wǎng)關(guān)中的數(shù)據(jù)庫發(fā)起注冊申請,將車輛制造商在其上面標(biāo)志的序列號利用數(shù)據(jù)庫的私鑰加密之后作為公鑰上傳到數(shù)據(jù)庫中并等待確認;
步驟2.2:數(shù)據(jù)庫用自己的私鑰skdb解密ecu上傳的序列號,查詢公鑰集合,如果沒找到相應(yīng)的序列號,允許其注冊,并返回給其確認信息;否則拒絕注冊;
步驟2.3:ecu收到確認信息后,將使用elgamal算法生成一個公私密鑰對,將私鑰skecu保存在安全存儲中,將公鑰pkecu用數(shù)據(jù)庫的公鑰pkdb加密上傳到數(shù)據(jù)庫中;
步驟2.4:數(shù)據(jù)庫將序列號和公鑰pkecu存儲于其公鑰集合中,用ecu的公鑰pkecu加密后發(fā)送,保證信息的機密性;
步驟2.5:ecu收到消息后用skecu解密,若解密得到的信息和自己發(fā)送的信息相同,則注冊成功并結(jié)束。否則返回步驟2.1。
進一步,所述步驟(3)智能ecu對車輛的操控行為為媒介,與車內(nèi)電源系統(tǒng)之間產(chǎn)生耦合作用,使得車內(nèi)電源電壓變化具有馬爾科夫特性,生成真隨機數(shù),作為會話密鑰;假設(shè)通信的一方為ecua,另一方為ecub;其步驟如下:
步驟3.1:利用車輛行駛過程中微觀交通環(huán)境、外部網(wǎng)聯(lián)環(huán)境的隨機激勵影響,對車內(nèi)ecu、交通環(huán)境影響下的車內(nèi)電源進行監(jiān)測,采集蓄電池電壓,輸出得到真隨機數(shù)序列;將第一個真隨機數(shù)rand1作為步驟3.2的會話密鑰key1;
步驟3.2:ecua向數(shù)據(jù)庫發(fā)送與ecub通信的請求消息,并用ecub的公鑰
步驟3.3:通信的ecu根據(jù)各自的序列號、出廠時間以及標(biāo)識號,利用哈希函數(shù)各自產(chǎn)生散列值
步驟3.4:通信的ecu之間用各自的私鑰解密對方發(fā)送的信息,通過對車內(nèi)電源的電壓值的隨機數(shù)rand2進行hash運算得到新的散列值
步驟3.5:雙方驗證隨機數(shù)加密結(jié)果的一致性,雙方分別用key2加密rand2后傳送給對方,如果用key1解密后得到的rand1和先前的rand2相同,表明雙方的會話密鑰生成成功。否則,只要任何一方生成會話密鑰失敗,就要回到步驟3.1重新進行會話密鑰的生成過程。
進一步,所述步驟(4)將車速與方向盤組合在一起,500ms周期動態(tài)生成車速,作為ecu下一次相互通信的會話密鑰,防止重放攻擊;其步驟如下:第一,車內(nèi)ecu密鑰更新階段,其步驟如下:
步驟4.1:以500ms周期動態(tài)地記錄下車速值;
步驟4.2:通過外部智能網(wǎng)聯(lián)汽車環(huán)境的激勵,考慮車速對車內(nèi)電源電壓的影響,將第一個周期的車速值作為初始隨機數(shù)rands,并作為真隨機序列的第一個值;
步驟4.3:在步驟4.2之后,利用車速rands對步驟(3)得到的會話密鑰加密,得到隨車速動態(tài)變化的加密值,使得隨機數(shù)不可預(yù)測;
步驟4.4:收到加密結(jié)果的ecu利用數(shù)據(jù)庫中發(fā)給它的車速信息對其解密,與第一次得到的會話密鑰滿足馬爾可夫特性。
進一步,所述步驟(5)根據(jù)得到的會話密鑰,利用數(shù)據(jù)庫中ecu的屬性,建立基于ecu密文屬性的一次一密數(shù)據(jù)通信,保證了車內(nèi)ecu的安全通信,其步驟如下:
步驟5.1:ecua使用祖沖之算法,利用車內(nèi)電源電壓生成的會話密鑰key1,對車內(nèi)ecu通信的隱私數(shù)據(jù)進行加密得到密文;
步驟5.2:基于ecu屬性的密文通過can總線發(fā)送給ecub,ecub使用key2對收到的密文進行解密,這個過程同樣是使用祖沖之算法。ecub向ecua發(fā)送信息的過程同步驟5.1到5.2一樣;
步驟5.3:由于ecua和ecub之間的通信信道可能會遭到竊聽,利用步驟(4)的密鑰更新方法,隨機生成會話密鑰;
步驟5.4:將得到的會話密鑰加入真隨機數(shù)序列,并對車輛進行隨機波動電能補充,作用于蓄電池,作為ecu通信的會話密鑰。
進一步,道路交通環(huán)境的隨機變化(路況、他車行為等)和外部網(wǎng)絡(luò)環(huán)境的隨機信號(上傳、下載、阻塞等)共同作用于智能網(wǎng)聯(lián)汽車部分,以智能單元對車輛的操控行為為媒介,與車內(nèi)電源系統(tǒng)之間產(chǎn)生耦合作用,使得車內(nèi)電源電壓變化具有馬爾科夫特性,滿足真隨機數(shù)生成要求,有效的保證了車內(nèi)ecu的安全通信。
進一步,密鑰更新部分考慮到了一次一密中會話密鑰的更新,并且會話密鑰是隨機生成的,彼此沒有關(guān)聯(lián),即rand1,rand2,rands均是不同的值。
進一步,對人、交通環(huán)境和車內(nèi)電控系統(tǒng)影響下的車內(nèi)電源系統(tǒng)進行監(jiān)測,采集蓄電池電壓;并對采集的蓄電池電壓進行分析和處理,去掉相同的電壓值,將處理后的結(jié)果作為真隨機數(shù)生成算法的輸入?yún)?shù),輸出得到真隨機數(shù)序列,實現(xiàn)了對車內(nèi)ecu隱私數(shù)據(jù)信息的保護。
本文提出一種基于ecu身份隱藏的車內(nèi)網(wǎng)絡(luò)一次一密通信方法,該方法有以下有益效果:
1)ecu在安全存儲中加載公私密鑰對,利用elgamal算法產(chǎn)生該密鑰對,ecu隱藏私鑰,而將公鑰存放在數(shù)據(jù)庫的目錄中,使得需要通信的ecu能夠查詢,防止ecu身份被篡改。
2)將車速與方向盤組合在一起,500ms周期動態(tài)生成車速,作為ecu下一次相互通信的會話密鑰,防止重放攻擊。
3)密鑰更新部分考慮到了一次一密中會話密鑰的更新,并且會話密鑰是從隨機生成的,彼此沒有關(guān)聯(lián),即rand1,rand2,rands均是不同的值。
4)利用數(shù)據(jù)庫中ecu的屬性,建立基于ecu密文屬性的一次一密數(shù)據(jù)通信,保證了車內(nèi)ecu隱私數(shù)據(jù)信息的安全。
5)道路交通環(huán)境的隨機變化(路況、他車行為等)和外部網(wǎng)絡(luò)環(huán)境的隨機信號(上傳、下載、阻塞等)共同作用于智能網(wǎng)聯(lián)汽車部分,以智能單元對車輛的操控行為為媒介,與車內(nèi)電源系統(tǒng)之間產(chǎn)生耦合作用,使得車內(nèi)電源電壓變化具有馬爾科夫特性,滿足真隨機數(shù)生成要求,有效的保證了車內(nèi)ecu的安全通信。
附圖說明
圖1為本發(fā)明的總體設(shè)計圖;
圖2為本發(fā)明中ecu注冊流圖;
圖3為本發(fā)明中ecu會話密鑰流圖;
圖4為本發(fā)明中的會話密鑰更新圖。
具體實施方式
下面將結(jié)合附圖實施例對本發(fā)明的技術(shù)方案進行清楚、完整地描述。本發(fā)明的方法以現(xiàn)有車內(nèi)電源系統(tǒng)、若干電子控制單元ecu、車內(nèi)通信單元以及網(wǎng)關(guān)中的數(shù)據(jù)庫為應(yīng)用系統(tǒng)基礎(chǔ),如圖1所示,主要包括以下五部分,
本發(fā)明的方法主要包括以下五部分(本發(fā)明中的所有符號見表1):
表1主要符號定義
1、建立系統(tǒng)模型
包括電子控制單元ecu、網(wǎng)關(guān)中的數(shù)據(jù)庫、車內(nèi)電源(引擎/動力電源等)以及真隨機數(shù)生成模塊,交通環(huán)境和網(wǎng)絡(luò)環(huán)境通過對車內(nèi)環(huán)境感知單元、智能控制單元、智能駕駛決策單元等的激勵,隨機控制車內(nèi)電源系統(tǒng),在沒電的情況下蓄電池電能補充,作為隨機波動能量作用于發(fā)電機,然后再反作用于蓄電池,最后通過一個真隨機生成模塊,采集蓄電池不同情況下的電壓,作為隨機種子。
2、ecu(電子控制單元)在網(wǎng)關(guān)數(shù)據(jù)庫中注冊信息
ecu(電子控制單元)在進行一次一密加密之前在網(wǎng)關(guān)數(shù)據(jù)庫中注冊信息,車輛點火時,ecu在安全存儲中加載公私密鑰對,利用elgamal算法產(chǎn)生該密鑰對,ecu隱藏私鑰,而將公鑰存放在數(shù)據(jù)庫的目錄中,使得需要通信的ecu能夠查詢;過程如圖2所示,具體步驟如下:
第一步:車輛啟動時,ecu向網(wǎng)關(guān)中的數(shù)據(jù)庫發(fā)起注冊申請,將車輛制造商在其上面標(biāo)志的序列號number利用數(shù)據(jù)庫的私鑰skdb加密之后作為公鑰pkecu上傳到數(shù)據(jù)庫中并等待其確認;
第二步:數(shù)據(jù)庫用自己的私鑰skdb解密ecu上傳的序列號,查詢公鑰集合,如果沒找到相應(yīng)的序列號,允許其注冊,并返回給其確認信息accept;否則拒絕注冊,返回第一步,數(shù)據(jù)庫中的公鑰集合只允許有一個序列號,不能相同,與平常在系統(tǒng)中注冊類似,不允許有兩個及以上相同的用戶名存在;
第三步:ecu收到確認信息后,將使用elgamal算法生成一個公私密鑰對,將私鑰skecu保存在安全存儲中,將公鑰pkecu用數(shù)據(jù)庫的公鑰pkdb加密上傳到數(shù)據(jù)庫中;
第四步:數(shù)據(jù)庫將序列號和公鑰pkecu存儲于其公鑰集合中,用ecu的公鑰pkecu加密后發(fā)送,保證信息的機密性;
第五步:ecu收到消息后用skecu解密,若解密得到的信息和自己發(fā)送的信息相同,則注冊成功并結(jié)束。否則返回第一步。
3、智能ecu對車輛操控,生成真隨機數(shù),作為會話密鑰
智能ecu對車輛的操控行為為媒介,與車內(nèi)電源系統(tǒng)之間產(chǎn)生耦合作用,使得車內(nèi)電源電壓變化具有馬爾科夫特性,生成真隨機數(shù),作為會話密鑰;假設(shè)通信的一方為ecua,另一方為ecub,過程如圖3所示,具體步驟如下:
第一步:利用車輛行駛過程中微觀交通環(huán)境、外部網(wǎng)聯(lián)環(huán)境的隨機激勵影響,對車內(nèi)ecu、交通環(huán)境影響下的車內(nèi)電源進行監(jiān)測,采集蓄電池電壓,輸出得到真隨機數(shù)序列;將第一個真隨機數(shù)rand1作為第二步的會話密鑰key1;
第二步:ecua向數(shù)據(jù)庫發(fā)送與ecub通信的請求消息,并用ecub的公鑰
第三步:通信的ecu根據(jù)各自的序列號、出廠時間等信息,利用哈希函數(shù)各自產(chǎn)生散列值
第四步:通信的ecu之間用各自的私鑰解密對方發(fā)送的信息,通過對車內(nèi)電源的電壓值的隨機數(shù)rand2進行hash運算得到新的散列值
第五步:雙方驗證隨機數(shù)加密結(jié)果的一致性,雙方分別用key2加密rand2后傳送給對方,如果用key1解密后得到的rand1和先前的rand2相同,表明雙方的會話密鑰生成成功。否則,只要任何一方生成會話密鑰失敗,就要回到第一步重新進行會話密鑰的生成過程。4、ecu之間會話密鑰定時更新
將車速與方向盤組合在一起,500ms周期動態(tài)生成車速,作為ecu下一次相互通信的會話密鑰,防止重放攻擊,密鑰更新階段如圖4所示,具體步驟如下:
第一步:觀察不同交通環(huán)境下車速和方向盤的關(guān)系,如急轉(zhuǎn)彎時的車速,并且根據(jù)地面摩擦力的不同,500ms周期動態(tài)的記錄下車速值;
第二步:通過外部網(wǎng)聯(lián)環(huán)境的激勵,將車速值作用于車內(nèi)電源電壓,第一個周期的車速值作為初始隨機數(shù)rands,之前的電源電壓序列左移一位,使得初始隨機數(shù)作為真隨機序列的第一個值,;
第三步:在第二步之后,利用車速rands對步驟3得到的會話加密進行移位操作,使得第二次通信的會話密鑰與第一次會話密鑰無關(guān),滿足馬爾可夫的真隨機特性;
第四步:將車速作為密鑰對車內(nèi)通信的隱私數(shù)據(jù)加密,收到加密結(jié)果的ecu利用數(shù)據(jù)庫中發(fā)給它的車速信息對其解密。
5、應(yīng)用數(shù)據(jù)庫中ecu的屬性,建立基于ecu密文屬性的一次一密數(shù)據(jù)通信
根據(jù)得到的會話密鑰,利用數(shù)據(jù)庫中ecu的屬性,建立基于ecu密文屬性的一次一密數(shù)據(jù)通信,保證了車內(nèi)ecu的安全通信,其步驟如下:
第一步:ecua使用祖沖之算法,利用車內(nèi)電源電壓生成的會話密鑰key1,對車內(nèi)ecu通信的隱私數(shù)據(jù)進行加密得到密文;
第二步:基于ecu屬性的密文通過can總線發(fā)送給ecub,ecub使用key2對收到的密文進行解密,這個過程同樣是使用祖沖之算法。ecub向ecua發(fā)送信息的過程同第一步到第二步一樣;
第三步:由于ecua和ecub之間的通信信道可能會遭到竊聽,利用步驟4的密鑰更新方法,隨機生成會話密鑰;
第四步:將得到的會話密鑰加入真隨機數(shù)序列,并對車輛進行隨機波動電能補充,作用于蓄電池,作為ecu通信的會話密鑰。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示意性實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
盡管已經(jīng)示出和描述了本發(fā)明的實施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。