3. 车载通信协议安全需求分析

车载通信协议的安全需求分析,不能停留在“CAN 不安全、以太网要加密”这种笼统判断上。真正可落地的做法,是把每条总线上的报文放到具体的通信场景中,逐一识别它面临的威胁类型,再把威胁翻译成可验证的安全需求。本节围绕 CAN/CAN FD、LIN、FlexRay 和车载以太网四类协议,梳理报文伪造、重放、篡改和拒绝服务(DoS)四类风险,并形成一份可追溯的安全需求清单。

一、四类协议的信任模型差异

安全需求分析的起点是理解各协议的信任模型。CAN 与 CAN FD 采用广播式多主仲裁,任何接入节点的报文都会被所有节点接收,且标准帧不含源地址认证字段,接收方只能依据 CAN ID 判断报文来源。这意味着一旦攻击者接入总线,就可以伪造任意 CAN ID 的报文。LIN 是单主多从的轮询结构,主节点调度全部通信,从节点仅在收到帧头后应答,攻击面相对集中,但 LIN 通常连接车门、雨刷、座椅等车身节点,物理接触门槛低。FlexRay 采用时间触发与事件触发混合的 TDMA 机制,静态段有严格的时隙分配,通信确定性高,但静态段报文同样缺乏密码学保护。车载以太网基于交换式网络,支持 VLAN、IPsec、TLS 等成熟安全机制,但引入 IP 层后也带来了 ARP 欺骗、DHCP 伪造、端口扫描等传统 IT 攻击面。

这四类协议的共同点是:原生协议设计均以功能可靠性和实时性为首要目标,未内置报文认证与加密能力。因此安全需求必须通过上层安全机制或网关策略来补充。

二、四类风险的协议映射

报文伪造是指攻击者构造并发送带有合法 CAN ID 或以太网源地址的报文,使接收节点误认为来自真实 ECU。在 CAN 上,伪造一条 ID 为 0x0C9 的车速报文,只需一个支持 CAN 发送的节点即可完成。在以太网上,伪造可通过 ARP 欺骗将网关 IP 映射到攻击者 MAC,从而截获并转发流量。

重放是指攻击者录制合法报文后延迟重发。CAN 报文没有时间戳和序列号,重放一条“车门解锁”报文在接收端看来与正常报文无异。FlexRay 静态段虽有周期号,但周期号在 0~63 之间循环,攻击者只需等待周期号回绕即可重放。以太网上的 SOME/IP 协议若未启用序列号校验,同样面临重放风险。

篡改是指攻击者修改报文数据域内容。CAN FD 数据域最长 64 字节,若未加校验,攻击者可修改其中任意字节。例如将制动请求报文中的减速度值从 0x20 改为 0x00,即可削弱制动效果。以太网上的篡改可通过中间人攻击实现,攻击者修改 IP 包载荷后重新计算校验和。

DoS 是指攻击者通过高优先级报文或泛洪使总线或网络不可用。CAN 上持续发送 ID 为 0x000 的最高优先级报文,可使其他节点无法获得仲裁胜利。以太网上向交换机端口泛洪广播帧,可导致 CAM 表溢出,正常单播帧被泛洪到所有端口。

车载通信协议安全需求分析矩阵 协议 / 风险 报文伪造 重放 篡改 DoS CAN / CAN FD 广播式 · 无源地址 ID 仲裁 · 无认证 伪造任意 CAN ID 接收方无法验证源 示例:伪造 0x0C9 车速 无时间戳/序列号 录制后延迟重发 示例:重放解锁报文 数据域无完整性校验 可修改任意字节 示例:改制动减速度值 高优先级报文持续发送 仲裁失败 · 总线阻塞 示例:ID 0x000 泛洪 LIN 单主多从 · 轮询 低速率 · 车身节点 从节点可伪造应答 主节点调度可被干扰 示例:伪造雨刷状态 帧头后应答可重放 无会话绑定 示例:重放座椅位置 校验和仅检错不防篡改 数据域可被修改 示例:改车窗开度 持续拉低总线 主节点无法调度 示例:从节点持续占用 FlexRay TDMA · 时间触发 静态段/动态段 时隙内可伪造帧 周期号可被模仿 示例:伪造底盘控制帧 周期号 0~63 循环 等待回绕即可重放 示例:重放转向指令 帧头 CRC 仅防传输错误 载荷可被替换 示例:改悬架参数 动态段泛洪 时隙冲突 · 通信中断 示例:占用动态段时隙 车载以太网 交换式 · IP 层 SOME/IP · DoIP ARP 欺骗 · IP 伪造 MAC 地址可伪造 示例:伪造网关 IP SOME/IP 无序列号校验 TCP 流可重放 示例:重放诊断请求 中间人修改载荷 校验和可重算 示例:改 OTA 升级包 广播泛洪 · CAM 溢出 端口扫描 · 资源耗尽 示例:泛洪交换机端口 安全需求映射:报文认证(MAC) · 防重放(新鲜值/序列号) · 完整性校验(CMAC/CRC) · 速率限制与优先级管控

三、安全需求清单的构建方法

将上述风险映射为安全需求时,需要遵循“威胁—资产—需求—验证”的追溯链。以 CAN 为例,资产是“车速报文 0x0C9”,威胁是“伪造”,安全需求可表述为“接收节点应能验证 0x0C9 报文的发送方身份”,验证方法为“注入伪造报文,观察接收节点是否拒绝”。

对于 CAN 与 CAN FD,推荐的安全需求包括:对安全关键报文启用 8 字节 CMAC 认证,新鲜值采用 4 位计数器与 4 位时间戳组合,接收窗口允许 2 个周期偏差;对非安全报文保留原生格式以控制总线负载。对于 LIN,由于带宽极低(最高 20 kbps),不宜引入密码学认证,建议采用主节点白名单调度与从节点应答超时监控。对于 FlexRay,静态段可依赖 TDMA 时隙的物理隔离,动态段需增加帧级认证。对于车载以太网,应在 VLAN 隔离基础上启用 IPsec ESP 传输模式,SOME/IP 启用序列号与客户端认证。

需求优先级判断依据:若某报文直接参与制动、转向、动力输出等 ASIL C/D 功能,其伪造与篡改风险应列为最高优先级;若仅涉及车身舒适功能,可适当降低认证强度以节省带宽与算力。

四、安全需求清单示例

下表给出一个可参考的安全需求清单片段,字段包括需求编号、适用协议、资产、威胁类型、安全需求描述、验证方法与优先级。实际项目中可根据 ECU 的通信矩阵逐条展开。

需求编号 协议 资产 威胁 安全需求描述 验证方法 优先级
SEC-CAN-001 CAN FD 0x0C9 车速 伪造 接收节点验证 CMAC,失败则丢弃并记录 注入伪造帧,检查丢弃计数 高
SEC-CAN-002 CAN 0x1A0 车门解锁 重放 报文携带 4 位滚动计数器,接收窗口 ±2 重放旧报文,检查是否拒绝 高
SEC-LIN-001 LIN 雨刷状态帧 伪造 主节点校验从节点应答 ID 与调度表一致 模拟非法从节点应答 中
SEC-FLEX-001 FlexRay 动态段转向帧 篡改 动态段帧启用 8 字节 CMAC 修改载荷后检查校验失败 高
SEC-ETH-001 以太网 SOME/IP 诊断请求 重放 启用序列号与客户端证书双向认证 重放旧请求,检查拒绝 高
SEC-ETH-002 以太网 交换机端口 DoS 启用广播风暴抑制,阈值 5% 带宽 泛洪测试,观察端口是否关闭 中

五、从需求到设计的衔接

安全需求清单完成后,下一步是将其分配到具体的 ECU 与网关。例如 SEC-CAN-001 需要车速接收节点具备 CMAC 计算能力,若该节点为低成本传感器,则需评估是否由网关代验。SEC-ETH-001 需要诊断仪支持证书管理,若诊断仪为外部设备,则需在网关侧增加代理认证。这一分配过程会直接影响 AURIX 芯片的 HSM 资源分配与软件架构,是后续章节展开的基础。

常见误区:将“启用 SecOC”直接等同于满足安全需求。SecOC 仅提供认证与完整性,不提供机密性;若报文含敏感数据(如诊断种子),仍需额外加密。此外,SecOC 的新鲜值管理若配置不当,仍可能被重放攻击绕过。

本节形成的安全需求清单,是后续 SecOC 配置、网关过滤规则设计、HSM 密钥管理的输入。需求编号应贯穿设计、实现与测试阶段,确保每条威胁都有对应的缓解措施和验证证据。