摘要
隨著汽車以太網(wǎng)的興起和車載通信系統(tǒng)數(shù)量的增加,網(wǎng)絡(luò)整合成為控制復(fù)雜性和成本的關(guān)鍵。當(dāng)前架構(gòu)呈現(xiàn)明確分層:以太網(wǎng)(100/1000Mbit/s)支撐信息娛樂(lè)、ADAS等高帶寬應(yīng)用,而CAN/CAN FD(0.5-5Mbit/s)處理發(fā)動(dòng)機(jī)管理等實(shí)時(shí)控制。未來(lái)CAN XL和10BASE-T1S將瞄準(zhǔn)中速控制領(lǐng)域。值得注意的是,當(dāng)前約90%的車載節(jié)點(diǎn)通信速率仍≤10Mbit/s,凸顯了中低速通信的基礎(chǔ)性地位。
虹科PCAN XL套件
01. 深度防御
過(guò)去數(shù)十年間,IT行業(yè)始終秉持深度防御(Defense-in-Depth)核心理念,通過(guò)在信息技術(shù)系統(tǒng)中部署多層級(jí)獨(dú)立安全控制機(jī)制,為潛在的單點(diǎn)失效提供冗余防護(hù)?;谶@一理念,在車載10Mbit/s通信領(lǐng)域同步構(gòu)建兩種技術(shù)體系的安全防護(hù)層,已成為汽車行業(yè)應(yīng)對(duì)網(wǎng)絡(luò)整合趨勢(shì)的必然要求。
本文針對(duì)多點(diǎn)數(shù)據(jù)層安全架構(gòu)建設(shè)中的兩個(gè)關(guān)鍵難題展開研究:其一聚焦于高效密鑰協(xié)商協(xié)議的開發(fā),其二探索橋接設(shè)備跨網(wǎng)絡(luò)連接場(chǎng)景下的端到端加密實(shí)現(xiàn)方案。
需要特別說(shuō)明的是,本文提出的安全增強(qiáng)方案嚴(yán)格遵循分層防護(hù)理念,其設(shè)計(jì)目標(biāo)并非取代現(xiàn)有OSI協(xié)議棧中的安全機(jī)制(如車載SecOC協(xié)議、IPSec或TLS等),而是通過(guò)縱向協(xié)同構(gòu)建更完備的防御體系。
02. MACsec 和 CANsec
以太網(wǎng)已經(jīng)有了MACsec及其配套的密鑰協(xié)商協(xié)議MKA,且已定義了十年之久,而國(guó)際CiA協(xié)會(huì)正通過(guò)CiA613-2為CAN XL制定CANsec規(guī)范。MACsec和CANsec的目標(biāo)都是在各自的數(shù)據(jù)層之上,以線速性能提供保密性、完整性和認(rèn)證性。
圖1 MACsec / CANsec
為滿足這些要求,這兩種技術(shù)都使用具有提供認(rèn)證加密和相關(guān)數(shù)據(jù)(AEAD)操作模式的分組密碼。MACsec只支持AES,而CANsec則計(jì)劃以 ASCON[3]的形式支持輕量級(jí)加密。
受保護(hù)的幀攜帶一個(gè)單調(diào)遞增的分組編號(hào)(PN),以防止重放攻擊。這個(gè)分組編號(hào)用于生成一個(gè)隨機(jī)數(shù)(Nonce),該隨機(jī)數(shù)是相應(yīng)AEAD算法所需的輸入。
那么有了這些基石,就不可能在網(wǎng)絡(luò)的整個(gè)生命周期中使用永久有效的加密密鑰,因?yàn)槭褂孟嗤荑€意味著重復(fù)使用隨機(jī)數(shù),這樣實(shí)際上會(huì)使加密無(wú)效。
因此,需要一種機(jī)制來(lái)協(xié)商一個(gè)臨時(shí)有效的會(huì)話密鑰,或者根據(jù)MKA規(guī)范稱為安全關(guān)聯(lián)密鑰(SAK),并定期更換該密鑰。
03. 10Mbit/s速率領(lǐng)域的MKA
以太網(wǎng)擁有經(jīng)過(guò)充分驗(yàn)證、功能豐富但也相當(dāng)復(fù)雜的MACsec密鑰協(xié)議,專門用于解決這一難題,因此,選擇MKA作為CANsec(CAN XL)和MACsec(10BASE- T1S)的密鑰協(xié)議解決方案也是很自然的。
MKA是圍繞零知識(shí)和零假設(shè)方法設(shè)計(jì)的,每個(gè)參與者只依賴自己的實(shí)施質(zhì)量。由于MKA使用專用的MACsec密鑰協(xié)議數(shù)據(jù)單元 (MKPDU),它不需要知道有多少參與者正在、將要或曾經(jīng)在線,也不要求參與者以一定的頻率發(fā)送數(shù)據(jù)。此外,每個(gè)參與者在啟動(dòng)時(shí)生成的隨機(jī)成員標(biāo)識(shí)符確保了重放保護(hù)。如果相關(guān)參與者的隨機(jī)數(shù)生成器質(zhì)量較高,則該參與者可以安全地抵御MKA控制信息的重放攻擊。
不過(guò),典型的MKA應(yīng)用與在10Mbit/s速率領(lǐng)域的預(yù)期應(yīng)用之間存在兩個(gè)決定性差異。
首先,雖然MACsec密鑰協(xié)商是為任意數(shù)量的參與者(或根據(jù)IEEE 802.1標(biāo)準(zhǔn)稱為對(duì)等節(jié)點(diǎn))制定的,但實(shí)際使用中很少超過(guò)兩個(gè)參與者。
其次,MKA的Hello時(shí)間為兩秒。因此,建立密鑰協(xié)商至少需要兩秒,平均需要三秒。
雖然這種密鑰協(xié)議時(shí)間在數(shù)據(jù)中心等典型的以太網(wǎng)環(huán)境中是可以接受的,但在汽車或其他對(duì)時(shí)間更敏感的環(huán)境中就不行了。對(duì)于增加一個(gè)安全層所造成的通信延遲具體有多少是可以接受的,目前還沒(méi)有達(dá)成共識(shí)。觀點(diǎn)有從幾毫秒到一百多毫秒不等。這完全取決于具體的使用情況,但對(duì)于大多數(shù)(汽車)使用情況來(lái)說(shuō),MKA所需的平均3秒鐘太慢了。
04. 更快的MKA
以下優(yōu)化措施的目標(biāo)都是在不違反現(xiàn)有規(guī)范[2]的情況下,縮短密鑰協(xié)商時(shí)間(即從所有參與者上線到所有參與者能夠相互通信的時(shí)間間隔)。因此,MKPDU,尤其是其中包含的所有參數(shù)集都不會(huì)以任何方式進(jìn)行修改,也不會(huì)違反IEEE規(guī)范中的任何「應(yīng)」和「可」規(guī)則。
2021年,V?lker博士[1]提出了一些修改建議,以優(yōu)化密鑰協(xié)商時(shí)間。其基本思路是:根據(jù)MKPDU的內(nèi)容對(duì)其進(jìn)行分類,并相應(yīng)地修改發(fā)送頻率。
最直觀的,你能想到的規(guī)則是,每當(dāng)有有助于達(dá)成密鑰協(xié)議的消息要發(fā)送時(shí),每個(gè)參與者都要發(fā)送一個(gè)更新的MKPDU。這些規(guī)則是:
(1) 潛在對(duì)等節(jié)點(diǎn)或活動(dòng)對(duì)等節(jié)點(diǎn)列表發(fā)生了變化
(2) 需要分發(fā)新的安全關(guān)聯(lián)密鑰
(3) 已安裝新的安全關(guān)聯(lián)密鑰,需要進(jìn)行確認(rèn)
(4) 新參與者想要加入連接關(guān)聯(lián)
我們將這組規(guī)則稱為基本配置文件。
如文獻(xiàn)[1]所示,這些修改產(chǎn)生了顯著效果,將密鑰協(xié)議所需的時(shí)間減少到了30毫秒以下。
05. 多節(jié)點(diǎn)應(yīng)用場(chǎng)景
讓我們將這些修改應(yīng)用于MKA,將參與者數(shù)量擴(kuò)展到n,并從理論上分析需要交換多少消息,以及每個(gè)參與者必須處理多少消息。
如果所有參與者同時(shí)上線,每個(gè)參與者都會(huì)生成一個(gè)MKA Hello消息,其中包含其隨機(jī)生成的成員標(biāo)識(shí)符。每個(gè)參與者都會(huì)收到n-1條這樣的消息,每次處理一條,就向其潛在對(duì)等節(jié)點(diǎn)列表中添加n-1個(gè)條目,并回復(fù)n-1次。那么總共會(huì)發(fā)送n2條消息,每個(gè)參與者必須處理n2-n條消息。因此,密鑰協(xié)商的這一初始步驟與參與者數(shù)量并非呈線性關(guān)系。
圖2 基本資料——參與方發(fā)現(xiàn)
如果我們將規(guī)則稍作修改,這個(gè)問(wèn)題就可以得到解決:
(1) 在潛在對(duì)等節(jié)點(diǎn)或活動(dòng)對(duì)等節(jié)點(diǎn)列表中添加一個(gè)密鑰服務(wù)器對(duì)等節(jié)點(diǎn)。
我們將這組修改后的規(guī)則稱為優(yōu)化配置文件。在典型設(shè)置中,通常只有一兩個(gè)具備密鑰服務(wù)器功能的參與者。
這使得每個(gè)參與者必須處理的消息數(shù)量減少到O(n)。
圖3 優(yōu)化配置文件——參與方發(fā)現(xiàn)
在密鑰分發(fā)過(guò)程中也能觀察到類似的現(xiàn)象。根據(jù)MKA規(guī)范,如果有參與者添加到活動(dòng)對(duì)等節(jié)點(diǎn)列表中,密鑰服務(wù)器應(yīng)分發(fā)新的SAK。
在我們的系統(tǒng)啟動(dòng)場(chǎng)景中,密鑰服務(wù)器在收到第一個(gè)MKA Hello響應(yīng)時(shí)會(huì)發(fā)出一個(gè)新的SAK,收到第二個(gè)響應(yīng)時(shí)再發(fā)出一個(gè),如此繼續(xù),直到活動(dòng)對(duì)等節(jié)點(diǎn)列表最終包含所有參與者的成員標(biāo)識(shí)符??偣矔?huì)分發(fā)n-1個(gè)SAK,但只有最后一個(gè)會(huì)得到所有參與者的確認(rèn)。不幸的是,所有SAK都會(huì)被其MKA Hello消息最先被密鑰服務(wù)器處理的參與者確認(rèn),除第一個(gè)SAK外,其他SAK都會(huì)被其MKA Hello消息第二個(gè)被處理的參與者確認(rèn),如此繼續(xù),直到最后分發(fā)的SAK最終被所有參與者接受和確認(rèn)。為了完成密鑰協(xié)商,每個(gè)參與者總共必須處理O(n2) 數(shù)量的消息。
圖4 基本配置文件——密鑰分發(fā)
為了解決這個(gè)問(wèn)題,必須減少密鑰服務(wù)器分發(fā)的密鑰分發(fā)消息數(shù)量。一種實(shí)現(xiàn)方法是讓密鑰服務(wù)器知道參與者的數(shù)量。有了這個(gè)信息,密鑰服務(wù)器可以有意延遲SAK的分發(fā),直到收到所有預(yù)期參與者的MKA Hello消息。但這需要完全靜態(tài)的網(wǎng)絡(luò)設(shè)置,因此并不適用于所有用例。例如,若有一個(gè)參與者的啟動(dòng)速度明顯慢于其他參與者,就會(huì)導(dǎo)致網(wǎng)絡(luò)中的其他部分無(wú)法通信。
另一種保持MKA對(duì)網(wǎng)絡(luò)拓?fù)錈o(wú)感知特性的方法是限制新SAK的發(fā)布。密鑰服務(wù)器在處理完一個(gè)傳入的MKPDU后,會(huì)進(jìn)入一個(gè)需要發(fā)布新SAK的狀態(tài)。此時(shí),它不是立即發(fā)送相應(yīng)的MKPDU,而是將發(fā)送延遲一定時(shí)間。這使密鑰服務(wù)器有時(shí)間處理其他傳入的MKA Hello消息(見(jiàn)圖5),并發(fā)布一個(gè)可供更多甚至所有參與者使用的SAK。讓我們將這種行為添加到優(yōu)化配置文件中。
在對(duì)16個(gè)參與者進(jìn)行的模擬中,這種優(yōu)化將分發(fā)的SAK數(shù)量減少到兩個(gè),從而消除了運(yùn)行時(shí)間隨參與者數(shù)量呈二次方增長(zhǎng)的問(wèn)題。這種方法具有很大的靈活性。根據(jù)網(wǎng)絡(luò)設(shè)置,你可以選擇合適的延遲時(shí)間來(lái)優(yōu)化密鑰協(xié)商時(shí)間。
例如:
(1)所有參與者速度相同。你可以將延遲時(shí)間設(shè)置為一個(gè)較小的值,但要足夠讓密鑰服務(wù)器處理所有MKA Hello響應(yīng)。
(2)有一個(gè)參與者比其他參與者慢得多,但它提供了重要信息。你可以將延遲時(shí)間設(shè)置為能讓這個(gè)慢的參與者有足夠時(shí)間發(fā)送其MKA Hello響應(yīng)的值。
更有利的是,如果連接的參與者不提供此選項(xiàng),或者你無(wú)法訪問(wèn)其配置,那么只需對(duì)密鑰服務(wù)器應(yīng)用此配置即可。
06. MKA的替代方案
密鑰協(xié)商協(xié)議的選擇取決于對(duì)密鑰協(xié)商的具體要求,以及協(xié)議名稱所隱含的特性。如果你的保護(hù)目標(biāo)是使密鑰協(xié)商不會(huì)受到來(lái)自孤立參與者的有效記錄流量的攻擊,那么密鑰協(xié)商協(xié)議需要包含一些挑戰(zhàn)響應(yīng)協(xié)議部分,強(qiáng)制加入一個(gè)潛在攻擊者無(wú)法控制且質(zhì)量良好(盡可能隨機(jī))的值(即挑戰(zhàn))。
有兩種方法可以實(shí)現(xiàn)這一點(diǎn)。第一種方法需要一個(gè)高度同步的公共時(shí)間源,這本身就是一個(gè)難題,本文不對(duì)此進(jìn)行討論。第二種方法要求每個(gè)參與者生成一個(gè)隨機(jī)數(shù),并將其發(fā)送給所有其他參與者,而其他參與者則必須在響應(yīng)中包含所有這些隨機(jī)數(shù)(在MKA中稱為成員標(biāo)識(shí)符)。
這正是MKA所采用的方式。任何替代方案都必須采取類似的做法,并且不可避免地至少需要一個(gè)消息往返,因此會(huì)涉及傳輸和處理時(shí)間。如果沒(méi)有設(shè)置時(shí)間,就無(wú)法實(shí)現(xiàn)能夠抵御這種重放攻擊的密鑰協(xié)商。
07. 小結(jié)
仿真結(jié)果清楚地表明,MKA可以優(yōu)化到在典型網(wǎng)絡(luò)設(shè)置中,最多16個(gè)參與者的密鑰協(xié)商能夠在50毫秒內(nèi)完成。與標(biāo)準(zhǔn)MKA相比,這是一個(gè)巨大的改進(jìn),因?yàn)槲覀冎皇菍?duì)時(shí)間進(jìn)行了更精確的調(diào)整,并分析了關(guān)鍵因素。
這種優(yōu)化方法保留了MKA的所有優(yōu)點(diǎn)(功能豐富、經(jīng)過(guò)充分驗(yàn)證、與網(wǎng)絡(luò)無(wú)關(guān)),使其適用于許多需要更快通信啟動(dòng)時(shí)間的用例。
08. 橋接場(chǎng)景中的端到端 CANsec
在某些用例中,橋接設(shè)備是兩個(gè)或更多CAN XL網(wǎng)絡(luò)的一部分,用于實(shí)現(xiàn)消息在CAN總線A和CAN總線B之間的轉(zhuǎn)發(fā)。
圖6 橋接的CAN XL網(wǎng)絡(luò)
可能會(huì)出現(xiàn)這樣的情況:CAN總線A上的消息的優(yōu)先級(jí)標(biāo)識(shí)符已被CAN總線B中的CAN XL節(jié)點(diǎn)使用,因此如果不進(jìn)行修改就轉(zhuǎn)發(fā)消息,會(huì)導(dǎo)致優(yōu)先級(jí)標(biāo)識(shí)符沖突。
如果你想使用CANsec保護(hù)這樣的系統(tǒng),可以為總線A和總線B分別建立不同的連接關(guān)聯(lián)。橋接設(shè)備對(duì)傳入的消息進(jìn)行解密,根據(jù)需要修改優(yōu)先級(jí)標(biāo)識(shí)符,然后重新加密消息??紤]到深度防御原則,這可能不是最佳選擇,因?yàn)檫@意味著橋接設(shè)備必須擁有兩個(gè)關(guān)聯(lián)的長(zhǎng)期密鑰,這使其成為攻擊者的主要目標(biāo)。
從安全角度來(lái)看,端到端加密更為理想,即橋接設(shè)備不進(jìn)行加密操作,因此無(wú)需訪問(wèn)任何密鑰。為了在CANsec中實(shí)現(xiàn)這種場(chǎng)景,當(dāng)前的CiA 613-2草案規(guī)定了一些選項(xiàng),可以將優(yōu)先級(jí)標(biāo)識(shí)符和虛擬CAN標(biāo)識(shí)符(VCID)排除在CANsec提供的完整性保護(hù)之外。
雖然這些選項(xiàng)確實(shí)使實(shí)現(xiàn)此類場(chǎng)景成為可能,但請(qǐng)確保你極其謹(jǐn)慎地使用它們,因?yàn)閮?yōu)先級(jí)標(biāo)識(shí)符和VCID都不能包含語(yǔ)義信息,這一點(diǎn)至關(guān)重要。
09. 切勿將優(yōu)先級(jí)標(biāo)識(shí)符用作標(biāo)識(shí)符
CAN XL相較于傳統(tǒng)CAN和CAN FD的改進(jìn)之一,是它打破了標(biāo)識(shí)符字段在語(yǔ)義上不太合理的雙重用途。在CAN XL出現(xiàn)之前,標(biāo)識(shí)符字段既是物理層的優(yōu)先級(jí)指令,又是消息標(biāo)識(shí)符。因此,在不改變消息含義的情況下,無(wú)法更改標(biāo)識(shí)符字段。而在CAN XL中,優(yōu)先級(jí)指令由優(yōu)先級(jí)標(biāo)識(shí)符承擔(dān),接受字段(AF)負(fù)責(zé)識(shí)別消息的含義。
在理想情況下,設(shè)計(jì)CAN XL網(wǎng)絡(luò)的系統(tǒng)工程師會(huì)牢記這一點(diǎn),不會(huì)混淆這兩個(gè)字段的獨(dú)立用途。在這種情況下,CANsec的排除選項(xiàng)支持端到端加密的橋接。但是,如果至少有一個(gè)CAN XL節(jié)點(diǎn)只是對(duì)現(xiàn)有CAN FD實(shí)現(xiàn)的簡(jiǎn)單遷移,會(huì)發(fā)生什么情況呢?
很可能優(yōu)先級(jí)標(biāo)識(shí)符只是遺留項(xiàng)目中的CAN標(biāo)識(shí)符,因?yàn)檫@是將項(xiàng)目遷移到CAN XL的最簡(jiǎn)單方法。這樣一來(lái),優(yōu)先級(jí)標(biāo)識(shí)符的含義超出了預(yù)期,在不失去CANsec保護(hù)的情況下,無(wú)法橋接CAN XL消息。
遺憾的是,當(dāng)前的CANsec草案并未針對(duì)這種情況提供安全的解決方案。
CANsec排除選項(xiàng)的另一個(gè)缺點(diǎn)是,網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都必須預(yù)先配置,以表明某些消息要進(jìn)行轉(zhuǎn)發(fā),并因此將優(yōu)先級(jí)標(biāo)識(shí)符從其完整性校驗(yàn)值(ICV)計(jì)算中排除。如果不更改配置,就無(wú)法通過(guò)橋接設(shè)備連接第二條CAN總線,而這可能由于無(wú)法訪問(wèn)所有節(jié)點(diǎn)而無(wú)法實(shí)現(xiàn),這限制了擴(kuò)展選項(xiàng)。
10. CAN-in-CAN
如果遇到優(yōu)先級(jí)標(biāo)識(shí)符傳達(dá)語(yǔ)義信息的情況,并且/或者希望能夠靈活地選擇或臨時(shí)添加橋接設(shè)備,就需要一種滿足以下要求的解決方案:
(1) 節(jié)點(diǎn)無(wú)需知道其消息是否會(huì)跨越其 CAN XL 網(wǎng)絡(luò)的邊界。
(2) CAN XL 報(bào)頭的所有字段都受到 CANsec 的保護(hù)
CAN-in-CAN就是一種滿足上述要求且不會(huì)破壞端到端加密的解決方案:
發(fā)起方網(wǎng)絡(luò)的配置保持不變,因此每個(gè)節(jié)點(diǎn)都傳輸CANsec保護(hù)的幀。橋接設(shè)備識(shí)別要轉(zhuǎn)發(fā)的幀,并將整個(gè)CAN XL幀(包括其報(bào)頭數(shù)據(jù))作為新「封裝」幀的有效載荷,并為其添加一個(gè)新的CAN XL報(bào)頭。圖9展示了這一概念。
圖9 CAN-in-CAN
接收網(wǎng)絡(luò)中的節(jié)點(diǎn)通過(guò)特殊的服務(wù)數(shù)據(jù)類型識(shí)別轉(zhuǎn)發(fā)的幀,移除目標(biāo)網(wǎng)絡(luò)報(bào)頭,然后可以驗(yàn)證未修改的CANsec保護(hù)幀。如果不使幀無(wú)效,就無(wú)法篡改其任何內(nèi)容(包括優(yōu)先級(jí)標(biāo)識(shí)符和 VCID)。
圖10 通信示例
由于MKA控制消息也必須以相同方式通過(guò)橋接設(shè)備,因此所有參與節(jié)點(diǎn)都必須支持CAN-in-CAN概念。
總結(jié).
雖然CAN-in-CAN概念在CAN XL有效載荷中需要額外占用12個(gè)字節(jié),但它提供了更大的靈活性,并為使用遺留組件安全橋接 CAN XL 網(wǎng)絡(luò)提供了可能。
文章來(lái)源
本文基于Peter Decker(Vector)在第18屆國(guó)際CAN大會(huì)(iCC)的演講。已刊于《第18屆iCC會(huì)議論文集》2024版,由CiA出版。虹科智能互聯(lián)團(tuán)隊(duì)翻譯并分享,旨在與行業(yè)同仁共享前沿技術(shù)成果。
參考文獻(xiàn)
[1] Starting Up MACsec for Automotive Ethernet, Dr. Lars V?lker
[2] IEEE802.1X-2020
[3] Ascon - Lightweight Authenticated Encryption & Hashing????
審核編輯 黃宇
-
以太網(wǎng)
+關(guān)注
關(guān)注
41文章
5635瀏覽量
175928 -
CAN
+關(guān)注
關(guān)注
57文章
2920瀏覽量
467786
發(fā)布評(píng)論請(qǐng)先 登錄
新的口令認(rèn)證密鑰協(xié)商協(xié)議
Ad Hoc網(wǎng)絡(luò)中一種組密鑰協(xié)商協(xié)議
標(biāo)準(zhǔn)模型下增強(qiáng)的基于身份的認(rèn)證密鑰協(xié)商協(xié)議
基于橢圓曲線的可驗(yàn)證密鑰協(xié)商方案
標(biāo)準(zhǔn)模型下高效的基于口令認(rèn)證密鑰協(xié)商協(xié)議
基于分層身份的網(wǎng)絡(luò)密鑰協(xié)商協(xié)議
一種高效安全的認(rèn)證密鑰協(xié)商協(xié)議

基于簽名方案的多密鑰協(xié)商協(xié)議
RFID系統(tǒng)中的密鑰協(xié)商
基于格的后量子認(rèn)證密鑰協(xié)商協(xié)議綜述
基于移動(dòng)互聯(lián)網(wǎng)的身份基認(rèn)證密鑰協(xié)商協(xié)議
鴻蒙開發(fā):Universal Keystore Kit 密鑰管理服務(wù) 密鑰協(xié)商ArkTS

鴻蒙開發(fā):Universal Keystore Kit 密鑰管理服務(wù) 密鑰協(xié)商 C、C++

評(píng)論