




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5.1
汽車總線
5.1.1汽車總線概述汽車總線是汽車信息安全的“生命線”。隨著汽車各系統(tǒng)的控制逐步向自動(dòng)化和智能化轉(zhuǎn)變,汽車電氣系統(tǒng)變得日益復(fù)雜。傳統(tǒng)的電氣系統(tǒng)大多采用點(diǎn)對點(diǎn)的單一通信方式,相互之間少有聯(lián)系,這樣必然會形成龐大的布線系統(tǒng)。
據(jù)統(tǒng)計(jì),一輛采用傳統(tǒng)布線方法汽車中,導(dǎo)線長度可達(dá)2000m,電氣節(jié)點(diǎn)可達(dá)1500個(gè),而且該數(shù)字大約每10年就增加1倍,進(jìn)一步加劇了粗大的線束與汽車上有限的可用空間之間的矛盾。無論是從材料成本還是從工作效率看,傳統(tǒng)布線方法都不能適應(yīng)現(xiàn)代汽車的發(fā)展。圖5.1所示是傳統(tǒng)的汽車布線網(wǎng)絡(luò)。
圖5.1傳統(tǒng)的汽車布線網(wǎng)絡(luò)
汽車內(nèi)部有許多電子控制單元(即ECU),分別負(fù)責(zé)不同的工作,如門控單元、燈控單元等。ECU起初都通過獨(dú)立的數(shù)據(jù)線進(jìn)行交換,隨著ECU數(shù)量的增加,需要消耗的線束也會成倍增加,導(dǎo)致成本增加,占用更多空間,增加更多重量,也會增加更多的安全隱患。
另外,為了滿足各電子系統(tǒng)的實(shí)時(shí)性要求,需對汽車公共數(shù)據(jù)(如發(fā)動(dòng)機(jī)轉(zhuǎn)速、車輪轉(zhuǎn)速、節(jié)氣門踏板位置等信息)實(shí)行實(shí)時(shí)共享,而每個(gè)控制單元對實(shí)時(shí)性的要求又各不相同,因此,傳統(tǒng)的電氣網(wǎng)絡(luò)已無法適應(yīng)現(xiàn)代汽車電子系統(tǒng)的發(fā)展,于是新型汽車總線技術(shù)應(yīng)運(yùn)而生。工程師們設(shè)計(jì)了基于總線通信的方案,每個(gè)ECU都連接在一條總線上面,避免了點(diǎn)對點(diǎn)通信方式存在的隱患。圖5.2所示為汽車總線網(wǎng)絡(luò)。圖5.2汽車總線網(wǎng)絡(luò)
5.1.2汽車總線分類
目前絕大多數(shù)車用總線都被SAE(美國汽車工程師協(xié)會)下屬的汽車網(wǎng)絡(luò)委員會按照協(xié)議特性分為A、B、C、D四類。
A類總線:面向傳感器或執(zhí)行器管理的低速網(wǎng)絡(luò),傳輸速率通常小于20Kb/s。主要用于車內(nèi)分布式電控系統(tǒng),尤其是面向智能傳感器或執(zhí)行器的數(shù)字化通信場合。
B類總線:面向獨(dú)立控制模塊間信息共享的中速網(wǎng)絡(luò),速率一般在10~125Kb/s之間。B類總線以CAN(
ControllerAreaNetwork,控制器局域網(wǎng)絡(luò))為典型應(yīng)用。
C類總線:面向閉環(huán)實(shí)時(shí)控制的多路徑傳輸高速網(wǎng)絡(luò),位速率大多在125Kb/s~1Mb/s之間。C類總線主要用于車上動(dòng)力系統(tǒng)中對通信的實(shí)時(shí)性要求比較高的場合,主要服務(wù)于動(dòng)力傳遞系統(tǒng)。
D類總線:面向多媒體設(shè)備、高速數(shù)據(jù)流傳輸?shù)母咝阅芫W(wǎng)絡(luò),位速率一般在2Mb/s以上,主要用于CD等播放機(jī)和其他顯示設(shè)備。D類總線近期才被納入SAE對總線的分類范
疇之中,其帶寬范圍相當(dāng)大,用到的傳輸介質(zhì)也不止一種。
目前約有五種主要的車用總線:LIN總線、CAN總線、FlexRay總線、MOST總線、汽車以太網(wǎng)總線,各類總線的區(qū)別如表5.1所示。
1.LIN總線
LIN總線是一種低速串行總線,主要用做CAN總線等高速總線的輔助網(wǎng)絡(luò)或子網(wǎng)絡(luò)。在帶寬要求不高、功能簡單、實(shí)時(shí)性要求低的場合,如車身電器的控制等方面,使用LIN
總線,可有效地簡化網(wǎng)絡(luò)線束、提高網(wǎng)絡(luò)通信效率和可靠性。在不需要CAN總線的帶寬和多功能的場合使用,降低成本。
LIN總線的特點(diǎn)主要有以下幾點(diǎn):成本低,基于通用UART/SCI接口,幾乎所有微控制器都具備LIN必需的硬件;極少的信號線就可實(shí)現(xiàn)ISO9141標(biāo)準(zhǔn);傳輸速率最高可達(dá)
20Kb/s,最大總線長度為40m;無需總線仲裁;從節(jié)點(diǎn)不需石英或陶瓷振蕩器就能實(shí)現(xiàn)自同步;保證信號傳輸?shù)难舆t時(shí)間;不需要改變LIN從節(jié)點(diǎn)的硬件和軟件就可以在網(wǎng)絡(luò)上增
加或刪除節(jié)點(diǎn)等。LIN的拓?fù)浣Y(jié)構(gòu)如圖5.3所示。圖5.3LIN的拓?fù)浣Y(jié)構(gòu)
LIN總線中數(shù)據(jù)借助消息幀來傳輸,消息幀由消息標(biāo)題和消息響應(yīng)組成。消息標(biāo)題總是通過主節(jié)點(diǎn)傳輸,包含3個(gè)不同的字段:中斷、同步及ID;消息響應(yīng)通過從任務(wù)傳輸,可
位于主節(jié)點(diǎn)或從節(jié)點(diǎn)中,包含數(shù)據(jù)字節(jié)和校驗(yàn)和兩部分。LIN消息幀如圖5.4所示。圖5.4LIN消息幀
(1)中斷。每個(gè)LIN幀都以中斷作為開始,包含13個(gè)顯性位(額定),后接一個(gè)1位(額定)隱性中斷分隔符。
(2)同步。同步字段是主任務(wù)在標(biāo)題中傳輸?shù)牡诙€(gè)字段。
(3)ID。ID字段是主任務(wù)在標(biāo)題中傳輸?shù)淖詈笠粋€(gè)字段。該字段識別網(wǎng)絡(luò)上的每條消息,并最終決定由網(wǎng)絡(luò)中的哪些節(jié)點(diǎn)接收或響應(yīng)每個(gè)傳輸。
(4)數(shù)據(jù)字節(jié)。從任務(wù)在響應(yīng)中傳輸數(shù)據(jù)字節(jié)字段。該字段包含1~8字節(jié)的載荷數(shù)據(jù)字節(jié)。
(5)校驗(yàn)和。從任務(wù)在響應(yīng)中傳輸校驗(yàn)和字段。
2.CAN總線
前已述及,CAN總線是一種串行數(shù)據(jù)通信協(xié)議,其通信接口集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級判別等工作。CAN總線具有較高的通信速率和較強(qiáng)的抗干擾能力,可以作為現(xiàn)場總線應(yīng)用于電磁噪聲較大的場合。CAN總線相對于普通通信總線而言,具有可靠性、
實(shí)時(shí)性和靈活性。
CAN總線的特點(diǎn)總結(jié)如下:
第一,CAN網(wǎng)絡(luò)上的各節(jié)點(diǎn)無主從之分,節(jié)點(diǎn)站地址無需等待信息,均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)中的其他節(jié)點(diǎn)發(fā)送信息。該特點(diǎn)可以方便地實(shí)現(xiàn)多機(jī)備份系統(tǒng)。
第二,CAN總線在速率5kb/s以下時(shí),具有可達(dá)10km的最遠(yuǎn)通信距離,當(dāng)最大速率為1Mb/s時(shí),通信距離長達(dá)40m。
第三,CAN網(wǎng)絡(luò)使用無破壞性總線仲裁技術(shù),在網(wǎng)絡(luò)負(fù)載很重的情況下可使網(wǎng)絡(luò)不出現(xiàn)癱瘓情況。
第四,CAN總線所掛接的節(jié)點(diǎn)數(shù)量主要取決于CAN總線收發(fā)器和驅(qū)動(dòng)器,目前的驅(qū)動(dòng)器一般都可以使用同一網(wǎng)絡(luò),容量達(dá)到110個(gè)節(jié)點(diǎn)。
第五,CAN總線定義使用了硬件報(bào)文濾波,可實(shí)現(xiàn)點(diǎn)對點(diǎn)及點(diǎn)對多點(diǎn)的通信方式,不需要軟件來控制。
第六,CAN的通信介質(zhì)選擇靈活,可以是雙絞線、同軸電纜或光纖。
3.FlexRay總線
FlexRay總線是由寶馬、飛利浦、飛思卡爾和博世等公司共同制定的一種通信標(biāo)準(zhǔn),專為車內(nèi)網(wǎng)絡(luò)設(shè)計(jì)。FlexRay總線數(shù)據(jù)收發(fā)采取時(shí)間觸發(fā)和事件觸發(fā)的方式。利用時(shí)間觸發(fā)通信時(shí),網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)都預(yù)先知道彼此將要進(jìn)行通信的時(shí)間,接收器提前知道報(bào)文到達(dá)的時(shí)間,報(bào)文在總線上的時(shí)間可以預(yù)測出來。即便行車環(huán)境惡劣多變,干擾了系統(tǒng)傳輸,
FlexRay協(xié)議也可以確保將信息延遲和抖動(dòng)降至最低,盡可能保持傳輸?shù)耐脚c可預(yù)測。這對需要持續(xù)及高速性能的應(yīng)用(如線控剎車、線控轉(zhuǎn)向等)來說,是非常重要的。
FlexRay聯(lián)盟目前只規(guī)定了物理層和數(shù)據(jù)鏈路層的協(xié)議,圖5.5所示為FlexRay的數(shù)據(jù)幀格式,包括幀頭(HeaderSegment)、有效負(fù)載段(PayloadSegment)和幀尾(TrailerSegment)三部分。圖5.5FlexRay數(shù)據(jù)幀
幀頭部分共由5個(gè)字節(jié)(40bit)組成,包括以下幾位:
·保留位(Reservedbit,1位),為日后的擴(kuò)展做準(zhǔn)備。
·負(fù)載段前言指示(PayloadPreambleindicator,1位),指明幀的負(fù)載段的向量信息。在靜態(tài)幀中,該位指明的是NWVector;在動(dòng)態(tài)幀中,該位指明的是信息ID。
·零幀指示(Nullframeindicator,1位),指明負(fù)載段的數(shù)據(jù)幀是否為零。
·同步幀指示(Syncframeindicator,1位),指明這是一個(gè)同步幀。
·起始幀指示(Startupframeindicator,1位),指明發(fā)送幀的節(jié)點(diǎn)是否為起始幀。
·幀ID(FrameID,11位),指明在系統(tǒng)設(shè)計(jì)過程中分配到每個(gè)節(jié)點(diǎn)的ID(有效范圍:1~2047)。
·長度(Length,7位),說明負(fù)載段的數(shù)據(jù)長度。
·頭部CRC(HeaderCRC,11位),表明同步幀指示器和起始幀指示器的CRC計(jì)算值,以及由主機(jī)計(jì)算的幀ID和幀長度周期。
有效負(fù)載段包括三個(gè)部分:
·數(shù)據(jù)(Data),可以是0~254字節(jié)。
·信息ID,該信息ID使用負(fù)載段的前兩個(gè)字節(jié)進(jìn)行定義,可以在接收方作為可過濾86數(shù)據(jù)使用。
·網(wǎng)絡(luò)管理向量(NWVector),該向量長度必須為0~10個(gè)字節(jié),并和所有節(jié)點(diǎn)相同。
幀尾部分只含有單個(gè)的數(shù)據(jù)域,即CRC部分,包括幀頭CRC和數(shù)據(jù)幀CRC,這些CRC值會在連接的信道上面改變種子值,以防不正確的校正。
4.MOST總線
MOST總線是作為寶馬公司、戴姆勒克萊斯勒公司、Harman/Becker公司(音響系統(tǒng)制造商)和OasisSiliconSystems公司之間的一項(xiàng)聯(lián)合技術(shù)。1998年,參與各方建立了一個(gè)自主的實(shí)體,即MOST公司,由它控制總線的定義工作,Oasis公司自己保留對MOST命名的權(quán)利。
在MOST規(guī)范中,MOST網(wǎng)絡(luò)模型可以分為物理層、數(shù)據(jù)鏈路層、基礎(chǔ)網(wǎng)絡(luò)服務(wù)層、高層服務(wù)接口層、應(yīng)用層;MOST節(jié)點(diǎn)模型可以分為光電收發(fā)器、網(wǎng)絡(luò)接口控制器、基礎(chǔ)網(wǎng)絡(luò)服務(wù)、高層網(wǎng)絡(luò)服務(wù)以及功能模塊。MOST網(wǎng)絡(luò)的這種劃分方式對應(yīng)了七層ISO模型。圖5.6所示為OSI模型、MOST節(jié)點(diǎn)模型與MOST網(wǎng)絡(luò)模型的對應(yīng)關(guān)系。圖5.6OSI模型、MOST節(jié)點(diǎn)模型與MOST網(wǎng)絡(luò)模型之間的對應(yīng)關(guān)系
MOST網(wǎng)絡(luò)允許采用多種拓?fù)浣Y(jié)構(gòu),包括星形和環(huán)形,大多數(shù)汽車裝置都采用環(huán)形布局。一個(gè)MOST網(wǎng)絡(luò)中最多可以有64個(gè)結(jié)點(diǎn),一旦汽車接通電源,網(wǎng)絡(luò)中的所有MOST節(jié)點(diǎn)就全部激活,這對低功耗、停電模式設(shè)計(jì)是一大重點(diǎn),包括系統(tǒng)處在該種狀下的功耗量以及如何進(jìn)入狀態(tài)。MOST節(jié)點(diǎn)在通電時(shí)的默認(rèn)狀態(tài)是直通,即進(jìn)入的數(shù)據(jù)從接收器直接傳送至發(fā)射器,以保持環(huán)路的暢通。在MOST50網(wǎng)絡(luò)中,數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)幀,每個(gè)數(shù)據(jù)幀的長度是1024bit(128字節(jié))。圖5.7所示為MOST50數(shù)據(jù)幀的結(jié)構(gòu)。圖5.7MOST50總線數(shù)據(jù)幀結(jié)構(gòu)
5.汽車以太網(wǎng)總線
近年來,CAN總線帶寬不足的問題一直困擾著汽車電子工程師。一旦要提高原有車型的配置,增加其功能,可能會因?yàn)榭偩€上節(jié)點(diǎn)過多,負(fù)載率過高而帶來問題,從而影響整車網(wǎng)絡(luò)收發(fā)報(bào)文的能力。
車載以太網(wǎng)是用于連接汽車內(nèi)各種電氣設(shè)備的一種物理網(wǎng)絡(luò)。車載以太網(wǎng)的設(shè)計(jì)是為了滿足車載環(huán)境中的一些特殊需求。
汽車以太網(wǎng)可實(shí)現(xiàn)全雙工運(yùn)行,可同時(shí)發(fā)送和接收數(shù)據(jù),不需要輪候。其分組交換功能可實(shí)現(xiàn)在多種情況下不同設(shè)備同時(shí)進(jìn)行多次交換。
目前,以太網(wǎng)最重要的4個(gè)基本拓?fù)浣Y(jié)構(gòu)為點(diǎn)到點(diǎn)拓?fù)?、總線拓?fù)?、環(huán)形拓?fù)浜托切瓮負(fù)?如圖5.8所示。圖5.8以太網(wǎng)總線拓?fù)?/p>
5.1.3汽車總線威脅分析
前已述及,汽車中大量控制器的網(wǎng)絡(luò)化程度飛速發(fā)展,使得外部網(wǎng)絡(luò)可以訪問汽車關(guān)鍵部件(如引擎、剎車、氣囊等),控制信息通過總線系統(tǒng)進(jìn)行各部件之間的信息傳遞,總線系統(tǒng)對于惡意攻擊基本處于不設(shè)防狀態(tài),尤其是負(fù)責(zé)多媒體通信的MOST總線、負(fù)責(zé)傳遞控制信息的CAN總線以及負(fù)責(zé)中控門鎖系統(tǒng)的LIN總線等。它們與無線網(wǎng)絡(luò)接口的耦合
性逐漸增強(qiáng),加上所有控制器間的通信都是明文傳送(非加密狀態(tài)),大部分總線傳遞消息的編碼方式和通信協(xié)議都是公開的,控制器也沒有相應(yīng)的檢測程序來驗(yàn)證抵達(dá)的信息是否是合法的控制信息。
理論上講,任何CAN、MOST、LIN總線上的控制器都可以向其他任何控制器發(fā)送指令,因此,任何遭受到總線攻擊的控制器,都會對整車通信網(wǎng)絡(luò)構(gòu)成實(shí)質(zhì)性的威脅。例如,
多媒體總線MOST、D2B等與外部接口和互聯(lián)網(wǎng)相連使得惡意軟件(遠(yuǎn)程木馬、惡性病毒)可能通過光盤、USB、電子郵件等方式侵入車內(nèi)核心系統(tǒng)。雖然車內(nèi)部分網(wǎng)關(guān)提供了簡單的防火墻機(jī)制,但與此同時(shí),MOST總線和D2B總線也提供了強(qiáng)大的、不設(shè)防診斷接口,從而使得攻擊者能夠輕而易舉地攻破整車網(wǎng)絡(luò)。表5-2列舉了汽車總線面臨的主要威脅。
對于汽車總線系統(tǒng)的防護(hù),目前學(xué)術(shù)界和工業(yè)界仍然停留在對控制器所接收到信息的源地址、目的地址驗(yàn)證,傳遞信息所用信道加密,網(wǎng)關(guān)防火墻加密措施階段,這些措施無法
避免低危網(wǎng)絡(luò)向高危網(wǎng)絡(luò)發(fā)送信息,只能采取汽車正常啟動(dòng)時(shí)關(guān)閉所有接口等防護(hù)措施,這使得駕駛者體驗(yàn)度大打折扣。
5.2汽車CAN總線攻擊技術(shù)分析
5.2.1CAN總線通信矩陣和報(bào)文設(shè)計(jì)
CAN有兩種消息幀,其本質(zhì)的不同在于ID的長度。CAN2.0A的消息幀格式是CAN消息幀的標(biāo)準(zhǔn)格式,它有11位標(biāo)識符?;贑AN2.0A的網(wǎng)絡(luò)只能接收這種格式的消息。CAN2.0B的消息幀格式又叫擴(kuò)展消息格式,它有29位標(biāo)識符,前11位與CAN2.0A消息幀的標(biāo)識符完全一樣,后18位專用于標(biāo)記CAN2.0B的消息幀。CAN數(shù)據(jù)包如圖5.9所示。圖5.9CAN數(shù)據(jù)包
CAN的消息幀根據(jù)用途主要分為四種不同的類型,如表5-3所示。數(shù)據(jù)幀用于發(fā)送單元向接收單元傳送數(shù)據(jù);遠(yuǎn)程幀用于請求發(fā)送數(shù)據(jù);錯(cuò)誤幀用于標(biāo)識探測到的錯(cuò)誤;超載幀用于延遲下一個(gè)信息幀的發(fā)送。下面對它們分別進(jìn)行介紹。
1.數(shù)據(jù)幀
CAN數(shù)據(jù)幀由7個(gè)不同的位場組成,即幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應(yīng)答(ACK)場和幀結(jié)束,其中數(shù)據(jù)場長度可為0。下面對這些場的功能做簡要分析。
圖5.10所示為數(shù)據(jù)幀的構(gòu)成。圖5.10CAN數(shù)據(jù)幀
(1)幀起始:標(biāo)志數(shù)據(jù)幀或遠(yuǎn)程幀的起始,由一個(gè)單獨(dú)的“顯性”位組成。只在總線空閑時(shí),才允許節(jié)點(diǎn)發(fā)送信號。所有節(jié)點(diǎn)必須同步于首先開始發(fā)送信息的節(jié)點(diǎn)的幀起始前沿。
(2)仲裁場:在標(biāo)準(zhǔn)格式中,仲裁場由11位標(biāo)識符和RTR位組成;在擴(kuò)展格式中,仲裁場由29位標(biāo)識符和SRR位、標(biāo)識位以及RTR位組成。
·RTR位(遠(yuǎn)程傳輸請求位):在數(shù)據(jù)幀中,RTR位必須是顯性電平,而在遠(yuǎn)程幀中,RTR必須是隱性電平。
·SRR位(替代傳輸請求位):在擴(kuò)展格式中始終為隱性位。
·IDE位(標(biāo)識符擴(kuò)展位):對于擴(kuò)展格式屬于仲裁場,對于標(biāo)準(zhǔn)格式屬于控制場。IDE位在標(biāo)準(zhǔn)格式中為顯性電平,而在擴(kuò)展格式中為隱性電平。
(3)控制場:由6位組成,包括數(shù)據(jù)長度代碼和兩個(gè)將來作為擴(kuò)展用的保留位。在標(biāo)準(zhǔn)格式中,一個(gè)消息幀中包括DLC(數(shù)據(jù)長度碼)、發(fā)送顯性電平的IDE位和保留位r0。在擴(kuò)
展格式中,一個(gè)消息幀包括DLC和兩個(gè)保留位r1和r0,這兩位必須發(fā)送顯性電平。
(4)數(shù)據(jù)場:數(shù)據(jù)區(qū)域由數(shù)據(jù)幀中的發(fā)送數(shù)據(jù)組成。它可以為0~8個(gè)字節(jié),每字節(jié)包含了8個(gè)位,首先發(fā)送最高有效位。
(5)CRC場:包括CRC序列和CRC界定符。
(6)應(yīng)答場:長度為2個(gè)位,包含應(yīng)答間隙和應(yīng)答界定符。在應(yīng)答場里,發(fā)送節(jié)點(diǎn)發(fā)送兩個(gè)隱性位。一個(gè)正確接收到有效報(bào)文的接收器,在應(yīng)答間隙期間,將此信息通過傳送一個(gè)顯性位報(bào)告給發(fā)送器。所有接收到匹配CRC序列的站,通過在應(yīng)答間隙內(nèi)把顯性位寫入發(fā)送器的隱性位來報(bào)告。應(yīng)答界定符是應(yīng)答場的第二位,并且必須是隱性位。
(7)幀結(jié)束:每一個(gè)數(shù)據(jù)幀或遠(yuǎn)程幀均可由一標(biāo)志序列界定,這個(gè)標(biāo)志序列由7個(gè)隱性位組成。
2.遠(yuǎn)程幀
接收數(shù)據(jù)的節(jié)點(diǎn)可以通過發(fā)送遠(yuǎn)程幀要求源節(jié)點(diǎn)發(fā)送數(shù)據(jù),它由6個(gè)位場組成:幀起始、仲裁場、控制場、CRC場、應(yīng)答(ACK)場和幀結(jié)束。它沒有數(shù)據(jù)場,RTR位為隱性電
平。圖5.11所示為CAN遠(yuǎn)程幀的幀結(jié)構(gòu)。圖5.11CAN遠(yuǎn)程幀
3.出錯(cuò)幀
出錯(cuò)幀由錯(cuò)誤標(biāo)志和錯(cuò)誤界定符組成,圖5.12所示為CAN出錯(cuò)幀的幀結(jié)構(gòu)。接收節(jié)點(diǎn)發(fā)現(xiàn)總線上的報(bào)文有錯(cuò)誤時(shí),將自動(dòng)發(fā)出活動(dòng)錯(cuò)誤標(biāo)志,由6個(gè)連續(xù)的顯性位組成。其
他節(jié)點(diǎn)檢測到活動(dòng)錯(cuò)誤標(biāo)志后發(fā)送錯(cuò)誤認(rèn)可標(biāo)志,由6個(gè)連續(xù)的隱性位組成。由于各接收節(jié)點(diǎn)發(fā)現(xiàn)錯(cuò)誤的時(shí)間可能不同,所以總線上實(shí)際的錯(cuò)誤標(biāo)志可能由6~12個(gè)顯性位組成。錯(cuò)誤界定符由8個(gè)隱性位組成。當(dāng)錯(cuò)誤標(biāo)志發(fā)生后,每一個(gè)CAN節(jié)點(diǎn)監(jiān)視總線,直至檢測到一個(gè)顯性電平的跳變。表示此時(shí)所有的節(jié)點(diǎn)已經(jīng)完成錯(cuò)誤標(biāo)志的發(fā)送,并開始發(fā)送8個(gè)
隱性電平的錯(cuò)誤界定符。圖5.12CAN出錯(cuò)幀結(jié)構(gòu)
4.超載幀
過載幀包括兩個(gè)位場:過載標(biāo)志和過載界定符。存在兩種導(dǎo)致發(fā)送超載標(biāo)志的超載條件類型:一個(gè)是要求延遲下一個(gè)數(shù)據(jù)幀或者遠(yuǎn)程幀的接收器的內(nèi)部條件,另一個(gè)是在間歇
場的第一和第二位上檢測到顯性位。超載標(biāo)志由6個(gè)顯性位組成,超載界定符由8個(gè)連續(xù)的隱性位組成。圖5.13所示為CAN超載幀的幀結(jié)構(gòu)。圖5.13CAN超載幀結(jié)構(gòu)
5.2.2車載CAN總線接入
入侵CAN總線之前首先要找到汽車上的CAN總線。汽車的CAN總線接口存在于車門、大燈、后備箱、IVI等處。在汽車的這些接口處有眾多的線束,需要從眾多的線束當(dāng)中找到CAN總線。
首先CAN總線有明顯的特點(diǎn),它是雙絞線,像麻花一樣擰在一起。找到這樣的雙絞線后,使用萬用表測量線兩端的電壓,如果兩根線的電壓分別為3.5V和1.5V左右,那么它
們很有可能是CAN總線。如果測出的電壓是2.5V左右,則也有可能是CAN總線,這是因?yàn)镃AN總線目前處于休眠的狀態(tài),沒有信號數(shù)據(jù),沒有產(chǎn)生差分電壓。此外,還可以測量兩根線之間的阻抗,大約在120Ω左右,這樣的雙絞線也極有可能是CAN線。綜合以上信息,判斷哪根線是CAN總線。圖5.14所示為CAN數(shù)據(jù)總線雙絞結(jié)構(gòu)說明圖。圖5.14CAN數(shù)據(jù)總線雙絞結(jié)構(gòu)說明圖
CAN總線中的節(jié)點(diǎn)有發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)之分。在CAN網(wǎng)絡(luò)中,當(dāng)總線空閑時(shí)向CAN網(wǎng)絡(luò)發(fā)送消息的節(jié)點(diǎn)稱為發(fā)送節(jié)點(diǎn),而當(dāng)節(jié)點(diǎn)不作為發(fā)送節(jié)點(diǎn)時(shí),就作為接收節(jié)點(diǎn)。
利用CAN總線的這種方式可以實(shí)現(xiàn)多播或者廣播的操作。CAN總線中的發(fā)送節(jié)點(diǎn)利用標(biāo)識符ID來指定消息傳輸?shù)哪康牡刂?而接收器根據(jù)自身的需求對接收的消息進(jìn)行報(bào)文的
過濾,這樣使得CAN總線中的節(jié)點(diǎn)可以一對一或者一對多的方式工作。圖5.15所示為CAN網(wǎng)絡(luò)中的報(bào)文接收的模型。圖5.15CAN總線中消息的接收模型
CAN的收發(fā)器是CAN總線的物理層,用于將二進(jìn)制代碼轉(zhuǎn)換為CAN總線中的差分信號進(jìn)行發(fā)送。CAN的收發(fā)器通常提供兩個(gè)引腳,即CAN_H與CAN_L,信號以兩個(gè)引腳之間的差分電壓的形式出現(xiàn)。總線上利用“顯性”與“隱性”這兩個(gè)互補(bǔ)的邏輯值分別表示“0”和“1”,只有兩個(gè)引腳都發(fā)送隱性信號時(shí),總線上的數(shù)值才會是隱性。圖5.16所示為CAN總線與CAN收發(fā)器、CAN控制器的連接模型。圖5.16CAN總線與收發(fā)器、控制器的連接模型
在實(shí)際操作時(shí),利用萬用表測量,電壓高的是CAN-H,電壓低的是CAN-L。分清楚高低線之后,將其對應(yīng)接入CAN收發(fā)器,車載總線通過CAN收發(fā)器連接PC端。這樣PC端就以節(jié)點(diǎn)形式接入了CAN總線,可以從CAN總線中讀取報(bào)文信息,也可以向CAN總線發(fā)送消息。圖5.17所示為CAN總線的接入過程,其中PC端對應(yīng)圖5.16中的CAN控制器。圖5.17CAN總線接入過程
5.2.3逆向分析CAN數(shù)據(jù)包
通過使用CANalyst-II總線報(bào)文收發(fā)器與汽車的CAN總線相連,可以獲取到CAN總線上廣播的CAN數(shù)據(jù)包。通過CanTest軟件可以實(shí)時(shí)地觀察到CAN總線上正在發(fā)送的數(shù)據(jù)包。從大量的CAN數(shù)據(jù)包中進(jìn)行逆向分析,找到汽車車身的控制指令對應(yīng)的CANID,逆向分析出該CAN數(shù)據(jù)包所代表的含義,這是最基本也是最重要的一步。CanTest界面如圖5.18所示(因采集的是實(shí)際的汽車CAN總線的報(bào)文信息,因此對報(bào)文部分?jǐn)?shù)據(jù)做了隱藏,下同)。圖5.18CAN數(shù)據(jù)包抓取
5.2.4CAN報(bào)文數(shù)據(jù)信息破解
1.通過DBC方法觀察破解數(shù)據(jù)包
通過CanTest的DBC(數(shù)據(jù)庫)逆向數(shù)據(jù)包所代表的指令,DBC能夠顯示當(dāng)前總線中有多少種CANID。在汽車做出動(dòng)作指令后,CANID的報(bào)文會有所變化,DBC會把變化的部分標(biāo)記成紅色。通過觀察哪一個(gè)CANID在汽車發(fā)出指令后發(fā)生變化(這種變化通常只在瞬間),可以確定此項(xiàng)車身控制指令對應(yīng)的是哪一個(gè)CANID。
以車門數(shù)據(jù)為例(通過改變車門的開關(guān)狀態(tài),利用DBC進(jìn)行觀察),在車門改變開關(guān)狀態(tài)的同時(shí),觀察是哪一個(gè)CANID發(fā)生了變化,從而確定和車門狀態(tài)相關(guān)的CANID是哪一個(gè)。測試結(jié)果表明:汽車未啟動(dòng),車內(nèi)一切電器設(shè)備保持原有狀態(tài),只對車門狀態(tài)進(jìn)行改變,DBC界面的部分幀數(shù)據(jù)發(fā)生了對應(yīng)的變化,如圖5.19矩形框中所示。圖5.19DBC界面
DBC會把汽車總線上目前所有CANID列舉出來,當(dāng)汽車狀態(tài)發(fā)生變化的時(shí)候,數(shù)據(jù)位的變化會以紅色標(biāo)出。通過觀察,發(fā)現(xiàn)在開關(guān)車門的時(shí)候,CANID為111的報(bào)文發(fā)生了
變化,說明與車門狀態(tài)相關(guān)的ID為111,其數(shù)據(jù)為******10041902FF。之后,可以繼續(xù)改變車門的開關(guān)狀態(tài)并觀察記錄,結(jié)果如表5-4所示。
通過實(shí)驗(yàn)統(tǒng)計(jì),發(fā)現(xiàn)車門的開關(guān)狀態(tài)和數(shù)據(jù)位的第一位的第二個(gè)字節(jié)有關(guān)。四個(gè)車門正好有16種狀態(tài),第一位的第二個(gè)字節(jié)正好能全部表示,如表5-5所示。
這個(gè)字節(jié)表示了車門的不同狀態(tài)。這樣就破解了控制車門開關(guān)狀態(tài)的具體信號,控制左前門的狀態(tài)信號為0x1111000000000000000,當(dāng)使用CanTest將該數(shù)據(jù)包發(fā)送到
CAN總線上時(shí),汽車會顯示哪一個(gè)車門處于打開狀態(tài),但實(shí)際上車門此時(shí)并沒有打開,如圖5.20所示。圖5.20汽車儀表盤顯示屏上顯示車門處于打開狀態(tài)
2.通過模糊測試的方法攻擊CAN總線
借鑒模糊測試的思想,可以通過向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來發(fā)現(xiàn)漏洞。模糊測試的實(shí)現(xiàn)過程:使用正確的數(shù)據(jù)輸入文件系統(tǒng),在這個(gè)正確的數(shù)據(jù)文件中隨機(jī)地改變、替換某一些數(shù)據(jù),再用系統(tǒng)去打開這個(gè)數(shù)據(jù)文件,觀察這個(gè)系統(tǒng)出現(xiàn)了什么異常。模糊測試的關(guān)鍵是制定有效模糊測試規(guī)則的測試文件,有目的性的測試才能很快地測試出漏洞。
在找到控制指令的CANID后,再對其數(shù)據(jù)位進(jìn)行模糊測試,通過對數(shù)據(jù)位的變化輸入,可找到控制命令是在哪個(gè)位上。使用編寫的CAN-Pick(該工具已經(jīng)入選2017年
BlackHat大會的Arsenal武器庫)軟件對車載總線進(jìn)行模糊測試,攻擊者可以靈活地制定模糊測試規(guī)則。圖5.21所示表示啟動(dòng)CAN-Pick連接汽車總線收發(fā)器。圖5.21啟動(dòng)CAN-Pick連接汽車總線收發(fā)器
連接上CAN收發(fā)器后,輸入127.0.0.1:5555,進(jìn)入模糊測試界面。在此界面上可以設(shè)定模糊測試的規(guī)則。圖5.22所示為模糊測試工具界面。圖5.22模糊測試工具界面
當(dāng)進(jìn)行模糊測試的時(shí)候,可以觀察到ID為0x**F的數(shù)據(jù)的變化和車門的開閉有關(guān)。提取數(shù)據(jù)進(jìn)行重放,發(fā)現(xiàn)數(shù)據(jù)******0000000000表示車門開,數(shù)據(jù)******0000000000表示車門關(guān)。這樣就達(dá)到了不用車鑰匙就能開關(guān)車門的目的。利用CanTest軟件將數(shù)據(jù)包重放到汽車CAN總線當(dāng)中進(jìn)行驗(yàn)證,發(fā)現(xiàn)車門不需要車鑰匙就打開了。圖5.23所示為將報(bào)文發(fā)送至CAN總線。圖5.23重放開車門的數(shù)據(jù)包
3.利用數(shù)學(xué)方法逆向數(shù)據(jù)包
汽車CAN總線中控制車速顯示的數(shù)據(jù)包,其數(shù)據(jù)位中某幾個(gè)位組合的值代表當(dāng)前車速信息,車速的變化近似于一個(gè)一次函數(shù)。攻擊者可以收集CAN總線數(shù)據(jù)包,通過預(yù)先設(shè)
定方程式,將數(shù)據(jù)包中的某幾位代入,觀察有沒有一個(gè)是符合車速變化的,從而確定數(shù)據(jù)包中哪幾位代表的是當(dāng)前的車速信息。
通過將數(shù)據(jù)包數(shù)據(jù)位代入方程觀察,找到CANID為0x**d的數(shù)據(jù)包,它的某幾位組合變化符合一個(gè)一次函數(shù)方程的變化規(guī)律,從而判斷這樣的數(shù)據(jù)包有可能代表的就是當(dāng)前
的車速信息。圖5.24所示為圖形化的函數(shù)顯示。圖5.24圖形化的函數(shù)顯示
從圖形曲線的變化可以看出,數(shù)據(jù)變化接近汽車行駛速度的變化,因而可以重放這樣的數(shù)據(jù)包,用來控制當(dāng)前的車速顯示。在CAN總線上有一個(gè)防護(hù)機(jī)制,當(dāng)車速數(shù)據(jù)包沒有
連續(xù)發(fā)送時(shí),車速顯示達(dá)不到預(yù)期的值,將呈現(xiàn)一種忽上忽下的變化。為了繞過這種防護(hù)機(jī)制,可以采取大量密集地發(fā)送百條以上的數(shù)據(jù)包的方法,讓車速顯示隨攻擊者的預(yù)期變
化,大量地構(gòu)造出一組數(shù)據(jù)包讓車速顯示汽車?yán)碚撋系淖畲笾?如圖5.25所示。圖5.25控制車速的數(shù)據(jù)包
向CAN總線發(fā)送數(shù)據(jù)包,可以控制車速顯示理論上的最大車速,但是此時(shí)汽車并沒有開動(dòng)。汽車的攻擊效果如圖5.26所示,車速顯示已經(jīng)達(dá)到最大的車速185km/h,但是實(shí)
際此時(shí)汽車并沒有啟動(dòng)。圖5.26車速控制效果:達(dá)到最大車速
5.3汽車OBD攻擊技術(shù)分析
5.3.1汽車OBD概述
OBD的發(fā)展經(jīng)歷了OBD-Ⅰ和OBD-Ⅱ兩個(gè)階段。OBD-Ⅰ是通用汽車公司研發(fā)的,只能監(jiān)控部分部件的工作和一些與排放相關(guān)的電路故障,其診斷功能有限。因?yàn)楂@取OBD信息的數(shù)據(jù)通信協(xié)議以及連接外部設(shè)備接口的標(biāo)準(zhǔn)未統(tǒng)一,因此又研發(fā)了OBD-Ⅱ。與OBD-Ⅰ相比,OBD-Ⅱ在診斷功能和標(biāo)準(zhǔn)化方面有較大的提升。
美國汽車工程師協(xié)會(SAE)對故障指示燈、診斷連接口、外部設(shè)備和行車電腦之間的通信協(xié)議以及故障碼都通
過相應(yīng)標(biāo)準(zhǔn)進(jìn)行了規(guī)范。此外,OBD-Ⅱ可以提供更多的可被外部設(shè)備讀取的數(shù)據(jù),這些數(shù)據(jù)包括故障碼、一些重要信號和參數(shù)的實(shí)時(shí)數(shù)據(jù)等。OBD-Ⅱ診斷系統(tǒng)的優(yōu)越性主要體現(xiàn)在如下方面:第一,統(tǒng)一了汽車內(nèi)部網(wǎng)絡(luò)的通信協(xié)議;第二,統(tǒng)一了故障診斷接口;第三,統(tǒng)一了故障代碼的設(shè)置;第四,擴(kuò)充了隨車診斷系統(tǒng)的檢測項(xiàng)目。
汽車OBD接口一般位于汽車方向盤下方、駕駛員膝蓋附近的位置,其形狀是一個(gè)16針的插座,接口針腳編號如圖5.27所示。圖5.27OBD針腳編號
汽車的故障診斷設(shè)備是通過16針的OBD接口連接到汽車ECU,向車載ECU發(fā)送服務(wù)請求命令,并通過汽車ECU響應(yīng)的消息獲取相關(guān)診斷數(shù)據(jù)的。在SAEJ1979協(xié)議中,詳
細(xì)定義了OBD-Ⅱ的8種不同的診斷工作模式,如表5-6所示。
OBD-Ⅱ?yàn)檐囕v故障診斷帶來了極大的方便,但是OBD-Ⅱ也有它的局限性,主要體現(xiàn)在以下兩個(gè)方面:
(1)無故障碼輸出。其一,OBD系統(tǒng)不能診斷出電控系統(tǒng)中所有的故障,存在著“盲區(qū)”。
(2)故障碼顯示的不一定就是真正的故障部位。
5.3.2OBD盒子攻擊技術(shù)分析
對于汽車個(gè)人用戶來講,OBD設(shè)備一般分為兩部分;即XX盒子和App。盒子主要放置在汽車上,用于數(shù)據(jù)收集,而App則可以幫助車主檢測汽車故障,記錄車輛軌跡、違章,
讓用戶全面掌握汽車動(dòng)態(tài)。除了基于大數(shù)據(jù)的應(yīng)用,后期的社交功能也在進(jìn)一步的完善中。圖5.28所示為OBD盒子的一般通信架構(gòu)。圖5.28OBD盒子通信架構(gòu)
目前市場上的OBD盒子一般分為三類:一類是WiFi版的;一類是SIM卡版的;一類是藍(lán)牙版的。WiFi版的OBD盒子內(nèi)置有無線通信模塊。SIM卡版的OBD盒子自帶SIM
卡,好處在于這類盒子一般帶有安防功能,當(dāng)汽車的門、窗、燈未關(guān),或遇到非法點(diǎn)火等情況時(shí),手機(jī)都會主動(dòng)報(bào)警提醒。藍(lán)牙版的OBD盒子則是直接通過藍(lán)牙連接,但不帶安防功
能,相比具有安防功能帶SIM卡的盒子,用藍(lán)牙連接的盒子價(jià)格也相對較低。圖5.29所示為各種品牌的OBD盒子。圖5.29各種品牌的OBD盒子
考慮到OBD盒子使用的生命周期和通信架構(gòu),此類設(shè)備可能存在表5-7列舉的安全威脅。
1.攻擊面分析
研究人員分析的OBD盒子購自eBay電商平臺,該設(shè)備(如圖5.30所示)由MobileDevicesIngenierie生產(chǎn),并用于保險(xiǎn)目的。這款OBD盒子的CPU為一款頻率為500MHz
的ARM11芯片,RAM的存儲空間為64MB,閃存的存儲空間為256MB。對于外部連接,
主要包含以下幾個(gè)部分:一個(gè)USB接口、一個(gè)2G蜂窩網(wǎng)數(shù)據(jù)調(diào)制解調(diào)器(以后的型號為3G)和一個(gè)連接到OBD-Ⅱ引腳的CAN收發(fā)器。圖5.30研究人員的OBD盒子
1)本地攻擊面
在本地安全威脅模型中,假定攻擊者可以對OBD盒子進(jìn)行物理訪問。研究人員沒有針對車輛的任何通信方式,假設(shè)具有物理訪問權(quán)限的攻擊者已經(jīng)可以直接訪問該車輛。
2)遠(yuǎn)程攻擊面
在遠(yuǎn)程安全威脅模型中,研究人員假設(shè)攻擊者沒有物理訪問設(shè)備或車輛的權(quán)限,甚至不知道OBD盒子在車輛上的準(zhǔn)確位置。
2.攻擊過程分析
1)本地攻擊分析
如果通過物理方式訪問設(shè)備,最簡單的方式是通過USB端口連接。首先利用USB線纜將OBD盒子與聯(lián)網(wǎng)計(jì)算機(jī)相連,通過分析設(shè)備信息,可以確定設(shè)備的子網(wǎng)編號和IP地
址,然后利用網(wǎng)絡(luò)接口探測設(shè)備運(yùn)行的服務(wù)。研究人員發(fā)現(xiàn)該OBD盒子在標(biāo)準(zhǔn)端口上能響應(yīng)Telnet、Web和SSH等服務(wù)。
2)Web/Telnet控制臺訪問
一旦與OBD盒子連接成功,Web服務(wù)器和Telnet服務(wù)器就會提供一個(gè)專用接口,用于查詢和設(shè)置設(shè)備參數(shù)以及檢索狀態(tài)信息,這包括一些隱私敏感的信息,如GPS定位信息
等。
3)NAND轉(zhuǎn)儲
為了獲得設(shè)備上運(yùn)行的軟件的更多信息,研究人員拆下了NAND閃存芯片,并利用硬件讀取器提取了芯片的數(shù)據(jù)。為了分析提取的數(shù)據(jù),研究人員利用Linuxnandsim內(nèi)核模
塊創(chuàng)建了一個(gè)模擬的原始NAND閃存芯片,隨后配置該模塊以模擬OBD盒子上存在的NAND文件副本。
4)SSH密鑰
最初,研究人員無法訪問設(shè)備上運(yùn)行的SSH服務(wù),在研究了NAND閃存的轉(zhuǎn)儲信息并確定了根用戶的私鑰之后,這一情況發(fā)生了變化,根用戶的私鑰讓研究人員能夠通過SSH服務(wù)向OBD盒子進(jìn)行身份驗(yàn)證,并直接獲取設(shè)備的根用戶權(quán)限。隨后研究人員可以取和寫入任何文件,下載安裝其他軟件以創(chuàng)建任意功能并執(zhí)行任意命令。
5)進(jìn)一步分析
通過USB接口獲得對OBD盒子的控制后,研究人員將重點(diǎn)轉(zhuǎn)移到如何遠(yuǎn)程控制OBD盒子并進(jìn)一步控制汽車上,兩個(gè)遠(yuǎn)程通信接口引起了研究人員的注意:SMS接口和提供互
聯(lián)網(wǎng)連接的蜂窩數(shù)據(jù)接口。
(1)基于互聯(lián)網(wǎng)的訪問。
(2)基于SMS的訪問。
通過檢查SMS發(fā)起更新創(chuàng)建的日志后,研究人員確定了OBD盒子本地文件的完整更新過程,如圖5.31所示。更新過程會依賴一個(gè)特殊的文本文件——來自遠(yuǎn)程服務(wù)器的
UpdateFile.txt,該文件包含要從系統(tǒng)添加或刪除的文件的文件名、路徑和散列值。圖5.31遠(yuǎn)程更新過程
更新過程的步驟如下:
①SMS設(shè)備向OBD盒子發(fā)送更新信息(包含用戶名、主機(jī)名、端口號、路徑信息等),OBD盒子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通運(yùn)輸與物流行業(yè)智能調(diào)度與優(yōu)化方案
- 全新工作人員聘用合同
- 家居行業(yè)智能家居系統(tǒng)整合方案
- 臨時(shí)變壓器安裝合同
- 醫(yī)療行業(yè)質(zhì)量管理與安全指南
- 游戲電競行業(yè)發(fā)展現(xiàn)狀及未來趨勢分析報(bào)告
- 木塑地板安裝施工方案
- 地膠凈化施工方案
- 微型鋼管樁施工方案
- 東莞清溪防水施工方案
- (一模)哈三中2025屆高三第一次模擬考試 語文試題(含答案)
- DB44∕T 1517-2015 物業(yè)服務(wù) 辦公樓服務(wù)規(guī)范
- 人教鄂教版科學(xué)六年級下冊全冊教案
- 浙江四海氨綸纖維有限公司
- 畢業(yè)設(shè)計(jì)正文150TH循環(huán)流化床鍋爐爐膛本體設(shè)計(jì)
- 港股通開戶測評答案
- ISO9001質(zhì)量手冊
- 主機(jī)主冷油器切換操作票
- 屋面防水施工方案—自粘聚合物改性瀝青防水卷材
- 地球結(jié)構(gòu)示意圖.
- 三科變頻器SK說明書
評論
0/150
提交評論