汽車里的通訊鑒權—Sec OC
出品 | 焉知
知圈 | 進“電子電氣群”請加微13636581676,備注架構
什么是SecOC?
SecOC是Secure Onboard Communication的簡稱,是AUTOSAR從Classic Platform 4.2開始新增的一個基礎軟件(BSW)模塊,為汽車嵌入式網絡總線上的數據傳輸提供身份驗證功能。
為什么需要SecOC?
SecOC的釋放是為了更好的保障汽車通訊(尤其是車內ECU間通訊)的網絡安全(Cyber Security)。近年來網絡安全越來越受到人們的重視。汽車市場上也發生過因為網絡安全漏洞而召回的事件,其造成的經濟損失數以百億計,品牌形象亦深受損害。因此整車廠商和下游供應商均投入越來越多的研發成本用于網絡安全。
圖:Automotive Cyber Security 2019
傳統汽車電子架構下,車內ECU數量和復雜度有限,通訊帶寬也受限,一般認為車內ECU間的通訊都是可信的,也就是只要ECU節點收到相應的報文,就會對之處理。而隨著汽車的電子化和互聯網化,這種默認的車內通訊變得越來越不安全。設想如果總線上的某個ECU被劫持,假冒其他ECU發出諸如剎車、加速、轉向等信號,而車輛動力控制相關的ECU照單全收,那么車輛就會完全失控了。如果在車輛物理總線上接入一個新的網絡節點,用于假冒,也可以造成同樣的問題。早前建立的Alivecounter和checksum算法等基本E2E保護可以在一定程度上保證數據完整性,防止數據丟失或篡改。這個手段在應對電子電氣隨機失效的功能安全領域上起了重要作用,但在專業黑客面前簡直不堪一擊。原因是Alivecounter位數較少(counter一般不超過16),checksum算法定義也較為簡單。
圖:傳統ECU間通訊易被篡改
一種更加安全高效的算法亟需實現,以鑒別PDU發送方是否合法,通訊數據有沒有被篡改。
致力于建立統一汽車軟件架構的AUTOSAR組織當然也十分重視該問題,并在Classic Platform 4.2中開始提出了SecOC模塊。SecOC是Secure Onboard Communication的縮寫,其中Onboard指的是汽車上。(相對應的Offboard一般指診斷儀或者云端等非車端節點)。顧名思義,SecOC是用于保障車內通訊安全的。它可以防止傳輸的信息被篡改,但并不能防止被竊聽。
怎么實現SecOC?
軟件功能邏輯
SecOC的主要功能,對數據發送方來說就是為原本需要傳輸的PDU內容添加相應的安全校驗信息;而對數據接收方來說就是驗證安全信息,確認所收到數據的完整性和認證性。至于原本想要傳輸的數據,依然是采用明文傳輸的,所以SecOC本身并不能實現通訊的保密性,也就是不能防止被竊聽。
如下圖所示,Secured I-PDU是發送方SecOC處理后的數據內容。Authentic I-PDU是原需傳輸的報文內容,Freshness Value是防止重放攻擊的新鮮值,Authenticator是加密的校驗信息。值得注意的是,不管Secured I-PDU本身是否包含新鮮值,Authenticator里都需要包含新鮮值的信息。同時SecOC規定了報文采用大端格式傳輸,以保證加密信息通訊一致性。
Authenticator可以用對稱加密或者非對稱加密的方式。采用對稱加密方法時,Authenticator也叫Message Authentication Code (MAC)。若用非對稱加密,則Authenticator常被 叫為Digital Signature。行業中普遍采用對稱加密的方式實現SecOC。原因是在實現相同的安全等級下,對稱方法所需的密鑰長度較小,軟硬件效率更高。
圖:SecOC功能邏輯
新鮮值是為了防御重放攻擊的,要求是單調遞增的變量。其可以是一直計數遞增的counter,也可以采用系統時間。但不管用哪種方式,接受方和發送方之間都得采用相同的新鮮值基準。例如采用系統時間作為新鮮值,則需要通訊雙方的系統時間是同步的。
有時由于傳輸負載率的限制,新鮮值和校驗信息也會被截位傳輸。如下圖所示,Secured I-PDU只包含新鮮值和校驗值的保留部分。當然截位傳輸會降低安全等級,但一般情況下,64位長度的對稱加密校驗值就可以抵御暴力破解。
圖:截位傳輸示意圖
下圖以一條PDU采用SecOC方式對稱安全傳輸為例,描述了發送和接收的總體過程。
(1)原需傳輸的數據(此處對應下圖PDU)、單調遞增的新鮮值以及對稱密鑰K作為輸入,給到MAC生成模塊,生成MAC,將新鮮值和校驗信息截位后組裝到原需傳輸數據的尾部,形成Secured I-PDU。
(2)整個Secured I-PDU通過ECU間的傳輸協議(比如CAN FD、Ethernet),從發送方傳輸給接收方。
(3)接收方將Secured I-PDU作拆解,針對截位的新鮮值,利用上一周期的歷史計數將其補全,作為MAC校驗模塊的輸入。另外拆解出來的PDU、對稱密鑰K和截位MAC也作為校驗模塊的輸入。MAC校驗模塊通過這些輸入計算確認MAC的有效性,如果驗證通過則把PDU傳輸給上層應用的軟件模塊,如果校驗失敗,則將PDU丟棄。
圖:SecOC收發機制原理
AUTOSAR基礎軟件模塊
上面描述完SecOC的功能邏輯,接下來我們看一下AUTOSAR Classic Platform架構下的基礎軟件模塊實現方式。
SecOC軟件模塊與PDUR平行,都在大的通訊組內。PDU可以理解為總線上的報文,PDUR則是將不同的總線上的報文路由給其他軟件模塊或者上層的應用軟件組件。而在SecOC應用中,PDUR會先把報文路由給SecOC模塊。下圖紅色方框內的COM模塊負責將數據整合到PDU中。IF模塊負責收發原子報文,TP模塊負責長于原子報文長度的數據發送拆包、接收重組。CAL或者CSM模塊負責提供具體的加解密服務,以及特殊安全內存的訪問等操作。發送時,上層應用軟件通過RTE將信號傳輸給SecOC模塊完成Authenticator的生成。接收時,SecOC校驗Authenticator,若不通過則丟棄,否則將相應信號通過RTE傳輸給上層應用。
圖:SecOC與其他基礎軟件的交互
硬件及固件要求
網絡安全對控制器的硬件和固件也有相應的安全要求,以保證系統能有足夠能力防御軟件攻擊,并提供可認證的可信軟件環境。SecOC也不例外。這個硬件和固件要求一般實際體現為需要處理器芯片有片上的安全硬件拓展,并提供相應的固件支持,常見的是SHE(Secure Hardware Extension)和HSM (Hardware Security Module)。其中HSM的安全等級更高。對SecOC功能來說,SHE就可以滿足HIS(Hersteller Initiative Software,由奧迪、寶馬、保時捷、大眾組成)的要求。
圖:SHE架構
圖:HSM架構
總結
在軟件定義汽車的年代,車輛互聯網化背景下的網絡安全方興未艾,大有可為。而SecOC為汽車網絡安全提供了一個身份驗證和完整性校驗的選擇,對防止數據篡改能提供重要作用。作為相對成熟的一種技術手段,SecOC在軟件、硬件、固件方面都有系統性的考量,在今后一段相當長的時間里,必定會更加廣泛地被使用,越放異彩。
參考來源:
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















