需求背景 在傳統的汽車電子結構中,車內的電控單元(ECU)數量和復雜性受到限制,通信帶寬也受到限制。因此,人們普遍認為車內各個ECU之間的通信是可靠的。只要ECU節點接收到相應的消息,就會對其進行處理。然而,隨著汽車行業和互聯網的持續發展,汽車變得越來越智能化和互聯化,這種默認的車內通信變得越來越不安全。如果在車輛的物理總線上添加一個新的節點,該節點發送虛假信號或篡改其他ECU發送的消息,例如加速、剎車和轉彎信號,而與之相關的動力控制ECU卻盲目接受這些消息,那么車輛可能會失去控制。因此,迫切需要開發一種安全高效的算法,用于驗證消息的真實性,確認消息發送方的合法性以及數據是否遭到篡改。在這種背景下,安全板載通信(Secure Onboard Communication,簡稱SecOC)機制應運而生。 ![]() SecOC實現原理 >什么是SecOC SecOC是Security Onboard Communication 的簡稱,中文名稱叫做安全車載通信,是AUTOSAR從Classic Platform4.2開始新增的一個基礎模塊,主要的作用就是為汽車嵌入式網絡總線上的數據傳輸提供身份驗證和防止重放攻擊的功能。 >SecOC實現原理 SecOC 機制要求在協議數據單元 (Protocol Data Unit, 簡稱 PDU) 的發送方和接收方的 ECU 都要實現 SecOC 模塊。 在發送方,SecOC 模塊通過向待發送的協議原始 PDU 添加認證信息來創建安全PDU,認證信息包括新鮮度值(Freshness Value,簡稱 FV) 和 信 息 認 證 碼(Message Authentication Code,簡稱 MAC)。 ![]() FV 由新鮮度值管理模塊 (FVM) 獲得。FVM 分為 Master FVM( 由網關擔任 ) 和 Slave FVM( 由其它實現 SecOC 機制的 ECU 擔任 ),前者會向后者發送新鮮度值同步消息來保證PDU 收發端 FV 的一致性,后者則向前者發送 FV 同步請求消息。 將 PDU 的數據標識符、原始 PDU 以及完整新鮮度值拼接起來,傳遞給認證算法產生 MAC 值。 接收方收到安全 PDU 后會通過MAC認證模塊對其新鮮性與完整性進行驗證,如果驗證成功,那么將原始的數據PDU上傳到上層應用的軟件模塊,如果驗證失敗,則直接丟棄。 ![]() TOSUN SecOC測試解決方案 該解決方案是基于SecOC方案實現車內敏感信息的認證。 TOSUN SecOC系統是基于TOSUN同星自研核心軟件TSMaster和CAN工具實現,能夠涵蓋開發和生產過程中的測試需求。主要功能包含主節點同步報文解析,完整新鮮度值生成,計算MAC值,生成并發送安全報文、接收解析驗證安全報文和故障注入功能。 測試面板總體如下圖所示: ![]() >同步報文接收 新鮮值管理模塊在整車身上一般由網關充當,負責發送同步報文,便于從節點更新新鮮值。同步報文的主要作用是保證安全PDU發送和接收端新鮮度值信息的一致性。 ![]() 同步報文的行程計數器(Trip Counter)、重置計數器(Reset Counter)和MAC值(Authenticator)長度定義如下: ![]() 本解決方案采用AES128-CMAC標準算法和基于同步消息的復合counter新鮮度值管理方案,MAC值計算方式為CMAC-AES128(DataID/Payload/FV,CK)。 → 圖示是TOSUN SecOC解決方案中同步報文接收的演示 ![]() 第一部分顯示被測件(主節點)發送的同步報文和報文解析。Data ID由主節點(被測件/新鮮值管理模塊)決定。 第二部分為算法計算的MAC值,與接收的MAC值前兩位是一致的,則驗證成功返回0;否則驗證失敗返回1,并且錯誤數量+1。 >新鮮度值管理 → 圖示是TOSUN SecOC解決方案中新鮮度值管理的演示 完整的新鮮度值包括(64bit):行程計數器(Trip Counter),重置計數器(Reset Counter), 重置標志值(Reset Flag)和消息計數器(Message Counter)。 ![]() 1) 行程計數器和重置計數器由同步報文決定 2) 消息計數器每發送一次安全報文自增1 3) 重置標志位為重置計數器最后2bit數據 從節點內完整的新鮮度值由以上四個數據生成。 ![]() >安全報文發送 → 圖示是TOSUN SecOC解決方案中安全報文發送的演示 ![]() 第一部分設置2字節的Data ID和4字節的控制信號(十進制、十六進制輸入即可)。 第二部分顯示加密后的MAC值,截取的新鮮值、截取的MAC值和發送的安全報文(安全報文由4個字節控制信號、1個字節截取新鮮度值和3個字節截取MAC值組成)。 本解決方案的新鮮度值和MAC值截取的標準是在CAN協議的通信方式下,FV截取低位1字節,MAC截取高位3字節。 ![]() >安全報文接收 → 圖示是TOSUN SecOC解決方案中安全報文接收的演示 ![]() 第一部分設置接收端2字節的Data ID(安全報文發送和接收模塊的Data ID需一致,否則在安全報文接收端會驗證失敗),顯示完整的安全報文。 第二部分顯示接收端的MAC驗證結果,驗證成功返回0,亮綠燈;驗證失敗返回1,亮紅燈,錯誤數量+1。 >故障注入測試 → 圖示是TOSUN SecOC解決方案中故障注入測試的演示 ![]() 在該面板中點擊任意類型故障注入按鈕可進行故障注入,可看到【接收端】的錯誤數量增加并亮紅燈。以檢測和評估系統的可靠性和穩定性,從而提高系統的質量。 其中“模擬過去新鮮值發送”是指將新鮮值篡改成上一次發送 的新鮮值,“模擬未來新鮮值發送”同理。 ![]() |
![]() |
中國鍛壓網官方微信:掃一掃,立即關注!
關注"中國鍛壓網",獲取獨家行業新聞資訊。 添加方法1: 在“添加好友”中直接添加微信賬號:chinaforge 添加方法2: 微信中掃描左側的二維碼 |