1. 1. 第一部分:标准篇
    1. 1.1. 一、三个核心问题
      1. 1.1.1. ❓ Q1:这个标准是什么?
      2. 1.1.2. ❓ Q2:解决什么问题?
      3. 1.1.3. ❓ Q3:如何应用?
    2. 1.2. 二、核心架构:三角色与双端口
      1. 1.2.1. 2.1 系统角色三件套
      2. 1.2.2. 2.2 端口的”两扇门”
    3. 1.3. 三、密钥层次(Key Hierarchy)
      1. 1.3.1. 3.1 三种 CAK 来源对比
      2. 1.3.2. 3.2 关键派生参数
    4. 1.4. 四、协议机制详解
      1. 1.4.1. 4.1 EAP 认证 —— PACP 状态机
      2. 1.4.2. 4.2 MKA(MACsec Key Agreement)——最核心的章节
        1. 1.4.2.1. 4.2.1 核心概念
        2. 1.4.2.2. 4.2.2 MKA 在点对点链路上的典型流程(9.17)
        3. 1.4.2.3. 4.2.3 9.8 SAK 生成规则
        4. 1.4.2.4. 4.2.4 9.12 CA Formation
        5. 1.4.2.5. 4.2.5 MKA 定时器参数
        6. 1.4.2.6. 4.2.6 9.4.3 Liveness 判断
    5. 1.5. 五、EAPOL 帧格式
    6. 1.6. 六、802.1AE MACsec 的协作关系
  2. 2. 第二部分:车载篇——OPEN Alliance Automotive MKA
    1. 2.1. 七、车载 MKA 的设计目标
    2. 2.2. 八、Automotive MKA 必选能力集
      1. 2.2.1. 8.1 MACsec 能力协商(AutoMKA-01001, 01004, 01005)
      2. 2.2.2. 8.2 启动时间:≤ 30 ms(AutoMKA-01014)
      3. 2.2.3. 8.3 Peer List 上限:2(AutoMKA-03016)
    3. 2.3. 九、Automotive MKA 删除的功能
      1. 2.3.1. 9.1 Replay Protection 固定为窗口=0(AutoMKA-01012, 01013)
    4. 2.4. 十、MKA 传输优化:10ms 起步的 doubling ramp-up(AutoMKA-03003, 03004)
    5. 2.5. 十一、Key Server 优化(AutoMKA-03007, 03008)
      1. 2.5.1. 11.1 Key Server Priority 固定(AutoMKA-03007)
      2. 2.5.2. 11.2 SAK 提前分发优化(AutoMKA-03010)
      3. 2.5.3. 11.3 强制立即 rekey(AutoMKA-03011)
    6. 2.6. 十二、PAE 状态机优化(AutoMKA-05001, 05002, 05003)
      1. 2.6.1. 12.1 多状态一次 tick 完成(AutoMKA-05001)
      2. 2.6.2. 12.2 unauthAllowed 和 unsecureAllowed 固定为 never(AutoMKA-05002, 05003)
      3. 2.6.3. 12.3 删除的 PAE 功能(AutoMKA-05004)
      4. 2.6.4. 12.4 CAK Cache KMD/NID 变为可选(AutoMKA-05005, 05006)
    7. 2.7. 十三、诊断与管理 API(AutoMKA-06001)
    8. 2.8. 十四、配置管理(AutoMKA-08001, 08002, 08003, 08004)
      1. 2.8.1. 14.1 全局配置项(所有端口统一)
      2. 2.8.2. 14.2 每端口配置项(AutoMKA-08004)
    9. 2.9. 十五、高级特性
      1. 2.9.1. 15.1 多 CAK/CKN 并行支持(AutoMKA-09001, 09002, 09003)
      2. 2.9.2. 15.2 快速 Link Down 恢复(AutoMKA-10001)
      3. 2.9.3. 15.3 MACsec 禁用时的固定时序(AutoMKA-12001, 12002)
    10. 2.10. 十六、Automotive MKA 与 Automotive MACsec 的协同
  3. 3. 总结
    1. 3.1. 标准部分(★ 三句话回顾 ★)
    2. 3.2. 车载部分(★ Automotive MKA 要点 ★)

IEEE 802.1X-2020 端口访问控制与MKA核心架构详解

本文是「以太网IEEE标准系列」第三篇,聚焦 IEEE Std 802.1X™-2020(Port-Based Network Access Control)。本文分两部分:第一部分解析通用标准(认证架构、MKA密钥层次、EAPOL协议),第二部分对照 OPEN Alliance TC17 Automotive MKA Specification v1.0(2025-02)的车载精简要求。

第一部分:标准篇

一、三个核心问题

❓ Q1:这个标准是什么?

IEEE 802.1X 全称 Port-Based Network Access Control(基于端口的网络访问控制),是 IEEE 802.1 工作组的标准之一,2020 版本号是 802.1X-2020。

它定义了一种通用架构,通过在每个 LAN 端口上划分 受控端口(Controlled Port) 与 非受控端口(Uncontrolled Port):

  • 非受控端口 —— 不管主机有没有通过认证,只允许认证相关的协议帧通行(如 EAPOL)。
  • 受控端口 —— 通过认证才”打开”,正常业务数据只能从这扇门进出。

❓ Q2:解决什么问题?

安全威胁 802.1X 的应对
未经授权设备私自接入 LAN,获取 IP 后渗透内网 端口默认关闭 → 必须通过 EAP 认证才能打开受控端口
链路窃听(Wi-Fi/可接入的铜缆/光模块) 协商出 CAK → 派生 KEK → Key Server 分发 SAK → MACsec 帧级加密
多设备/跨域/跨厂商互通 标准化协议:EAP over LAN (EAPOL)、MACsec Key Agreement (MKA)
CA 内群组成员变动(新增/离开/失效) MKA Live Peer List + 选举 Key Server + 周期性重协商

❓ Q3:如何应用?

标准第 7 章列出 7 类典型应用场景,工业落地通常从中选择:

场景编号 名称 关键组件 典型设备
7.1 物理安全 LAN 的主机接入 PAC / PAE 企业办公有线端口
7.2 物理安全 LAN 的基础设施互联 PAC / PAE 机房内交换机-交换机互联
7.3 点对点 MACsec 主机接入 SecY + PAE 数据中心 ToR-Leaf
7.4 MACsec 基础设施 LAN SecY + PAE 跨机柜/跨机房骨干
7.5 多接入 LAN 的 MACsec 主机接入 SecY + 虚拟端口 工业以太网 / daisy-chain
7.6 MACsec 组播 组 CA(group CAK) 视频分发 / 软件定义车 CAN 替代
7.7 Provider Bridged Network 中的 MACsec SecY + 桥接 运营商接入网

二、核心架构:三角色与双端口

2.1 系统角色三件套

802.1X 引入了 EAP 协议里规定的三个角色:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
      ┌──────────────────┐
│ Authentication │ ← AAA Server(集中存储用户/设备证书)
│ Server │ 通常与 Authenticator 通过 RADIUS 通信
└────────▲─────────┘
│ (RADIUS / Diameter, 标准外)
┌──────────────┴──────────────┐
│ Authenticator │ ← "门卫":等待 Supplicant 自证
│ (交换机端口 / 无线 AP) │
└──────────────┬──────────────┘
│ EAPOL over LAN
┌──────────────▼──────────────┐
│ Supplicant │ ← "访客":用户提供凭证、自证身份
│ (笔记本/手机/IoT 终端) │
└────────────────────────────┘

⚠️ Authenticator 与 Authentication Server 不必同机。大多数企业会把服务器独立部署,通过 RADIUS 把 Authenticator 转发过来的 EAP 包再处理一次。

2.2 端口的”两扇门”

这是整个标准最核心的比喻 — 每个端口都存在两扇门:

端口类型 状态 允许流通的帧
Uncontrolled Port 始终打开 仅 EAPOL、Announcement 等”用来开门”的协议帧
Controlled Port 默认关闭,通过认证后才”受控”打开 用户业务数据(被 MACsec 加密或被 PAC 转发)

标准里用两个组件去”开门”:

  • PAE(Port Access Entity):负责执行 EAP 认证 + 派生密钥 + 跑 MKA。详细行为见第 12 章。
  • PAC(Port Access Controller):轻量级”协议垫片”,在没有 MACsec、只靠物理隔离保证安全的点对点链路上简单放行/隔离流量。详细行为见第 6.4 节。

二者关系: PAE 兼容 PAC。一款实现可以只做 PAC(物理安全 LAN)或 PAE(完整加密链路),也可以同时启用。


三、密钥层次(Key Hierarchy)

802.1X 的密钥体系是整个 MACsec 链路安全的核心,它将「身份证明」和「数据加密」两个职责解耦:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌─────────────────────────────────────────────────────────────┐
│ MKA 密钥层次 │
│ (Source: IEEE 802.1X-2020, Figure 6-3) │
│ │
│ CAK(Connectivity Association Key) │
│ ─ 信任根,证明你是 CA 的成员 │
│ ─ 来源①:EAP 协商(msk[0..15]) │
│ ─ 来源②:预共享 PSK(管理员配置) │
│ ─ 来源③:Group CAK(组播分发) │
│ │ │
│ KDF(CAK, "IEEE8021 EAP CAK") │
│ │ │
│ ┌──────────┼──────────┐ │
│ ▼ ▼ ▼ │
│ KEK ICK SAK │
│ (Key Encrypting (ICV Key) (Secure Assn Key) │
│ Key,分发SAK) 校验MKPDU) ─ 实际加密帧的密钥 │
│ (周期性轮换) │
└─────────────────────────────────────────────────────────────┘

🔑 一句话:CAK 是”信任根”,由 EAP 协商;SAK 是”加密钥匙”,由 MKA 在 CA 内分发。

3.1 三种 CAK 来源对比

类型 产生方式 适用场景 Automotive MKA 态度
EAP 派生(pairwise) EAP 完成后 KDF(MSK, “IEEE8021 EAP CAK”) 默认推荐,适合已知用户的接入网 ⚠️ 可用,但非首选
预共享密钥(PSK) 管理员手工配置 pairwise/group CAK + CKN 无 AAA 环境、点对点专线、车载网络 ✅ 推荐首选
组 GAK(group CAK) 多个 pairwise CAK 一起”再分发”出一个被组内成员共同持有的 CAK 7.6 节 MACsec 组播 ❌ 不支持(AutoMKA-03008)

标准在 6.2.2 节明确禁止”用 EAP 派生出来的 pairwise CAK 再当 group CAK 用”——这是为了防止中间人拦截后扩展权限面。

3.2 关键派生参数

  • KDF:与 NIST SP 800-108 计数器模式兼容,PRF 用 AES-CMAC-128 / AES-CMAC-256。
  • CAK Label:"IEEE8021 EAP CAK"(UTF-8, 16 字节,带特定空格布局,见 6.2.2)。
  • CKN Label:"IEEE8021 EAP CKN",来源:EAP Session-ID(16 字节)。
  • ICK/KEK 长度:与 CAK 长度相同。

四、协议机制详解

4.1 EAP 认证 —— PACP 状态机

PACP(Port Access Control Protocol)是 802.1X 在链路层”装 EAP”的载体。它定义了两个对称的状态机:

  • Supplicant PACP(8.7):7 个状态,典型为 Initialize → Disconnected → Connecting → Authenticating → Authenticated → Aborting → Held → Restart。
  • Authenticator PACP(8.9):典型为 Initialize → Disconnected → Connecting → Authenticating → Authenticated → Aborting → Held → Restart。
1
2
3
4
5
6
7
8
9
10
11
12
13
Authenticator (交换机)                  Supplicant (终端)
│ │
│ ─── EAPOL-Start / EAP-Request/Identity ───► │ ① 触发 / 请求身份
│ │
│ EAP-Response/Identity │
│ ◄──────────────────────────────────── │ ② 上报身份
│ │
│ (中间可能反复 EAP-Request / Response │ ③ EAP 方法协商
│ 协商各种 Method 内部消息) │ (EAP-TLS / PEAP / GTC)
│ │
│ EAP-Success │
│ ◄──────────────────────────────────── │ ④ PAE 派生 MSK→CAK
│ PAE 把 MSK[0..15] ──► CAK │

在 Automotive MKA 场景下,这个握手会被 PSK 模式替代:EAP-TLS 等方法不需要,CAK 由预共享密钥直接提供。

4.2 MKA(MACsec Key Agreement)——最核心的章节

MKA 是 802.1X-2020 第 9 章的精华,本质是 “在一个 CA 内,选出一个 Key Server,周期性广播 SAK 给其他成员”。

4.2.1 核心概念
概念 含义
MKA Participant 每个端口上”跑 MKA 的实例”,持有 CAK,生成 Member Identifier(MI)= 1-byte MI 编号 + 6-byte 端口 MAC
Key Server 由最低 Key Server Priority 选举产生(可平局后看 MI 大小),负责生成 + 分发 SAK
MKPDU EAPOL Packet Type=5,广播组地址 01-80-C2-00-00-03
ICV 用 ICK 对 MKPDU 计算的 MAC,等于”我拥有此 CAK”的实时证明
Live Peer List / Potential Peer List 在 MKPDU 中广播对组成员的心跳
SAK 轮换 默认每 SAK Retire Time 轮换一次
4.2.2 MKA 在点对点链路上的典型流程(9.17)
  1. A、B 上线 → 各自广播 MKPDU(Basic Param + Live Peer List 自报)。
  2. 双方通过 ICV 互相认证 → 任一方发现自己有权 Key Server 时开始产 SAK。
  3. Key Server 把 SAK 用 KEK 加密后放在 Distributed SAK 集里广播。
  4. 双方都安装 SAK 到 SecY → 业务数据开始走 MACsec。
  5. SAK 即将到寿命 → 提前一个新 SAK 安到 MACsec SAK Use 集中告知 → 到时无缝轮换。
4.2.3 9.8 SAK 生成规则
  • Key Server 强 RNG + 各成员贡献:SAK 由 Key Server 的强 RNG 加上 Live Peer List 成员的 MI 拼接后 KDF 得到(9.8.1 节)。
  • 分布式 SAK 派发:Key Server 用 KEK 对 SAK 做 AES Key Wrap(RFC 3394)后放入 MKPDU 的 Distributed SAK 集广播。
  • SAK 缓存:旧 SAK 在 SAK Retire Time 内保留,供抗重放使用。
4.2.4 9.12 CA Formation
  • CA(Connectivity Association)是两个或多个端口之间的安全关联域,共享同一 CAK。
  • CA 可包含最多 30 个 MKA Participant(9.1d 节)。
  • 组 CAK 分发:Key Server 在 pairwise CA 上再发一个 Distributed CAK Set,把 group CAK 加密派发给大家。

Automotive MKA 将这一数字缩减为最多 2 人/CA(AutoMKA-03001)。

4.2.5 MKA 定时器参数
参数 默认值 说明
MKA Hello Time 2 s MKPDU 广播间隔
MKA Life Time 6 s 成员被认为掉线的超时
SAK Retire Time 3 s 旧 SAK 保留时间
Bounded Hello Time 0.5 s delay protection 开启时
4.2.6 9.4.3 Liveness 判断
  • 可接受的最新 MN:对应最近 3 个发出的 MKPDU 的 Message Number。
  • 收到更高 MN 的 MKPDU → 对方存活,刷新 Life Timer。
  • 超过 Life Time 没收到 → 对方掉线,从 Live Peer List 移除。

五、EAPOL 帧格式

EAPOL(第 11 章)是 EAP 在 LAN 上的封装,以太网类型 0x888E,分为:

Packet Type 值 用途
EAPOL-Start 0x00 Supplicant 触发认证(可省)
EAPOL-EAP 0x04 核心:承载 EAP 包
EAPOL-MKA 0x05 核心:承载 MKPDU,广播 CA 内心跳/SAK
EAPOL-Announcement 0x06 网络身份/能力广播
EAPOL-Announcement-Req 0x07 请求对方发 Announcement

多播/单播:大多数 EAPOL/EAPOL-MKA 用组地址 01-80-C2-00-00-03(便于发现),EAP-Success/EAP-Failure 用对端单播。


六、802.1AE MACsec 的协作关系

802.1X 真正强大的地方,在于它为 MACsec 提供”密钥分发通道”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
IEEE 802.1X MKA                          IEEE 802.1AE MACsec
│ │
│ CAK ──KDF──► KEK + ICK │
│ │
│ Key Server 选举 │
│ │ │
│ ▼ │
│ SAK 生成 + Key Wrap(KEK) │
│ │ │
│ ▼ │
│ MKPDU 广播 SAK │
│ │ │
└────────┼────────────────────────────────┘
│ SAK 安装到 SecY
▼
SecY Engine: MAC 帧加解密
• 加密:明文 MAC Payload ──AES-GCM──► 密文 + SecTAG + ICV
• 解密:接收方 SecY 用同一 SAK 解密 + ICV 校验

🔑 一句话:CAK 是”信任根”,由 EAP 协商;SAK 是”加密钥匙”,由 MKA 在 CA 内分发。二者解耦带来极大灵活性——一份 CAK 可以轮换出多把 SAK。


第二部分:车载篇——OPEN Alliance Automotive MKA

本部分对照 OPEN Alliance TC17 Automotive MKA Specification v1.0(2025-02, Final, Public),提取所有规范级需求(AutoMKA-xxxxx),说明车载实现与通用 IEEE 802.1X-2020 的差异。

七、车载 MKA 的设计目标

OPEN Alliance TC17 制定 Automotive MKA 的三个核心目标:

  1. 缩短最坏启动时间 — 从 IEEE 标准的 8 秒压缩到 ≤ 30 ms (AutoMKA-01014)
  2. 移除不需要的功能 — 精简掉 in-service upgrade、MKA suspension、distributed CAK、KMD、NID 等车载用不到的特性
  3. 添加车载特有功能 — 多 CKN 并行支持(适配不同车型项目)、快速 Link Down 恢复、API 管理接口

与通用 MKA 的兼容性:Automotive MKA 与标准 IEEE 802.1X MKA 可互操作,前提是两端配置为仅使用共同特性。但性能会下降到不符合 AutoMKA-01014 的 30 ms 要求。


八、Automotive MKA 必选能力集

以下能力在 Automotive MKA 实现中是必须支持的:

8.1 MACsec 能力协商(AutoMKA-01001, 01004, 01005)

1
2
3
4
5
6
7
8
9
Automotive MKA 必须支持以下 MACsec 能力:

✅ Integrity without Confidentiality(仅完整性校验)
✅ Integrity and Confidentiality with Offset 0(带加密,偏移0)
✅ MACsec SecTAG 有 SCI / 无 SCI 两种模式
└── 无 SCI 模式:点对点 CA 可省略 SCI,节省 8 字节/帧
✅ XPN(Extended Packet Number)cipher suite
✅ Non-XPN cipher suite
✅ 256-bit CAKs 和 128-bit CAKs

Confidentiality Offset 30 和 50 是可选的(AutoMKA-01002),目前没有已知的车载用例需要它们。

8.2 启动时间:≤ 30 ms(AutoMKA-01014)

这是 Automotive MKA 与通用标准最大的工程差异:

参数 IEEE 802.1X MKA Automotive MKA
最坏启动时间 8 秒(默认) ≤ 30 ms
测量起点 Link Up Link Up
测量终点 SAK_USE RX/TX 建立(两端) 相同

⚠️ 注意:该要求适用于单个 switched Ethernet 链路。ECU 级的性能目标受 SoC 型号、端口数量、HSM 延迟、MDIO 性能等因素影响,可能无法在所有 ECU 上实现(AutoMKA §1 注)。

8.3 Peer List 上限:2(AutoMKA-03016)

通用标准支持最多 30 个 MKA Participant,但 switched Automotive Ethernet 链路只有两个对等节点,因此 Automotive MKA 将 Peer List 大小限制为 2:

  • 最小内存分配:1(正常 Peer) + 1(Reset 场景备用)

九、Automotive MKA 删除的功能

以下通用 MKA 特性在 Automotive MKA 中不支持(可在实现中省略):

特性 IEEE 802.1X 章节 Automotive MKA 要求
In-service upgrades 9.18 节 ❌ 不支持(AutoMKA-03006)
MKA Suspension 9.19 节 ❌ 不支持(AutoMKA-03007)
Distributed CAKs 9.12 节 ❌ 不支持(AutoMKA-03008)
Key Management Domains(KMD) 6.3.5 节 ❌ 不支持(AutoMKA-02009)
Network Identifiers(NIDs) 6.3.5 节 ❌ 不支持(AutoMKA-02010)
Cipher Suite 协商 9.13 节 ❌ 不支持(AutoMKA-11001)
Secure Announcements 9.13 节 ❌ 不支持(AutoMKA-02001)
动态降级 MACsec 9.13 节 ❌ 不支持(AutoMKA-02011)
Replay Protection 关闭 可配置 ❌ 不支持,Replay Window 固定=0(AutoMKA-01012/01013)

为什么删除这些? 车载网络是静态设计的,两点之间只有一个网络(AutoMKA-02001 注);车内不需要组播(group CAK);KMD/NID 等多域特性在单一车型内无意义;Cipher Suite 协商增加不必要的复杂度和攻击面。

9.1 Replay Protection 固定为窗口=0(AutoMKA-01012, 01013)

1
2
3
4
Replay Protection Window = 0:
─ 任何收到的 PN 小于最近收到的 PN 的帧,一律丢弃
─ 这是最强 replay 保护,也是唯一的 Automotive MKA 配置
─ 关闭 Replay Protection 不在互操作范围内(AutoMKA-01012 注)

十、MKA 传输优化:10ms 起步的 doubling ramp-up(AutoMKA-03003, 03004)

通用标准使用固定的 2 秒 Hello Time,Automotive MKA 使用加速 ramp-up 序列:

1
2
3
4
5
6
7
8
9
10
Automotive MKA 启动时序(Link Up 后):

10ms ──► 20ms ──► 40ms ──► ... ──► 2s
↑
所有事件立即响应:
· 收到未知 Peer 的 MKPDU → 立即回复 Potential Peer List
· Peer 变为 Live → 立即回复 Distributed SAK(Key Server)
· Peer List 变化 → 立即发送 MKPDU(不等 Hello Time)

─── 达到 2s 后切换为标准 MKA Hello Time ───

与通用 MKA 的区别:

事件 通用 MKA Automotive MKA
链路 Up 后首次发送 等 2s Hello Time 立即发送,10ms 后重试(AutoMKA-03004)
收到未知 Peer 等 Hello Time 到期 立即响应(AutoMKA-03003)
Peer 变 Live 等 Hello Time 到期 立即发送 SAK(AutoMKA-03003)
MN Liveness 判断 最近 3 个 MKPDU 最近 3 个 MKPDU(与通用一致)(AutoMKA-03005)

十一、Key Server 优化(AutoMKA-03007, 03008)

11.1 Key Server Priority 固定(AutoMKA-03007)

通用标准 Key Server Priority 是可配置参数,Automotive MKA 简化为只有两个有效值:

Priority 值 含义 典型用途
0 始终是 Key Server 交换机侧(网关/域控制器)
255 永不主动成为 Key Server 终端侧(sensor ECU)

这样设计确保 link up 后没有选举争议,Key Server 直接开始生成和分发 SAK,零协商延迟。

11.2 SAK 提前分发优化(AutoMKA-03010)

1
2
3
4
5
6
7
8
9
10
11
通用流程:
Key Server 生成 SAK → 安装到本地 SecY → 发送 Distributed SAK → Peer 安装 SAK
时间线: [生成][安装][发送]────────────────► [Peer安装]
└──────── 两者间隔时间,这段时间链路有安全空窗 ──┘

Automotive MKA 优化:
Key Server 生成 SAK → 发送 Distributed SAK → 安装到本地 SecY
时间线: [生成][发送]─────────────► [本地安装]
↑
Peer 收到后立即安装
└── 显著减少两端建立 SAK 的时间差 ──┘

此优化在 Key Server 安装 SAK 时间较长时(例如 MACsec 在外置 PHY,通过 MDIO 配置)尤其有效。

11.3 强制立即 rekey(AutoMKA-03011)

如果 Key Server 收到 Peer 的 MKPDU 满足以下任一条件,立即触发 rekey:

  • MKPDU 没有 SAK Use
  • MKPDU 有无效 SAK Use
  • MKPDU 有空 SAK Use

十二、PAE 状态机优化(AutoMKA-05001, 05002, 05003)

12.1 多状态一次 tick 完成(AutoMKA-05001)

通用标准要求 PAE 状态机逐个状态切换,Automotive MKA 允许一次 tick 内到达终态:

1
2
3
4
5
6
7
8
9
通用 MKA PAE 状态机(逐状态跳转,每事件一个状态):
RECEIVE ─► TRANSMITTING ─► DONE ─► RETIRE ─► ...
[tick][tick][tick][tick] (每个状态一个 tick)

Automotive MKA PAE(一次 tick 内到达终态):
RECEIVE ──► TRANSMITTING ──► ... ──► RETIRE ─► final state
[one tick]──────────────────────────────────────► ✓

两端必须互操作:Automotive MKA 节点也必须能接受标准节点的逐状态行为。

12.2 unauthAllowed 和 unsecureAllowed 固定为 never(AutoMKA-05002, 05003)

参数 IEEE 802.1X Automotive MKA
unauthAllowed 可配置 固定=never(AutoMKA-05002)
unsecureAllowed 可配置 固定=never(AutoMKA-05003)

这意味着未认证状态下,即使 MACsec 未建立,受控端口也绝对不放行任何非认证帧。只有认证完成且 SAK 安装后,业务流量才放行。

12.3 删除的 PAE 功能(AutoMKA-05004)

删除功能 IEEE 章节 说明
Network Identities 12.5.3 NID 不支持,自然删除
Session Statistics 12.5.4 车内诊断不需要
Virtual Port Creation/Deletion 12.7 点对点链路不需要虚拟端口
EAPOL Frame Reception Statistics 12.8.1 精简
EAPOL Frame Reception Diagnostics 12.8.2 精简
EAPOL Frame Transmission Statistics 12.8.3 精简

12.4 CAK Cache KMD/NID 变为可选(AutoMKA-05005, 05006)

通用标准要求 CAK Cache 必须包含 KMD 和 NID,Automotive MKA 将其改为可选。


十三、诊断与管理 API(AutoMKA-06001)

通用标准依赖 SNMP MIB 进行管理,Automotive MKA 不使用 SNMP 和 MIB,改为 API 方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
必须支持的 API(所有 API 参数名和类型均可在实现中做等价映射):

[ ] Activate/Deactivate MKA (AutoMKA-07002)
In: port_number(255=all), enabled
[ ] Get MKA Activation (AutoMKA-07003)
In: port_number → Out: enabled
[ ] Get MKA Activations (AutoMKA-07004)
→ Out: 所有端口的激活状态数组
[ ] Activate/Deactivate CKN (AutoMKA-07005)
In: CKN[1..32], port_number, enabled
[ ] Get CKN Activation (AutoMKA-07006)
In: CKN → Out: port_number + enabled 数组
[ ] Event CKN Activations (AutoMKA-07007)
→ Out: 所有 CKN 的激活状态事件数组
[ ] Get PAE Status / PAE Status Event(AutoMKA-07008)
→ Out: MKA状态枚举(Running/Waiting_For_Link_Up/Waiting_For_Peer/
In_Progress/Auth_Fail/Undefined)
+ peer_sci[8] + ckn_in_use[1..32] + cipher_suite
[ ] Get MACsec Statistics (AutoMKA-07009)
→ Out: tx_secy_statistics + rx_secy_statistics
+ tx_sc_statistics[] + rx_sc_statistics[]
(与 IEEE 802.1AE SecYStatsEntry 对齐)

十四、配置管理(AutoMKA-08001, 08002, 08003, 08004)

14.1 全局配置项(所有端口统一)

参数 默认值 说明
Hello time 2 s 标准 MKA 默认值
Bounded hello time 0.5 s delay protection 开启时
Lifetime 6 s 标准 MKA 默认值
SAK retire time 3 s 标准 MKA 默认值
Hello time ramp [10ms, 20ms, 40ms, …, 2s] doubling 序列(AutoMKA-08003)
Rekey 周期 可配置(0s~24h) SAK 生命周期(AutoMKA-08002)

14.2 每端口配置项(AutoMKA-08004)

配置项 选项 说明
PSK(CAK & CKN) 16~32 字节 预共享密钥
Include SCI in SecTAG OFF/ON 仅在某些架构下需要
MKA enabled true/false 端口级开关
MACsec enabled true/false MACsec 使能
KAY role SERVER / CLIENT AUTO 不支持(AutoMKA-08004)
Delay protection ON / OFF 开启时使用 bounded hello time
Participant activation DISABLED / ONOPERUP / ALWAYS 激活时机
Logon enabled true/false MKA 会话开关
Use_EAP NEVER / IMMEDIATE / ON_MKA_FAIL EAP 用途
Cipher preference 单条目(无协商) 固定 cipher suite
Confidentiality integrity_only / integrity_with_confidentiality 是否加密
Confidentiality offset 0 / 30 / 50 0 必选,30/50 可选

十五、高级特性

15.1 多 CAK/CKN 并行支持(AutoMKA-09001, 09002, 09003)

一辆车可能有多个车型项目,同一 ECU 会被用于不同项目而有不同 CAK 配置。Automotive MKA 支持:

1
2
3
4
5
6
7
8
9
10
11
12
13
ECU 启动时:

所有 CKN 同时激活 ──► 并行发送 MKPDU
│ │
│ ┌─────────┴──────────┐
│ ▼ ▼
│ Peer 接受 CKN1 Peer 接受 CKN2
│ SAK 建立成功 (被忽略)
│ │ │
└─────────┼─────────────────────┘
▼
CKN1 的 SAK 用于 MACsec
其余 CKN 的 MKPDU 停止发送(节省资源)
  • Link Down 或 MKA 会话终止时,所有 CKN 恢复发送,下次 Link Up 重新协商(AutoMKA-09002)。
  • 最大并行 CKN 数量由实现决定(AutoMKA-09003 注)。

通用标准链路 Down 后,Peer 需等待 6 秒 Life Time 才认为对方掉线。Automotive MKA 通过 MI 刷新机制加速:

1
2
3
4
5
6
7
8
9
10
Automotive MKA 链路 Down 恢复流程:

链路 Down ──► 本端 MI 改变 ──► Link Up ──► 发送新 MI 的 MKPDU
│
▼
Peer 收到新 MI 的 MKPDU → 立即识别为新会话
│
▼
立即重新协商 SAK ──► MACsec 恢复
(无需等待 6s Life Time)

通用 MKA 实现需要在收到新 MI + 本端 MI 在对方 Potential/Live Peer List 中时,才确认是新会话(AutoMKA-03006)。

15.3 MACsec 禁用时的固定时序(AutoMKA-12001, 12002)

Automotive MKA 支持在 MACsec 禁用的情况下运行 MKA,此时:

  • MACsec 与 MKA 的联动被禁用(不安装 filter、不安装 key、不读取 PN/XPN 计数器)
  • 配置自动设为 MACsec_desired=false + 显式选择 Null Cipher Suite
  • 链路 Up 信令延迟与正常 MKA 启动时序一致(~30 ms),避免应用层因时序差异而需特殊处理

十六、Automotive MKA 与 Automotive MACsec 的协同

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
┌──────────────────────────────────────────────────────────────────┐
│ Automotive MKA + Automotive MACsec │
│ │
│ Zone Controller ECU │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Automotive MKA(固件) │ │
│ │ · PSK CAK/CKN │ │
│ │ · Key Server Priority = 0 │ │
│ │ · ≤ 30 ms SAK 交付 │ │
│ │ · Doubling ramp-up Hello Time │ │
│ └──────────────────────┬─────────────────────────────────────┘ │
│ │ SAK 安装 │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Automotive MACsec SecY Engine(硬件) │ │
│ │ · 点对点 MACsec │ │
│ │ · SecTAG 可无 SCI(省 8 字节) │ │
│ │ · Confidentiality Offset 0 │ │
│ │ · Replay Window = 0 │ │
│ └──────────────────────┬─────────────────────────────────────┘ │
│ │ 加密 MAC 帧 │
│ ▼ │
│ 100BASE-T1 / 1000BASE-T1 链路 │
└──────────────────────────────────────────────────────────────────┘

本节协同关系基于 OPEN Alliance Automotive MACsec Specification v1.0 §2(AutoMACsec-0100101008)和 Automotive MKA Specification v1.0 §1§4。


总结

标准部分(★ 三句话回顾 ★)

  1. 是什么:IEEE 802.1X 是基于 MAC 端口的”认证 + 授权 + 密钥协商”通用框架,通过受控/非受控端口二象限模型隔离未授权流量。
  2. 解决什么:阻止未授权 LAN 接入、把密钥分发链路(MKA)与 MACsec(数据加密)解耦,使 CAK/SAK 滚动轮换成为可能。
  3. 怎么用:选 PAE 还是 PAC,选 EAP-TLS / PSK / 组 CAK;按 Clause 7 七大场景(物理安全 / 点对点 MACsec / 多接入 / 组播 / Provider Bridged)落地。

车载部分(★ Automotive MKA 要点 ★)

  1. ≤ 30 ms 启动:Doubling ramp-up Hello Time(10ms→20ms→40ms→…→2s) + 立即响应未知 Peer + 固定 Key Server Priority(0/255)。
  2. 删除不需要的特性:无 KMD/NID、无 in-service upgrade/suspension、无 distributed CAK、无 cipher suite 协商。
  3. 车载特有增强:多 CKN 并行支持(首个成功者建立 MACsec)、MI 刷新快速 Link Down 恢复、Replay Window 固定=0、API 管理接口替代 SNMP。

版权声明: 本文引用了 IEEE Std 802.1X-2020 和 OPEN Alliance Automotive MKA Specification v1.0 的内容,版权归各标准组织所有,引用仅供学习。