AUTOMORPHSW Team

SecOC 與 E2E 差在哪?車內通訊的三層防護一次看懂

SecOC 與 E2E 差在哪?車內通訊的三層防護一次看懂

架構評審上的高頻問題:「我們已經有 E2E 了,為什麼還要 SecOC?」——因為它們防的是兩種完全不同的敵人。E2E 防的是隨機故障(位元翻轉、訊息遺失、序列錯亂),SecOC 防的是蓄意攻擊(偽造、竄改、重放)。一個屬於功能安全的世界,一個屬於資安的世界。

車內通訊的三層防護

一張表看懂分工

E2E ProtectionSecOC
防的敵人隨機故障(硬體、干擾、軟體缺陷)蓄意攻擊(偽造、竄改、重放)
所屬領域功能安全(ISO 26262 的通訊失效模式)資安(ISO/SAE 21434、UN R155)
核心手段CRC + 計數器(Counter)+ 資料 IDMAC(訊息鑑別碼)+ 新鮮度值
金鑰不需要需要——對稱金鑰的分發與保管
攻擊者能不能繞過能(CRC 演算法公開,攻擊者可以算出合法 CRC)不能(沒有金鑰算不出合法 MAC)
保護範圍發送端應用到接收端應用(端到端)匯流排上的 PDU

關鍵洞察:E2E 擋不住攻擊者。 CRC 與 Counter 的演算法是公開的,攻擊者偽造訊息時把 CRC 一起算對就好。反過來,SecOC 也不完全取代 E2E——MAC 驗證確認「這是真的發送者發的」,但發送端應用層到通訊層之間的軟體缺陷(E2E 的守備範圍從 RTE 就開始)不在它的視野裡。兩者是疊加關係,不是二選一;再加上 IP 網段的 TLS,就是「通道—訊息—應用」三層防護的完整圖像。

E2E 的機制:三個欄位堵三種失效

E2E 在受保護的資料上附加:

  1. CRC:偵測資料損毀(位元翻轉)
  2. Counter:每發一次加一——接收端據此偵測遺失(跳號)、重複(同號)、亂序(倒退)
  3. Data ID:參與 CRC 計算的隱含識別——偵測錯位投遞(收到別人的訊息卻當成自己的)

接收端不只驗單筆,還維護狀態機:連續幾筆正常才算通訊健康、失效累積到門檻觸發降級。測試的重點因此不在「CRC 算得對不對」,而在狀態機——注入跳號、重複、延遲的序列,驗證應用層的失效反應(降級、保持最後有效值、進安全狀態)是否符合安全概念的設計。AUTOSAR 定義了多個 E2E Profile,差異在 CRC 長度、Counter 位元數與欄位佈局——選 Profile 實際上是在選「失效偵測能力 × 附加負載」的平衡點。

SecOC 的機制:MAC 與新鮮度的雙人舞

SecOC 對受保護的 PDU 附加兩樣東西:

  • MAC(訊息鑑別碼):以對稱金鑰對「資料+新鮮度值」計算的密碼學標籤。沒有金鑰,偽造不出合法 MAC——這是真實性與完整性的來源
  • 新鮮度值(Freshness Value):單調遞增的計數器或時戳,讓每一筆訊息的 MAC 都不同——這是防重放的關鍵。沒有它,攻擊者錄下一筆合法訊息原封重播,MAC 依然驗得過

工程上的兩個經典難題都出在「塞不下」:

  1. MAC 截斷:完整 MAC 放不進傳統 CAN 的酬載,實務上只傳截斷後的一段——安全強度與頻寬的取捨要有依據(這也是 SecOC 與 CAN FD 的 64 位元組酬載特別合拍的原因,見 CAN FD 差在哪
  2. 新鮮度同步:接收端要知道「現在的新鮮度值該是多少」才能驗 MAC。斷電重啟、訊息遺失後的重新同步機制(新鮮度管理器、截斷傳輸+本地重建)是 SecOC 導入時最花工程時間的一塊,也是互通性問題的高發區

金鑰管理則是整套機制的地基:金鑰怎麼注入(產線)、存哪裡(HSM,見 Secure Boot 技術)、怎麼輪替——金鑰洩漏,SecOC 就是擺設。

測試視角:兩套機制、兩張測試清單

E2E 要測SecOC 要測
跳號/重複/亂序注入下的狀態機行為錯誤 MAC 的拒收與計數
失效門檻與降級路徑重放攻擊(錄製重播)被擋下
Profile 組態與兩端一致性新鮮度失步後的重同步
高負載下的偵測延遲金鑰錯誤/未注入時的行為
截斷 MAC 長度的邊界驗證

兩張清單都需要「能精準操縱訊息」的測試環境——改 Counter、改 MAC、重放指定訊框,CANoe 這類工具搭配資安測試套件就是做這件事。對供應商來說,這些證據直接對應 ISO/SAE 21434 的驗證要求(上游的分析怎麼做,見 TARA 怎麼做)。


下一步

從 SecOC 導入、新鮮度策略到攻防測試,歐特莫夫(Vector Informatik 合作夥伴)協助把通訊防護做成拿得出手的合規證據。