3. 车载电子电气架构

网络隔离,说白了就是“把不该碰面的设备隔开”。

我入行那会儿,很多车还是“一条CAN总线走天下”。车窗、刹车、娱乐系统全挂在一起。想想都后怕——一个娱乐系统的漏洞,就能直接发报文去踩刹车?这设计在今天绝对不合格。

隔离的核心原则就一句话:最小权限,按需互通。不该通信的节点,物理上就别连在一起。

3.1 隔离原则

做隔离设计,我习惯先问三个问题:

  1. 谁需要跟谁说话?——比如,ADAS摄像头只需要跟域控通信,不需要跟车窗电机聊天。
  2. 不隔离会怎样?——如果娱乐系统被攻破,能不能影响到制动系统?能,就必须隔离。
  3. 隔离后性能够吗?——加网关、加防火墙,延迟会增加。得算清楚。

隔离三原则:

  • 原则一:关键安全功能(制动、转向、动力)必须独立成域。
  • 原则二:非安全域(娱乐、T-Box)默认禁止访问安全域。
  • 原则三:跨域通信必须经过授权网关,且报文内容可审计。

我曾经遇到一个项目,客户说“我们CAN总线都隔离了”。结果一查,诊断仪接口直接挂在动力CAN上。嗯,这等于把家门钥匙挂在门外。后来我们强制要求:诊断流量必须经过网关过滤,不能直连。

3.2 域隔离(Domain Isolation)

域隔离是目前最主流的做法。把整车按功能分成几个逻辑域,每个域内部通信自由,域之间必须走网关。

典型的域划分:

域名称 包含功能 安全等级 典型总线
动力域 发动机、变速箱、BMS 最高 CAN FD / FlexRay
底盘域 制动、转向、ESP 最高 CAN FD / FlexRay
车身域 门窗、灯光、座椅 中 CAN / LIN
信息娱乐域 中控屏、音响、导航 低 以太网
ADAS域 摄像头、雷达、决策 高 以太网 / CAN FD
远程通信域 T-Box、V2X 高(暴露面大) 以太网

你想想看,如果娱乐域被攻破,攻击者最多能控制个音量。但如果娱乐域能直接发报文给制动域,那后果就严重了。域隔离就是防止这种“跳板攻击”。

我的经验:域隔离不是越细越好。域太多,网关压力大,延迟高。我一般建议5-7个域,兼顾安全与性能。

3.3 网关隔离

网关是域之间的“守门员”。它负责:

  • 路由转发:只转发授权的报文。
  • 协议转换:比如CAN转以太网。
  • 防火墙:过滤非法报文。
  • 入侵检测:监控异常流量。

网关隔离的典型架构:

网关隔离架构示意图 动力域 发动机 / BMS 底盘域 制动 / 转向 车身域 门窗 / 灯光 中央网关 路由 / 防火墙 / IDS 娱乐域 中控 / 音响 ADAS域 摄像头 / 雷达 远程通信域 T-Box / V2X 所有跨域通信必须经过中央网关 网关执行访问控制与报文过滤

网关隔离的关键在于访问控制列表(ACL)。我见过不少项目,ACL写得像天书,最后运维的人根本看不懂。我的建议是:ACL要按“源域→目标域→报文ID→动作”来组织,清晰明了。

避坑指南:我曾经遇到一个案例,网关ACL配置了“允许所有诊断报文通过”。结果测试时发现,攻击者通过诊断接口发送了“刷写制动ECU”的报文。后来我们改成“只允许特定诊断服务通过”,才堵住这个漏洞。

3.4 虚拟局域网(VLAN)隔离

VLAN是二层网络的隔离技术。在车载以太网里,VLAN用得越来越多。为什么?因为一根物理线缆上可以跑多个逻辑网络,互不干扰。

VLAN的核心机制:

  • 802.1Q标签:在以太网帧头里加4字节的VLAN ID。
  • VLAN ID范围:1-4094,每个ID代表一个逻辑子网。
  • 交换机端口配置:Access口(只属于一个VLAN)或Trunk口(透传多个VLAN)。

车载VLAN的典型划分:

VLAN ID 用途 包含设备 优先级
10 ADAS数据流 摄像头、雷达、域控 最高
20 动力/底盘控制 ECU、网关 高
30 信息娱乐 中控屏、音响 低
40 远程通信 T-Box、V2X模块 中
50 诊断/OTA 诊断仪、OTA客户端 中

你想想看,如果没有VLAN,ADAS摄像头的高清视频流和娱乐系统的音频流混在一起,万一娱乐系统广播风暴,ADAS数据就丢了。VLAN隔离后,ADAS数据在VLAN 10里跑,娱乐数据在VLAN 30里跑,互不影响。

我的习惯:做VLAN规划时,我会把安全等级相同的设备放在同一个VLAN里。这样ACL配置简单,也方便后续扩展。比如,所有ADAS摄像头都放在VLAN 10,新增摄像头时不用改防火墙规则。

VLAN隔离的配置示例(交换机命令行):

! 创建VLAN
vlan 10
 name ADAS
vlan 20
 name Powertrain
vlan 30
 name Infotainment

! 配置端口
interface GigabitEthernet0/1
 switchport mode access
 switchport access vlan 10
!
interface GigabitEthernet0/2
 switchport mode trunk
 switchport trunk allowed vlan 10,20,30

嗯,这里要注意:VLAN隔离只解决二层广播域的问题。如果攻击者能伪造VLAN标签(VLAN Hopping攻击),隔离就失效了。所以,我建议在交换机上启用“端口安全”和“VLAN ACL”,双重保险。

三种隔离技术对比:

隔离方式 隔离粒度 实现成本 适用场景
域隔离 功能域级别 中 整车架构设计
网关隔离 跨域通信 高(需专用硬件) 安全关键域间通信
VLAN隔离 二层网络 低(软件配置) 车载以太网子网划分

最后说一句:隔离不是目的,安全才是。别为了隔离而隔离,搞得系统复杂到没人能维护。我见过一个项目,VLAN分了20多个,结果每次加个新设备都要改半天配置。后来我们合并成8个VLAN,安全没降级,运维效率翻倍。