Jianyuan Lab
發(fā)布時(shí)間:2023-11-17 作者:上海工業(yè)控制安全創(chuàng)新科技有限公司 點(diǎn)擊次數(shù):次
01
背 景
隨著科技的迅猛發(fā)展,汽車行業(yè)正經(jīng)歷著前所未有的數(shù)字化變革?,F(xiàn)代汽車中使用70多個(gè)電子控制單元(ECU),而且這個(gè)數(shù)字仍在上升[1]。在這場(chǎng)數(shù)字化革命中,診斷通信過程協(xié)議(Diagnostic communication over Internet Protocol,簡稱DoIP)嶄露頭角,成為汽車制造商和維修服務(wù)提供商之間進(jìn)行遠(yuǎn)程診斷和維修的核心通信工具。DoIP協(xié)議的重要性在于它使汽車制造商能夠通過互聯(lián)網(wǎng)連接到汽車的電子控制單元(ECU),實(shí)時(shí)監(jiān)測(cè)和遠(yuǎn)程維修車輛,為車主提供更加高效和方便的服務(wù)。然而,隨著DoIP的普及,網(wǎng)絡(luò)安全威脅也在日益增多。本文將探討DoIP協(xié)議的基本原理,并研究可能的攻擊方式,以及如何采取措施保護(hù)現(xiàn)代汽車免受潛在威脅。
02
DoIP協(xié)議
DoIP協(xié)議是一種關(guān)鍵的汽車診斷和通信協(xié)議,能夠高效傳輸大量數(shù)據(jù),提供快速響應(yīng),并支持遠(yuǎn)程診斷,其在ISO13400[2-5]標(biāo)準(zhǔn)中定義。這一標(biāo)準(zhǔn)不僅定義了DoIP協(xié)議本身,還涵蓋了開放系統(tǒng)互連基本參考模型(OSI)的第一層到第四層,包括了Ethernet、IP及其他協(xié)議的使用細(xì)則。DoIP協(xié)議并不是一個(gè)完整的診斷協(xié)議,而是一種擴(kuò)展傳輸協(xié)議。它負(fù)責(zé)診斷數(shù)據(jù)包的傳輸,而診斷服務(wù)仍由專門的診斷協(xié)議(如KWP2000協(xié)議和UDS協(xié)議)規(guī)定和說明。DoIP協(xié)議的存在為現(xiàn)代汽車系統(tǒng)的高級(jí)診斷和通信提供了強(qiáng)有力的支持,確保了兼容性和一致性,使其能夠有效地在汽車領(lǐng)域中運(yùn)行。
圖2.1 與DoIP部分相關(guān)的OSI模型
如下圖2.2所示為DoIP系統(tǒng)車輛網(wǎng)絡(luò)架構(gòu)示意圖,分為內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)。這兩個(gè)部分之間通過兩組線束進(jìn)行信息交互。一組是用于數(shù)據(jù)傳輸?shù)囊蕴W(wǎng)線,另一組是用于激活診斷功能的激活線。一般來說,在工程師或者售后人員控制下的網(wǎng)絡(luò)節(jié)點(diǎn)被稱為外部測(cè)試設(shè)備(External Test Equipment),外部測(cè)試設(shè)備向車輛發(fā)送診斷請(qǐng)求,然后等待被診斷車輛的響應(yīng)。但是在智能網(wǎng)聯(lián)汽車豐富的使用場(chǎng)景中,診斷測(cè)試設(shè)備可能出現(xiàn)布置在車輛內(nèi)部的情況,對(duì)車輛進(jìn)行診斷,如OTA技術(shù)和遠(yuǎn)程診斷,在這些使用場(chǎng)景中,診斷測(cè)試設(shè)備會(huì)作為車輛節(jié)點(diǎn)或?qū)⒋斯δ芗稍谄渌?jié)點(diǎn)中。ISO13400標(biāo)準(zhǔn)對(duì)DoIP系統(tǒng)中不同作用的節(jié)點(diǎn)進(jìn)行了分類,這些分類包括:
1)DoIP實(shí)體(DoIP Entity):DoIP實(shí)體是實(shí)現(xiàn)DoIP協(xié)議的網(wǎng)絡(luò)節(jié)點(diǎn),例如DoIP節(jié)點(diǎn)或DoIP網(wǎng)關(guān)。
2)DoIP網(wǎng)關(guān)(DoIP Gateway):DoIP網(wǎng)關(guān)是一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),它實(shí)施DoIP協(xié)議,從而提供對(duì)其自身及其連接的車輛子網(wǎng)的ECU的訪問。
3)DoIP節(jié)點(diǎn)(DoIP Node):DoIP節(jié)點(diǎn)是一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),該節(jié)點(diǎn)實(shí)施DoIP協(xié)議以提供對(duì)其自身的訪問,但不將DoIP協(xié)議數(shù)據(jù)路由到車輛子網(wǎng)。
4)DoIP邊緣節(jié)點(diǎn)(DoIP Edge Node):DoIP邊緣節(jié)點(diǎn)是連接ISO 13400-3中定義的以太網(wǎng)激活線的節(jié)點(diǎn)。
圖2.2 DoIP系統(tǒng)車輛網(wǎng)絡(luò)架構(gòu)示意圖
DoIP(Diagnostic communication over Internet Protocol)協(xié)議嶄露頭角,作為一種以太網(wǎng)診斷軟件架構(gòu)的中間件,它不僅重新定義了車輛的診斷通信方式,還提供了一系列關(guān)鍵功能,以確保車輛系統(tǒng)的穩(wěn)定性、安全性和可靠性:
1)車輛發(fā)現(xiàn)
車輛發(fā)現(xiàn)是DoIP協(xié)議的關(guān)鍵功能之一。它用于檢測(cè)目標(biāo)車輛中的ECU是否在線。診斷儀發(fā)送廣播式的車輛發(fā)現(xiàn)報(bào)文,所有網(wǎng)絡(luò)中的ECU都會(huì)響應(yīng)并提供自身的身份信息。通過分析這些響應(yīng),診斷儀可以確定在線的ECU,并對(duì)其進(jìn)行分類。
2)路由激活
DoIP協(xié)議中的“路由激活”與傳統(tǒng)網(wǎng)關(guān)的“路由”不同,它指的是診斷儀與被診斷節(jié)點(diǎn)之間的報(bào)文傳輸。在與外部測(cè)試儀建立通信連接之后,必須發(fā)送路由激活請(qǐng)求。此請(qǐng)求需要DoIP節(jié)點(diǎn)驗(yàn)證,以確保合法性。這個(gè)過程還包括了DoIP節(jié)點(diǎn)對(duì)外部診斷儀的安全認(rèn)證,其中ECU開發(fā)人員可以自定義安全認(rèn)證算法,以阻止非法診斷儀對(duì)ECU的訪問。
3)診斷儀在線監(jiān)測(cè)
DoIP診斷要求預(yù)先建立與ECU的通信連接,即TCP socket。因?yàn)榻ocket連接會(huì)占用內(nèi)存資源,所以連接數(shù)量是有限的。因此,ECU在設(shè)計(jì)階段會(huì)定義支持的并行連接的數(shù)量。如果并行連接達(dá)到上限,將無法建立新的診斷通信連接。為防止無效占用連接通道,設(shè)計(jì)了診斷儀在線監(jiān)測(cè)機(jī)制。DoIP節(jié)點(diǎn)會(huì)定期向現(xiàn)有的連接通道發(fā)送在線監(jiān)測(cè)請(qǐng)求,如果連接通道未收到診斷儀的響應(yīng),則將復(fù)位該連接,以待新的診斷儀接入。
4)節(jié)點(diǎn)信息
節(jié)點(diǎn)信息包含了節(jié)點(diǎn)的屬性,例如支持的并行診斷儀連接數(shù)量、可接受的診斷報(bào)文長度以及當(dāng)前節(jié)點(diǎn)的電源狀態(tài)。這些信息在診斷通信前進(jìn)行檢查,以確保后續(xù)的診斷通信不受外部因素的干擾。
5)診斷通信
作為DoIP協(xié)議的核心功能,診斷通信負(fù)責(zé)診斷報(bào)文的傳輸。每個(gè)診斷報(bào)文包括:發(fā)送方的邏輯地址(SA)、接收方的邏輯地址(DA)以及診斷數(shù)據(jù)。在DoIP網(wǎng)絡(luò)中,DA的作用類似于CAN總線網(wǎng)絡(luò)中的CANID,用于尋址目標(biāo)ECU以進(jìn)行診斷,診斷過程如圖2.3所示。
圖2.3 診斷過程
DoIP協(xié)議的五大功能共同促成了基于車載以太網(wǎng)的高速診斷服務(wù),其允許更高速率的數(shù)據(jù)傳輸,從而提高了車輛診斷的效率。如圖2.4所示為一個(gè)完整的DoIP會(huì)話流程圖,其中涉及四個(gè)關(guān)鍵端口號(hào):UDP_DISCOVERY(13400)、UDP_TEST_EQUPMENT(49152-65535)、TCP_DATA(13400)和動(dòng)態(tài)分配(49152-65535)。診斷會(huì)話的建立經(jīng)過以下步驟:
1)物理連接:診斷儀與車輛建立物理連接。
2)IP地址配置:配置IP地址,以確保診斷儀和車輛都能夠正確地通信。配置的方法有兩種,DHCP和Auto-configuration。當(dāng)DHCP配置未成功時(shí),會(huì)觸發(fā)Auto-configuration。在DHCP配置流程中,通常由外部診斷儀扮演DHCP Server角色。
3)車輛發(fā)現(xiàn):車輛發(fā)現(xiàn)是通過UDP進(jìn)行數(shù)據(jù)傳輸?shù)年P(guān)鍵步驟。DoIP實(shí)體主動(dòng)發(fā)送三次Vehicle announcement message,以宣告其存在。若未收到DoIP實(shí)體發(fā)送的Vehicle announcement message,診斷儀將主動(dòng)發(fā)送Vehicle identification request請(qǐng)求,DoIP實(shí)體接收后會(huì)發(fā)送Vehicle identification response響應(yīng)。
4)TCP連接:車輛識(shí)別后,診斷儀會(huì)發(fā)起TCP同步,并與DoIP實(shí)體建立TCP連接。
5)路由激活:TCP連接建立后,診斷儀發(fā)送Routing activation request,DoIP實(shí)體接收并響應(yīng)Routing activation response,從而建立DoIP邏輯連接。
6)診斷服務(wù)傳輸:接下來,可以進(jìn)行診斷服務(wù)的傳輸。診斷儀發(fā)送Diagnostic message request,DoIP實(shí)體接收并響應(yīng)Diagnostic message response。DoIP message ACK表示DoIP層級(jí)的確認(rèn)報(bào)文(0x8002、0x8003等)。
圖2.4 DoIP會(huì)話流程圖
03
DoIP攻擊
DoIP協(xié)議為汽車行業(yè)帶來了巨大的好處,但它也引入了潛在的風(fēng)險(xiǎn),包括中間人攻擊、拒絕服務(wù)攻擊、數(shù)據(jù)篡改等威脅,這些威脅可能導(dǎo)致數(shù)據(jù)泄露、車輛失控和用戶隱私侵犯等嚴(yán)重后果。
中間人攻擊是一種網(wǎng)絡(luò)攻擊,攻擊者通過攔截?zé)o線網(wǎng)絡(luò)通信或入侵車輛網(wǎng)絡(luò)的中間設(shè)備等方式來截獲DoIP通信,截獲通信后通過偽裝成合法的通信方來欺騙車輛或設(shè)備,在偽造通信的過程中,攻擊者可以查看、修改、插入數(shù)據(jù)。在攻擊過程中,攻擊者可以通過訪問車輛傳輸?shù)拿舾行畔ⅲ畿囕v位置,車主信息,車輛性能等數(shù)據(jù),從而導(dǎo)致用戶的數(shù)據(jù)泄漏;攻擊者可以通過偽造、修改診斷數(shù)據(jù),導(dǎo)致錯(cuò)誤的診斷結(jié)果,從而使維修人員采取不必要的維修操作;攻擊者通過執(zhí)行一些惡意的維修操作,如禁用車輛的部分功能或危害車輛的性能,從而威脅駕駛員的人身財(cái)產(chǎn)安全。中間人攻擊是DoIP協(xié)議所面臨的關(guān)鍵威脅之一,因此必須采取適當(dāng)?shù)陌踩胧苑乐惯@種類型的攻擊并保護(hù)車輛數(shù)據(jù)和通信的安全。
針對(duì)中間人攻擊可以采用以下防范措施:
1)數(shù)據(jù)加密:使用加密算法保護(hù)DoIP通信,以確保數(shù)據(jù)的機(jī)密性和完整性。
2)身份驗(yàn)證:雙方的身份驗(yàn)證是防范中間人攻擊的關(guān)鍵,使用數(shù)字證書和身份驗(yàn)證來保證通信方的合法性。
3)網(wǎng)絡(luò)監(jiān)控:實(shí)施網(wǎng)絡(luò)監(jiān)控和入侵檢測(cè)系統(tǒng),以及時(shí)檢測(cè)可疑活動(dòng)和中間人攻擊的跡象。
拒絕服務(wù)攻擊旨在使目標(biāo)系統(tǒng)、網(wǎng)絡(luò)或服務(wù)無法正常運(yùn)作,從而導(dǎo)致服務(wù)不可用。在DoIP協(xié)議的應(yīng)用場(chǎng)景中,攻擊者通過DoIP通信流量防洪、惡意DoIP消息注入、阻塞DoIP會(huì)話等多種攻擊手段來引發(fā)拒絕服務(wù)攻擊,從而嚴(yán)重干擾DoIP通信和車輛維修等操作,從而導(dǎo)致車輛無法進(jìn)行遠(yuǎn)程診斷或維修,嚴(yán)重的話會(huì)引發(fā)系統(tǒng)崩潰,從而對(duì)人身財(cái)產(chǎn)安全造成威脅。因此必須采取有效的防范措施,以確保系統(tǒng)的可用性和穩(wěn)定性。
針對(duì)拒絕服務(wù)攻擊可以采用以下防范措施:
1)流量過濾:使用流量過濾和防火墻技術(shù),識(shí)別和過濾出現(xiàn)在DoIP通信中的惡意流量。
2)負(fù)載均衡:采用負(fù)載均衡技術(shù),分散流量負(fù)載,減輕單一點(diǎn)的壓力,提高系統(tǒng)的彈性。
3)引入反向代理服務(wù)器:作為DoIP通信的中間層,處理和緩解攻擊。
4)容災(zāi)計(jì)劃:建立容災(zāi)計(jì)劃,以便在遭受拒絕服務(wù)攻擊時(shí)迅速恢復(fù)服務(wù)。
數(shù)據(jù)篡改攻擊則是通過試圖在傳輸過程中修改、插入或刪除數(shù)據(jù),以操縱信息,導(dǎo)致錯(cuò)誤的診斷結(jié)果或損害車輛的功能,在DoIP協(xié)議的應(yīng)用場(chǎng)景中,攻擊者通過中間人攻擊、嗅探網(wǎng)絡(luò)流量或其他方式實(shí)現(xiàn)攔截DoIP通信中的數(shù)據(jù)包,以獲得訪問數(shù)據(jù)的機(jī)會(huì)。一旦獲得數(shù)據(jù),攻擊者會(huì)修改、插入或刪除其中的信息, 然后重新傳輸已篡改的數(shù)據(jù),使其看起來像是合法的數(shù)據(jù),車輛制造商或維修服務(wù)提供商接收到篡改的數(shù)據(jù)后,可能依賴于這些數(shù)據(jù)來進(jìn)行診斷和維修操作。由于數(shù)據(jù)已被篡改,可能會(huì)導(dǎo)致錯(cuò)誤的診斷結(jié)果和錯(cuò)誤的維修操作,影響車輛功能和安全性。
針對(duì)數(shù)據(jù)篡改攻擊可以采用以下防范措施:
1)數(shù)據(jù)完整性驗(yàn)證:使用數(shù)據(jù)完整性檢查技術(shù),確保數(shù)據(jù)在傳輸過程中沒有被篡改。
2)加密數(shù)據(jù)傳輸:采用強(qiáng)大的數(shù)據(jù)加密措施,以保護(hù)數(shù)據(jù)的機(jī)密性和完整性,使攻擊者無法修改數(shù)據(jù)。
3)數(shù)字簽名:使用數(shù)字簽名驗(yàn)證數(shù)據(jù)的真實(shí)性,確保數(shù)據(jù)未經(jīng)篡改。
4)訪問控制:實(shí)施訪問控制措施,限制對(duì)車輛數(shù)據(jù)的訪問,并確保只有授權(quán)用戶才能對(duì)數(shù)據(jù)進(jìn)行修改。
參考文獻(xiàn):
[1] Staron M. Automotive software architectures[M]. Cham, Switzerland: Springer, 2021.
[2] ISO. 2011. ISO 13400–1:2011, Road Vehicles – Diagnostic Communication over Internet Protocol (DoIP): Part 1: General Information and Use Case Definition. https://www.iso.org/obp/ui/#iso:std:iso:13400:-1:en
[3] ISO. 2016. ISO 13400–3:2016, Road Vehicles – Diagnostic Communication over Internet Protocol (DoIP): Part 3: Wired Vehicle Interface Based On IEEE 802.3. https://www.iso.org/obp/ui/#iso:std:iso:13400:-3:ed-2:v1:en
[4] ISO. 2016. ISO 13400–4:2016, Road Vehicles – Diagnostic Communication over Internet Protocol (DoIP): Part 4: Ethernet-Based High-Speed Data Link Connector. https://www.iso.org/obp/ui/#iso:std:iso:13400:-4:ed-1:v1:en
[5] ISO. 2019. ISO 13400–2:2019, Road Vehicles – Diagnostic Communication over Internet Protocol (DoIP): Part 2: Transport Protocol and Network Layer Services. https://www.iso.org/obp/ui/#iso:std:iso:13400:-2:ed-2:v1:en