本發(fā)明涉及汽車網(wǎng)絡(luò)通信及其汽車安全技術(shù)領(lǐng)域,尤其是涉及了一種車載MOST/CAN安全網(wǎng)關(guān)及其入侵檢測方法。
背景技術(shù):
隨著汽車電子設(shè)備和車載總線技術(shù)的飛速發(fā)展,車載總線網(wǎng)絡(luò)的使用范圍正逐步擴大,CAN(Controller Area Network,控制器局域網(wǎng)絡(luò))和MOST(Media Oriented System Transport,面向媒體的系統(tǒng)傳輸)網(wǎng)絡(luò)是兩種車載網(wǎng)絡(luò)。其中,CAN是一種串行控制器局域網(wǎng)絡(luò),其支持實時控制和分布式控制,主要用于車輛動力傳動系統(tǒng)、底盤控制系統(tǒng)和車身控制系統(tǒng)的連接;而MOST網(wǎng)絡(luò)以其高速、抗干擾、質(zhì)量輕、靈活等優(yōu)勢成為許多車載數(shù)字多媒體系統(tǒng)的主干網(wǎng)絡(luò),但同時也帶來了一些潛在的安全威脅。
近些年,汽車被攻擊的事件報道的越來越多,很多攻擊都是通過車載娛樂系統(tǒng)進行的。由于汽車在發(fā)動后,與外部的交流主要通過MOST總線連接的相關(guān)設(shè)備,如GPS和各種多媒體設(shè)備,這些設(shè)備通過移動互聯(lián)網(wǎng)與外界交互信息,給攻擊者提供可乘之機,他們利用MOST和CAN總線的信息交互,對行駛汽車的駕駛和動力子系統(tǒng)等連接在CAN總線上的ECU(電子控制單元),發(fā)動攻擊,而汽車網(wǎng)關(guān)是汽車內(nèi)部通信的核心設(shè)備,也是汽車內(nèi)部數(shù)據(jù)集中交流的地方,如何檢測出異常的數(shù)據(jù),這是如今大多數(shù)汽車面對的考驗。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種MOST/CAN安全網(wǎng)關(guān),解決了MOST網(wǎng)絡(luò)與CAN網(wǎng)絡(luò)的協(xié)議轉(zhuǎn)換,同時也提高了汽車網(wǎng)關(guān)的安全性,增強了汽車的危險識別能力。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:
一種MOST/CAN安全網(wǎng)關(guān),包括CAN網(wǎng)絡(luò)模塊和MOST網(wǎng)絡(luò)模塊,所述CAN網(wǎng)絡(luò)模塊包括相連接的CAN網(wǎng)絡(luò)收發(fā)器和CAN網(wǎng)絡(luò)控制器;所述MOST網(wǎng)絡(luò)模塊包括相連接的MOST網(wǎng)絡(luò)光纖收發(fā)器和MOST網(wǎng)絡(luò)控制器,還包括主控模塊,所述主控模塊包括依次連接的第一微處理器、外部存儲器以及第二微處理器,所述第一微處理器分別與CAN網(wǎng)絡(luò)控制器和MOST網(wǎng)絡(luò)控制器連接;
所述第一微處理器;用于對MOST網(wǎng)絡(luò)模塊接收的MOST總線上的各節(jié)點數(shù)據(jù)與CAN網(wǎng)絡(luò)模塊接收的CAN總線上的各節(jié)點數(shù)據(jù)的協(xié)議轉(zhuǎn)換,同時對接收的數(shù)據(jù)進行解析,再將解析的數(shù)據(jù)存入外部存儲器中,最后進行數(shù)據(jù)封裝,更新路由表;
所述外部存儲器:用于接收第一微處理器存入的經(jīng)過解析后的數(shù)據(jù),存儲路由表和節(jié)點關(guān)聯(lián)關(guān)系數(shù)據(jù)庫;
所述第二微處理器:用于讀取外部存儲器中的數(shù)據(jù),進行數(shù)據(jù)分析,將分析結(jié)果與節(jié)點關(guān)聯(lián)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)對比,若判斷結(jié)果為異常,則顯示在汽車顯示器中。
本發(fā)明的有益效果是:第一微處理器主要完成MOST和CAN總線之間的協(xié)議轉(zhuǎn)化,第二微處理器把經(jīng)過第一微處理器的解析后的數(shù)據(jù),按照相關(guān)的安全規(guī)則分析,把對汽車駕駛和動力子系統(tǒng)等攻擊的數(shù)據(jù)丟棄,這樣在不影響網(wǎng)關(guān)轉(zhuǎn)換性能的前提下,第二微處理器實現(xiàn)入侵檢測功能,保證了駕駛安全,因此本發(fā)明既提高了汽車網(wǎng)關(guān)的安全性,又增強了汽車的危險識別能力。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進。
進一步,所述MOST網(wǎng)絡(luò)與CAN網(wǎng)絡(luò)的協(xié)議轉(zhuǎn)換過程為,把CAN網(wǎng)絡(luò)中的信息幀中的數(shù)據(jù)部分分離出來,封裝成MOST網(wǎng)絡(luò)中的幀格式,再送進MOST網(wǎng)絡(luò)收發(fā)器里,使用相關(guān)的發(fā)送模塊將該MOST格式的幀傳輸?shù)組OST網(wǎng)絡(luò)中,經(jīng)過MOST網(wǎng)絡(luò)的傳輸,最后被目的節(jié)點獲得后執(zhí)行相應(yīng)的操作;
相應(yīng)地,用MOST報文中的源地址去路由表里查詢到該報文在CAN網(wǎng)絡(luò)中目的節(jié)點的地址,再提取出該報文中的數(shù)據(jù),把該數(shù)據(jù)包裝成能被CAN網(wǎng)絡(luò)上節(jié)點識別的數(shù)據(jù)格式,再經(jīng)過CAN收發(fā)器傳送到CAN網(wǎng)絡(luò)上,這就完成了由MOST網(wǎng)絡(luò)到CAN網(wǎng)絡(luò)的數(shù)據(jù)傳輸。
進一步,所述外部存儲器存儲的路由表有兩張,一張為Gateway_M表,存放MOST總線上節(jié)點對應(yīng)于CAN總線上節(jié)點的信息,一張為Gateway_C表,存放CAN總線上節(jié)點對應(yīng)于MOST總線上節(jié)點的信息。
進一步,所述更新路由表具體過程為:第一微處理器對收到的數(shù)據(jù)解析并查詢路由表,若查詢不到此節(jié)點,則將該節(jié)點數(shù)據(jù)域的仲裁標(biāo)識符與數(shù)據(jù)域長度寫入路由表作為該節(jié)點的地址,當(dāng)接收到MOST網(wǎng)絡(luò)的報文時,若發(fā)現(xiàn)該報文發(fā)送的目的地址為該新CAN節(jié)點的仲裁域標(biāo)識符時,就將該報文的源地址、功能塊ID和數(shù)據(jù)域長度存儲在路由表中,完成了更新路由表一條數(shù)據(jù)。
進一步,所述第一微處理器、第二微處理器均采用32位的芯片STM32F030分別實現(xiàn)協(xié)議轉(zhuǎn)換和數(shù)據(jù)分析處理,CAN網(wǎng)絡(luò)收發(fā)器采用芯片TJA1050,CAN網(wǎng)絡(luò)控制器采用芯片MCP2515,MOST網(wǎng)絡(luò)控制器采用芯片OS81060。
本發(fā)明,還提供了一種MOST/CAN安全網(wǎng)關(guān)入侵檢測方法,包括以下步驟:
(1)采集汽車正常行駛時各節(jié)點產(chǎn)生的數(shù)據(jù);
(2)對采集的數(shù)據(jù)進行關(guān)聯(lián)關(guān)系分析,將分析結(jié)果建立成節(jié)點關(guān)聯(lián)關(guān)系數(shù)據(jù)庫,并將該節(jié)點關(guān)聯(lián)關(guān)系數(shù)據(jù)庫存入外部存儲器中;
(3)汽車行駛過程中各節(jié)點產(chǎn)生的數(shù)據(jù)通過CAN網(wǎng)絡(luò)模塊發(fā)送給第一微處理器進行解析,第一微處理器將經(jīng)過解析后的數(shù)據(jù)寫入到外部存儲器中;
(4)第二微處理器從外部存儲器中讀取數(shù)據(jù),然后進行分析,將分析結(jié)果與節(jié)點關(guān)聯(lián)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)對比,若差值在設(shè)定閾值范圍外,則認為此時存在入侵行為,并將判斷結(jié)果返回CAN網(wǎng)絡(luò)模塊,發(fā)送到汽車顯示器中顯示。
進一步,所述步驟(2)的對采集的數(shù)據(jù)進行關(guān)聯(lián)關(guān)系分析具體過程為:以毫秒為單位時間來采集數(shù)據(jù),以CAN總線上節(jié)點為坐標(biāo)點,當(dāng)分析得到CAN總線上某個節(jié)點在某時刻的值為valuei,在該時刻CAN總線上其他節(jié)點數(shù)據(jù)值為valuex,再分析出在該單位時間內(nèi),valuei發(fā)生變化時,其余valuex的變化范圍值。
進一步,所述步驟(4)的將分析結(jié)果與節(jié)點關(guān)聯(lián)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)對比具體過程為:
單位時間內(nèi)讀取一次數(shù)據(jù),以CAN總線上的節(jié)點為坐標(biāo)點,當(dāng)分析得到CAN總線上某個節(jié)點在某單位時間內(nèi)的值為valuem,同時分析得到在該單位時間內(nèi)CAN總線上其他節(jié)點數(shù)據(jù)的最大值valuemax與最小值valuemin;再將分析得到的valuem、valuemax、valuemin三個值與關(guān)聯(lián)關(guān)系數(shù)據(jù)庫中的值進行比較,若在valuem時,valuemax與valuemin在設(shè)定的閾值內(nèi),則判為正常,若超出閾值,則判為異常。
附圖說明
圖1是本發(fā)明的安全網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)框圖;
圖2是本發(fā)明的MOST/CAN網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換示意圖;
圖3是本發(fā)明的安全網(wǎng)關(guān)入侵檢測分析流程圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
本發(fā)明的目的在于實現(xiàn)一種具有入侵檢測功能的車載MOST/CAN安全網(wǎng)關(guān),當(dāng)汽車在駕駛過程中,如果出現(xiàn)一些異常數(shù)據(jù),會及時通知駕駛員,以防汽車出現(xiàn)危險行駛行為。
本發(fā)明在硬件設(shè)計上考慮到協(xié)議轉(zhuǎn)換和數(shù)據(jù)處理的運算工作量大,主控模塊選擇了兩個微處理器來工作,第一微處理器進行協(xié)議轉(zhuǎn)換,第二微處理器進行數(shù)據(jù)分析處理,這樣既不影響網(wǎng)關(guān)轉(zhuǎn)換性能,又實現(xiàn)了入侵檢測功能。
如圖1所示是本發(fā)明的安全網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)框圖,整體結(jié)構(gòu)分為三大模塊,分別為CAN網(wǎng)絡(luò)模塊、主控模塊、MOST網(wǎng)絡(luò)模塊,其中,
CAN網(wǎng)絡(luò)模塊包括CAN網(wǎng)絡(luò)收發(fā)器、CAN網(wǎng)絡(luò)控制器;MOST網(wǎng)絡(luò)模塊包括MOST網(wǎng)絡(luò)光纖收發(fā)器、MOST網(wǎng)絡(luò)控制器;主控模塊包括第一微處理器、第二微處理器以及分別與第一微處理器和第二微處理器相連的用于存儲路由表和關(guān)聯(lián)關(guān)系數(shù)據(jù)庫的外部存儲器;其中第二微處理器得到的數(shù)據(jù)以毫毫秒為單位時間,將一個單位時間內(nèi)的數(shù)據(jù)進行分析處理,分析出該單位時間內(nèi)各節(jié)點的關(guān)聯(lián)關(guān)系,然后將該關(guān)聯(lián)關(guān)系跟本地的關(guān)聯(lián)關(guān)系數(shù)據(jù)庫進行對比,若大于一定的差值,則說明該單位內(nèi)發(fā)生了異常行為。
其中,第一微處理器和第二微處理器均選用32位的STM32F030芯片分別實現(xiàn)協(xié)議轉(zhuǎn)換和數(shù)據(jù)處理,該芯片帶有所有設(shè)備通用的通信接口(最多2個I2C,最多2個SPI等)。一個特殊的CAN節(jié)點用于接收CAN總線上的數(shù)據(jù),該節(jié)點的屏蔽模式范圍設(shè)置最大,可以接收所有節(jié)點的數(shù)據(jù)。CAN網(wǎng)絡(luò)收發(fā)器選擇了NXP公司的TJA1050,TJA1050是PCA82C250和PCA82C251高速CAN收發(fā)器的后繼產(chǎn)品,它被用來連接CAN網(wǎng)絡(luò)控制器器與物理總線。CAN網(wǎng)絡(luò)控制器器選擇了MCP2515,該芯片不僅可以收發(fā)標(biāo)準(zhǔn)數(shù)據(jù)幀與擴展數(shù)據(jù)幀,還擁有過濾數(shù)據(jù)并對數(shù)據(jù)進行管理的作用。MOST網(wǎng)絡(luò)控制器采用OS81060,該芯片是OS81050芯片的升級,專門用于MOST25網(wǎng)絡(luò)。
MOST/CAN網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換示意圖如圖2所示,協(xié)議轉(zhuǎn)換的原理就是將MOST網(wǎng)絡(luò)中的數(shù)據(jù)格式和CAN網(wǎng)絡(luò)中的數(shù)據(jù)格式進行互相轉(zhuǎn)換,使之能夠在目的網(wǎng)絡(luò)中進行傳輸,并能被目的節(jié)點識別。
協(xié)議轉(zhuǎn)換的核心是對網(wǎng)關(guān)路由引擎的配置,它可以解析出CAN報文中的仲裁域標(biāo)識符ID1與數(shù)據(jù)域,由于CAN總線各個設(shè)備節(jié)點的優(yōu)先級不同,優(yōu)先級由仲裁域標(biāo)識符ID1表示,因此根據(jù)標(biāo)識符ID1可以表示該設(shè)備節(jié)點地址,因此可以用DI1來推斷該報文的源節(jié)點,還可以查詢網(wǎng)關(guān)的路由表來得到該報文所要傳輸?shù)組OST網(wǎng)絡(luò)上的目的節(jié)點的地址。
協(xié)議轉(zhuǎn)換過程就是把CAN網(wǎng)絡(luò)中的信息幀中的數(shù)據(jù)部分分離出來,封裝成MOST網(wǎng)絡(luò)中的幀格式,再送進MOST網(wǎng)絡(luò)收發(fā)器里,使用相關(guān)的發(fā)送模塊將該MOST格式的幀傳輸?shù)組OST網(wǎng)絡(luò)中,經(jīng)過MOST網(wǎng)絡(luò)的傳輸,最后被目的節(jié)點獲得后執(zhí)行相應(yīng)的操作。相反,用MOST報文中的源地址去路由表里查詢到該報文在CAN網(wǎng)絡(luò)中目的節(jié)點的地址,再提取出該報文中的數(shù)據(jù),把該數(shù)據(jù)包裝成能被CAN網(wǎng)絡(luò)上節(jié)點識別的數(shù)據(jù)格式,再經(jīng)過CAN收發(fā)器傳送到CAN網(wǎng)絡(luò)上,這就完成了由MOST網(wǎng)絡(luò)到CAN網(wǎng)絡(luò)的數(shù)據(jù)傳輸。
路由表采用動態(tài)更新,當(dāng)有新的節(jié)點加入時,可以自動識別并更新路由表。更新方法為:當(dāng)網(wǎng)關(guān)接收一個CAN數(shù)據(jù)包,解析并查詢路由表發(fā)現(xiàn)無此節(jié)點時,就將該節(jié)點數(shù)據(jù)域的仲裁標(biāo)識符與數(shù)據(jù)域長度寫入路由表作為該節(jié)點的地址,當(dāng)網(wǎng)關(guān)接收到MOST網(wǎng)絡(luò)中的報文時,若發(fā)現(xiàn)該報文發(fā)送的目的地址為該新CAN節(jié)點的仲裁域標(biāo)識符時,就將該報文的源地址、功能塊ID和數(shù)據(jù)域長度存儲在路由表中,于是便成功更新了路由表一條數(shù)據(jù)。
路由表結(jié)構(gòu)如下表:
在本發(fā)明中,考慮到汽車的實時性要求,為降低查詢路由表時間,本設(shè)計為每個總線設(shè)計一張表,因此在本網(wǎng)關(guān)中,有兩張表:Gateway_M表示MOST總線上節(jié)點與對應(yīng)CAN總線節(jié)點的信息,Gateway_C表示CAN總線節(jié)點與對應(yīng)MOST總線節(jié)點的信息。Gateway_M表中的字段有:MOST節(jié)點地址、功能塊ID、MOST數(shù)據(jù)幀中數(shù)據(jù)長度、CAN節(jié)點地址、CAN報文數(shù)據(jù)域長度,Gateway_C表中的字段有:CAN節(jié)點地址、CAN報文數(shù)據(jù)域長度、MOST節(jié)點地址、功能塊ID、MOST數(shù)據(jù)幀中數(shù)據(jù)長度。
在實際中,有時候車主會改裝自己的愛車,當(dāng)添加新的節(jié)點時,這時就需要更新路由表,路由表采用動態(tài)更新,在本發(fā)明中,當(dāng)汽車有新的節(jié)點加入時,該節(jié)點會發(fā)送一個數(shù)據(jù)幀給網(wǎng)關(guān),網(wǎng)關(guān)查詢路由表發(fā)現(xiàn)無此節(jié)點時,就在路由表中新增一條數(shù)據(jù),將該節(jié)點數(shù)據(jù)域的仲裁標(biāo)識符寫入路由表作為該節(jié)點的地址,當(dāng)網(wǎng)關(guān)接收到MOST網(wǎng)絡(luò)中的報文時,若發(fā)現(xiàn)該報文發(fā)送的目的地址為該新CAN節(jié)點的仲裁域標(biāo)識符時,就將該報文的源地址與功能塊ID存儲在路由表中,這樣就成功更新了路由表一條數(shù)據(jù)。
圖3是安全網(wǎng)關(guān)入侵檢測分析流程圖,本發(fā)明的另一個功能就是入侵檢測,這是區(qū)別于傳統(tǒng)車載網(wǎng)關(guān),增強了汽車的危險識別能力。汽車在行駛過程中,每一個動作,都會引起許多參數(shù)的變化,各個參數(shù)的變化又會有一定的規(guī)律。比如當(dāng)駕駛員踩剎車時,那么發(fā)動機中的進油量會減少,汽車速度會降低,方向盤可能會發(fā)生改變等等。在實驗過程中,我們先采集大量的正常駕駛時的數(shù)據(jù),進行各個參數(shù)間的關(guān)聯(lián)關(guān)系分析,然后將分析結(jié)果建立一個關(guān)聯(lián)關(guān)系數(shù)據(jù)庫,并將該關(guān)聯(lián)關(guān)系數(shù)據(jù)庫存入外部存儲器中。
關(guān)聯(lián)節(jié)點關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)采集,在前期,我們在正常車的OBD-II上安裝一個接收裝置,把該駕駛員在正常行駛過程中產(chǎn)生的數(shù)據(jù)采集起來,在PC端進行分析,分析方法為:以毫秒為單位采集數(shù)據(jù),以CAN總線上節(jié)點為坐標(biāo)點,當(dāng)分析得到CAN總線上某個節(jié)點在某時刻的值為valuei,在該時刻其他總線節(jié)點數(shù)據(jù)值為valuex(n個),再分析出在該單位時間內(nèi),valuei發(fā)生變化時,其余valuex(n個)的變化范圍值。將分析的結(jié)果存入到外部存儲器中,該外部存儲器是受保護不被攻擊的。當(dāng)我們在駕駛過程中,汽車上的數(shù)據(jù)會先經(jīng)過第一微處理器進行解析,第一微處理器將解析的結(jié)果一邊寫入到外部寄存器中,同時將寫好的部分進行路由表查詢,再進行數(shù)據(jù)封裝,最后將該數(shù)據(jù)發(fā)送出去。
第二微處理器從外部存儲器中讀取數(shù)據(jù),然后進行分析,分析過程為,以毫秒為單位讀取一次數(shù)據(jù),以CAN總線上節(jié)點為坐標(biāo)點,當(dāng)分析得到CAN總線上某個節(jié)點在某時刻的值為valuem,在該單位時間內(nèi)CAN總線上其他節(jié)點數(shù)據(jù)的最大值valuemax與最小值valuemin。再將分析的得到的valuem、valuemax、valuemin三個值在節(jié)點關(guān)聯(lián)關(guān)系數(shù)據(jù)庫中進行對比,若在valuem時,valuemax與valuemin在上述的變化范圍中,則為正常,若超出范圍一定值(根據(jù)實際情況確定),則判為異常,最后將判斷的結(jié)果反饋到顯示器中。
本發(fā)明是一種具有入侵檢測功能的車載MOST/CAN安全網(wǎng)關(guān),該車載安全網(wǎng)關(guān)不僅能夠?qū)崿F(xiàn)傳統(tǒng)車載網(wǎng)關(guān)MOST總線與CAN總線的協(xié)議轉(zhuǎn)換還能夠檢測出汽車是否遭受了外部的攻擊,協(xié)議轉(zhuǎn)換的原理就是將MOST網(wǎng)絡(luò)中的數(shù)據(jù)格式和CAN網(wǎng)絡(luò)中的數(shù)據(jù)格式進行互相轉(zhuǎn)換,使之能夠在目的網(wǎng)絡(luò)中進行傳輸,并能被目的節(jié)點識別。協(xié)議轉(zhuǎn)換的核心是對安全網(wǎng)關(guān)路由引擎的配置,它可以解析出CAN報文中的仲裁域標(biāo)識符ID1與數(shù)據(jù)域,用這些來推斷該報文的源節(jié)點,還可以查詢網(wǎng)關(guān)的路由表來得到該報文所要傳輸?shù)組OST網(wǎng)絡(luò)上的目的節(jié)點的地址,反之也可以根據(jù)網(wǎng)關(guān)路由表查找MOST網(wǎng)絡(luò)對應(yīng)CAN網(wǎng)絡(luò)中節(jié)點的地址;入侵檢測的原理是在網(wǎng)關(guān)的主控模塊添加一個微處理器,即第二微處理器用于進行數(shù)據(jù)分析,當(dāng)?shù)谝晃⑻幚砥鹘馕龊蟮臄?shù)據(jù)寫入外部存儲器中,第二微處理器再從外部存儲器中讀取這些數(shù)據(jù)進行處理分析,將處理分析結(jié)果與外部存儲器中的關(guān)聯(lián)關(guān)系數(shù)據(jù)庫進行對比,正常情況下,一個駕駛的動作會引起許多節(jié)點的變化,各個節(jié)點之間存在著一種關(guān)聯(lián)關(guān)系,若發(fā)現(xiàn)分析結(jié)果中一個孤立的信號點,或者多個節(jié)點間的關(guān)聯(lián)關(guān)系遠遠偏離正常范圍,那么表示為該車受到入侵。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。