近日,一位網名叫“greenluigi1”的開發者發現,現代汽車從公開的示例編程項目中借用了密鑰來保護其系統,以在車載信息娛樂硬件上運行自家的軟件。起初他隻是為了自行修改 2021 款現代 Ioniq SEL 車型的車載信息娛樂(IVI)系統,所以設法深入了解如何連接到設備、并繞過其安全防護措施。
讓人沒想到的是,這位開發者竟然隻使用了 Google 搜索引擎,就找到了現代旗下 Hyundai Mobis 制造的 D-Audio2 系統定制固件的一個重大漏洞。
The Register指出,由于車載信息娛樂系統(IVI)接受基于密碼保護的 ZIP 壓縮包的固件更新文件。
因此人們能夠繞過這套簡單的存檔防護措施來訪問相關内容,包括 IVI 各個組件的加密固件鏡像。
接着開發者設法創建了自己的固件鏡像,以車載系統能夠接受、安裝和運行的 zip 文件格式對其進行加密,從而允許通過黑客提供的代碼來控制硬件。
截圖(來自:Programming With Style)
期間最幸運的,就是“greenluigi1”在 Mobis 網站上找到了一個 Linux 安裝腳本 —— 該腳本旨在創建一個合适的 ZIP 文件來執行系統更新。
該腳本包括了系統檔案所需的 ZIP 密碼、AES 對稱密碼塊鍊(CBC)的加密密鑰 —— 單個密鑰、而不是 RSA 非對稱公鑰 / 私鑰對)—— 以及初始化向量(IV 值)來加密固件鏡像。
與此同時,該信息還可用于解密鏡像,意味着 greenluigi1 能夠借助 AES 密鑰來解包、修改,然後通過官方腳本來重新打包加密為 ZIP 格式的壓縮包、并用于現代 IVI 的系統更新。
當然,實際操作還是沒有看起來這麼簡單。至少提供數據的某些部分,仍需使用 RSA 私鑰進行加密簽名。
此外更新程序需要使用私鑰對應的 RSA 公鑰,來檢查數據是否使用了正确的私鑰簽名 ——這意味着 greenluigi1 需要找到 RSA 私鑰才能進一步深入。
在五月的一篇博客文章中,他解釋稱 —— 腳本暗示其正在使用 RSA 簽名,遺憾的是該密鑰不包含在源碼中。
然而更大的烏龍是,原腳本中的 AES 加密密鑰,竟指向了 NIST 文檔 SP800-38A【PDF】中列出的首個 AES 128 位 CBC 示例密鑰。
盡管加密社區普遍意識到 CBC 很難被妥善部署,因此建議換用其它方法,但這家車企竟然還是這麼做了。
此外微軟去年警告稱:基于已知的密碼學研究,在應用可驗證填充、而沒有首先确保密文完整性的情況下,如非極其特殊的情況、CBC 模式加密的數據已不再安全。
由于現代錯誤地使用了 AES CBC 方案和另一個在線發布的密鑰作為私鑰,greenluigi1 得以使用該對稱密鑰,提取更新 ZIP 包中的一個加密固件映像文件的内容。
在提取的文件中,他找到了處理 IVI 更新的軟件(一個名為 updateAgent 的二進制文件)。
加密的 zip 壓縮包
在擁有 zip 密碼和加密密鑰的基礎上,他決定繼續尋找簽名密鑰。幸運的是,該公司不僅留下了公鑰、甚至還把私鑰都晾出來了。
在一連串的好運加持下,greenluigi1 在固件映像中找到了更新程序使用的 RSA 公鑰,并在線搜索了該密鑰的一部分。
文件列表
搜索結果指向一個常見的公鑰,且它出現在《RSA Encryption & Decryption Example with OpenSSL in C》之類的線上教程中”。
這意味着現代“實習生”直接套用了教程中的公鑰密鑰對,并将公鑰塞進了源碼中。
從而使得 greenluigi1 追溯到配對的私鑰,最終簽署可讓 IVI 接納的自定義固件的更新程序。
對于此事,截止發稿時,現代汽車方面尚未回應外媒的置評請求。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!