文章總列表

VOLVO CEM Crack (1) P3 CEM CRACK

先來張圖!改開機畫面像開新車,每次看都開心

這系列文章介紹VOLVO CEM(Central Electronic Module)保護,這類中文資料應該不多,讓有興趣的人參考。我並非汽車從業人員,從有限的觀點寫下筆記,寫錯了請用力嘲笑


想改開機畫面指南

  1. 需要一顆VOLVO DICE,這個很容易買
  2. D5T5的VDASH透過Internet和筆電上的DICE工作,可以做那些事都有簡單的說明
  3. 另外一套工具,瑞典人寫了P3-Tool,這裡也有介紹
  4. 研究工具是一套Pi和一顆USB-CAN


D5T5的VDASH

D5T5團隊的VDASH透過OBD2 port和汽車打交道。他能診斷VOLVO car:使用UDS通訊協定讀取錯誤碼,D5T5團隊深入研究(逆向工程)原廠診斷工具,吐出每個錯碼的意義

VDASH也能配置汽車,例如修改開機畫面。首先要解開CEM安全保護,下圖是VDASH嘗試破解CEM的通訊紀錄,他也依賴UDS通訊協定

我感興趣的是UDS,以前不得其門而入,現在能說個兩句了


開始說UDS(Unified Diagnose Service)

工業標準讓大家在同個平台創新,例如3GPP之於4G/5G行動通訊,IEEE之於Ethernet/ WiFi

汽車電子充滿濃濃的ISO味,讓品牌商和ECU廠商脫鉤。ISO-14229 UDS Protocol定義通訊方式,下面表格列出所有服務。透過OBD2 port讓讀取錯誤碼,更新軟體,修改配置變得可行

UDS只定義通訊規格,各家廠商在其上自訂安全機制。作為旁觀者,準備一套樹莓派加CAN-to-USB能在旁偷窺。藉著觀測VDASH的通訊紀錄,學習UDS通訊。搜尋"UDS 0x27",慢慢看也看得懂。拜中國所賜,也有很多高品質的中文資料


VOLVO P3 CEM保護

CEM是主電腦,手機安裝Car Scanner Pro能查詢不少內部狀態,例如電瓶狀態,機油溫度,逆向工程原廠診斷工具即可得知。進階操作得先通過UDS 0x27 Security Access考驗,認證通過,才允許底層操作

VOLVO的SEED/KEY算法已經不是秘密了。第一個連結包括2600個討論,涵蓋P1/P2/P3 CEM破解,甚至有P1/P2 Car Config,讀吧!第二個連結是Arduino在Teensy board實作,破解P1/P2/P3 CEM

下圖是P3關鍵程式碼和註解

Google撈一下寫死的數值,看來大家都直接用sample code來改。就算安全性有疑慮,會動的東西沒事不要碰

我立刻明白VDASH破解是怎麼回事了

  • 汽車來的3byte-seed,加上CEM裡面的5byte-PIN,計算出3byte KEY
  • VOLVO密碼結構:帳面上5byte-PIN,強度只有3-byte-PIN
    • 可以讓byte0=byte1=0,暴力攻擊byte2/3/4,密碼強度只有24bit,約1600萬組
  • 直接對汽車破解,99%時間耗在CAN bus
    • VDASH攻擊一秒約200組,最多24小時破台
    • 專門的硬體能壓到6小時
  • 找到的PIN碼和正確答案不同,但是演算法設計失誤,答案會完全一樣
    • 具體來說,一台車會有65536組答案
我的車VDASH知道答案,能取得很多組正確答案(seed, key)。在算力孱弱的Pi, 16秒破解完成


VOLVO P3 CEM密碼短評

  • 密碼結構不能當安全保證:工程師會離職,iPhone4會忘在酒吧。俄羅斯人拿程式dump反組譯source code

  • VOLVO SPA/CMA提供額外保護:密碼嘗試數次錯不給玩,對車暴力破解無法進行。但是密碼結構不改

  • 密碼用8byte計算32bit HASH,3byte來自SEED(已知),5byte來自PIN(未知)。最後只用24bit HASH算出KEY,損失八分之二資訊!我猜這一步導致PIN強度剩24bit

  • 假如VOLVO沒犯錯,強度滿血40bit,對汽車破解立刻不可行(6萬天);知道一組答案,暴力破解需要100小時,用高級的電腦還是能加速到30分鐘

  • 學習破解方式,目標是哪天得設計安全系統,不要踩已知的坑洞 QQ

  • 現代密碼依賴"運算安全性",算法公開,改用AES-128甚至AES-256就難以暴力破解

  • 密碼原則上無法攻破,現代主流攻擊對象是人類,簡稱社交工程。讓人類在酒吧洩漏些什麼更簡單一點。這裡的專業我不大懂,宅宅工程師要小心不中招 QQ


下一篇

我會分析P3-Tool or VDASH的UDS通訊紀錄,對汽車ECU實際的通訊內容

留言

Jack Moynihan寫道…
This is all useful data, have many updates been made since 2020?
lihgong寫道…
Thanks for the feedback, the Volvo car P3 is frozen since 2017 (then they switched to SPA platform), I think these information is still valid in today

這個網誌中的熱門文章

ELM327 OBD-II 心得 (2),ELM327底層介面

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

玩CAN bus的傢伙們 (1) CandleLight-based USB-CAN