search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

汽車黑客之CAN匯流排協議

汽車黑客是我們黑客學科的前沿領域之一。隨著汽車變的越來越智能化,包含越來越多的電子產品,這使得汽車越來越易被攻擊。我們此刻確確實實的處在一個無人駕駛或者自動駕駛汽車的轉折點上,對汽車的攻擊行為將會變得更加重要和危險。

在本系列中,我們將研究汽車黑客的基礎知識,並提出更複雜的黑客策略。舉一個簡單的汽車黑客的例子,看看這篇黑掉三菱歐藍德的文章。

在我們深入汽車黑客之前,首先需要了解基礎知識。比如說,在進行網路hacking之前需要了解TCP/IP協議,在進行SCADA(數據採集與監視系統)hacking之前需要了解Modbus通訊協議。汽車中的電子部件採用若干種不同的協議在諸多微控制器、感測器、儀錶、執行器等等之間進行通訊。其中,最廣泛使用的莫過於Controller Area Network(控制器區域網絡)或者稱之為CAN。

CAN協議

CAN協議首先由汽車電子業界聞名的德國工業巨頭羅伯特·博世有限公司(Robert Bosch GmbH)開發。它於1986年首次在汽車工程師學會(SAE)會議上發布。CAN協議已經被標準化為ISO 11898-1和ISO 11898-2。它被設計用於在不需要主機的情況下車輛的微控制器和設備之間的良好的通信。

CAN以廣播類型網路的形式運作,類似於乙太網中的廣播數據包,或者像過去在網路中使用的集線器(1980-90年代)。網路上的每個節點都可以「看到」每個傳輸數據包。不同於乙太網或TCP/IP(但與SCADA系統中的modbus相似),CAN不能向單個黑店發送消息,但卻提供了本地過濾,以便每個節點僅對其操作相關的消息起作用。你可以將這種機制視為「內容消息傳遞」,其中內容確定目標節點。

CAN在兩根線纜之上運行,CAN高線,CAN低線。由於汽車系統固有的「噪音」,CAN使用差分信號(譯註:即電平差)。這就是協議分別在兩根線纜上升高、降低電壓來通信的原因所在。在高速和低速CAN這兩種情況下,當發送0時,信令將高線向5V驅動,低線向0V驅動,但在發送1時兩線都不驅動。

CAN消息類型

CAN 使用 4 中不同的消息類型:

  • 數據幀

  • 遠程幀

  • 錯誤幀

  • 過載幀

數據幀

這是用於實際數據傳輸的唯一幀。在大多數情況下,由數據源節點發送數據幀。

該幀有兩種類型,基本幀和擴展幀。基本幀有11位標識碼而擴展幀有29位。CAN標準要求必須接受基本數據幀,並且擴展幀必須是可兼容的,換句話說,擴展幀不會中斷協議或者數據傳輸。

遠程幀

遠程幀被使用在當數據目標節點需要從源節點獲取數據的情況下。

錯誤幀

錯誤幀有兩個不同的欄位,第一個欄位由ERROR FLAGS給出,由不同的駐點產生,第二個是ERROR DELIMITER,只是指示錯誤消息的結束。

過載幀

過載幀由兩個欄位,過載標誌和過載分隔符。當接收機內部條件滿足或者在傳輸期間檢測到主要位(0)時會觸發過載幀。

板載診斷(OBD)-ll連接器

大多數車輛現在都配有一個OBD-II連接器。如果你把汽車帶到4S店進行維修,那麼在儀錶板的下方,機械師將會使用這個介面連接電腦,以便讀取車載電腦的數據。

OBD-II有16個引腳,如下圖所示。

作為黑客或者攻擊者,我們同樣可以使用這個OBD-II連接器用它來向CAN網路中的各種設備發送數據。

CAN匯流排數據包格式

標準數據包

數據包有兩種格式,基本和擴展。擴展包中包含了基本包中的同樣的元素,但是擴展包包含了額外的數據來表示ID。

仲裁ID

仲裁ID是指發送數據包的設備的ID。

擴展標誌位

該位在基本CAN包中始終為0。

數據長度碼(DLC)

該域指明了數據長度,範圍從0~8位元組。

數據

消息中的數據。如上邊所提到的,它可以多大8個位元組。所有的CAN數據包都會被廣播,即所有的設備或者控制器可以看見每一個數據包。這樣一來,所有的設備都無法知道時哪個控制器發送的數據包(無返回地址),因此在CAN網路上進行消息欺騙時輕而易舉的,這也是CAN的關鍵弱點之一。

擴展數據包

擴展CAN數據包和標準CAN數據包相同,但是它們被鏈接在一起以創建更長的ID。擴展CAN與標準CAN向後兼容。這意味著如果感測器被設計成不接受擴展數據包,系統也不會因此而中斷。

由於CAN是一個低級協議,它沒有內置任何的安全功能。默認情況下,它沒有加密或者認證。這將導致中間人攻擊(無加密)和欺騙攻擊(無認證)。製造商在某些情況下已經對系統的關鍵任務進行了認證機制,例如修改軟體和控制制動器,但是製造商並沒有實現所有的認證機制。即使在實施密碼的情況下,它們也比較容易破解。

隨著這一系列關於汽車黑客文章的進程,我們將會擴展您對CAN以及其他汽車通信協議的理解!

轉載請註明來自看雪社區

熱門閱讀

  • 議題徵集 | 2017 安全開發者峰會

  • 物聯網中的 ARM 漏洞利用

  • ARM彙編基礎教程——ARM彙編簡介

  • CVE-2017-10661 原理,觸發分析

  • 修改源碼實現全局(無需root)注入躲開注入檢測



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦