侵權(quán)投訴
訂閱
糾錯(cuò)
加入自媒體

車(chē)載通訊加密方案

疫情當(dāng)下,各種消息滿(mǎn)天飛,不如一起在家看SecOC!!!

通訊加密的必要性

隨著汽車(chē)電子的發(fā)展及整車(chē)功能復(fù)雜性的提高,車(chē)載控制器數(shù)量從之前的寥寥幾個(gè)增加至規(guī)模復(fù)雜的上百個(gè);诠δ艿男枨,各個(gè)控制器每時(shí)每刻需要進(jìn)行大量數(shù)據(jù)的交互,數(shù)據(jù)交互的方式也多種多樣,比如Lin、CAN、CANFD、FlexRay 、車(chē)載Ethernet等。

其中成本低、可靠性高、應(yīng)用普遍的有Lin、CAN通訊,而FlexRay、車(chē)載Ethernet等基于成本因素,目前主要在高端車(chē)型中使用(FlexRay后續(xù)得到普遍應(yīng)用的可能性較小,樓主主要認(rèn)為其比較尷尬,首先成本方面接近車(chē)載以太網(wǎng)而通訊速率又遠(yuǎn)低于它,而伴隨著未來(lái)智能化、網(wǎng)聯(lián)化的趨勢(shì),車(chē)載Ethernet在未來(lái)得到推廣的可能性要比FlexRay高很多)。

但在目前的車(chē)載網(wǎng)絡(luò)中,大部分?jǐn)?shù)據(jù)傳輸都是在沒(méi)任何安全措施的情況下進(jìn)行的,即使有安全措施也大都非常簡(jiǎn)陋。因此在絕大多數(shù)情況下,控制器基本以原始數(shù)據(jù)的形式進(jìn)行數(shù)據(jù)交互。即使接收節(jié)點(diǎn)能對(duì)數(shù)據(jù)進(jìn)行合理性檢查,這些措施對(duì)數(shù)據(jù)可靠性的提升也是有限的。接收節(jié)點(diǎn)無(wú)法驗(yàn)證數(shù)據(jù)來(lái)自于期望的發(fā)送節(jié)點(diǎn)還是其他節(jié)點(diǎn),即無(wú)法驗(yàn)證數(shù)據(jù)是否真實(shí)。同時(shí),總線(xiàn)上傳輸?shù)臄?shù)據(jù)也是可以自由訪問(wèn)的,因此可以通過(guò)分析總線(xiàn)上傳輸?shù)脑紨?shù)據(jù)來(lái)反推得到其表示的內(nèi)容,這樣的數(shù)據(jù)傳輸既不進(jìn)行保密也不進(jìn)行認(rèn)證。例如應(yīng)用最廣的CAN通訊設(shè)計(jì)之初是沒(méi)有考慮過(guò)信息安全問(wèn)題的。其明文傳輸、報(bào)文廣播傳輸、極少網(wǎng)絡(luò)分段等特性,讓進(jìn)入整車(chē)網(wǎng)絡(luò)的黑客如同進(jìn)了游樂(lè)場(chǎng),輕松便可以偽造報(bào)文對(duì)車(chē)輛進(jìn)行控制。

為了給CAN通訊增加一定的安全性,攻城獅們?cè)贑AN報(bào)文的負(fù)載中做文章,即在報(bào)文中增加RollingCounter和Checksum進(jìn)行報(bào)文丟幀和數(shù)據(jù)準(zhǔn)確性的檢驗(yàn),RollingCounter就不說(shuō)了,我個(gè)人感覺(jué)就是心理安慰罷了,報(bào)文計(jì)數(shù)符合一定的累加原則就可以仿造,而Checksum的計(jì)算方法大部分OEM定義的也比較簡(jiǎn)單,很容易被破解從而對(duì)總線(xiàn)的數(shù)據(jù)進(jìn)行篡改,一旦能夠直接訪問(wèn)車(chē)輛的總線(xiàn),任何人都可以讀取總線(xiàn)上傳輸?shù)脑紨?shù)據(jù),甚至可以截獲這些數(shù)據(jù)并且修改后重新發(fā)送到總線(xiàn)系統(tǒng)中,這毫無(wú)疑問(wèn)會(huì)影響整車(chē)的功能和安全性;另一方面,一個(gè)標(biāo)準(zhǔn)CAN報(bào)文的數(shù)據(jù)部分最多有8個(gè)字節(jié),本身需要承載很多車(chē)輛運(yùn)行的功能數(shù)據(jù),從中拿出任何Bit用于承載RollingCounter和Checksum都會(huì)對(duì)總線(xiàn)的繁忙程度產(chǎn)生負(fù)面影響,因此OEM盡量使用少的Bit位來(lái)承載RollingCounter和Checksum,這也讓黑客較容易就可逆向出算法。

所以,加密通信(Cyber Security或Security Onboard Communication)近年來(lái)受到了越來(lái)越多的關(guān)注,因最近幾年也發(fā)生了很多對(duì)車(chē)載網(wǎng)絡(luò)的惡意攻擊事件。為了響應(yīng)汽車(chē)行業(yè)對(duì)數(shù)據(jù)加密和驗(yàn)證的需求,AUTOSAR組織補(bǔ)充了全稱(chēng)為Secure Onboard Communication(SecOC)的組件,為車(chē)載通訊總線(xiàn)引入了一套通信加密和驗(yàn)證的標(biāo)準(zhǔn),可以說(shuō)SecOC是目前為止車(chē)載網(wǎng)絡(luò)上一種有效的信息安全方案。

SecOC介紹

SecOC是在AUTOSAR軟件包中添加的信息安全組件(組件位置及可應(yīng)用的通訊方式如下圖所示),該Feature增加了加解密運(yùn)算、秘鑰管理、新鮮值管理和分發(fā)等一系列的功能和新要求。SecOC模塊在PDU級(jí)別上為關(guān)鍵數(shù)據(jù)提供有效可行的身份驗(yàn)證機(jī)制。認(rèn)證機(jī)制與當(dāng)前的AUTOSAR通信系統(tǒng)無(wú)縫集成,同時(shí)對(duì)資源消耗的影響應(yīng)盡可能小,以便可為舊系統(tǒng)提供附加保護(hù)。該規(guī)范主要使用帶有消息認(rèn)證碼(MAC)的對(duì)稱(chēng)認(rèn)證方法。與不對(duì)稱(chēng)方法相比,它們使用更小的密鑰實(shí)現(xiàn)了相同級(jí)別的安全性,并且可以在軟件和硬件中緊湊高效地實(shí)現(xiàn)。但是,規(guī)范提供了兩種方法必要的抽象級(jí)別,因此對(duì)稱(chēng)和非對(duì)稱(chēng)身份驗(yàn)證方法都可使用。

1.對(duì)稱(chēng)加密算法

     對(duì)稱(chēng)加密算法的加密和解密使用的密匙是相同的,也就是說(shuō)如果通訊兩方如果使用對(duì)稱(chēng)加密算法來(lái)加密通訊數(shù)據(jù),那么通訊雙方就需要都知道這個(gè)密匙,收到通訊數(shù)據(jù)后用這個(gè)密匙來(lái)解密數(shù)據(jù)。

2.非對(duì)稱(chēng)加密算法

     非對(duì)稱(chēng)算法中用到的密匙有兩個(gè),分別是公匙和私匙,要求通訊雙方都有自己的公匙和私匙,自己公匙加密的數(shù)據(jù)只有自己的私匙才能解開(kāi),自己私匙加密的數(shù)據(jù)也只有自己的公匙才能解開(kāi)。公匙是可以公布在網(wǎng)絡(luò)上的,相當(dāng)于一個(gè)公共的電話(huà)簿,可以被其他人獲取到的。

以一個(gè)通信的例子來(lái)說(shuō)明非對(duì)稱(chēng)算法:

     A 要和 B 進(jìn)行通信,A在網(wǎng)絡(luò)上獲取到B的公匙,然后把數(shù)據(jù)用B的公匙進(jìn)行加密發(fā)送給B,B收到了數(shù)據(jù)后就用自己的私匙進(jìn)行解密數(shù)據(jù),然后就可以看到數(shù)據(jù)內(nèi)容了,即使在網(wǎng)絡(luò)傳輸中加密數(shù)據(jù)被黑客截取,由于黑客沒(méi)有對(duì)應(yīng)的私匙,他也無(wú)法解密數(shù)據(jù)進(jìn)行查看。

     在通信中對(duì)稱(chēng)加密算法比較高效,但是需要告知對(duì)方加密鑰匙,在實(shí)際運(yùn)用時(shí)比較麻煩,所以一般都是用非對(duì)稱(chēng)加密算法來(lái)加密對(duì)稱(chēng)加密算法的鑰匙,然后發(fā)送給對(duì)方,對(duì)方收到對(duì)稱(chēng)加密算法的鑰匙后,后續(xù)通信就用對(duì)稱(chēng)加密算法來(lái)加密消息內(nèi)容了

若控制器之間實(shí)現(xiàn)SecOC功能,則需要發(fā)送和接收控制器都集成并實(shí)現(xiàn)SecOC模塊。在AUTOSAR中,需要加密保護(hù)的數(shù)據(jù)信息被稱(chēng)為Authentic I-PDU。SecOC模塊基于Authentic I-PDU和密鑰使用一定的加密算法得到Authenticator(例如 MAC)。Authenticator和Authentic I-PDU再加上一些必要的報(bào)頭即得到Secured I-PDU,Secured I-PDU也可選包含新鮮度值Freshness  Value,Secured I-PDU的結(jié)構(gòu)如下圖所示:

其中MAC和新鮮度分別具有不同的作用,在SecOC標(biāo)準(zhǔn)中,AUTOSAR主要基于兩種手段來(lái)實(shí)現(xiàn)數(shù)據(jù)的真實(shí)性和完整性的校驗(yàn):基于MAC的身份驗(yàn)證和基于Freshness的防重放攻擊。首先MAC(Message Authentication Code)是保障信息完整性和認(rèn)證的密碼學(xué)方法之一,其中CMAC(Cipher–based Message Authentication Code,CMAC一般用于對(duì)稱(chēng)加密,整車(chē)廠可在車(chē)輛下線(xiàn)刷寫(xiě)程序時(shí)靜態(tài)分配密鑰,也可選擇使用云端服務(wù)器動(dòng)態(tài)地給車(chē)輛分配密鑰。)是車(chē)載總線(xiàn)加密認(rèn)證常用方案。MAC的作用不是防止有效數(shù)據(jù)被泄露,而是為了保護(hù)數(shù)據(jù)不會(huì)被攻擊方篡改,即完成數(shù)據(jù)來(lái)源的認(rèn)證。如需保護(hù)通信數(shù)據(jù)不被攻擊方監(jiān)聽(tīng),則報(bào)文的有效數(shù)據(jù)還需要進(jìn)行額外的加密。

為了降低重復(fù)攻擊的風(fēng)險(xiǎn),則需要在Secured I-PDU中加入新鮮度值,Freshness Value是一個(gè)根據(jù)一定邏輯不斷更新的數(shù)值,Freshness Value的更新方法多種多樣,AUTOSAR 標(biāo)準(zhǔn)將計(jì)數(shù)器或基于時(shí)間的新鮮度值作為典型選項(xiàng)。具體使用何種和具體的加密方式,以及如何定義新鮮度度其實(shí)并不在標(biāo)準(zhǔn)之內(nèi),這就給OEM有了各自定制化方案的可選余地,因此OEM 在實(shí)施 SecOC 方案時(shí)需要定義和做好兩個(gè)關(guān)鍵部分:新鮮度值管理和密鑰管理

基于SecOC的通訊加密和認(rèn)證過(guò)程如下所示:

在發(fā)送節(jié)點(diǎn),SecOC模塊向待發(fā)送的Authentic I-PDU添加認(rèn)證信息從而創(chuàng)建Secured I-PDU。認(rèn)證信息包括Authenticator(例如CMAC)和可選的Freshness Value。無(wú)論Freshness Value是否包含在打包后的Secured I-PDU中,在生成Authenticator期間都會(huì)考慮Freshness Value。

在接收節(jié)點(diǎn),SecOC模塊通過(guò)驗(yàn)證收到的Secured I-PDU中包含的Authenticator來(lái)判斷Authentic I-PDU的來(lái)源。為了實(shí)現(xiàn)認(rèn)證,接收節(jié)點(diǎn)除了需要Authentic I-PDU外還需要知道發(fā)送節(jié)點(diǎn)計(jì)算Authenticator時(shí)使用的Freshness Value。

總結(jié)

車(chē)載通訊加密除了AUTOSAR推薦的方案,也有很多私有的定制化方案,其目的都是保證整車(chē)通訊的安全性,這在未來(lái)的汽車(chē)電子發(fā)展中是非常重要的一方面,但是實(shí)施SecOC后,其會(huì)大量占用CAN報(bào)文負(fù)載,對(duì)于只有可憐巴巴的8字節(jié)傳統(tǒng)CAN通訊來(lái)說(shuō)可能無(wú)福消受了,因認(rèn)證信息的強(qiáng)度和信息長(zhǎng)度強(qiáng)相關(guān)。在傳統(tǒng)CAN上應(yīng)用不僅導(dǎo)致總線(xiàn)負(fù)載率提升、通信實(shí)時(shí)性下降,甚至可能影響正常功能,最終既得不到預(yù)想的信息安全強(qiáng)度,又犧牲了相當(dāng)大的CAN通信能力,因此SecOC更適合配合CANFD協(xié)議使用。

參考文獻(xiàn):

1、Autosar 、Vector、EB、CSDN等資料)

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)