1. 動機
CAN Bus 不安全可能是當(dāng)今汽車網(wǎng)絡(luò)中被提及最多的安全問題。已經(jīng)發(fā)表了許多關(guān)于為什么車輛容易受到攻擊的論文,其中 CAN 總線是這些聲明的核心。其根本原因在于,上世紀(jì) 80 年代發(fā)明的 CAN 總線并未考慮網(wǎng)絡(luò)威脅,這或許是可以理解的,因為車輛連接性尚未納入范圍。隨著車輛功能的發(fā)展和對安全性的需求變得越來越明顯,提出了許多安全解決方案來解決 CAN 不安全問題。也許最有說服力的解決方案是 AUTOSAR 提出的解決方案,它依賴于使用共享對稱密鑰驗證 CAN 幀并包括新鮮度保護(hù):
圖 1 Autosar 中的 SecOC 流程
由于 AUTOSAR 的普及,該解決方案是當(dāng)今最流行的解決方案,但由于執(zhí)行新鮮度管理和數(shù)據(jù)認(rèn)證任務(wù)需要多層軟件,因此會對主機 CPU 造成性能損失。
圖 2 Autosar 分層架構(gòu)中的 SecOC BSW
如上所示,當(dāng)收到一個安全的PDU時,它會被路由到SecOC進(jìn)行MAC驗證。SecOC 依靠新鮮度值管理器 (FVM) 來確定接收到的新鮮度值是否在可接受的窗口內(nèi)。在這里,可以根據(jù) OEM 偏好使用各種 FVM 策略。由于 CAN 有效載荷長度有限,許多解決方案需要截斷的新鮮度值,這導(dǎo)致需要定期同步完整的新鮮度值。在 FVM 的響應(yīng)之后,SecOC 將請求發(fā)送到加密服務(wù)管理器 (CSM) 以執(zhí)行加密功能以驗證 MAC。在將結(jié)果返回給 SecOC 之前,CSM 可能依賴軟件庫或 HSM 加密驅(qū)動程序來執(zhí)行這項工作。最后,如果驗證成功,則 SecOC 將 PDU 轉(zhuǎn)發(fā)到 PDU 路由器,或者引發(fā)錯誤標(biāo)志并丟棄幀。這些任務(wù)對應(yīng)的 CPU 工作量很大。
由于趨勢是消息和 CAN 通道的數(shù)量增加,CPU 開銷懲罰的問題只會變得更糟。為了滿足吞吐量需求,芯片供應(yīng)商提供集成在硬件安全模塊 (HSM) 中的 AES 加速器。但經(jīng)驗表明,負(fù)責(zé)處理數(shù)百條消息的身份驗證請求的中央 HSM 由于數(shù)據(jù)復(fù)制進(jìn)出 HSM 的開銷而成為瓶頸。請注意,AES 引擎延遲僅占 HSM 執(zhí)行身份驗證所花費的總時間的一小部分。大部分延遲是由于作業(yè)設(shè)置、數(shù)據(jù)傳輸、作業(yè)調(diào)度、密鑰獲取和響應(yīng)主機的軟件開銷造成的。隨著 CAN XL 的推出,它將支持高達(dá) 2048 字節(jié)長的有效載荷和高達(dá) 10Mbps 的波特率,對 HSM 的性能要求必然會變得更差。如果除了身份驗證之外還需要加密,那么將數(shù)據(jù)傳輸出 HSM 的額外開銷將進(jìn)一步增加主機 CPU 傳輸或接收數(shù)據(jù)的總體延遲。顯然,今天的安全硬件和軟件架構(gòu)是不夠的。
2. 威脅模型
CAN總線面臨許多威脅。此處的列表顯示了最令人擔(dān)憂的威脅:
欺騙:由于 CAN 總線的廣播特性,任何 CAN 節(jié)點都可以通過欺騙 CAN ID、DLC 和有效載荷來發(fā)送任何消息
嗅探和重放:由于 CAN 數(shù)據(jù)的開放性和豐富的 CAN 分析工具,CAN 幀可以很容易地被嗅探和重放,以使 ECU 執(zhí)行某些功能,例如解鎖門或應(yīng)用中斷
否認(rèn):由于 CAN 總線的廣播特性,當(dāng)傳輸惡意 CAN 幀時,無法證明哪個 ECU 負(fù)責(zé)發(fā)送虛假消息
資源耗盡:當(dāng)使用 AUTOSAR SecOC 啟用消息身份驗證時,惡意攻擊者可以發(fā)送精心挑選的新鮮值,使接收者忙于驗證同一幀的真實性以耗盡 CPU 資源
拒絕服務(wù):惡意 ECU 可以連續(xù)發(fā)送零 ID 消息,導(dǎo)致它們始終贏得仲裁并拒絕其他 ECU 在總線上成功傳輸。此外,不合格的 CAN 硬件可以通過破壞某些字段(例如插入填充位或修改物理層 CRC)來殺死特定的 CAN 幀,從而導(dǎo)致目標(biāo) ECU 進(jìn)入 BusOff 狀態(tài)。
CANsec 可以解決除拒絕服務(wù)之外的所有上述威脅,拒絕服務(wù)需要額外的檢測和預(yù)防機制。
3. 安全 CAN 控制器
為了在降低 CPU 開銷的同時應(yīng)對數(shù)據(jù)認(rèn)證的吞吐量和帶寬不斷增長的需求,建議將 CANsec 層集成到 CAN 控制器中,以支持線速的認(rèn)證和/或加密。
圖 3 CANsec 架構(gòu)
在 ECU 啟動期間,車載通信密鑰從 HSM 安全存儲器緩存到 CAN 控制器專用 KEY RAM。此 RAM 只能由 HSM 通過專用總線訪問,以防止惡意 CPU 訪問。它也只能由 CAN 控制器內(nèi)的 AES 引擎直接訪問。添加了額外的 CAN 寄存器以允許用戶為每個安全通道標(biāo)識符 (SCI) 指定密鑰索引映射。類似地,為每個消息添加一個專用寄存器來存儲幀新鮮度值。后者必須在 ECU 關(guān)閉之前存儲到安全內(nèi)存中,以確保在下一個引導(dǎo)周期同步。當(dāng)接收到 CAN 傳輸請求時,CAN 控制器執(zhí)行以下序列:
根據(jù) SCI 的密鑰索引獲取密鑰明文值并加載到 AES 引擎中
獲取新鮮度值并將其增加 1
輸入 CAN ID | 下載內(nèi)容 | CAN 負(fù)載 | Freshness Value, Payload Type, 進(jìn)入 AES 引擎生成完整性校驗值 (ICV)
當(dāng)幀以線速傳輸時,將 CANsec 標(biāo)頭(新鮮度值)和 ICV 插入有效負(fù)載
在接收期間,將遵循類似的過程,并附加將接收到的新鮮度值和 ICV 與預(yù)期值進(jìn)行比較的步驟。為了檢查新鮮度,將接收到的值與存儲的新鮮度值加上預(yù)配置的接受窗口進(jìn)行比較。這對于允許可能不同步的 ECU 重新同步到接收到的新鮮度值是必要的,而無需復(fù)雜的新鮮度值管理策略。如果 Freshness 和 ICV 值都符合預(yù)期,CAN 控制器會使用接收到的值更新 Freshness Value 寄存器并設(shè)置接收標(biāo)志以讓應(yīng)用程序處理數(shù)據(jù)。否則,它會設(shè)置錯誤標(biāo)志以通知主機 CPU 接收到幀但數(shù)據(jù)無效。
4. 概念證明
瑞薩電子進(jìn)行了一項可行性研究,以證明實施 CANsec 概念是有意義的。基于 CiA 613-2 CANsec 規(guī)范的早期版本,在 FPGA 中實現(xiàn)了原型 CANsec 實現(xiàn)。為了比較蘋果和蘋果,我們還在軟件中實現(xiàn)了 CANsec 協(xié)議。由于上述原因,不適合使用 SecOC。
該圖顯示了基于軟件的實現(xiàn)所需的 CPU 性能。處理時間與 Payload 數(shù)據(jù)量成正比,這是顯而易見的,因為更多的數(shù)據(jù)需要更多的時間來處理。預(yù)計 CANsec 軟件的 RX 延遲和 TX 延遲不會有不同的斜率。相反,模型應(yīng)該具有幾乎相同的斜率。但是在 SW 中還有一個更大的步驟是為了發(fā)送幀而不是為了接收幀。這可能是軟件優(yōu)化的一個領(lǐng)域。但是,接收和發(fā)送的總體趨勢是相同的。
圖4 CANsec CPU處理時間
該軟件在 1.2GHz 的 R-Car H3 SoC 的 ARM 內(nèi)核上運行。如果這個數(shù)據(jù)會被分解到一個 400MHz 的 MCU;那么在 100% 的總線負(fù)載下,CPU 將被占用 25%(@252byte 有效負(fù)載)。這是一項相當(dāng)大的工作,考慮到這樣的 MCU 有多個 CAN-XL 通道,那么 CPU 很快就會過載。因此,將其實現(xiàn)為 CAN-XL IP 中的硬件加速功能是有意義的。
下圖顯示了硬件實現(xiàn)的處理延遲。CANsec 模塊在 CAN 控制器的數(shù)據(jù)路徑中實現(xiàn)。為此,延遲必須比 CAN 總線上的 CAN-XL 幀處理時間短,以確保以線速進(jìn)行處理。在我們的原型實現(xiàn)中,CANsec 模塊的時鐘頻率為 80MHz,并使用 16 個 S-Box 進(jìn)行 AES 算法,通過這種設(shè)置,我們得到的值遠(yuǎn)低于 CAN 總線上消息的占用時間。例如,可以通過使用更少的 S-Box 來消耗更少的芯片尺寸來實現(xiàn)進(jìn)一步的優(yōu)化。
圖 5 CANsec 硬件延遲時間
5. 結(jié)論
CANsec 是一種實用的解決方案,可保護(hù) CAN 總線免受 CAN 網(wǎng)絡(luò)面臨的最常見威脅,同時減少主機 CPU 開銷和對更大、更強大 HSM 的需求。將高速身份驗證/加密任務(wù)從 HSM 卸載到分布在外圍設(shè)備中的加密引擎可以減輕 CPU 負(fù)擔(dān)。通過以線速執(zhí)行身份驗證,它以最小的信號延遲為應(yīng)用程序提供無縫的安全性。讓 HSM 控制密鑰緩存可以創(chuàng)建安全策略,以限制 ECU 在應(yīng)用程序不再被視為受信任時發(fā)送安全消息的能力。
進(jìn)一步表明,在硬件和軟件中實現(xiàn) CANsec 是可行的。當(dāng)然,在軟件中實現(xiàn)將具有與今天基于 SecOC 的實現(xiàn)相同的缺點。然而,軟件實現(xiàn)將允許在開始時平滑遷移該技術(shù),當(dāng)時并非所有控制器都支持 CANsec 的硬件實現(xiàn)。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
112文章
16473瀏覽量
179670 -
CAN
+關(guān)注
關(guān)注
57文章
2774瀏覽量
464498 -
總線
+關(guān)注
關(guān)注
10文章
2906瀏覽量
88454
發(fā)布評論請先 登錄
相關(guān)推薦
淺談CAN協(xié)議轉(zhuǎn)換模塊
AUTOSAR通信與CAN協(xié)議的關(guān)系
博世受邀參與虹科CAN XL國際研討會
CAN XL物理層揭秘(下):物理層組合與兼容性
![<b class='flag-5'>CAN</b> <b class='flag-5'>XL</b>物理<b class='flag-5'>層</b>揭秘(下):物理<b class='flag-5'>層</b>組合與兼容性](https://file1.elecfans.com/web3/M00/00/76/wKgZO2dJbIOAKwnBAACvpAeVJWc750.png)
一文讀懂CAN XL!萬字干貨,虹科CAN XL研討會問答,你想知道的都在這里!
虹科干貨 三代CAN技術(shù)演進(jìn):從CAN CC到CAN XL的創(chuàng)新路徑(上篇)
三代CAN技術(shù)演進(jìn):從CAN CC到CAN XL的創(chuàng)新路徑(下篇)
![三代<b class='flag-5'>CAN</b>技術(shù)演進(jìn):從<b class='flag-5'>CAN</b> CC到<b class='flag-5'>CAN</b> <b class='flag-5'>XL</b>的創(chuàng)新路徑(下篇)](https://file1.elecfans.com//web1/M00/F4/1A/wKgZoWckQfCAOXfBAADwU1J3HAA717.jpg)
CAN系列協(xié)議和以太網(wǎng)協(xié)議在汽車電子中的應(yīng)用
![<b class='flag-5'>CAN</b>系列<b class='flag-5'>協(xié)議</b>和以太網(wǎng)<b class='flag-5'>協(xié)議</b>在汽車電子中的應(yīng)用](https://file1.elecfans.com/web1/M00/F3/6E/wKgZoWcXR5aAQst_AAAqCNr_BOs145.png)
【CAN總線知識】全面了解CAN總線協(xié)議
![【<b class='flag-5'>CAN</b>總線知識】全面了解<b class='flag-5'>CAN</b>總線<b class='flag-5'>協(xié)議</b>](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
CAN/CAN FD/CAN XL三大總線協(xié)議解讀,是逐步替代關(guān)系嗎?
什么是CAN總線協(xié)議?它有哪些特性和應(yīng)用?
什么是CAN2.0協(xié)議?
![什么是<b class='flag-5'>CAN</b>2.0<b class='flag-5'>協(xié)議</b>?](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
泰克科技全新CAN XL協(xié)議解碼軟件上線
![泰克科技全新<b class='flag-5'>CAN</b> <b class='flag-5'>XL</b><b class='flag-5'>協(xié)議</b>解碼軟件上線](https://file1.elecfans.com/web2/M00/C5/E5/wKgZomYDhU2AEpcZAAAvlI5QSKs135.png)
評論