VOLVO CEM Crack (1) P3 CEM CRACK
先來張圖!改開機畫面像開新車,每次看都開心
這系列文章介紹VOLVO CEM(Central Electronic Module)保護,這類中文資料應該不多,讓有興趣的人參考。我並非汽車從業人員,從有限的觀點寫下筆記,寫錯了請用力嘲笑
想改開機畫面指南
- 需要一顆VOLVO DICE,這個很容易買
- D5T5的VDASH透過Internet和筆電上的DICE工作,可以做那些事都有簡單的說明
- 另外一套工具,瑞典人寫了P3-Tool,這裡也有介紹
- 研究工具是一套Pi和一顆USB-CAN
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
- https://www.matthewsvolvosite.com/forums/viewtopic.php?t=85611
- https://github.com/vtl/volvo-cem-cracker/blob/p3/volvo-cem-cracker.ino
下圖是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組答案
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實際的通訊內容
留言