當前位置:
首頁 > 科技 > 以最小的系統影響高效率地實施CAN的安全通信

以最小的系統影響高效率地實施CAN的安全通信

有效地實施CAN通信安全是一個挑戰,目前,基於數據有效負載的認證有各種不同方案,例如AUTOSAR SecOC[1]。這些解決方案採用了加密的方式,這意味著需要更高的帶寬、更長的傳輸延遲和更高的處理能力,與此同時還需要管理加密密鑰本身。

恩智浦新推出的安全型CAN收發器系列提供一種非常高效的無縫解決方案,無需加密即可保障CAN通信安全。這樣可以降低其他解決方案會面臨的系統影響。

恩智浦認為,只要收發器具備分散式入侵檢測和遏制方法,無需加密即可有效保障CAN通信安全[2]。另外,在發送和接收路徑中採用CAN報文標識符(ID)過濾機制,將有助於防止和遏制諸如欺騙、遠程幀篡改和泛洪拒絕服務等網路攻擊。通過監視和過濾匯流排上的網路流量,安全型CAN收發器能夠有效遏制電子控制單元(ECU)試圖發送未授權的惡意報文的行為,從而為CAN匯流排提供安全保護。

從安全形度出發,人們往往會選擇使用尖端技術解決方案來防範安全威脅,比如基於加密和相關安全密鑰管理的加密報文認證碼(MAC)。各種安全微控制器也採用加密加速器來為這類最先進的解決方案提供硬體支持。但即便如此,這種解決方案對於保障CAN通信安全而言也並非始終是最有效率的。安全微控制器可用於保護多個CAN網路或其他網路(如乙太網或LTE)上的端對端通信,實現安全啟動、認證診斷和認證固件更新。

不過,本文將要展示的是一種更高效率的CAN匯流排保護解決方案,那就是安全型CAN收發器。這種解決方案無帶寬開銷,而且對於配置和生命周期管理的需求極低。通過執行密碼檢查來驗證報文真實性,勢必會造成報文延遲、匯流排負載和計算能耗的增加。因此,這類解決方案可能會遭到抑制,或者造成如下折衷的結果:

1. 只將報文認證碼(MAC)應用於網路中的一小部分CAN報文

2. 將超出合理限制範圍的MAC和/或新鮮度值截短

3. 可能存在無保護的寬限期[3]。

當所選微控制器系列沒有足夠的計算能力來加解密CAN報文時,將會導致現有的電子控制單元設計無法升級。此外,整個車輛生命周期的密鑰管理也會是一個複雜的挑戰。最終,可能需要對整個系統進行從經典CAN到CAN FD的重新設計,以此補償引入安全處理晶元SecOC所導致的匯流排負載增加,因此這種方案並非總是切實可行的。

恩智浦提供的方案能夠在系統影響最低的前提下保護CAN匯流排,既可以為基於加密的安全解決方案增加一層保護以實現深度防禦(DiD[1]),也可以作為獨立的解決方案使用。無論是哪種情況下,安全型CAN收發器都能夠有效提供強有力的保護並遏制黑客攻擊。

安全型CAN收發器的安全功能

防範發送端欺騙

安全型CAN收發器在發送路徑中提供了一種方法來保護匯流排不受被破壞的電子控制單元的侵害,即根據CAN報文ID對報文進行過濾。如果電子控制單元試圖用原來未分配給它的ID發送報文,安全型CAN收發器可以拒絕向匯流排發送該報文,使該報文失效,並拒絕執行後續發送。CAN報文ID的過濾對策可通過製造商可以配置的ID白名單來實現。例如,可以從白名單中排除ISO 14229標準針對非車載測試儀規定的統一診斷服務(UDS)ID。這樣做可以防止被破壞的電子控制單元通過用另一個車載電子控制單元啟動診斷會話來操縱校準值。

防範接收端欺騙

當接收到分配給用於發送的CAN報文ID時,一種補救保護措施就是使匯流排上的報文失效。這種方法意味著每個電子控制單元都可以在不法電子控制單元使用相同ID發送報文時保護自己的ID;比如,不屬於汽車OEM製造商控制範圍並因此沒有配有發送白名單的安全型CAN收發器的售後器件。任何電子控制單元在匯流排上發送報文時,合法電子控制單元的安全型CAN收發器都可以通過向匯流排寫入激活錯誤幀,主動使該報文失效。被破壞的發送方重複被騙報文16次後,暫停發送行為介入,限制被騙報文加重匯流排負載;然後,再重複16次以後,攻擊電子控制單元會進入匯流排關閉狀態。這一短暫的匯流排負載高峰可視為對策的負面影響。不過,只有當系統受到攻擊時才會採取這種措施,因此不必過於擔心。

防篡改保護

使CAN匯流排上報文失效的方法也可以用來預防篡改攻擊。安全型CAN收發器可以檢查匯流排上是否存在電子控制單元已經贏得其仲裁但已經停止在數據域中發送(因為在發送隱性位時收到顯性位)的有效報文,以及該報文是否由篡改電子控制單元完成。這是有被破壞電子控制單元介入發送的明顯標誌。在電子控制單元的CAN控制器沒有報告錯誤時的被動錯誤狀態期間,這特別有價值。請注意,報文篡改將是繞過接收端欺騙防範的一種方法。

防範泛洪攻擊

在發送端實施時,限制電子控制單元在單位時間內對整體匯流排負載,有助於防止匯流排遭到泛洪攻擊。為防止泛洪攻擊,可以使用漏桶機制。漏桶在報文發送時填充,並不斷清空。一旦漏桶溢出,便停止後續發送。因此,泛洪攻擊保護提高了匯流排的可用性,從而阻止混串音。為了使一個電子控制單元的報文猝發持續一定的時間,可以適當地設置漏桶容量。填充漏桶時可以將低優先順序的報文排除,因為它們必將失去仲裁,不利於防止泛洪攻擊。這樣一來,診斷服務(如SW上傳/下載)等便能以高速率交換低優先順序的報文,而且不會觸發泛洪保護。

使用這些對策防止欺騙和篡改,無需克服密碼協議和相關資產管理方法方面的障礙即可使發送方合法化。與最先進的解決方案相比,這種方案的破壞性比較低。此外,它還支持深度防禦概念,可以使向不法電子控制單元發送被盜加密密鑰的行為失效,因為該電子控制單元無法發送它可能用被盜密鑰驗證的報文的CAN報文ID。

最先進解決方案對系統的影響以及安全型CAN收發器的價值

為了通過最先進的解決方案使報文合法化,需使用基於加密的有效載荷認證,例如使用AUTOSAR SecOC。在原始未受保護的有效載荷中補充報文認證碼(MAC)和參數,以標識報文的新鮮度。報文認證碼基於加密演算法和共享密鑰進行計算。報文的新鮮度用於重播保護,它可以確保重複的有效載荷擁有不同的新報文認證碼。

註: 經認證的有效載荷採用普通或加密格式,但會以相同的方式處理以達到驗證目的。推薦的安全實踐要求將加密和認證分開,例如對每個操作使用不同的共享密鑰。因此,在下面的討論中,我們將有效載荷加密視為不相關的。

對CAN網路應用基於加密的有效載荷認證解決方案時,產生的值可能會受到下面將討論的幾個因素影響。相關程度取決於安全設計和體系架構——因此下述因素並非全都適用於每一位讀者的情況。

安全通信啟動延遲

在系統上電(或點火)之後,需要一定的時間來協調和調整即將到來的經認證報文的新鮮度屬性。這段時間會造成對第一批重要報文的認證準備發生延遲。儘管有不同的方法可供使用,但通常都會涉及到相關電子控制單元之間的少量或大量有效載荷交換的協議。例如,可以就安全的時間分配或安全的單調計數器同步達成一致。另一種方法是在每次啟動時刷新共享密鑰,並使用重置的新鮮度值。但是,考慮到點火後電子控制單元的重啟周期數可能會出現不可預測、非同步和不相等的情況,因此協議將是複雜的,比較耗費時間。不可預測性可能來自發動機啟動時潛在的功率損失,而不相等則是由於功率損失不同所導致。AUTOSAR定義了一個寬限期[3]來應對這個問題,但是當關鍵報文沒有受到保護時,將導致點火後出現一段延遲(或者由於攻擊而強制重啟)。

在稍後的穩定時期刷新密鑰不失為一種替代方案。這樣可將複雜性轉移到單調計數器的管理上,但也可能導致其他問題,比如非易失性存儲器磨損或者計數器在混亂的上電狀態下失去同步。

恩智浦的安全型CAN收發器可確保匯流排上任何受保護的報文(包括最開始的報文)都是合法的。

增加匯流排負載和帶寬

如果通過增加匯流排負載來傳輸附加參數(如MAC和新鮮度值),則帶寬需求也會隨之增大。附加參數的大小會影響安全級別,或另一匯流排負載的消耗速率。NIST[4] 建議MAC至少為64位(即:8位元組),這對於經典CAN而言損失相當大。新鮮度計數器的大小決定了密鑰的刷新速率,或一些其他安全型基本計數器/新鮮度同步的速率。

此圖顯示了帶寬開銷。它對500 kbps條件下的經典CAN報文與11位CAN報文ID的傳輸時間進行了比較。最初的普通有效載荷在灰色區域,相應的值對應不同的認證參數[計數器 + MAC](括弧中的值以位元組為單位)。

以圈紅處為例:假設一個普通的經典CAN報文的無保護報文有效載荷為16位,那麼2位元組的計數器和5位元組的MAC用於可接受的保護,匯流排負載增大2.5倍。

以最小的系統影響高效率地實施CAN的安全通信

圖1 認證帶寬開銷

圖中的數字僅指報文認證開銷,不包括運行管理協議刷新密鑰或新鮮度值時可能增加的匯流排負載。

恩智浦的安全型CAN收發器無需傳輸任何附加位即可在經典CAN和CAN FD協議下正常工作。

增加處理器負載和功能延遲

額外的功能延遲可能來自額外的緩衝區或中斷處理以及與硬體加速器之間的通信,而不是在生成和認證期間計算MAC所導致。額外的處理負載會降低應用的性能。附加位在匯流排上的傳輸時間也會以圖1中匯流排開銷的數量級增加。如圖1所示,16位無保護報文有效載荷需要172 μs,而有效載荷受保護的同一報文需要436 μs。分散式車輛功能的功能延遲和實時行為取決於當前的架構和車輛設計。

恩智浦的安全型CAN收發器可獨立於微控制器保護CAN通信,不會增加任何延遲。

增加軟體複雜性

CAN控制器負責管理TX緩衝區或TX隊列,從而使應用從複雜的管理和中斷處理任務中脫身。在汽車應用中,處理不同優先順序的報文是很常見的。不同的部分(如軟體線程)彼此之間並行運行。它們在CAN驅動器或CAN控制器中使用不同的TX緩衝區或TX隊列。應用部分或線程將報文傳遞給CAN驅動程序或控制器的順序不一定對應於報文在匯流排上出現的順序。對於使用全局新鮮度值(例如全局同步時間)的已認證報文,匯流排上的順序必須遵循用於計算報文認證碼的新鮮度值的順序。否則,它將被視為舊報文或者被接收器重播。等待贏得仲裁的待處理CAN報文有效載荷中已經包含報文認證碼和新鮮度值。因此,應用提供的任何更高優先順序的報文都將使所有待處理報文的新鮮度和相關認證失效。這意味著CAN控制器的TX緩衝區和TX隊列已經耗盡,應用不能再簡單地向CAN控制器發送任何報文。此外,它需要設計為重新計算在等待傳輸的無效報文的認證,這為應用增加了額外的處理任務並且增加了系統延遲。

恩智浦的安全型CAN收發器屬於純硬體解決方案。

需要密鑰管理

任何基於加密的解決方案都依賴於密鑰的使用,或對稱或不對稱。適當的密鑰管理通常比較複雜,需要付出極大的努力,而這一點往往會被低估。考慮到用於實時通信的有效載荷認證與高性能要求,通常會採用對稱加密,即共享密鑰。系統的安全級別在一定程度上取決於共享密鑰的保護和特權。通過設計,密鑰應當具備有限的專用特權,以便降低密鑰本身(密鑰被盜)或使用過程中(雖以安全方式存儲但為被破壞的應用所利用)的安全漏洞影響。在這兩種情況下,應用都將獲得密鑰特權,亦即未經授權的訪問特權。

每個車輛的密鑰都應該是獨特或多樣化的,這樣即便車輛A的密鑰被盜也不能授予對任何其他類似車輛的等同功能的訪問權——這就是所謂的車隊攻擊應變力。在製造和車輛生命周期中,需要特別考慮密鑰特權的分配以及密鑰的創建與分配。可以部署每個車輛和功能的靜態多樣化密鑰,並在更換模塊期間維護用於密鑰注入的中央資料庫。或者,也可以選擇為每個電子控制單元的角色分配密鑰使用擴展證書和非對稱加密證書,讓車輛動態分配或重新分配密鑰。Diffie-Hellman (DH)協議有時會被理解為分配密鑰的標準方式,但這是不夠的。該協議可保證密鑰在兩個實體之間秘密交換,但並未指出交換密鑰的具體實體。這意味著,攻擊者也可以加入DH會話並獲取有價值的相關密鑰。後者需要通過額外的流程來驗證另一方,如不對稱證書方案。因此,用於有效載荷認證的對稱密鑰管理可以轉化為車輛內的證書管理和動態使用。

整個汽車生命周期的密鑰管理策略選擇是多種多樣的,但需要具體的想法和部署工作。而且,傳統的密鑰管理解決方案可能無法直接應用於汽車行業。密鑰管理策略可能取決於上述其他方面的設計選擇,例如上電後的新鮮度管理。

恩智浦的安全型CAN收發器無需加密即可高效運行——因此無需任何複雜的密鑰管理。

結論

基於加密的最先進解決方案

- 需要某種形式的密鑰管理

- 需要一種方法在啟動時處理新鮮度值以實現重播保護

- 可能會造成認證準備發生延遲,即存在一個寬限期

- 會引入傳輸延遲,用以計算報文認證碼

- 增加匯流排負載以傳輸附加參數(即:MAC和新鮮度值)

- 佔用發送方和接收方應用的處理周期,並最終

- 可能會增加發送方應用架構的複雜性,以根據報文優先順序和新鮮度值對待處理的發送操作進行排序,即:新的較高優先順序報文可能由於新鮮度值重新排序而使得待處理的低優先順序報文的認證碼失效

恩智浦提出的概念僅僅依靠安全型CAN收發器即可實現。該器件完全獨立於微控制器(μC)單獨運行。這意味著它具備固有的安全級別,並且是專門以將系統影響降至最低為前提而設計的,因此能夠克服CAN協議規範中缺少發送方身份的問題。該器件可以逐步(逐個電子控制單元)引入網路,不會影響其他電子控制單元,也不會影響報文延遲、匯流排負載或增加處理器負載。實施的欺騙保護機制可確保目標電子控制單元(即:報文接收器)接收到的受保護報文都是由預期的發送方發送。另外,匯流排會在點火之後立即受到保護——我們的對策不需要任何初始化(各個電子控制單元)或同步(匯流排上的多個電子控制單元)操作。

這種安全型CAN收發器可以作為當今標準CAN收發器的硬體替代產品,無需更換電子控制單元上的主要硬體和軟體,並且不會影響其他電子控制單元的運行。因此,本文所述方案提供了一種快速、省力、非破壞性且具有高成本效益的方式來向CAN匯流排中引入安全性—既可以作為獨立的保護機制,也可以為其他安全解決方案增加第二道安全防線。

參考文獻

[1] AUTOSAR SecOC——模塊安全板載通信規範

https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_SecureOnboardCommunication.pdf

[2] iCC 2017——網路安全增強型CAN收發器(恩智浦)

https://www.can-cia.org/fileadmin/resources/documents/conferences/2017_elend.pdf

[3] [ECUC_SecOC_00051] SecOCEnableForcedPassOverride

[4] SP 800-38B:推薦的分組密碼操作模式:CMAC認證模式

https://csrc.nist.gov/publications/detail/sp/800-38b/final

[1] DiD是一種在整個系統中實施多層安全對策的概念。這樣,可以在其中一種安全對策失敗或漏洞被成功利用的情況下發揮冗餘的作用。通過DiD,可以為攻擊者設置多重障礙防止其攻破,從而提升整個系統的保護強度。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 電子產品世界 的精彩文章:

市場分析:服務機器人核心瓶頸亟待突破
華爾街日報:華盛頓為何盯住華為不放?

TAG:電子產品世界 |