本文是「以太网IEEE标准系列」第二篇,聚焦 IEEE Std 802.1AE™-2018(Media Access Control Security)。本文分两部分:第一部分解析通用标准(MACsec帧格式、SecY架构、Cipher Suite),第二部分对照 OPEN Alliance TC17 Automotive MACsec Specification v1.0(2025-05)的车载精简要求。
第一部分:标准篇
一、MACsec 在协议栈中的位置
IEEE 802.1AE MACsec 是整个「车载以太网安全体系」中的加解密执行层,位于 MAC 子层和 PHY 之间:
1 | ┌──────────────────────────────────────────────────────────────────┐ |
🔑 一句话定位:MACsec 是唯一一个在 MAC 层(Layer 2)对整个以太网帧(包括 VLAN 标签)提供加密和完整性保护的标准,比 IPsec(Layer 3) 更贴近硬件,开销更小。
二、安全威胁与 MACsec 的应对(6.6 / 6.8 / 6.9)
2.1 MACsec 能提供什么安全服务?(6.9)
| 安全服务 | 说明 | MACsec 如何实现 |
|---|---|---|
| Connectionless data integrity | 连接无关的数据完整性 | MAC DA + SA + SecTAG + User Data 整体算 ICV |
| Data origin authenticity | 数据来源真实性 | GCM-AES 认证模式,密文可证明来源 |
| Confidentiality | 机密性(可选) | GCM-AES 加密,Confidentiality Offset 指定加密起点 |
| Replay protection | 抗重放攻击 | PN(Packet Number)单调递增,低于最低可接受 PN 的帧丢弃 |
| Bounded receive delay | 有界的接收延迟 | 协议设计保证,无额外握手帧 |
2.2 MACsec 不能做什么?
标准原文 5.2 节明确声明:
“Conformance to this standard does not ensure that the system of which the MAC Security implementation forms a part is secure, or that the operation of other protocols used to support MAC Security, such as key management and network management do not provide a way for an attacker to breach that security.”
MACsec 不保护的内容:
- MAC 帧 Priority(QoS)字段:可能被沿途设备修改(AutoMACsec 在接收端做 Priority 映射)
- SecTAG 本身:TCI/AN/PN 不加密,只受 ICV 完整性保护
- ICV 本身:在帧末尾,纯校验数据
- 802.1X/MKA 密钥管理层:那是另一个协议的攻击面
三、核心概念:CA / SC / SA
MACsec 的安全模型建立在一套三级密钥关联上(7.1 节):
1 | Connectivity Association (CA) |
关键约束:
- 1 个 SC = 1 对 1 SA(点对点场景),或 1 对 N SA(组播场景)
- SA 的 AN(Association Number, 2 bits) = 0~3,用于区分同一 SC 下的两个 SA
- PN(Packet Number):每发一帧单调递增,防止重放
四、MACsec 帧格式(Chapter 9)
4.1 MPDU 三大组件
MACsec 在原始 MAC 帧的基础上插入 SecTAG,并在末尾追加 ICV:
1 | 原始以太网帧(未加密): |
4.2 SecTAG 格式(9.3)
SecTAG 是 MACsec 的”护照”,包含所有解密和校验所需的信息:
1 | SecTAG 完整格式(16字节,有SCI): |
4.3 TCI 字段详解(9.5)
TCI(TAG Control Information)的 8 个比特每一位都有特定含义:
| Bit | 名称 | 值=0 | 值=1 | Automotive MACsec |
|---|---|---|---|---|
| 8(MSB) | V(Version) | ✅ 0(本标准版本) | 保留 | 固定=0 |
| 7 | ES(End Station) | SCI 在 SecTAG 中 | SCI=源MAC地址+PortID=0001 | 用于无 SCI 场景 |
| 6 | SC(SCI present) | SCI 不在 SecTAG 中 | SCI 在 SecTAG 中显式编码 | 无 SCI 时=0(AutoMACsec) |
| 5 | SCB(Single Copy Broadcast) | 非 SCB 通道 | SCB 通道(EPON专用) | EPON 不用=0 |
| 4 | SH(Secure Channel Hash) | 用于 SCB 通道 | 用于 EPON | 不涉及=0 |
| 3 | E(Encryption) | 仅完整性(Integrity) | 加密+完整性(Confidentiality) | 0=仅Integrity,1=带Confidentiality |
| 2-1 | AN(Association Number) | 00 |
SA 标识 | |
| 0(LSB) | (未命名,随 AN) | 见 AN |
Automotive MACsec 精简点: Automotive MACsec 通常使用
ES=1, SC=0组合(Point-to-point,SCI=源MAC地址+PortID 0001),或者直接用无 SCI 格式,完全省略 SCI 字段。
4.4 PN(Packet Number)(9.8)
- 发送:每发出一帧,PN 自动 +1
- 长度:SecTAG 里只存 低 32 位,完整 PN 是 64 位(使用 XPN 时)
- XPN(Extended PN):在 PN 溢出前必须 rekey,否则攻击者可以重放旧 PN 的帧
- ** Automotive MACsec**:必须支持 XPN 和非 XPN 两种 cipher suite(AutoMKA-01004)
4.5 ICV(Integrity Check Value)(9.11)
ICV 的计算覆盖:
1 | ICV = AES-GCM-Authenticate(SAK, |
- 默认:ICV 长度 = 16 字节(GCM-AES-128)
- GCM-AES-256:ICV 长度 = 16 字节(256-bit 密钥但 ICV 仍是 128-bit)
- 保护范围:包括 MAC DA、MAC SA、SecTAG、Secure Data,不包括 FCS
4.6 MACsec EtherType(9.4)
| Tag Type | Name | Value |
|---|---|---|
| IEEE 802.1AE Security TAG | MACsec EtherType | 0x88E5 |
为什么要单独分配 EtherType? 802.1AE 原文 8.1.5 解释:需要一个与普通以太网帧(0x0800 IPv4, 0x86DD IPv6)不同的 EtherType,让不支持 MACsec 的设备能识别出”这是 MACsec 帧”(虽然不能解密,但可以做过滤)。0x88E5 是 IEEE 802.1 专门为 MACsec 分配的 EtherType。
五、SecY 架构与帧处理(Chapter 10)
SecY(MAC Security Entity)是 MACsec 在每个端口上的软件/硬件实现单元:
5.1 SecY 的两个端口
1 | SecY 架构(10.1,10.4): |
5.2 帧发送流程:Secure Frame Generation(10.5)
1 | 发送路径(Protect 操作): |
加密 vs 仅完整性:
| 模式 | TCI[E] | Payload | ICV | 使用场景 |
|---|---|---|---|---|
| Integrity Only | 0 | 明文 | 16字节 ICV | 仅需防篡改,不需要加密(如诊断数据) |
| Confidentiality + Integrity | 1 | AES-GCM 密文 | 16字节 ICV | 敏感数据保护 |
5.3 帧接收流程:Secure Frame Verification(10.6)
1 | 接收路径(Validate 操作): |
Confidentiality Offset:如果 TCI[E]=1 且有 Offset,加密只从 MSDU 的第 Offset 字节开始。Offset 0 = 整个 MSDU 都加密;Offset 30/50 = 前 30/50 字节明文(保留 VLAN tag 等元数据)。
5.4 XPN PN 恢复(10.6)
当使用 64-bit PN(XPN cipher suite)时,SecTAG 只携带低 32 位:
1 | PN 恢复机制: |
六、Cipher Suite(Chapter 14)
MACsec 支持多个 cipher suite,所有 suite 都基于 AES-GCM:
| Cipher Suite ID | 算法 | 密钥长度 | PN 长度 | 说明 |
|---|---|---|---|---|
| GCM-AES-128 | AES-GCM | 128-bit | 32-bit | 默认 suite |
| GCM-AES-256 | AES-GCM | 256-bit | 32-bit | 更强密钥 |
| GCM-AES-XPN-128 | AES-GCM | 128-bit | 64-bit | XPN,高速链路推荐 |
| GCM-AES-XPN-256 | AES-GCM | 256-bit | 64-bit | XPN + 256-bit |
所有 suite 的 ICV 长度固定为 16 字节。GCM-AES-128 的加密和认证都使用 128-bit 密钥;GCM-AES-256 同理。
七、MACsec 在系统中的部署(Chapter 11)
MACsec 的部署位置决定它保护的范围:
1 | ┌─────────────────────────────────────────────────────────────┐ |
第二部分:车载篇——OPEN Alliance Automotive MACsec
本部分对照 OPEN Alliance TC17 Automotive MACsec Specification v1.0(2025-05, Final, Public),提取所有规范级需求(AutoMACsec-xxxxx),说明 Automotive MACsec 与 IEEE 802.1AE 通用标准的设计差异。
八、Automotive MACsec 的定位
IEEE 802.1AE 是通用标准,覆盖了从企业 LAN 到 EPON 的所有场景。Automotive MACsec 是 OPEN Alliance TC17 委员会制定的车载精简配置表(profile),目标是:
- 删除车载不需要的特性(减少芯片 BOM 成本)
- 添加车载需要的特性(如无 SCI 帧格式、FCS 错误转发)
- 优化点对点 switched Automotive Ethernet 的性能
Automotive MACsec 与 IEEE 802.1AE-2018 的关系:两者基于相同的 AES-GCM 加密原语,Automotive MACsec 只在 profile 层面做减法和加法。未修改的 IEEE 802.1AE 特性必须按原标准实现。
九、Automotive MACsec 必选能力集
9.1 点对点 MACsec(AutoMACsec-01001)
1 | Automotive MACsec 仅支持点对点模式: |
9.2 SecTAG 无 SCI 模式(AutoMACsec-01004)
这是 Automotive MACsec 最重要的带宽优化:
1 | IEEE 802.1AE 通用:SecTAG 可以有 SCI(16字节)或无 SCI(8字节) |
9.3 Confidentiality Offset(AutoMACsec-01005)
1 | Automotive MACsec 的加密偏移支持: |
9.4 转发到 Common Port 的规则(AutoMACsec-01006, 01006A, 01006B)
Automotive MACsec 要求能够按规则将某些帧转发到 Common Port(不走 MACsec),这在诊断和ECU刷写场景下至关重要:
发送方向(Tx)规则(01006):
1 | 帧被转发到 Common Port 的条件: |
接收方向(Rx)规则(01006A):
1 | 非安全帧(非 0x88E5)收到后,按以下规则转发到 Common Port: |
9.5 解密失败帧的处理(AutoMACsec-01007)
1 | IEEE 802.1AE:解密/校验失败的帧必须丢弃 |
9.6 不依赖 802.3br 帧抢占(AutoMACsec-01003)
1 | IEEE 802.1AE 通用标准可以利用 IEEE 802.3br Frame Preemption |
十、统计计数器要求(AutoMACsec-01008)
Automotive MACsec 规定了精简的统计计数器集(与 IEEE 802.1AE MIB 对齐):
发送方向(TX)
| 计数器 | 名称 | 说明 |
|---|---|---|
out_pkts_untagged |
OutPktsUntagged | 发出的无 SecTAG 帧数 |
out_pkts_too_long |
OutPktsTooLong | 因超长而丢弃的帧数 |
out_octets_protected |
OutPktsProtected | 带完整性保护的发出的帧数 |
out_octets_encrypted |
OutPktsEncrypted | 带加密的发出的帧数 |
接收方向(RX)
| 计数器 | 名称 | 说明 |
|---|---|---|
in_pkts_untagged |
InPktsUntagged | 收到的无 SecTAG 帧数 |
in_pkts_no_tag |
InPktsNoTag | 期望 MACsec 但收到无 SecTAG 帧 |
in_pkts_bad_tag |
InPktsBadTag | SecTAG 格式错误帧数 |
in_pkts_no_sa |
InPktsNoSA | 找不到对应 SA 的帧数 |
in_pkts_no_sa_error |
InPktsNoSAError | 无 SA 且校验失败的帧数 |
in_pkts_overrun |
InPktsOverrun | SecY 过载丢弃的帧数 |
in_octets_validated |
InOctetsValidated | 完整性校验的字节数 |
in_octets_decrypted |
InOctetsDecrypted | 解密的字节数 |
SC 级别计数器
| 方向 | 计数器 |
|---|---|
| Tx SC | out_pkts_protected, out_pkts_encrypted |
| Rx SC | in_pkts_ok, in_pkts_unchecked, in_pkts_late, in_pkts_invalid, in_pkts_not_valid |
十一、Automotive MACsec 与 Automotive MKA 的协同
1 | ┌──────────────────────────────────────────────────────────────────┐ |
十二、工程选型:哪些芯片支持 Automotive MACsec?
| 厂商 | 型号 | 类型 | Automotive MACsec | 已验证的 MACsec 规格 | 来源 |
|---|---|---|---|---|---|
| Texas Instruments | DP83TC817S-Q1 | 100BASE-T1 PHY | ✅ | 线速 802.1AE MACsec;Cipher Suites: GCM-AES-XPN-128/256, GCM-AES-128/256;16 SAK(8 Tx SC + 8 Rx SC);SAK Auto Rollover;Ingress/Egress 分类规则数 ≥ 8 条(满足 AutoMACsec-01006B);Window Replay Protection |
TI 产品页+ 读者提供的 datasheet |
| Microchip | LAN8650 / LAN8651 | 10BASE-T1S MAC-PHY | ❌ | 无 MACsec HW(仅做 10BASE-T1S sensor hub) | 厂商产品页 |
| ONsemi | NCN26010 | 10BASE-T1S MAC-PHY | ❌ | 无 MACsec HW | 厂商产品页 |
🚧 以下数据来自历史资料/行业宣传,未经独立 datasheet 核证。如果你要做选型评估,请直接下载对应芯片最新 datasheet 验证。
| 厂商 | 型号 | 类型 | 本文原声称 MACsec | 实际验证状态 |
|---|---|---|---|---|
| Texas Instruments | DP83TC839 | 100BASE-T1 PHY | ✅(声称) | ⚠️ 未验证(但 TC8 系列命名可能带 MACsec,建议直接查 datasheet) |
| NXP | S32G2 / S32G3 | 车载 SoC | ✅(声称) | ⚠️ 未验证(建议查 S32G Reference Manual) |
| Broadcom | BCM8953X 系列 | Automotive Switch | ✅(声称) | ⚠️ 未验证 |
| Marvell / Infineon | 88Q5050 系列 | Automotive Switch | ✅(声称) | ⚠️ 未验证 |
总结
标准部分(★ 三句话回顾 ★)
- MACsec 在哪一层:在 MAC 层(Layer 2)对整个以太网帧(包括 VLAN)提供加密和 ICV 完整性保护,比 IPsec 更贴近硬件,开销更小。
- 帧格式:在原始 MAC 帧中插入 SecTAG(8~16字节,含 EtherType=0x88E5、TCI、PN,可选 SCI)和 ICV(16字节),可选加密 Secure Data。
- SecY 架构:Common Port 始终放行非 MACsec 帧(如 EAPOL);Controlled Port 在 MKA 认证通过后放行业务帧;帧处理分 Protect(发送加密)和 Validate(接收解密校验)两路。
车载部分(★ Automotive MACsec 要点 ★)
- 点对点 + 无 SCI:只支持 switched Ethernet 点对点,SecTAG 优先省略 SCI(每帧省 8 字节)。
- Offset 0 + Integrity Only:Confidentiality Offset 0 必选,Offset 30/50 可选;Integrity Only 模式也必须支持。
- Common Port 规则 + 诊断转发:支持 ≥8 条规则将特定帧(如诊断帧)转发到 Common Port;解密失败帧可带 FCS 错误转发。
- 硬件部署:MACsec 集成在 PHY 内部(如已 datasheet 验证的 TI DP83TC817S-Q1)或 SoC/MAC IP 中(详情需查各厂商最新 datasheet);Automotive MACsec profile 不依赖 802.3br 帧抢占。
版权声明: 本文引用了 IEEE Std 802.1AE-2018 和 OPEN Alliance Automotive MACsec Specification v1.0 的内容,版权归各标准组织所有,引用仅供学习。