SecTor 2025 | CAN Bus for Car Nerds and Security People Who Should Know Better
三句話摘要
前資安工程師轉型汽車改裝,講解如何透過 CAN 總線嗅探與逆向工程控制車輛電控系統,並應用於電動賽車與客製化改裝。 CAN 總線本質是一個廣播式區域網路,用 200 美元硬體加免費 Savvy CAN 工具,搭配「靜音基線→觸發動作→觀察跳變」三步驟,即可在數分鐘內逆向定位任何車輛感測器訊號,進而實現讀取、注入與雲端遙測。 CAN 總線物理結構極簡:差分雙絞線(CAN High / CAN Low)加 120 歐姆終端電阻,拓撲等同 1990 年代 10Base-2 同軸網路,訊息 ID 越低優先級越高,廣播即生效、無需握手確認。
重點整理
重點- 1
CAN 總線物理結構極簡:差分雙絞線(CAN High / CAN Low)加 120 歐姆終端電阻,拓撲等同 1990 年代 10Base-2 同軸網路,訊息 ID 越低優先級越高,廣播即生效、無需握手確認。
- 2
逆向的核心技巧是「基線靜音」:用 Savvy CAN 的 mute/ignore 功能排除背景雜訊後,執行目標動作(踩剎車、轉方向盤),觀察哪個 PID 的哪個 byte/bit 開始跳動,數分鐘即可定位目標訊號,不需拆線或接觸實體開關。
- 3
DBC 檔案大幅加速逆向:購買電動零件通常附帶 DBC(訊號起始位元、長度、單位、數值含義一目了然),GitHub 上的 OpenDBC 收錄福特、通用、斯巴魯等主流車廠資料,可把「從零逆向」縮減為「只找未知訊號」。
- 4
掌握嗅探後可雙向控制:匯流排上無驗證,注入訊號即生效;可對動力轉向 ECU「說謊」改變輔助力道、對壓縮機下速度指令、把模擬感測器數值廣播上總線,再串流到雲端做即時遙測。
實用技巧與重點
乾貨- 2000 年後車輛普遍採用 CAN 總線;2000 年代中期已全面覆蓋
- OBD2 端口第 6、14 腳:固定為診斷 CAN 總線(規範強制)
- 常見 CAN 速率:500 kbps(主流);老車 250 kbps;獨立 ECU 有時 1 Mbps
- 標準終端電阻:120 歐姆
- 硬體:PCAN USB 適配器約 200 美元;OBD2 尾線 + DB9 接頭自製線材約 25 美元
- 軟體:Savvy CAN(免費,主講者最推薦);介面類似 Wireshark
- DBC 資料庫:OpenDBC(GitHub);CSS Electronics 線上查看器(語法容錯高)
- DBC 編輯器:Vector CAD DBT Plus(功能強,格式較嚴格)
- 本田 CRV 實測案例:PID `17C` byte 4 = 剎車開關(0/1);PID `1A4` = 16-bit 小端序剎車壓力值
- 2019 款 F250 電動改裝:保留原廠 5 條 CAN 網路,AC、四驅全數整合
- 2023 款 GR86 有 9 條 CAN 總線;2003–2007 款日產 350Z 僅 1 條
- 微控制器(Arduino、樹莓派)皆可讀取並注入 CAN 訊號
結論
結論“CAN 總線本質是一個廣播式區域網路,用 200 美元硬體加免費 Savvy CAN 工具,搭配「靜音基線→觸發動作→觀察跳變」三步驟,即可在數分鐘內逆向定位任何車輛感測器訊號,進而實現讀取、注入與雲端遙測。”
完整解析
詳細主講者曾是資安公司 Sector 的共同創辦人,後轉型投入汽車改裝,專注電動賽車與動力總成更換專案。他在演講開頭明確聲明:這不是一場資安演講,他研究 CAN 總線是為了把不屬於某輛車的發動機或電動馬達塞進去、讓原廠所有電控繼續正常運作,而非出於攻擊目的。他也簡短點出,CAN 總線廣播特性(無驗證、無定址)使車燈模組成為可跳轉至 ECM 的入口,ABS、車道保持等安全功能也全部跑在同一條匯流排上,IT 背景的聽眾不難自行延伸聯想。
CAN 總線的物理層與協議層都極為簡單。物理上幾乎等同 1990 年代的 10Base-2 同軸乙太網——把同軸換成差分雙絞線,終端電阻從 50 歐姆換成 120 歐姆,其餘拓撲相同。協議上是純廣播、無定址:任何節點想說話就直接發,ID 越低優先級越高,沒有握手確認。接入匯流排最簡單的方式是 OBD2 端口的第 6、14 腳(規範強制為診斷 CAN),搭配 OBD2 尾線加 DB9 接頭自製線材(約 25 美元)和一個 PCAN USB 適配器(約 200 美元)即可連接筆電,速率幾乎固定選 500 kbps。較新車款已開始配備 CAN 閘道,OBD2 端口不再直通原始匯流排,此時需找到閘道背後的連接器進行電線拼接,但原理相同。
實際逆向分析以 Savvy CAN 為核心工具。連線後嗅探器顯示所有 PID 及其 8 位元組數據,更新速率可達每秒 1300 幀以上。逆向的基本技巧是「基線靜音」三步驟:先用 mute/ignore 功能把目前所有在變動的訊號標記為已知雜訊,待畫面穩定後執行目標動作(如踩剎車),再觀察哪些 PID 的哪些 byte 開始跳動。在現場對一輛素未謀面的本田 CRV 示範中,主講者在數分鐘內定位出剎車開關與剎車壓力訊號,並透過觀察數值從「0→1→2」的遞增模式推斷出 16-bit 小端序排列方式。對持續變化的訊號(如引擎轉速),則用幀數據分析工具繪製波形,重複觸發 10 次後找到圖表中出現 10 個峰值的 byte 即為目標。
掌握嗅探之後,將 DBC 檔案載入 Savvy CAN 可立即把已知訊號全部自動標籤,訊號檢視器直接顯示方向盤角度、油門位置、引擎轉速的即時數值,把未知訊號的搜尋範圍大幅縮小。最終這套能力可延伸到雙向控制:在匯流排注入自訂訊號無需配對、注入即生效,可對動力轉向 ECU 「說謊」改變輔助力道、對空調壓縮機下速度指令,也可把模擬感測器(如機油壓力)的數值廣播到匯流排供所有模組讀取,並串流至雲端做即時遙測——這正是他在賽車維修站用手機監看兒子駕駛賽車所有關鍵數據的實際做法。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

