1. 汽車二層安全
在當今的車載網絡 (IVN) 中,許多傳感器、執行器和控制單元相互連接,每秒產生大量數據。此外,所有這些傳感器都需要以嚴格的最小延遲相互通信。車輛中的不同組件需要不同的帶寬和延遲,并且隨著汽車中使用的 ECU 數量的增加,復雜性也在不斷增加。今天的車輛很容易擁有 45 個但有時甚至超過 120 個嵌入式 ECU。因此,不同的網絡技術被用于成本效率和靈活性,以最適合技術和經濟。但是它們有一個共同點,那就是安全性的弱點,網絡技術無論內容如何,都會傳輸它從上層獲得的信息。
可以在系統中的開放系統互連 (OSI) 模型的不同位置添加安全性。今天的安全主要用于其中的四個來保護通信。與車載通信最相關的是在第 2 層到第 4 層之間進行調整。TLS 和 SecOC 用于傳輸層,IPsec 用于網絡層,MACsec 和 CANsec 用于數據鏈路層。一般來說,通信層級的上升會讓信號延遲上升,這對于前面提到的關鍵任務應用程序來說可能是一個挑戰。
LIN 或 CAN 等經典汽車協議對幀使用的有效載荷非常短;這使得很難包含額外的安全信息。以太網和 CAN-XL 可以處理具有更大負載的幀,這使它們有資格進行安全通信。在這篇博客中,我們將關注第 2 層安全,我們不會考慮更高安全層,如 SecOC 或 IPsec。
第 2 層安全性提供了強大的安全性,并且只需要少量的額外開銷,這使得該協議適合硬件實現。然后可以確保通信幀的完整性、機密性和真實性。當在硬件中實現時,它可以卸載 CPU。
2.MACsec
MACsec 架構包括兩個組件。IEEE 802.1X 中定義的 MACsec 密鑰協商 (MKA) 協議不屬于本博客的一部分,它指定了經過身份驗證的密鑰的交換和安全通道的建立。第二個組成部分是 IEEE 802.1AE 標準,它為媒體訪問獨立協議的數據機密性和完整性提供基于第 2 層的加密。MACsec 最初是為 LAN(局域網)安全而開發的。然而,如今通過使用 VLAN 標簽,MACsec 可以用于更廣泛的網絡,例如 WAN(廣域網)。這樣它就可以支持純點對點(P2P)安全以及端到端(E2E)安全。在 P2P 模式下,網絡鏈路上的所有流量都是安全的,但在交換機內部沒有安全通信,還需要仔細定義網絡,以防止通信路徑上出現不安全的鏈接。在 E2E 模式中,邊緣節點之間的完整路徑是獨立于網絡配置的。圖 2 描繪了一個網絡拓撲,說明了不同的安全鏈路 P2P 和 E2E。
圖 2 網絡拓撲
MACsec 數據包由以太網幀通過添加安全標簽 (SecTAG) 和完整性校驗值 (ICV) 形成,如圖 3 所示。
圖3 MACsec幀格式
ETYPE ——MACsec Ethertype 是 2 字節長,與普通的 Ethertype 字段一樣。但它有一個固定值 0x88e5 表示這個幀是一個 MACsec 幀
TCI – 是一個 1 字節的 TAG 控制信息 (TCI) 字段,包含幾條信息。版本號 (V)、終端站 (ES)、存在 SCI (SC)、單副本廣播 (SCB)、加密有效負載 (E)、更改文本 (C) 和關聯編號 (AN)
SL – 表示短幀; 該字段長度為 6 位,如果該數字小于 48,則指示 SecTAG 的最后一個字節和 ICV 的第一個字節之間的字節。否則,SL 設置為零。該字節的第 7 位和第 8 位始終為零。
PN– Packet Number(4byte)主要用于防止重放攻擊。在每個 MACsec 幀中,PN 是唯一的,通常是遞增的。PN 也用作密碼套件的初始值 (IV)。
SCI – 8 字節的安全通道標識符可用于識別流量屬于哪個安全關聯。
ICV – 完整性檢查值附加到每個 MACsec 幀并確保數據的完整性。ICV 的長度取決于密碼套件,介于 8 到 16 個字節之間。
如圖 3 所示,IEEE 802.1Q VLAN 是加密有效負載的一部分。為了支持端到端應用,VLAN 必須保持未加密狀態,因此 VLAN 可以選擇位于加密標頭之外。啟用此選項允許客戶配置 VLAN (802.1Q) 標記以繞過 MACsec 加密;但請注意,在這種情況下,VLAN 標記也不是身份驗證的一部分。
圖 4 VLAN 感知 MACsec 幀格式
MACsec 在兩個或多個受信任主機之間生成安全連接關聯 (CA)。圖 6 描繪了連接到共享媒體 LAN(例如 10BASE-T1S)的四個站。三臺主機 A、B 和 C 之間的安全 CA 由 MACsec 密鑰協商協議 (MKA) 創建。每個 CA 都由單向安全通道 (SC) 支持,每個 SC 都支持使用對稱密鑰加密的幀安全傳輸。每個 SC 都由重疊的安全關聯 (SA) 序列支持。每個 SA 使用新的安全關聯密鑰 (SAK) 來提供 MACsec 服務。如圖 5 所示,主機 D 被排除在此 CA 之外,它可以與其他主機通信,但不安全。它沒有允許它參與當前支持 SCA、SCB 或 SCC 的任何安全關聯 (SA) 的安全關聯密鑰 (SAK);因此,D 不能損害由 A、B 和 C 交換的任何幀的完整性、機密性或來源。主機也可以使用多個 SC,例如主機上的每個應用程序都有一個不同的 SC。然后,它還在同一主機上保護應用程序之間的安全。每個 SC 由一個安全通道標識符 (SCI) 標識,該標識符由一個 48 位 MAC 地址和一個 16 位端口標識符連接而成。
像
圖 6 MACsec 連接關聯
圖 5 MACsec 安全通道
MACsec 使用 AES-128 對稱塊的 Galois/Counter 操作模式作為默認密碼套件。此外,它還支持 256 位的 GCM-AES 和 128 位和 256 位的 GCM-AES-XPN。
3. CANsec
CANsec 是 CAN in Automation (CiA) 正在開發的新標準 CiA613-2,作為新開發的 CAN XL 協議的擴展,支持 CAN 物理層的更高帶寬和更長的有效載荷。它指定了第 2 層 CAN 安全協議,旨在保護基于 CAN 的網絡中數據的完整性、新鮮度、來源真實性和機密性。該標準的重點是數據鏈路層。該規范不包括密鑰協議,與 MACsec 一樣。CANsec 專注于 CAN XL 網絡,但工作組正在考慮選擇性地將其擴展到 CAN FD 網絡。CANsec 幀格式類似于 MACsec 幀格式:在有效負載之前添加 CANsec 標頭,在有效負載末尾插入完整性校驗值 (ICV)。圖 7 顯示了抽象幀格式。
圖 7 CANsec 幀格式
CCI – 密碼控制信息,這 11 位由以下子字段組成
VN – CANsec 版本號
CM – 密碼模式,它指定了兩種可用的安全操作之一
0 認證方式
1 帶有關聯數據的認證加密 (AEAD)
res——保留位
CSCI – CAN 安全通道標識符
SCI – 安全通道標識符 16 位
AN – 關聯編號 1bit
FV——新鮮度值,64位新鮮度計數器的截斷值
CANsec 有所謂的安全區 (SZ),它是一組可以安全通信的節點。SZ 在邏輯上與 MACsec 的 CA 相當。它是節點物理網絡上的邏輯覆蓋,可以覆蓋兩個或多個物理 CAN 鏈路。SZ 由更高層協議定義。圖 9 顯示了一個具有四個節點的 SZ 示例。節點 A 到 D 可以一起通信,它們都連接到同一個物理 CAN 網絡。節點 A、B 和 C 被配置為屬于同一個 SZ,它們可以安全地通信。節點 D 不屬于同一個 SZ。節點 D 無法驗證任何接收到的安全幀,并且如果接收到的安全幀被加密,則無法解密它。
對于使用安全通道 (SC) 的節點 CANsec 之間的通信,這不區分單播、多播或廣播數據傳輸。一個連接結合了不同的獨特SC。圖 8 顯示了帶有 SCA 的 SZ,用于在多播數據傳輸中將安全幀從節點 A 傳輸到節點 B 和 C。節點 B 使用 SCB 和節點 C 分別使用 SCC 來傳輸安全幀。SC 由安全通道標識符 (SCI) 標識。SCI 在所有 SZ 中都是獨一無二的。
圖 9 CANsec 安全區
圖 8 CANsec 安全通道
除了伽羅瓦/計數器模式密碼套件 AES-GCM-128 和 AES-GCM-256 之外,CANsec 還支持基于密碼的消息驗證碼 (CMAC) AES-CMAC-128 和 AES-CMAC-256。
四、比較與結論
第 2 層安全可以保護網絡上的所有通信,這對于 IPSec 等其他安全概念是不可能的。IPSec 只能保護 IP 流量,但不能保護 ARP 或 gPTP 等其他流量。第 2 層安全性不限于最初定義的點對點安全性;它支持當今有限的端到端安全性。這沒有為 CANsec 明確定義(截至今天,標準化工作仍在進行中),但根據 CANsec 實施,應該可以繞過流量到下一層,以實現簡單的橋接功能,無需對幀進行解密和加密。第 2 層安全無法防止來自更高層的惡意第 3 層流量。但是在這種情況下,ECU已經被黑客超越了。
盡管如此,第 2 層安全性只需要很小的軟件開銷,并且延遲非常小(線速安全性)。為了獲得最佳性能,第 2 層安全需要硬件支持,這會增加額外成本。因此,過去它不是主流,但安全門檻越來越高。IPsec 或 SecOC 等更高層的安全協議正在竊取系統的應用程序性能。這就是如今第 2 層安全在汽車領域變得有趣的原因。
表 1 MACsec 與 CANsec 比較
-
CAN
+關注
關注
57文章
2762瀏覽量
464007 -
計數器
+關注
關注
32文章
2259瀏覽量
94802 -
瑞薩電子
+關注
關注
37文章
2873瀏覽量
72283
發布評論請先 登錄
相關推薦
評論