前言:今天給大家分享一下 AP & CP AUTOSAR中的信息安全
一、信息安全背景
信息安全需求來源
現(xiàn)在車可能相比于十年之前,它有更多的聯(lián)網(wǎng)的功能,越來越像一個(gè)手機(jī)。有一些隱私的信息也會(huì)存放在車上,車輛已經(jīng)越來越多的跟自己的一些個(gè)人相關(guān)的信息有關(guān)。
自動(dòng)駕駛功能引入以后,因?yàn)樗梢砸揽恳恍┸浖韺?shí)現(xiàn)自動(dòng)駕駛。信息安全,它的特點(diǎn)是:可能會(huì)去篡改軟件的內(nèi)容或者是讓一些功能失效。
對于Safety來講,它有一部分也關(guān)系到信息安全,所以從個(gè)人隱私、信息和車輛的使用安全來講,它都離不開信息安全,有非常強(qiáng)相關(guān)的關(guān)系。

信息安全的相關(guān)場景
在車?yán)锩妫心男﹫鼍皶?huì)和信息安全有關(guān)?以往我們用的多的是診斷,它是一個(gè)接入車上電子ECU的一個(gè)通道,是診斷入口。
車連上互聯(lián)網(wǎng)后。多了很多應(yīng)用場景,如下圖所示。像遠(yuǎn)程收集汽車的狀態(tài),有些信息還可以和4S店系統(tǒng)做一個(gè)同步,得到維護(hù)和服務(wù)的信息;像車隊(duì)管理,物流公司整車都有架構(gòu)系統(tǒng),還有V2X跟路邊單元通信和云端的一些V2S的服務(wù);

還有自動(dòng)駕駛保險(xiǎn),比如說保險(xiǎn)以后跟車上面是不是有一個(gè)非常健全的信息安全系統(tǒng),有很大關(guān)聯(lián);比如說可以根據(jù)車輛傾向性等級(jí),制定不同保險(xiǎn)的策略;還有OTA可以遠(yuǎn)程去更新車上的一些固件;還有遠(yuǎn)程駕駛員協(xié)助;這些都是可能和信息安全可能會(huì)有些關(guān)系的應(yīng)用場景。
信息安全的風(fēng)險(xiǎn)點(diǎn)
在這種場景下,有哪些手段可能會(huì)成為車輛信息安全被攻擊的途徑呢?從下圖里面可以看到,如Head Unit或者一個(gè)導(dǎo)航系統(tǒng),它是最主要的一些被攻擊者去攻擊的一個(gè)途徑,因?yàn)樗厦嬗写鎯?chǔ)設(shè)備的接入,又有網(wǎng)絡(luò)互聯(lián)的功能。

OTA也是通過下載。所以它上面可以有很多手段黑客可以攻擊。有些手段在互聯(lián)網(wǎng)時(shí)代是比較多見的。比如通過以太網(wǎng)的一些協(xié)議來攻擊和侵入我們的系統(tǒng)。
上面的系統(tǒng)也是Linux或者安卓的,這些也是在消費(fèi)電子領(lǐng)域經(jīng)常使用的,有很多手段和惡意的方式來攻擊我們的系統(tǒng)。包括去獲取系統(tǒng)上的一些用戶數(shù)據(jù)什么的。除了這個(gè),還有我們車上的ECU,ECU跟安全用車有非常大的關(guān)系。
ECU上面的固件也是非常重要的,信息安全的一個(gè)問題點(diǎn)就是:它有可能通過一些方式去更新ECU的一些固件,達(dá)到破壞功能,會(huì)獲取用戶數(shù)據(jù)的一些目的。
除了通過CAN的OBD或者直接去更改固件、應(yīng)用,現(xiàn)在有OTA以后,也可以遠(yuǎn)程去更新車上大部分ECU固件,這些都成為信息安全需要去考慮怎么去做保護(hù)的一些點(diǎn)。如:
1. 一些非法接入設(shè)備,有非法OBD的設(shè)備,非法USB的一些磁盤的設(shè)備去做訪問 。
2. DOS類似的攻擊手段,大多數(shù)也是基于以太網(wǎng)上面去做一些基于DOS的攻擊,像TCP 、SYN 、ACK、辦公攻擊,都是黑客經(jīng)常會(huì)使用這種手段。
3. 為了觸發(fā)一些非標(biāo)準(zhǔn)的畸形的報(bào)文,去系統(tǒng)進(jìn)入癱瘓或者進(jìn)入一個(gè)無法工作的狀態(tài)。
4. 通常會(huì)被黑客使用的手段之一就是端口掃描,去提前獲取我們車上設(shè)備的一些基本信息,根據(jù)這些基本信息再去有針對性的去制定一些破解的方案。這些都是信息安全的技術(shù)手段。
5. 密碼爆破,這種系統(tǒng)通常都會(huì)用一個(gè)密碼系統(tǒng)來保證是不是合法客戶在操作設(shè)備,所以它也會(huì)有很多技術(shù)用一些密碼破解,達(dá)到介入你這個(gè)系統(tǒng)地。
二、信息安全措施
中央計(jì)算架構(gòu)下的數(shù)據(jù)通信安全
針對剛才提到的這些有可能信息安全的一些點(diǎn)。我們有什么考慮呢?我們就當(dāng)前比較火的中央計(jì)算區(qū)域控制器下的架構(gòu)來分析一下。

我們可以看出,中央計(jì)算這個(gè)組上面需要考慮的一些經(jīng)濟(jì)安全的技術(shù),比如說它們之間最基本的還是用以太網(wǎng)做一個(gè)骨干網(wǎng)。如果是這樣一個(gè)設(shè)計(jì),這個(gè)以太網(wǎng)上的數(shù)據(jù)通信的安全通信就顯得非常重要。
比如現(xiàn)在使用的TLS/DTLS就是這樣一個(gè)通信的安全機(jī)制。它基于公鑰加密進(jìn)行會(huì)話、密鑰協(xié)商和加密通信這樣一個(gè)手段來保證,這樣一個(gè)中央計(jì)算單元上面,我們通常會(huì)布置一個(gè)可信的執(zhí)行環(huán)境。上面會(huì)運(yùn)行一些可信的應(yīng)用,可專門做一些密鑰的管理,做一些加密算法的運(yùn)行。
在這樣一個(gè)中央計(jì)算單上面,我們會(huì)布置一個(gè)入侵檢測系統(tǒng)和一個(gè)防護(hù)系統(tǒng),也叫IDPS。
為了做內(nèi)網(wǎng)和外網(wǎng)的一個(gè)隔離,我們經(jīng)常會(huì)設(shè)計(jì)一個(gè)安全網(wǎng)關(guān)。將對外的一些流量和車內(nèi)使用流量做一個(gè)劃分,將有可能會(huì)被攻擊的這樣的網(wǎng)絡(luò),相對來說比較安全,屬于車輛內(nèi)部的網(wǎng)絡(luò)作為一個(gè)隔離,就是中央網(wǎng)關(guān)的架構(gòu)下做的。
中央網(wǎng)關(guān)通常是需要有一個(gè)比較強(qiáng)的處理器,因?yàn)樗赡苄枰鲆恍┥疃鹊陌囊粋€(gè)檢測;還要運(yùn)行一個(gè)IDPS的引擎;有些固件需要做它的一個(gè)轉(zhuǎn)發(fā);需要一些固件實(shí)現(xiàn)類似于黑白名單、過濾器這樣的一個(gè)功能。
除了在中央計(jì)算單元上去做這樣一些信息安全的設(shè)計(jì)外,對于區(qū)域控制器這樣的節(jié)點(diǎn),實(shí)際上也要布置類似的信息安全策略,如果它是一個(gè)接入的以太網(wǎng),TLS這種安全通信機(jī)制也需要去實(shí)施的。
另外類似,還有一個(gè)HSM,用來做一些信息安全模塊密鑰的管理、安全算法。像這種區(qū)域控制器也要有這樣的設(shè)計(jì),另外區(qū)域控制上會(huì)接入CAN的ECU通信。
以往對于CAN上面的保護(hù),我們考慮的經(jīng)常是,有沒有設(shè)定CAN ID的發(fā)送,雖然它能實(shí)現(xiàn)過濾一些非法ID,實(shí)際上如果比較了解車上CAN總線設(shè)計(jì)的一些專業(yè)人員來講,它是有辦法做一些模仿CAN總線消息的發(fā)送,去做一些能攻破系統(tǒng)的一些攻擊手段;或者操作車上的一些開關(guān)什么的都是可以通過模仿一些CAN消息發(fā)送來實(shí)現(xiàn)。
因此,需要在傳統(tǒng)的CAN總線上也布置一個(gè)IDS系統(tǒng),去針對CAN報(bào)文的一些異常行為做一個(gè)檢測,然后去做上報(bào),并且做一些保護(hù)的措施,達(dá)到從CAN通訊層面的信息安全的一個(gè)策略。
在MCU上的IDPS,實(shí)現(xiàn)相對來說是輕量級(jí)的,因?yàn)樗枰渴鹪?/span>一個(gè)MCU的環(huán)境下面。這樣的一個(gè)區(qū)控制器它有以太網(wǎng)通信能力,所以用VLAN做一些虛擬網(wǎng)段的劃分;做一些數(shù)據(jù)流量的隔離,讓它運(yùn)行在一個(gè)比較安全的環(huán)境下面。
我們現(xiàn)在基本上也用上了SecOC通信,因?yàn)镃AN或者是以太網(wǎng)在ECU層面,它們都是通過PDU去通信的,我們可以對PDU做一個(gè)信息安全層面的校驗(yàn),這就是secOC做的一個(gè)方法。
對于使用了SecOC的情況,攻擊者就不能輕易破壞掉了,因?yàn)閟ecOC有一些加密機(jī)制來保證它通信的信號(hào)的完整性和真實(shí)性。
從軟件的設(shè)計(jì)上來講,SecOC可以保證每個(gè)電路與執(zhí)行的鏈路都是安全可信的。比如獲取密鑰到運(yùn)行密鑰的一個(gè)模塊到最終應(yīng)用層去得到它,經(jīng)過的每一個(gè)軟件模塊,它都是在一個(gè)很嚴(yán)密的一個(gè)框架下面去實(shí)現(xiàn)。
所以,即使有黑客通過一些手段進(jìn)入你的軟件系統(tǒng),它也很難從一個(gè)可信的鏈路當(dāng)中獲取一部分的數(shù)據(jù),截取出來。這就是可信軟件鏈路的一個(gè)要求。
像CP AUTOSAR里面CSM它其實(shí)在設(shè)計(jì)當(dāng)中也會(huì)考慮這樣一個(gè)可信鏈路,保障不會(huì)從某一個(gè)軟件模塊數(shù)據(jù)被截取了,這就是在設(shè)計(jì)這些模塊的時(shí)候需要考慮的一些原則。
零部件信息安全架構(gòu)
接下來看一下零部件提的信息安全的一個(gè)架構(gòu),在中央計(jì)算單元模塊里面我們通常會(huì)做會(huì)引入一些概念,比如說可信執(zhí)行、運(yùn)行時(shí)環(huán)境RTE、安全核、安全啟動(dòng)等。

另外就是做一個(gè)功能的隔離,筆者認(rèn)為比較重要的一些應(yīng)用統(tǒng)一放在一個(gè)單獨(dú)的分區(qū)上面。這樣的話跟一些比較容易被受攻擊的一些娛樂功能做一個(gè)物理軟件層面的隔離或者是硬件上的隔離。
如果是硬件上隔離,通常效果會(huì)更好。軟件上隔離成本會(huì)低一點(diǎn),會(huì)降低一定的運(yùn)行效率,但是從一定程度上也能起到信息安全的一些隔離的作用。對于可信執(zhí)行謀害,通常會(huì)叫TEE的概念,就是可信應(yīng)用。
可信應(yīng)用完全是依照信息安全的標(biāo)準(zhǔn)去設(shè)計(jì)模塊,它的可靠性和魯棒性是非常強(qiáng)的,不會(huì)輕易出現(xiàn)一些被攻破的bug什么的。
TEE上一般會(huì)做一些密鑰的管理去讀取的一些策略,還有一些安全算法,比如說加密算法一般會(huì)實(shí)現(xiàn)在TEE的核心核上面。
那么,每個(gè)域APP怎么去使用一些信息安全呢。比如說密鑰信息它怎么去獲取它,怎么樣去調(diào)用一個(gè)加密庫?這就需要在每個(gè)分區(qū)上面有自己的信息安全的一些組件去實(shí)現(xiàn)。也可以認(rèn)為它們是一些類似中間件的東西,它就保證說讓上層更容易的去調(diào)用一些TEE上面的一些功能。
像現(xiàn)在AP上面提到的一些跟信息安全有關(guān)的組件,類似于IAM還有Crypto,這些都是去提供一些標(biāo)準(zhǔn)的Crypto接口去讓應(yīng)用或者是一些Functional去調(diào)用一些密鑰的信息或者是加密函數(shù)。
還有就是操作系統(tǒng),類似于現(xiàn)在的Linux,除了標(biāo)準(zhǔn)Linux,也有一些衍生出來的是經(jīng)過信息安全加固的這樣一個(gè)Linux操作系統(tǒng),它為信息安全做了一些特定的機(jī)制來保證它的系統(tǒng)從信息安全的角度更加健全,不容易被攻破。
還有類似于IDS的軟件組件去做一些部署,IDS會(huì)去做一些數(shù)據(jù)的收集,這些數(shù)據(jù)都是跟信息安全有關(guān),因?yàn)檫@些信息就表現(xiàn)出來當(dāng)前系統(tǒng)運(yùn)行是不是在合理的情況下;
有沒有一些特征是正在被黑客攻擊或者是一些狀況,根據(jù)這些狀況再去下發(fā)一些保護(hù)的策略,如立即制止這種非正常的一些操作,或者說切斷一些入口的通道,來保證你被攻擊的影響減少。
數(shù)據(jù)傳輸安全
信息安全在筆者看來有一大部分說的是安全通信協(xié)議,下圖里面顯示了一些我們通常會(huì)用的一些數(shù)據(jù)傳輸安全的一些機(jī)制。

再往上到IP層也有Security的協(xié)議,再往上數(shù)據(jù)鏈路層的安全,以及對于數(shù)據(jù)報(bào)文的一個(gè)安全協(xié)議SecOC;每一層都有相應(yīng)的一個(gè)安全機(jī)制;再往上,應(yīng)用層之間可以有一些特定的通信機(jī)制。如果認(rèn)為SOME/IP也是偏應(yīng)用層的一個(gè)通信協(xié)議,SOME/IP上面也會(huì)有相應(yīng)的Security的一些協(xié)議可以去使用。
下面這張圖是從一個(gè)縱向的角度去解釋了每個(gè)層面數(shù)據(jù)安全它是位于什么層級(jí)?剛才也有簡單的介紹,這邊可以再強(qiáng)調(diào)一下。

對于防火墻或者是IDPS,它的層級(jí)是跨的比較深的。它從VLAN到第一層第二層,再到往上的數(shù)據(jù)包和應(yīng)用層包,其實(shí)都可以做一些分析。如果要做到第四層以上,我們就認(rèn)為它是一個(gè)深度的包檢測了,可以從協(xié)議層和應(yīng)用層的再去幫你分析這個(gè)包是否是合理的?是不是非法的一個(gè)數(shù)據(jù)包?
如果要實(shí)現(xiàn)這樣的功能,一般都需要比較強(qiáng)的一個(gè)CPU去實(shí)現(xiàn)了,通常這種比較成熟的防火墻,IDPS在IP領(lǐng)域其實(shí)是已經(jīng)做得很好了。有這樣一個(gè)模塊,可以一個(gè)專門用來做IDPS防火墻模塊通常有可能要達(dá)到幾千幾萬這樣一個(gè)模塊都有,它的作用就是幫你一個(gè)深度的包的檢測和去判斷一些信息安全的檢測。
在車載領(lǐng)域相對來說這個(gè)概念還比較新,畢竟我們車內(nèi)用到的芯片的算力還是比較受限的,所以一般來講只會(huì)在數(shù)據(jù)鏈路層左右做一個(gè)黑白名單或者是IP地址層面的一些過濾與防御。
入侵檢測與防御
IDPS概念是什么?
首先我們所有的一些檢測行為都需要有一個(gè)數(shù)據(jù)輸入,所以第一個(gè)階段就是數(shù)據(jù)包嗅探,一般這些數(shù)據(jù)包都是從操作系統(tǒng)那邊第一手拿到的一個(gè)IP的數(shù)據(jù)包作為一個(gè)精準(zhǔn)的數(shù)據(jù)輸入,

所以這邊與規(guī)則匹配,當(dāng)然一些比較有特點(diǎn)的攻擊或者是那種對于標(biāo)識(shí)不合規(guī)的一些,我們可以自動(dòng)做一個(gè)檢測過濾。基于這種規(guī)則匹配以后就形成了一個(gè)報(bào)警和日志,這就是一個(gè)IDPS的功能。
這有個(gè)P指的是protect,既然已經(jīng)檢測到這樣攻擊行為以后,我怎么樣去盡量的減少對這個(gè)系統(tǒng)產(chǎn)生的影響,立即去更新我本地的一個(gè)規(guī)則,馬上實(shí)施以后,立即直指當(dāng)前被攻擊的這個(gè)源頭,這都是一些手段。
在當(dāng)前車載中,protect的動(dòng)作設(shè)計(jì),基本上是不太會(huì)引入的,因?yàn)槟闫綍r(shí)比較擔(dān)心的是立即執(zhí)行這個(gè)保護(hù)行為會(huì)不會(huì)影響車的功能,所以現(xiàn)在大部分做的是IDS。對于規(guī)則的更新和發(fā)放,實(shí)際上是比較謹(jǐn)慎的。
這張圖進(jìn)一步解釋了對于車載IDPS它是怎樣一個(gè)部署的系統(tǒng)?像我們用的PC這種,它就是一個(gè)電腦,就是直接一個(gè)以太網(wǎng)。就是說你電腦上裝IDS的一個(gè)程序就可以做這個(gè)系統(tǒng)。
它部署比較容易,在車上去做IDPS的話,它要做很多事情,比如說我讓左邊這張圖,中央網(wǎng)關(guān)去要部署這樣一個(gè)IDPS主節(jié)點(diǎn)做一些本地的一個(gè)引擎和規(guī)則管理。

對于試驗(yàn)報(bào)告,一般這個(gè)系統(tǒng)部署在云端,它的上面可以算力比較強(qiáng),它可以去上面運(yùn)行一些安全機(jī)制,策略管理,它可以做很多對于IDPS的一些規(guī)則判斷或者是對于整個(gè)車輛平臺(tái)和車型做一個(gè)進(jìn)步的IDPS的這樣一個(gè)規(guī)則的升級(jí)。
它可以獲得這些漏洞。最新的漏洞和攻擊手段,它都可以在這個(gè)系統(tǒng)上去識(shí)別,然后再匹配車上反應(yīng)出來的一些數(shù)據(jù),做一個(gè)規(guī)則匹配。對于車載IDPS,大概就是這樣一個(gè)系統(tǒng)設(shè)計(jì)。
三、AUTOSAR信息安全架構(gòu)
AUTOSAR提供的安全模塊
今天我們講AUTOSAR里面信息安全架構(gòu)有哪些?前面也提到了一些概念,就是實(shí)際上就是AUTOSAR里面就在使用的。像Crypto Stack提供一些軟件加密和密碼服務(wù),這是一個(gè)基本的模塊和CSM 提供可信軟件的模塊鏈路。
還有就是一些通信的安全協(xié)議像SecOC 、TLS、IPsec每個(gè)層級(jí)都有一些安全的協(xié)議。還有就是AP里面的IDS專門是用來做一個(gè)權(quán)限的管理,對于本地的資源做訪問,做統(tǒng)一的安全診斷,安全診斷除了UDS里面的R7服務(wù),現(xiàn)在多了一個(gè)R9,專門用來做一些信息安全產(chǎn)品的驗(yàn)證,對UDS做了一個(gè)這方面的擴(kuò)展。下圖左邊是AUTOSAR里面跟信息安全有關(guān)的一些組件模塊,主要Crypto Driver、Crypto Interface以及CSM模塊。
像剛說到的通信鏈路,主要是Communication Management,在這個(gè)層面它有很多信息安全的協(xié)議的設(shè)計(jì),如 IAM、Crypto Stack都是一些與上層應(yīng)用和Functional Clusters去使用密鑰和加密程序的一個(gè)必要的模塊。
SecOC
下圖是SecOC,它可能已經(jīng)用在當(dāng)前的設(shè)計(jì)里面,所以就不展開了分享IAM這就是一個(gè)標(biāo)準(zhǔn)的SecOC的一個(gè)架構(gòu)圖。

Identity and Access Management
IAM稍微去理解一下它的過程,首先是應(yīng)用程序去請求一些動(dòng)作。它是通過一些中間件Functional Clusters去操作,操作它之前我們?nèi)ハ韧ㄟ^IAM這個(gè)模塊去認(rèn)證它是否是被認(rèn)證過的一個(gè)應(yīng)用。在IAM返回一個(gè)認(rèn)定結(jié)果以后,它才可以真正的使用到一些請求的一些資源,它就是IAM標(biāo)準(zhǔn)的實(shí)現(xiàn)的一個(gè)過程。


Secure Communication-Motivation
接下來分享一下AP中的安全通信。主要從以下三個(gè)方面考慮:1. 完整性,安全通信的目的就是要保證數(shù)據(jù)的完整性。2. 真實(shí)性是不是合法的一個(gè)來源。3. 機(jī)密性,在未授權(quán)的情況下不能被訪問到。
支持的SOME/IP Binding協(xié)議
對于SOME/IP Binding來說,我們 Communication Management可以看到這幾種綁定的協(xié)議,SecOC它支持Message Signing、多播、TCP/UDP都支持。
TLS層面也有相關(guān)的一些綁定的支持,IPsec Security在標(biāo)準(zhǔn)里面都是支持的。

IPsec-Internet Protocol Security
IPsec Security通常是以軟件的模式體現(xiàn),首先有一個(gè)IKE的模塊是Exchange這樣的模塊,下面IPsec里面有相應(yīng)的IPsec模塊,還有一些Framework的一些模塊,像這樣一些Database的Security策略也是通過一些配置可以去產(chǎn)生,這是AUTOSAR對于信息安全有一些設(shè)計(jì),有它一定的便捷性。

配置Secure Communication
如果進(jìn)行配置,我們可以在SWC Port端口上面相應(yīng)去設(shè)計(jì)綁定你的安全策略。比如說SOME/IP Binding、secOS/TLS/DTLS,在一個(gè)系統(tǒng)級(jí)的設(shè)計(jì)層面都可以去部署這些安全策略。

Crypto Stack
Crypto Stack剛才也說了,它主要包含的功能是密鑰管理的一些加密算法執(zhí)行。一般使用Crypto時(shí),還需要一些Crypto Internet,然后再通過一些返回取得解密以后的一些消息。
下圖的例子就是原始未解密的信息,然后我們去調(diào)用Crypto的一些模塊,然后得到一個(gè)解密的一些消息的過程。

Use Cases
在Crypto的一個(gè)標(biāo)準(zhǔn)文檔里面,它分了幾種類型:Crypto Key管理和鍵值管理這樣幾個(gè)接口類型。整個(gè)Crypto的設(shè)計(jì),實(shí)際上還是充分考慮信息安全的一些使用場景對它做了一些加密的分類,最后它可以訪問你硬件上的TEE或者HSM,通信鏈路的都是安全可靠,這是AUTOSAR Crypto的一個(gè)設(shè)計(jì)。
轉(zhuǎn)自汽車電子與軟件