劉毅, 秦貴和, 趙睿
(1.吉林大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 130012, 長春; 2.吉林大學(xué)符號計(jì)算與知識工程教育部重點(diǎn)實(shí)驗(yàn)室, 130012, 長春; 3.吉林大學(xué)軟件學(xué)院, 130012, 長春)
隨著智能網(wǎng)聯(lián)汽車的發(fā)展,自主駕駛、車隊(duì)管理、智能交通管理等技術(shù)應(yīng)運(yùn)而生[1],這些技術(shù)的應(yīng)用提升了駕駛的舒適性與便捷性,但同時越來越多開放的接口也使得汽車的風(fēng)險指數(shù)逐漸增加。攻擊者可以通過WiFi、藍(lán)牙、OBD-II等接口對汽車發(fā)動長距離或短距離、有線或無線的攻擊,嚴(yán)重威脅駕駛者的人身和財(cái)產(chǎn)安全,因此網(wǎng)聯(lián)汽車信息安全問題亟待解決。車載網(wǎng)關(guān)承擔(dān)著車內(nèi)總線網(wǎng)絡(luò)和車外網(wǎng)絡(luò)的信息交互,僅僅在車載網(wǎng)關(guān)上增加防火墻的方式并不能提供足夠的安全防護(hù),網(wǎng)聯(lián)汽車的信息安全問題更需要保護(hù)車內(nèi)總線網(wǎng)絡(luò)的信息安全[2]。
車載控制器局域網(wǎng)絡(luò)(CAN)總線因其靈活性、實(shí)時性、可靠性已成為車內(nèi)總線網(wǎng)絡(luò)的標(biāo)準(zhǔn)[3],并且CAN總線在未來一段時間內(nèi)也將是車載總線技術(shù)的基礎(chǔ)。CAN總線雖然有著得天獨(dú)厚的優(yōu)勢,CAN總線協(xié)議卻沒有考慮到信息安全問題。CAN協(xié)議不能對連接到總線上的節(jié)點(diǎn)提供身份認(rèn)證,不能對總線上傳輸?shù)臄?shù)據(jù)提供加密保護(hù),也不能支持保障數(shù)據(jù)正確性與完整性的校驗(yàn)機(jī)制,由此造成的嚴(yán)重后果是攻擊者可以輕易地竊聽、偽造、篡改數(shù)據(jù),發(fā)動重放攻擊。考慮到網(wǎng)聯(lián)汽車的出現(xiàn)及CAN總線安全漏洞,CAN總線的信息安全問題成為現(xiàn)實(shí)中亟需解決的問題。
近年來,歐盟等相關(guān)機(jī)構(gòu)積極資助并開展汽車信息安全項(xiàng)目,例如車輛電子安全入侵檢測應(yīng)用項(xiàng)目(EVITA)、開放式車輛安全平臺項(xiàng)目(OVERSEE)等。EVITA項(xiàng)目[4]定義了安全需求并且提供了應(yīng)用于車載網(wǎng)絡(luò)的方法,其中中量級硬件安全模塊保障了電子控制單元之間通信環(huán)境的安全;OVERSEE項(xiàng)目提供了標(biāo)準(zhǔn)的軟件架構(gòu)和車輛運(yùn)行的內(nèi)部環(huán)境,保障了信息的安全性和可靠性[5-6],但是這些項(xiàng)目并沒有給出具體的安全措施,也沒有有效的安全協(xié)議。
對于車載網(wǎng)絡(luò)安全協(xié)議的研究中,文獻(xiàn)[7-9]的安全協(xié)議考慮了CAN總線的廣播特性,并利用數(shù)據(jù)域長度受限的特點(diǎn)設(shè)計(jì)協(xié)議以降低總線負(fù)載。由于上述協(xié)議沒有考慮到車輛啟動階段的初始化身份認(rèn)證,也不能提供車輛通信階段的防重放保護(hù),因此不能很好地為車載CAN總線提供安全保障。
在CAN總線協(xié)議特點(diǎn)和安全需求的基礎(chǔ)上,設(shè)計(jì)了一種車載控制器局域網(wǎng)絡(luò)的安全協(xié)議(SPOCAN),深入研究并分析CAN總線協(xié)議的特點(diǎn)、網(wǎng)聯(lián)汽車攻擊接口及CAN總線安全需求;考慮到受限車載資源和CAN協(xié)議的特點(diǎn),設(shè)計(jì)了CAN總線的安全協(xié)議SPOCAN,SPOCAN包含SNIA和CNEP 2個模塊,SNIA模塊提供待通信節(jié)點(diǎn)身份的真實(shí)性保證,在車輛點(diǎn)火啟動階段保障節(jié)點(diǎn)的身份安全,CNEP模塊保障了數(shù)據(jù)機(jī)密性、消息正確性、數(shù)據(jù)完整性和數(shù)據(jù)新鮮性,在車輛運(yùn)行通信時保障節(jié)點(diǎn)間通信安全;為了驗(yàn)證所提安全協(xié)議的有效性,基于飛思卡爾MPC5646C網(wǎng)關(guān)和MC9S12XDT 512開發(fā)板搭建了CAN網(wǎng)絡(luò)車載控制系統(tǒng)的硬件平臺,在汽車點(diǎn)火啟動階段和車輛運(yùn)行通信階段分別進(jìn)行了測試,驗(yàn)證了SPOCAN協(xié)議能夠有效地提供安全保障。
在車載總線網(wǎng)絡(luò)中,CAN總線是目前使用最廣泛的總線技術(shù),因?yàn)樗褂秒p絞線傳輸信號,顯著地降低了通信線纜的數(shù)量,并且提供了更高的通信可靠性。CAN總線協(xié)議根據(jù)ID域的不同,分為CAN 2.0A標(biāo)準(zhǔn)格式和CAN 2.0B擴(kuò)展格式2部分[10],由于CAN 2.0B支持CAN 2.0A,所以對CAN 2.0B解釋說明。CAN 2.0B數(shù)據(jù)幀中的ID域用于設(shè)置消息的優(yōu)先級,其29位ID域分為標(biāo)準(zhǔn)ID和擴(kuò)展ID 2個部分,IDE域決定是否使用18位擴(kuò)展ID,數(shù)據(jù)域包含0~8個字節(jié)數(shù)據(jù),循環(huán)冗余校驗(yàn)(CRC)域提供傳輸過程中的錯誤檢測,這也是CAN協(xié)議中唯一與安全相關(guān)的校驗(yàn)機(jī)制,但這種簡單的校驗(yàn)機(jī)制無法滿足網(wǎng)聯(lián)汽車的安全需求。
網(wǎng)聯(lián)技術(shù)的發(fā)展使汽車開放的接口越來越多,這些接口可能成為攻擊者對汽車發(fā)動攻擊的入口[11]。圖1給出了整個汽車電子系統(tǒng)可能的攻擊接口,根據(jù)攻擊者的連接方式,這些接口可以分為以下3類:①物理訪問接口。攻擊者通過直連的方式或者使用第三方工具訪問汽車內(nèi)部網(wǎng)絡(luò),例如車載診斷系統(tǒng)的外部接口OBD-II、用于娛樂系統(tǒng)的USB接口和開放的充電樁接口等;②短距離無線訪問接口。在物理連接難以實(shí)現(xiàn)的情況下,攻擊者通過非物理接觸、近距離的方式訪問接口,這種短距離訪問一般通過在距離汽車5~300 m的范圍內(nèi)放置發(fā)射器與接收器的方式來實(shí)現(xiàn)[12],這類典型接口包括藍(lán)牙、WiFi、無鑰匙進(jìn)入系統(tǒng)、車載雷達(dá)等;③長距離無線訪問接口。攻擊者通過無線電、衛(wèi)星導(dǎo)航GPS/北斗等通信距離超過1 km的接口實(shí)現(xiàn)長距離訪問攻擊[13]。
圖1 網(wǎng)聯(lián)汽車的攻擊接口
結(jié)合CAN總線特點(diǎn)設(shè)計(jì)控制器局域網(wǎng)絡(luò)安全協(xié)議需要滿足以下5點(diǎn)安全需求:①身份真實(shí)性。CAN總線系統(tǒng)中通信雙方在建立通信前,需要確認(rèn)雙方的有效身份,防止攻擊者利用虛假身份進(jìn)行通信;②數(shù)據(jù)機(jī)密性。CAN總線網(wǎng)絡(luò)由于其廣播發(fā)送、明文傳輸?shù)奶匦?極易泄露數(shù)據(jù),尤其當(dāng)信息是與駕駛員的生命安全息息相關(guān)時,數(shù)據(jù)加密與語義安全的保障顯得尤為必要;③消息正確性。CAN總線上節(jié)點(diǎn)間相互通信時,接收方需要確認(rèn)該消息來自于正確的發(fā)送方而不是攻擊節(jié)點(diǎn)發(fā)送的偽造信息;④數(shù)據(jù)完整性。CAN總線上消息的接收方需要確保消息在傳輸過程中沒有被攻擊者更改,一般地,數(shù)據(jù)完整性通過消息認(rèn)證[14]來保證;⑤數(shù)據(jù)新鮮性。在CAN總線上傳輸?shù)臄?shù)據(jù)需要保證是最近發(fā)送的,而不是一個已經(jīng)在總線上發(fā)送過的數(shù)據(jù),對數(shù)據(jù)新鮮性的保證能夠防止重放攻擊。
為了在車載控制器局域網(wǎng)絡(luò)中滿足上述安全需求,在CAN總線協(xié)議的基礎(chǔ)上,增加了汽車點(diǎn)火啟動階段的安全模塊SNIA和通信階段的安全模塊CNEP,實(shí)現(xiàn)了車載控制器局域網(wǎng)絡(luò)安全協(xié)議SPOCAN。SNIA模塊采用基于公鑰體系認(rèn)證方法的身份認(rèn)證技術(shù),保障了待通信節(jié)點(diǎn)的身份真實(shí)性,在汽車點(diǎn)火啟動階段保障了節(jié)點(diǎn)之間的通信安全;CNEP模塊采用了加密通信、消息檢驗(yàn)及序列號技術(shù),保障了CAN總線上節(jié)點(diǎn)間信息傳遞時的數(shù)據(jù)機(jī)密性、消息正確性、數(shù)據(jù)完整性和數(shù)據(jù)新鮮性。SPOCAN基于這2種安全模塊,能夠在汽車啟動階段和通信階段阻止基于消息竊聽、信息偽造、消息篡改、數(shù)據(jù)重放等攻擊手段,有效地保障車載CAN總線網(wǎng)絡(luò)上節(jié)點(diǎn)間的通信安全。
SNIA模塊提供了CAN總線網(wǎng)絡(luò)中節(jié)點(diǎn)的身份認(rèn)證方法??紤]到CAN總線廣播發(fā)送的特性,若采用私鑰體系的認(rèn)證方法,其中任何一個接收節(jié)點(diǎn)都可以模仿發(fā)送節(jié)點(diǎn)偽造消息給其他接收節(jié)點(diǎn),因此CAN總線需要非對稱的認(rèn)證機(jī)制來完成廣播認(rèn)證。SNIA模塊采用基于公鑰體系認(rèn)證方法,在車輛點(diǎn)火啟動的過程中進(jìn)行初始化身份認(rèn)證[15],身份認(rèn)證只進(jìn)行一次并在認(rèn)證結(jié)束后更新密鑰,以備在下次初始化過程中使用。
身份認(rèn)證過程是連接到總線上的各個電子控制單元(ECU)向網(wǎng)關(guān)G請求身份認(rèn)證,認(rèn)證通過后得到由網(wǎng)關(guān)分發(fā)的保障數(shù)據(jù)機(jī)密性的加密密鑰Ke和消息校驗(yàn)階段的認(rèn)證密鑰Ka。在所提方案中使用RSA-64位非對稱加密算法[16],E為加密函數(shù),D為解密函數(shù),身份認(rèn)證過程具體分為以下5個步驟。
步驟1第i個ECU通過查詢證書Ci將其標(biāo)志Ii用網(wǎng)關(guān)公鑰Gu加密得到密文C1發(fā)送到CAN總線上。證書中包含節(jié)點(diǎn)標(biāo)志、節(jié)點(diǎn)的密鑰和節(jié)點(diǎn)的其他信息,不同節(jié)點(diǎn)的公鑰通過查詢獲得,私鑰是每個節(jié)點(diǎn)獨(dú)有的,除節(jié)點(diǎn)自身外其他節(jié)點(diǎn)無法獲取。為保證安全性,證書由車場刷寫ECU固件時寫入
C1=E(Gu,Ii)
(1)
步驟2網(wǎng)關(guān)G用私鑰Gr解密收到的消息得到P1,讀取其標(biāo)志Ii,G在證書Cg中查找此Ii對應(yīng)的節(jié)點(diǎn)公鑰Eu,并產(chǎn)生一個挑戰(zhàn)值Nk,用此公鑰Eu將挑戰(zhàn)值Nk加密發(fā)送到CAN總線上,得到C2
P1=D(Gr,C1)
(2)
C2=E(Eu,Nk)
(3)
P2=D(Er,C2)
(4)
(5)
步驟4網(wǎng)關(guān)G利用私鑰Gr解密C3后得到P3,讀取數(shù)據(jù)。若數(shù)據(jù)中的挑戰(zhàn)值等于步驟2中網(wǎng)關(guān)G產(chǎn)生的挑戰(zhàn)值Nk,則網(wǎng)關(guān)把該ECU對應(yīng)的Ii加入到其信任列表中,表明網(wǎng)關(guān)已信任該節(jié)點(diǎn)并可以與它進(jìn)行通信
P3=D(Gr,C3)
(6)
步驟5網(wǎng)關(guān)G與第i個ECU認(rèn)證成功后,則以非對稱加密方法頒布用于通信的加密密鑰Ke和用于消息校驗(yàn)的認(rèn)證密鑰Ka。若認(rèn)證不成功,則不會給節(jié)點(diǎn)頒布密鑰
C4=E(Eu,Ke)
(7)
C5=E(Eu,Ka)
(8)
上述認(rèn)證過程中密鑰Ke和Ka只能由網(wǎng)關(guān)生成,身份認(rèn)證過程只在芯片上電后進(jìn)行一次。為了保證認(rèn)證后節(jié)點(diǎn)間的通信安全,節(jié)點(diǎn)間通信密鑰由網(wǎng)關(guān)定期更新。
至此,初始化身份認(rèn)證階段結(jié)束,在系統(tǒng)內(nèi)網(wǎng)關(guān)確認(rèn)了待通信節(jié)點(diǎn)的身份并生成了通信階段加解密密鑰及消息校驗(yàn)密鑰。
汽車點(diǎn)火啟動階段的初始化認(rèn)證結(jié)束后,節(jié)點(diǎn)間通信的安全保障通過CNEP模塊實(shí)現(xiàn)。在所提方案中使用DES-64位對稱加密算法和MD5-32位消息摘要算法[16]保證了數(shù)據(jù)機(jī)密性、消息正確性和數(shù)據(jù)完整性,并且通過序列號遞增的方法提供了防重放保護(hù)。序列號是系統(tǒng)初始化時約定的,在每次使用后遞增,并要足夠大才能避免不同的消息產(chǎn)生相同的序列號。
發(fā)送方在發(fā)送數(shù)據(jù)前需要經(jīng)過如下4個步驟。
步驟1發(fā)送方將待發(fā)送數(shù)據(jù)T與第j個序列號Cj進(jìn)行或運(yùn)算得到T′??紤]到車載通信的大部分?jǐn)?shù)據(jù)幀數(shù)據(jù)域的長度在3~4個字節(jié),所以Cj僅在第7個字節(jié)中存儲
T′=T‖Cj
(9)
步驟2將通過SNIA協(xié)議認(rèn)證得到的密鑰Ke與接收端保持一致的隨機(jī)數(shù)Sj異或后得到新密鑰,再利用新密鑰對T′加密得到C6,并對Sj更新
C6=E((Ke?Sj),T′)
(10)
步驟3利用密鑰Ka發(fā)送方對C6計(jì)算消息認(rèn)證碼
Mj=E(Ka,C6)
(11)
步驟4C6存儲在CAN協(xié)議數(shù)據(jù)幀的前7個字節(jié)中,Mj存儲在最后1個字節(jié)中,將密文C6和Mj一同發(fā)送到CAN總線上
C7=C6‖Mj
(12)
接收方在收到消息后需要經(jīng)過如下4個步驟。
(13)
步驟2消息校驗(yàn)通過后,利用Ke與隨機(jī)數(shù)Sj異或,對C7的前7個字節(jié)解密得到P4并更新Sj
P4=D((Ke?Sj),C7)
(14)
(15)
CNEP模塊通過隨機(jī)數(shù)Sj隨機(jī)化加密,提供了語義級別的安全保護(hù),Sj每次加密后發(fā)生變化且不會重復(fù),這種強(qiáng)安全協(xié)議阻止了攻擊者從竊聽到的加密消息推斷出明文;由于使用了消息認(rèn)證碼進(jìn)行校驗(yàn),在不影響正常通信的前提下增強(qiáng)了系統(tǒng)的防偽造特性;采用序列號技術(shù)進(jìn)行端到端的計(jì)算,提供弱新鮮性防護(hù)以及防重放攻擊保護(hù)。
為了對所提安全協(xié)議進(jìn)行有效性評估,本文基于飛思卡爾MPC5646C網(wǎng)關(guān)和MC9S12XDT512開發(fā)板搭建了CAN網(wǎng)絡(luò)車載控制系統(tǒng)的硬件平臺,其中1塊MPC5646C作為網(wǎng)關(guān)G,4塊MC9S12 XDT512作為與該網(wǎng)關(guān)相連的節(jié)點(diǎn)a、b、c、d,同時使用USB-CAN-II模擬一個攻擊節(jié)點(diǎn)S對總線發(fā)動攻擊。實(shí)驗(yàn)從點(diǎn)火啟動階段和通信階段分別模擬攻擊場景,在PC機(jī)上使用CodeWarrior環(huán)境編程并使用CANTest軟件顯示總線上傳輸?shù)臄?shù)據(jù)。
點(diǎn)火啟動階段的安全性是指在ECU上電后,需要確定CAN總線系統(tǒng)中所有待通信節(jié)點(diǎn)身份的真實(shí)性,在初始化階段阻止基于身份欺騙的攻擊,該階段實(shí)驗(yàn)設(shè)置了3個攻擊場景,驗(yàn)證了節(jié)點(diǎn)身份的真實(shí)性。
在初始化認(rèn)證階段,系統(tǒng)內(nèi)各節(jié)點(diǎn)需要向網(wǎng)關(guān)節(jié)點(diǎn)G申請認(rèn)證,假設(shè)一個攻擊節(jié)點(diǎn)S在車輛啟動前就已經(jīng)連接到總線上,準(zhǔn)備發(fā)動攻擊。
場景1S并沒有獲得總線上傳輸?shù)男畔?只是偽造了認(rèn)證請求消息并發(fā)送給G,希望得到網(wǎng)關(guān)的認(rèn)證。由于S作為相對于內(nèi)部車載控制系統(tǒng)的外部節(jié)點(diǎn),沒有車場統(tǒng)一刷寫的證書,因此無法通過查詢獲得G的公鑰Gu,不能將偽造的認(rèn)證請求加密發(fā)送到CAN總線上。網(wǎng)關(guān)收到消息后無法正確解密進(jìn)而無法識別出這個請求認(rèn)證消息,所以請求身份認(rèn)證無效。
場景2S通過竊聽總線上的消息,獲得了節(jié)點(diǎn)b請求身份認(rèn)證的報(bào)文,并在此基礎(chǔ)上將部分信息篡改后發(fā)送到CAN總線上。如表1的第6號所示,雖然S在正確請求認(rèn)證報(bào)文的基礎(chǔ)上篡改信息,但G仍會識別出這是一個無效的身份認(rèn)證請求,如表1的第7號所示。S的篡改使得正確的請求認(rèn)證消息發(fā)生了變化,該消息不再是由網(wǎng)關(guān)公鑰加密后的正確信息;同時,消息的篡改也使得G無法正確分析出所請求認(rèn)證的節(jié)點(diǎn)標(biāo)志,進(jìn)而也無法通過查詢確定所請求節(jié)點(diǎn)的公鑰,G識別出S是一個攻擊節(jié)點(diǎn)。
場景3S通過竊聽總線上的消息,獲得了節(jié)點(diǎn)a請求身份認(rèn)證的報(bào)文,此時S不做任何修改,將消息再次發(fā)送到CAN總線上,如表1的第14號所示。G為了驗(yàn)證該節(jié)點(diǎn)的身份,發(fā)出表1中第15號的驗(yàn)證幀,S收到該消息后,無論是通過偽造、篡改還是再次將竊聽到的節(jié)點(diǎn)a的反饋幀發(fā)送給G,G在這3種情況下都不會通過S的身份認(rèn)證。在前2種情況下,G無法正確識別出反饋幀,進(jìn)而不能正確解密消息并確定所請求節(jié)點(diǎn)標(biāo)志。在最后一種情況下,如表1的第16號所示,因?yàn)镚發(fā)送的驗(yàn)證幀中利用節(jié)點(diǎn)a的公鑰Eu加密發(fā)送了一個挑戰(zhàn)值Nk,由于每次加密的挑戰(zhàn)值是不同的,使得本次驗(yàn)證幀中的挑戰(zhàn)值與S重放的節(jié)點(diǎn)a的反饋幀中的挑戰(zhàn)值不一致,因此G能識別出基于身份欺騙的攻擊。
通信階段安全性是指在車輛啟動后,各個ECU通過身份認(rèn)證后開始通信,攻擊者除了在車輛初始化階段發(fā)動攻擊外,還有可能在車輛通信時通過OBD-II等通信接口發(fā)動攻擊。該階段實(shí)驗(yàn)設(shè)置了4個攻擊場景,分別驗(yàn)證了消息正確性、數(shù)據(jù)機(jī)密性、消息完整性、數(shù)據(jù)新鮮性。
場景1S沒有通過竊聽得到總線上的消息,只是通過消息偽造向節(jié)點(diǎn)d發(fā)送攻擊數(shù)據(jù),如表2的第2號所示。S企圖接收到節(jié)點(diǎn)d響應(yīng)的數(shù)據(jù)信息,此時節(jié)點(diǎn)d發(fā)出了警報(bào)幀,如表2中的第5號所示。這是因?yàn)镾并沒有參與節(jié)點(diǎn)啟動過程的初始化身份認(rèn)證,進(jìn)而無法得到通信時的加解密密鑰Ke和消息校驗(yàn)密鑰Ka。S可以偽造消息卻無法偽造這2個密鑰,節(jié)點(diǎn)d接收到消息后,無法正確接收并進(jìn)行消息校驗(yàn)與解密處理,因此識別出這是一個攻擊節(jié)點(diǎn)發(fā)送的偽造消息。
場景2由于攻擊節(jié)點(diǎn)是在汽車啟動后以直接或間接的方式連接到車上,沒有經(jīng)過點(diǎn)火啟動階段的身份認(rèn)證,從而并沒有通信階段的加密密鑰,因此S企圖監(jiān)聽總線上的一系列消息,并希望通過足夠數(shù)量的加密密文推斷出明文。雖然攻擊者知道了部分?jǐn)?shù)字0和數(shù)字1加密后對應(yīng)的數(shù)字或字符,但是并不能判斷出一個新加密的字符是用0加密的還是用1加密的。CNEP模塊的發(fā)送方利用了一個隨機(jī)數(shù)Sj和密鑰Ke異或后加密數(shù)據(jù),由于這個Sj每次加密后都是不同的,使得相同的消息在不同的會話通信時加密后的數(shù)據(jù)是不同的。攻擊者即使知道了部分明文密文對,也無法推斷出加密前的消息。
表1 車輛啟動階段的攻擊測試
場景3S竊聽總線上的消息,如表2的第8號所示,并在竊聽到的消息的基礎(chǔ)上篡改消息中的部分控制位數(shù)據(jù)然后發(fā)送給節(jié)點(diǎn)b,如表2的第11號所示,企圖控制節(jié)點(diǎn)b執(zhí)行相關(guān)操作。CNEP模塊采用的消息檢驗(yàn)技術(shù)可以保護(hù)消息傳遞過程中的數(shù)據(jù)完整性,由于數(shù)據(jù)段發(fā)生了更改,節(jié)點(diǎn)b收到消息后對數(shù)據(jù)段進(jìn)行消息校驗(yàn)時,會檢測到不一致的消息檢驗(yàn)碼,檢測出此消息在發(fā)送的過程中發(fā)生了變化,則會拒絕接受此消息并發(fā)出報(bào)警幀如第13號。
場景4S通過竊聽總線消息,不做任何修改,只是重復(fù)發(fā)送一個已經(jīng)在總線上發(fā)送過的消息,準(zhǔn)備發(fā)動重放攻擊以使CAN總線系統(tǒng)不能正常提供服務(wù)。如表2的第18號所示,S重放了表2中的序號為15的幀。由于CNEP模塊采用了序列號技術(shù),重放消息的序列號Cj并沒有發(fā)生改變,按照CNEP模塊執(zhí)行時,接收端就會檢查到不一致的序列號,檢測到重放攻擊,并發(fā)出警報(bào)幀如第21號。
本文基于搭建CAN網(wǎng)絡(luò)車載控制系統(tǒng)的硬件平臺,對SPOCAN協(xié)議的有效性進(jìn)行了完整且充分地評估。通過對2個階段分別進(jìn)行模擬攻擊,完整地考慮了從汽車點(diǎn)火啟動階段到運(yùn)行通信階段的安全需求,保障了實(shí)驗(yàn)測試的完整性。通過對啟動階段設(shè)計(jì)的3個攻擊場景,充分考慮了在該階段對ECU身份真實(shí)性的可能發(fā)動的偽造攻擊、篡改攻擊以及重放攻擊;通過對通信階段設(shè)計(jì)的4個攻擊場景,充分考慮了在該階段對消息正確性、數(shù)據(jù)機(jī)密性、消息完整性、數(shù)據(jù)新鮮性可能發(fā)動的偽造攻擊、竊聽攻擊、篡改攻擊以及重放攻擊,保障了實(shí)驗(yàn)測試的充分性。通過對2個階段7種攻擊場景的實(shí)驗(yàn)測試,結(jié)果表明,該SPOCAN協(xié)議能有效地為CAN總線提供安全保障。
表2 車輛通信階段的攻擊測試
針對汽車網(wǎng)聯(lián)化所帶來的車載CAN總線的信息安全問題,本文提出了一種車載控制器局域網(wǎng)絡(luò)安全協(xié)議SPOCAN,該協(xié)議包含SNIA和CNEP 2個模塊。SNIA模塊提供車輛啟動階段ECU間的身份認(rèn)證,保障待通信節(jié)點(diǎn)的身份真實(shí)性;CNEP模塊提供了車輛啟動后通信階段的安全保障,提供數(shù)據(jù)機(jī)密性,消息正確性、數(shù)據(jù)完整性和數(shù)據(jù)新鮮性保護(hù)。本文從汽車點(diǎn)火啟動階段和通信階段對該協(xié)議進(jìn)行了有效性評估,實(shí)驗(yàn)結(jié)果驗(yàn)證了該協(xié)議能夠?yàn)镃AN總線提供良好的安全保障。
參考文獻(xiàn):
[1] 張亞萍, 劉華, 李碧鈺, 等. 智能網(wǎng)聯(lián)汽車技術(shù)與標(biāo)準(zhǔn)發(fā)展研究 [J]. 上海汽車, 2015(8): 55-59.
ZHANG Yaping, LIU Hua, LI Biyu, et al. Research on intelligent network technology and standard development of automotive technology [J]. Shanghai Automotive, 2015(8): 55-59.
[2] 于赫. 網(wǎng)聯(lián)汽車信息安全問題及CAN總線異常檢測技研究 [D]. 吉林: 吉林大學(xué), 2016: 15-31.
[3] 田希暉, 張玘, 張連超, 等. CAN總線及其應(yīng)用技術(shù) [J]. 微計(jì)算機(jī)信息: 測控儀表自動化, 2002(9): 3-5.
TIAN Xihui, ZHANG Qi, ZHANG Lianchao, et al. CAN bus and its application technology [J]. Microcomputer Information: Measurement and Control Instrumentation Automation, 2002(9): 3-5.
[4] HENNINGER O. E-safety vehicle intrusion protected applications (EVITA) project [EB/OL]. (2008-07-31)[2017-10-05]. http∥ www.evita-project.org.
[5] GROLL A, HOLLE J, RULAND C, et al. OVERSEE a secure and open communication and runtime platform for innovative automotive applications [C]∥Proceedings of the 19th Intelligent Transport Systems World Congress. Washington D C, USA: ITS, 2012: EU-00690.
[6] HOLLE J, PLATSCHEK A, SANCHEZ J, et al. OVERSEE: a secure and open in-vehicle ITS station [C]∥Proceedings of the 19th ITS World Congress. Washington D C, USA: ITS, 2012: EU-00469.
[7] LIN C W, SANGIOVANNI-VINCENTELLI A. Cyber-Security for the controller area network (CAN) communication protocol [C]∥Proceedings of the International Conference on Cyber Security. Piscataway, NJ, USA: IEEE Computer Society, 2012: 1-7.
[8] NILSSON D K, LARSON U E, JONSSON E. Efficient in-vehicle delayed data authentication based on compound message authentication codes [C]∥Proceedings of the Vehicular Technology Conference. Piscataway, NJ, USA: IEEE, 2008: 1-5.
[9] GROZA B, MURVAY S. Efficient protocols for secure broadcast in controller area networks [J]. IEEE Transactions on Industrial Informatics, 2013, 9(4): 2034-2042.
[10] 王莉, 劉德新, 劉書亮. 汽車網(wǎng)絡(luò)標(biāo)準(zhǔn)總線CAN [J]. 世界汽車, 2001(1): 15-17.
WANG Li, LIU Dexin, LIU Shuliang. Automotive network standard bus CAN [J]. World Automotive, 2001(1): 15-17.
[11] CHECKOWAY S, MCCOY D, KANTOR B, et al. Comprehensive experimental analyses of automotive attack surfaces [C]∥Proceedings of the Usenix Security Symposium. Berkeley, CA, USA: Usenix, 2011: 6.
[12] EZAKI T, DATE T, INOUE H. An analysis platform for the information security of in-vehicle networks connected with external networks [C]∥Proceedings of the International Workshop on Security. Berlin, Germany: Springer, 2015: 301-315.
[13] NIGHSWANDER T, LEDVINA B, DIAMOND J, et al. GPS software attacks [C]∥Proceedings of the ACM Conference on Computer and Communications Security. New York, USA: ACM, 2012: 450-461.
[14] SVAMSIKRISHNA T R, HARIHARAN R H. VANET-based vehicle tacking on message authentication and secure navigation route [J]. International Journal of Computer, 2015, 113(7): 32-40.
[15] LIU H, LIANG X, FANG L, et al. A secure and authentication protocol based on identity based aggregate signature for electric vehicle applications [C]∥Proceedings of the International Conference on Wireless Communication and Sensor Network. Piscataway, NJ, USA: IEEE, 2015: 353-357.
[16] 胡向東. 應(yīng)用密碼學(xué) [M]. 2版. 北京: 電子工業(yè)出版社, 2011: 87-88.