軟件定義汽車(chē)新時(shí)代下的通信安全
隨著軟件定義汽車(chē)(SDV)理念的普及,車(chē)輛內(nèi)部各電子控制單元(ECU)之間的通信已經(jīng)突破傳統(tǒng)的控制邊界,成為支撐自動(dòng)駕駛、高度互聯(lián)和OTA更新的關(guān)鍵基礎(chǔ)設(shè)施。在這樣的背景下,通信安全的重要性尤為凸顯。未經(jīng)保護(hù)的通信鏈路可能面臨數(shù)據(jù)篡改、重放攻擊及冒充攻擊等風(fēng)險(xiǎn),危及車(chē)輛功能的正確性和用戶安全。因此,在AUTOSAR架構(gòu)中建立完備的通信安全機(jī)制,已成為行業(yè)共識(shí)與技術(shù)剛需。
AUTOSAR通信棧(ComStack):分層、模塊化的基礎(chǔ)
AUTOSAR通信棧(ComStack)作為基礎(chǔ)軟件(BSW)核心組件之一,承擔(dān)起ECU之間數(shù)據(jù)交換的核心功能,包含多個(gè)分層模塊,支持CAN、LIN、FlexRay 和以太網(wǎng)等多種通信協(xié)議。其層級(jí)結(jié)構(gòu)可概括如下:
1.CanIf/EthIf/FrIf/LinIf接口層
針對(duì)不同總線協(xié)議,在低層提供硬件抽象,屏蔽底層細(xì)節(jié),連接上層的PduR。
2.PduR(Protocol Data Unit Router)路由層
管理不同協(xié)議的數(shù)據(jù)單元(PDU)路由,確保來(lái)自Com模塊的消息發(fā)送至應(yīng)用層或者對(duì)應(yīng)物理總線,也可以接收和轉(zhuǎn)發(fā)消息。
3.Com(Communication)層
位于應(yīng)用和底層接口之間,負(fù)責(zé)信號(hào)級(jí)處理,包括信號(hào)打包、解包及路由到相應(yīng)應(yīng)用組件或下層。
4.SecOC(Secure Onboard Communication)模塊
這是通信棧中專門(mén)針對(duì)安全功能設(shè)計(jì)的組件,用于消息認(rèn)證與防篡改,屬于BSW結(jié)合PduR共同協(xié)作實(shí)現(xiàn)端到端的安全傳輸。
這種分層架構(gòu)使得通信部分高度模塊化,功能清晰,易于擴(kuò)展與維護(hù),同時(shí)為集成安全功能功能安全提供了良好的基礎(chǔ)。
SecOC模塊:安全通信的核心支撐
Secure Onboard Communication(SecOC)是AUTOSAR專門(mén)用于通信安全的模塊,旨在保護(hù)ECU間的PDU級(jí)消息,確保其真實(shí)性、完整性和新鮮度。根據(jù)官方規(guī)范,SecOC的功能包括:消息認(rèn)證、完整性保護(hù)及防重放措施。
1.消息認(rèn)證與完整性保護(hù)
每條受保護(hù)消息都會(huì)附加認(rèn)證標(biāo)簽(如MAC),接受方在接收消息時(shí)進(jìn)行驗(yàn)證,確保消息確實(shí)來(lái)自可信源且在傳輸中未被篡改。 SecOC支持對(duì)一條消息內(nèi)容和其認(rèn)證標(biāo)簽共同校驗(yàn),從而對(duì)攻擊產(chǎn)生抵御能力。
2.重放攻擊防護(hù)機(jī)制(Freshness)
為阻止重放攻擊,SecOC插入"freshness"值(如遞增計(jì)數(shù)器或時(shí)間戳),用于區(qū)分消息的時(shí)序新舊。接收方比較該值并拒絕過(guò)期或重復(fù)消息,從而確保系統(tǒng)只能處理按預(yù)期順序或時(shí)間提交的消息。
3.資源高效設(shè)計(jì)
SecOC模塊強(qiáng)調(diào)在資源受限的AUTOSAR環(huán)境中實(shí)現(xiàn)輕量安全機(jī)制。其規(guī)范涵蓋處理認(rèn)證算法、打包認(rèn)證標(biāo)簽、與Com/PduR協(xié)作流程等細(xì)節(jié),并支持根據(jù)實(shí)際資源選用對(duì)稱算法、MAC長(zhǎng)度及計(jì)數(shù)器類型等多個(gè)配置選項(xiàng)。
安全通信的系統(tǒng)級(jí)實(shí)現(xiàn)流程
1.初期設(shè)計(jì)與配置
定義通信需求及安全等級(jí):分析哪些通信路徑需要認(rèn)證、完整性驗(yàn)證以及新鮮度保護(hù)。如:安全/關(guān)鍵命令、遙測(cè)數(shù)據(jù)或OTA觸發(fā)消息等;
配置SecOC模塊:設(shè)置安全算法(如AES-CMAC)、MAC總長(zhǎng)度、計(jì)數(shù)器大小、如何計(jì)算新鮮度值等。
2.與ComStack集成
Tx路徑:應(yīng)用調(diào)用Com,將信號(hào)封裝為PDU;隨后PduR將PDU導(dǎo)向SecOC,SecOC 生成認(rèn)證標(biāo)簽并附加生成MAC校驗(yàn)值;經(jīng)過(guò)PduR-CanIf將其發(fā)送至總線。
Rx路徑:接收方通過(guò)CanIf接收數(shù)據(jù)后轉(zhuǎn)發(fā)至SecOC;SecOC校驗(yàn)MAC與新鮮度,認(rèn)證通過(guò)后移除標(biāo)簽,將凈內(nèi)容轉(zhuǎn)交給PduR處理,再由PduR分發(fā)給應(yīng)用組件。
該流程由AUTOSAR通信規(guī)范明確規(guī)定,不允許跳過(guò)SecOC模塊以保證端到端的安全性。
3.系統(tǒng)級(jí)測(cè)試與驗(yàn)證
功能驗(yàn)證:測(cè)量正常通信路徑及認(rèn)證通過(guò)時(shí)的數(shù)據(jù)完整性。
攻擊模擬:嘗試對(duì)消息內(nèi)容篡改、重放舊消息或偽造MAC,檢驗(yàn)系統(tǒng)并確保拒絕不符合安全策略的消息。
性能評(píng)估:評(píng)估認(rèn)證與驗(yàn)證機(jī)制對(duì)總線延遲和資源(如CPU、內(nèi)存)的影響,確保系統(tǒng)仍滿足實(shí)時(shí)、安全等關(guān)鍵性能指標(biāo)。
AUTOSAR通信安全的未來(lái)方向
1.趨向更高的安全目標(biāo)與擴(kuò)展
隨著整車(chē)功能和聯(lián)網(wǎng)能力的不斷增強(qiáng),未來(lái)安全機(jī)制亦需升級(jí)。當(dāng)前研究如CINNAMON模塊,即在SecOC的基礎(chǔ)上增加加密功能,增強(qiáng)機(jī)密性保護(hù)。這種機(jī)制可以與SecOC并行部署,使信息在傳輸中不僅防篡改,也無(wú)法被未授權(quán)讀取。
2.與Adaptive Platform的整合
除了Classic Platform當(dāng)前支持的SecOC,AUTOSAR Adaptive Platform(AP)中的ara::com同樣集成認(rèn)證與防重放功能,新版本規(guī)格已加入SecOC行為和API,支持Freshness管理,從而保障高級(jí)、動(dòng)態(tài)更新場(chǎng)景下的通信安全。
總結(jié)與Elektrobit的專業(yè)視角
通過(guò)上述分析,可見(jiàn)AUTOSAR通信棧中安全機(jī)制的設(shè)計(jì)原則:模塊化、安全性與資源效率兼?zhèn)洹?SecOC模塊作為樞紐,結(jié)合Com、PduR、CanIf等基礎(chǔ)組件,實(shí)現(xiàn)端到端安全通信,為SDV提供可信基礎(chǔ)。
未來(lái)發(fā)展方向主要包括:
增強(qiáng)機(jī)密性保護(hù);
更完善的濃縮式Freshness 管理;
在Adaptive Platform場(chǎng)景中實(shí)現(xiàn)統(tǒng)一安全策略。
以下提供EB tresos軟件解決方案的實(shí)踐案例
多核ECU可信配置與ASIL?D安全實(shí)裝
面向?qū)ο螅篍CU軟件架構(gòu)師、嵌入式系統(tǒng)工程師、功能安全負(fù)責(zé)人
通過(guò)EB tresos AutoCore OS實(shí)現(xiàn)單/多核部署、實(shí)現(xiàn)基于Crypto/HSM的CAN/LIN/ETH通信協(xié)議棧,利用Elektrobit對(duì)MCAL接入與安全隔離優(yōu)化來(lái)實(shí)現(xiàn)安全通信的實(shí)現(xiàn)。
以我們?cè)?a href="http://www.brongaenegriffin.com/tags/英飛凌/" target="_blank">英飛凌AURIXTMTC 397上的Demo為例:
首先通過(guò)EB tresos Studio新建一個(gè)多核的OS系統(tǒng),按照初始化的流程在EcuM中實(shí)現(xiàn)從主核到從核的順序初始化MCAL和BSW的寄存器/函數(shù)。
因?yàn)椴渴鹩卸鄠€(gè)CAN控制器(CAN0, CAN1, ...),不同核(Core0, Core1)會(huì)獨(dú)立管理它監(jiān)控的進(jìn)程。
初始化成功之后,OS啟動(dòng)調(diào)度,通過(guò)RTE管理不同的Task,來(lái)觸發(fā)CAN通信的讀寫(xiě),通信流程例子如下:
MCAL CAN Driver多核
每個(gè)核上的CAN Driver接收自己核上CAN控制器的數(shù)據(jù)
例如:CAN0的Rx消息在Core0的中斷中觸發(fā)CanIf_RxIndication()或者把消息放到對(duì)應(yīng)的CANtx Buffer里面去
CanIf多核部署
每核各自運(yùn)行CanIf實(shí)例,但共享統(tǒng)一配置(通常靜態(tài)分區(qū))
CanIf查找匹配的RxPdu后,調(diào)用上層PduR_CanIfRxIndication()
PduR多核處理
若RxPdu的目標(biāo)模塊(如COM)位于同核:直接調(diào)用上層模塊
若目標(biāo)模塊在另一核(Core1接收,Core0的SWC接收):
調(diào)用核間通信機(jī)制:
Shared Memory Ring Buffer
AUTOSAR OS Event
數(shù)據(jù)通過(guò)共享內(nèi)存或IOC傳遞至另一核
COM & RTE
數(shù)據(jù)最終被寫(xiě)入目標(biāo)核上的COM模塊
SWC通過(guò)Rte_Read()接口讀取數(shù)據(jù)
LIN/ETH的通信也是類似的,通過(guò)各自的LinIf和SOAD抽象層協(xié)議棧去實(shí)現(xiàn)通信。
在此之上,Elektrobit通過(guò)對(duì)此過(guò)程中PduR的數(shù)據(jù)根據(jù)對(duì)應(yīng)的Crypto算法,使用密鑰,新鮮值等參數(shù)作為入?yún)?,?shí)現(xiàn)通信數(shù)據(jù)的加解密,實(shí)現(xiàn)數(shù)據(jù)的安全通信滿足ASIL-D的要求。
作者
湯旭
-
通信
+關(guān)注
關(guān)注
18文章
6312瀏覽量
139521 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
389瀏覽量
23497 -
ecu
+關(guān)注
關(guān)注
14文章
965瀏覽量
56860
原文標(biāo)題:技術(shù)干貨 | 如何實(shí)現(xiàn)安全的AUTOSAR通信棧
文章出處:【微信號(hào):Elektrobit官方,微信公眾號(hào):Elektrobit】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
從手寫(xiě)代碼到AUTOSAR工具鏈:J1939Tp應(yīng)用篇
揭秘RT-Thread上的AUTOSAR CP系統(tǒng)
基于Classic AUTOSAR的ECU平臺(tái)虛擬化技術(shù)分析
東軟睿馳亮相第16屆AUTOSAR開(kāi)放大會(huì)
深入淺出解析低功耗藍(lán)牙協(xié)議棧
三種藍(lán)牙架構(gòu)實(shí)現(xiàn)方案(藍(lán)牙協(xié)議棧方案)

如何實(shí)現(xiàn)安全的AUTOSAR通信棧
評(píng)論