【摘" 要】隨著汽車智能化、網(wǎng)聯(lián)化的推進,網(wǎng)絡(luò)安全的需求也變得更為迫切。而當(dāng)下車內(nèi)使用的網(wǎng)絡(luò)安全技術(shù)主要以防止篡改為主,無法達到防止監(jiān)聽的目的。文章主要從汽車電子測試角度,簡要探討MACsec車載應(yīng)用技術(shù)的相關(guān)理論。
【關(guān)鍵詞】汽車;網(wǎng)絡(luò)安全;通信加密;MACsec
中圖分類號:U463.6" " 文獻標(biāo)識碼:A" " 文章編號:1003-8639( 2024 )02-0052-02
Network Security: Interpretation of MACsec in Vehicle Application Technology
JIANG Lu
(Shanghai Beihui Information Technology Co.,Ltd. Beijing Branch,Beijing 102208,China)
【Abstract】With the advancement of automotive intelligence and networking,the demand for network security has become more urgent. However,the network security technology used inside the car mainly focuses on preventing tampering,which cannot achieve the goal of preventing eavesdropping. The article mainly discusses the relevant theories of MACsec in vehicle application technology from the perspective of automotive electronic testing.
【Key words】automobile;network security;communication encryption;MACsec
1" 前言
以往介紹網(wǎng)絡(luò)安全相關(guān)技術(shù)在車載通信中的一些內(nèi)容(包括E2E和SecOC等)時,通常更多地是從數(shù)據(jù)校驗方面入手,其中數(shù)據(jù)本身還是以明文進行傳輸。而隨著網(wǎng)絡(luò)安全級別的提高以及以太網(wǎng)在車載中更大規(guī)模的使用,市場迫切地需要數(shù)據(jù)加密的手段來防止數(shù)據(jù)被監(jiān)聽。同時由于車載通信對延遲性能的要求和部署的特點,因此MACsec可能是一個更容易被選擇的方案。
2" 什么是MACsec
MACsec全稱為Media Access Control Security,基于協(xié)議802.1AE和802.1X,主要功能是用于數(shù)據(jù)加密,同時還有認(rèn)證、校驗的功能。其保護的數(shù)據(jù)是以太網(wǎng)中二層以上的數(shù)據(jù),即包括ARP在內(nèi)的數(shù)據(jù),都會被加密進而無法通過網(wǎng)絡(luò)監(jiān)聽獲取。同時相比于其他加密手段(如TLS),MACsec由于可以基于硬件實現(xiàn),因此可以做到更低的延時和更高的性能。并且對于上層應(yīng)用來說,MACsec是在二層進行加密,因此對于上層來說是無感的,這意味著上層不需要做任何改動就可以進行加密部署,這對于當(dāng)前無加密系統(tǒng)切換加密系統(tǒng)來說有著很大的優(yōu)勢。
3" MACsec工作流程
MACsec使用對稱加密,其密鑰生成分發(fā)過程為EAPOL-MKA(EAP是Extensible Authentication Protocol,EAPOL即EAP over LANs,MKA即MACsec Key Agreement protocol,見IEEE Std 802.1X),標(biāo)準(zhǔn)的MACsec的EAPOL-MKA流程會先進行密鑰服務(wù)器的選舉,但在車載網(wǎng)絡(luò)中,更可能的情況是預(yù)先定義好密鑰服務(wù)器,因此本文就不贅述密鑰服務(wù)器選舉流程(可以參考IEEE 802.1X),直接看一下密鑰服務(wù)器如何生成和分發(fā)密鑰。
首先所有的MACsec設(shè)備中會預(yù)先配置好一個密鑰,稱為CAK(Secure Connectivity Association Key),由于其是預(yù)先定義的密鑰,因此也叫做Pre-shared-key。需要注意的是,CAK并不是能直接參與數(shù)據(jù)加密的密鑰,實際用于數(shù)據(jù)加解密的密鑰是SAK(Secure Association Key),SAK是通過CAK進行派生,SAK的生成過程如圖1所示。
1)預(yù)配置密鑰:除了預(yù)先配置CAK外,還需要配置密鑰標(biāo)識CKN(Connectivity Association Key Name)。CKN就是額外的一個數(shù)據(jù)參數(shù),CAK+CKN共同用于密鑰派生函數(shù)KDF(Key Derivation Function)。
2)密鑰派生:CAK通過不同的派生函數(shù)(派生函數(shù)參考AUTOSAR、AUTOSAR_SWS_MACsecKeyAgreement、IEEE 802.1X、NIST 800-108)和參數(shù)生成3個密鑰,生成的3個密鑰分別是ICK(Integrity Check Value Key,校驗的密鑰)、KEK(Key Encryption Key,加密SAK的密鑰)、SAK(Secure Association Key,實際加密數(shù)據(jù)的密鑰)。其中ICK和KEY是通過CAK+CKN生成固定的密鑰,可以認(rèn)為MACsec設(shè)備均已預(yù)先得知。ICK用于流程校驗,KEK用于SAK的加密。SAK是由CAK+RNG(Random Number Generator,隨機數(shù)生成)生成的隨機密鑰,用于實際數(shù)據(jù)的加密。
3)加密SAK:使用KEK加密SAK(加密算法參考rfc3394中AES Key Wrap algorithm),將加密SAK傳輸?shù)揭蕴W(wǎng)總線中。
4)獲取解密后的SAK:伙伴節(jié)點使用相同的KEK解密后獲取SAK,將SAK用于實際數(shù)據(jù)的加解密。
在SAK成功分發(fā)到MACsec節(jié)點后,MACsec中的二層以太網(wǎng)報文就都可以用加密的方式進行數(shù)據(jù)的交互。
4" MACsec報文格式
MACsec的報文格式如圖2所示,其中DMAC即目標(biāo)MAC,SMAC即源MAC,CRC即幀校驗,這部分都是以太網(wǎng)幀中原有的內(nèi)容。802.1Q+payload即原有以太網(wǎng)中攜帶的數(shù)據(jù)(包含以太網(wǎng)幀類型),這部分?jǐn)?shù)據(jù)會以GCM-AES-128(也允許支持GCM-AES-256)的加密算法進行加密(密鑰為上一章節(jié)中分發(fā)的SAK)。ICV(Intergrity Check Value)為校驗碼,SecTAG為加密頭,用于識別MACsec相關(guān)信息,其結(jié)構(gòu)如圖3所示。
圖3中,MACsec EtherType為固定值0x88E5,表示MACsec報文;TCI(TAG Control Informatin)為控制信息;AN(Association Number)為關(guān)聯(lián)號;SL(Short Length)為短數(shù)據(jù)長度(小于48字節(jié)才會使用,見IEEE 802.1AE);PN(Packet Number)為包的序號,用來防止重放攻擊;SCI(Secure Channel Identifier)中還包含PI(Port Identifier),即通道和端口的標(biāo)識,對簡單網(wǎng)絡(luò)來說應(yīng)該是固定值。
SecTAG的解析示例見圖4。
另外,對于GCM-ASE算法來說,有3個參數(shù):Nonce(加密向量IV)、Add(附加消息)、Tag(消息認(rèn)證碼)和MACsec中字段有映射關(guān)系。Nonce對應(yīng)SCI+PN,Add對應(yīng)DMAC+SMAC+SecTAG,Tag對應(yīng)ICV(參考IEEE 802.1AE)。
5" CANoe MACsec示例
在CANoe中建立多個節(jié)點,ChatClient1和ChatClient2以TCP的連接與ChatServer建立會話關(guān)系,其通信不需要關(guān)注MACsec。實際在總線的數(shù)據(jù)由Switch_1的Port1與Switch_2的Port2進行以太網(wǎng)數(shù)據(jù)的發(fā)送接收,拓?fù)潢P(guān)系如圖5所示。
環(huán)境啟動后,Port1和Port2就進行MACsec的SAK分發(fā)過程,分發(fā)完成后,Port1和Port2就可以正常以MACsec進行加密通信,如圖6所示。
當(dāng)在ChatClient1發(fā)送會話數(shù)據(jù)“Polelink”,ChatClient2響應(yīng)會話“YES”時,對于ChatClient1和ChatClient2而言數(shù)據(jù)的收發(fā)是原封不動的明文,如圖7所示。
而對于實際以太網(wǎng)數(shù)據(jù)而言,Port1和Port2的收發(fā)數(shù)據(jù)就全是密文數(shù)據(jù),如圖8所示。
6" 總結(jié)
本文簡單介紹了MACsec車載應(yīng)用技術(shù)的相關(guān)內(nèi)容,其中著重對MACsec的工作流程和報文格式進行了闡述,并結(jié)合MACsec在CANoe中的應(yīng)用示例進行了說明。文中很多細(xì)節(jié)還有待商榷,歡迎大家共同探討。
參考文獻:
[1]AUTOSAR_RS_MACsec[Z].
[2]AUTOSAR_SWS_MACsecKeyAgreement[Z].
[3]IEEE 802.1X[Z].
[4]IEEE 802.1AE[Z].
(編輯" 凌" 波)
收稿日期:2023-08-07
作者簡介
蔣露(1994—),男,測試工程師,主要從事汽車電子網(wǎng)絡(luò)診斷測試工作。