這里寫目錄標題
- 1 背景
- 2 了解黑客攻擊原理
- 3 SecOC實現數據的真實性與完整性校驗
- 3.1 數據身份驗證完成真實性驗證
- 3.2 防止重放攻擊

1 背景
在今天的車載網絡中,大部分數據傳輸是在沒有任何特殊安全措施的情況下進行的。因此,一旦能夠直接訪問車輛的總線,任何人都可以讀取總線上傳輸的原始數據,甚至在今天的車載網絡中,大部分數據傳輸是在沒有任何特殊安全措施的情況下進行的。因此,一旦能夠直接訪問車輛的總線,任何人都可以讀取總線上傳輸的原始數據,甚至可以截獲這些數據并且修改后重新發送到總線系統中。
為了解決上面的痛點,保證報文的完整性與真實性 Autosar標準定義了SecOC模塊(Security onboard Communication)來去標準解決汽車發展中的信息安全
2 了解黑客攻擊原理
從目前已知的攻擊手段來看,遠程控制一輛汽車的唯一障礙就是如何獲取車輛總線的訪問權。一旦能夠直接訪問車內網絡,黑客就可以模擬一個合法的數據發送節點來操控整個汽車。使用了SecOC機制后,黑客除了獲取總線訪問權以外還需要知道發送節點的密鑰才能模擬出合法的數據。通過合理的密鑰分發機制可以保證密鑰不會泄漏給汽車整車廠以外的其他任何人。因此SecOC可以有效地阻止黑客對汽車網絡的攻擊。(SecOC保證報文真實性的舉例)
3 SecOC實現數據的真實性與完整性校驗
在SecOC標準中,AUTOSAR主要基于兩種手段來實現數據的真實性和完整性的校驗:基于MAC的身份驗證和基于Freshness的防重放攻擊。
3.1 數據身份驗證完成真實性驗證
MAC(Message Authentication Code)是保障信息完整性和認證的密碼學方法之一,其中常作為車載總線加密認證方案的為CMAC(Cipher–based Message Authentication Code)。MAC的作用不是防止有效數據被泄露,而是為了保護數據不會被攻擊方篡改,即完成數據來源的認證。如需保護通信數據不被攻擊方監聽,則報文的有效數據還需要進行額外的加密。
在AUTOSAR中,需要加密保護的數據信息被稱為AuthenticI-PDU。SecOC模塊根據AuthenticI-PDU和密鑰使用CMAC算法可以得到Authenticator(即MAC值)。Authenticator和AuthenticI-PDU再加上一些必要的報頭即得到SecuredI-PDU,其數據結構如圖1所示。發送節點在發送有效數據(AuthenticI-PDU)前,會根據上述方法得到對應的SecuredI-PDU,然后再將SecuredI-PDU發送到總線上。
CMAC一般用于對稱加密,對稱加密要求發送節點和接收節點都具有相同的密鑰。整車廠可選擇在車輛下線刷寫程序時靜態分配密鑰,也可選擇使用云端服務器動態地給車輛分配密鑰。
在接收節點,SecOC模塊使用同樣的算法和密鑰對收到的AuthenticI-PDU計算Authenticator。如果接收節點計算出的Authenticator和SecuredI-PDU中的Authenticator相同,則接收節點認為該數據來源于合法的發送節點。反之,則接收節點認為該PDU來自非法的發送節點,相關數據將會被直接丟棄。
另外,由于傳統CAN報文每幀最多傳輸8個字節的數據,如果在傳統CAN總線上使用SecOC,那么Authenticator和PDU Header通常會占用掉一半的數據場,這樣會導致CAN報文的有效利用率過低。相比之下CANFD有長達64個字節的數據場長度,因此CANFD總線更適合使用SecOC通信。
3.2 防止重放攻擊
在上述的通信機制中,Authenticator的計算依據只包含有效數據和密鑰,因此只要有效數據相同,那么Authenticator一定是相同的。這意味著攻擊方可以使用重放攻擊干擾控制器的正常通信甚至控制車輛的行為。重放攻擊指的是攻擊者記錄下合法數據源和接收節點之間的正常通信數據,并在必要時將記錄下的數據重新發送給接收節點從而達到控制接收節點的一種攻擊手段。此時接收節點無法檢查報文是否來自合法的發送節點。
為了避免上述情況,在對AuthenticI-PDU加密過程中,SecOC規定Authenticator計算時還需要加入Freshness Value(新鮮度值),并在SecuredI-PDU中也需要包含FreshnessValue。
Freshness Value是一個根據一定邏輯不斷更新的數值,Freshness Value的更新方法多種多樣,如使用報文計數器、整車各節點統一的時鐘作為更新源等方式。若將Freshness Value值結合有效數據和密鑰一同作為計算對象計算Authenticator,那么由于每次數據傳輸Freshness Value值的變化,Authenticator也將隨之改變。攻擊方在監聽到報文后,無法將Authenticator與相應的有效數據匹配,若重復發送帶有錯誤Freshness Value的報文,接收節點將對其丟棄,也就無法形成有效的重放攻擊(接入總線后進行的“DoS攻擊”不在討論范圍內)。加入Freshness Value的SecuredI-PDU如圖2所示:
SecOC的難點實際上在于Freshness Value的生成 管理與驗證,后面一篇文章將介紹實際項目中的幾種實現方式