<!-- title: 5G切片二次认证NSSAA信令拆解 -->
<!-- domain: security -->

# 5G网络切片特定认证与授权（NSSAA）信令全链拆解

## 一、为什么主鉴权之后还需要"切片二次认证"

5G的主鉴权（Primary Authentication，5G AKA 或 EAP-AKA'）解决的是"网络认 UE、UE 认网络"的归属问题，鉴权成功后 UE 获得 SUPI 解掩蔽、安全上下文以及一组 **Allowed NSSAI**。但 R15 引入网络切片（Network Slicing）后，3GPP 面对一个新的现实问题：**一个 S-NSSAI（切片）的运营方，可能并不是签约 UE 的 PLMN 运营商本身**。

典型场景包括：电力差动保护切片由电网公司运营、工业园区 SNPN（独立非公网）由园区管理方控制、车联网切片由车企或第三方平台管理。这些"切片租户"希望对进入自己切片的 UE 做一次**独立的、基于自身凭证的认证与授权**，而不完全信任 PLMN 的主鉴权结论。这正是 **NSSAA（Network Slice-Specific Authentication and Authorization，网络切片特定认证与授权）** 的设计初衷。

NSSAA 本质上是一次**叠加在主鉴权之上的、按切片粒度的二次 EAP 认证**。它由 AMF 触发，由 **NSSAAF（NSSAA Function）** 充当核心网侧的 EAP / AAA 代理，与位于切片运营商域内的 **AAA-S（AAA Server）** 交互。整个过程定义在 TS 23.502 Section 4.20（过程）、TS 33.501（安全）、TS 29.526（NSSAAF 的 SBI 接口 Nnssaaf）、TS 24.501（NAS 层 EAP 承载）之中。

需要特别强调一个设计意图：**NSSAA 是认证与授权，但不派生接入层密钥**。它产生的 EAP MSK（主会话密钥）不会回灌到 5G 密钥层级（KAMF→KgNB）中去，UE 与 gNB 之间的空口加密/完整性保护仍由主鉴权派生的密钥负责。NSSAA 的产物只有一个——一个"该 S-NSSAI 是否被授权"的布尔结论，AMF 据此更新 Allowed NSSAI。

## 二、网元、参考点与职责划分

NSSAA 涉及的核心网元及其关系如下图所示。注意现代 5GC 全部为 SBI 接口，AMF 与 NSSAAF 之间不再是传统的点对点 N27 参考点，而是 `Nnssaaf` 服务。

```mermaid
flowchart TD
    UE["UE<br/>(EAP Peer)"]
    AMF["AMF<br/>EAP Authenticator<br/>触发/中继"]
    NSSAAF["NSSAAF<br/>AAA 代理/会话映射"]
    UDM["UDM/UDR<br/>切片订阅+NSSAA标志"]
    AAA["AAA-S<br/>切片租户域"]
    DN["切片运营商/DN"]

    UE -->|NAS: UL/DL NAS TRANSPORT<br/>承载 EAP| AMF
    AMF -->|Nnssaaf_* SBI<br/>TS 29.526| NSSAAF
    UDM -.->|Nudm_SDM_Get<br/>订阅数据| AMF
    NSSAAF -->|"SWn / AAA协议<br/>(RADIUS/Diameter)"| AAA
    AAA --- DN
```

各网元职责：

- **UE**：作为 EAP Peer，需支持至少一种 EAP 方法（公网切片通常用 EAP-AKA'，企业/车联网切片常用 EAP-TLS）。
- **AMF**：扮演 **EAP Authenticator** 的"前哨"角色。它本身不验证 EAP 凭证，只负责 EAP 消息在 NAS 与 NSSAAF 之间的中继、发起触发、并最终消费授权结论。
- **NSSAAF**：核心中转。负责把一个 EAP 会话**绑定到正确的 (SUPI, S-NSSAI, AMF) 三元组上下文**；负责与 AAA-S 之间的 AAA 协议互通；负责缓存授权结果与有效期。
- **AAA-S**：真正的认证决策点，部署在切片运营商域内，持有切片专属凭证（如切片内 SIM、证书）。
- **UDM/UDR**：在订阅数据中为每个 S-NSSAI 标注 "NSSAA Required" 标志，以及指向 AAA-S 的路由信息。

> **设计要点**：为什么 EAP Authenticator 放在 AMF 而不是 SMF？因为切片授权结论需要在**注册阶段**（PDU 会话建立之前）就可用——AMF 是注册过程的锚点，只有它能最早决定 Allowed NSSAI。如果把认证放在 SMF，则 UE 可能先建好 PDU 会话再被认证，存在安全窗口。

## 三、触发判断：何时发起 NSSAA

NSSAA 不是无条件发起的，AMF 需要在**主鉴权完成后**根据订阅数据做出判断。判定逻辑如下：

```mermaid
flowchart TD
    A["UE发起注册/请求切片<br/>Requested NSSAI"] --> B["AMF完成主鉴权<br/>建立安全上下文"]
    B --> C["AMF: Nudm_SDM_Get<br/>取切片订阅"]
    C --> D{S-NSSAI 订阅<br/>是否标注 NSSAA?}
    D -- 否 --> E["直接放入 Allowed NSSAI"]
    D -- 是 --> F["放入 Pending NSSAI<br/>触发 NSSAA"]
    F --> G["AMF选择 NSSAAF<br/>Nnssaaf_Authentication Obtain"]
    G --> H{EAP结果}
    H -- 成功 --> I["移入 Allowed NSSAI"]
    H -- 失败/超时 --> J["移入 Rejected NSSAI"]
```

判定关键依赖 **Pending NSSAI** 这个 R16 引入的概念。当某个 S-NSSAI 正处于 NSSAA 流程中时，它既不在 Allowed NSSAI 里，也不在 Rejected NSSAI 里，而是被临时放进 **Pending NSSAI**，以避免 UE 在认证未决时反复请求同一切片。Pending NSSAI 由 AMF 维护，在 UE 与网络之间通过 Configuration Update Command 同步。

## 四、UE 触发的 NSSAA 完整信令时序

下图是 TS 23.502 Section 4.20.2 定义的 **UE initiated NSSAA** 完整流程，这也是抓包中最常见的形态（通常嵌在 Initial Registration 过程的后半段）。

```mermaid
sequenceDiagram
    participant UE
    participant AMF
    participant NSSAAF
    participant AAA as AAA-S
    participant UDM

    UE->>AMF: Registration Request (Requested NSSAI)
    Note over AMF,UDM: 主鉴权(5G AKA)完成,建立安全上下文
    AMF->>UDM: Nudm_SDM_Get (SUPI)
    UDM-->>AMF: Subscribed S-NSSAI + "NSSAA Required"
    Note over AMF: 该S-NSSAI入Pending NSSAI
    AMF->>NSSAAF: Nnssaaf_NSSAA_Authentication Obtain<br/>(SUPI, S-NSSAI, GPSI, Serving PLMN)
    NSSAAF->>AAA: AAA-Request (建立EAP会话)
    AAA-->>NSSAAF: EAP-Request/AKA'-Challenge<br/>(RAND, AUTN, MAC, KDF)
    NSSAAF-->>AMF: EAP message (封装EAP-Request)
    AMF->>UE: DL NAS TRANSPORT<br/>(Payload Container = EAP-Request)
    UE->>AMF: UL NAS TRANSPORT<br/>(Payload Container = EAP-Response/RES*)
    AMF->>NSSAAF: Nnssaaf_NSSAA_Authentication Confirm<br/>(EAP-Response)
    NSSAAF->>AAA: AAA-Response (RES*)
    AAA-->>NSSAAF: EAP-Success (+ MSK/授权属性)
    NSSAAF-->>AMF: Authentication Success<br/>(Authorized S-NSSAI, 有效期)
    AMF->>UE: Configuration Update Command<br/>(Updated Allowed NSSAI)
```

### 逐步 IE 解析

**第 1 步 — Registration Request**：UE 在 `Requested NSSAI` 中携带希望使用的切片列表。此时 AMF 还不能据此授权，需先完成主鉴权与订阅查询。

**第 2-4 步 — Nudm_SDM_Get**：AMF 调用 UDM 的 `Nudm_SDM_Get`（TS 29.503），订阅数据中每个 S-NSSAI 携带一个 `nsaai`/NSSAA 标志。UDM 返回的 `SliceMbr`/订阅数据里会明确标出哪些切片需要二次认证。

**第 5 步 — Nnssaaf_NSSAA_Authentication Obtain**：这是 NSSAA 流程真正开始的 SBI 调用（TS 29.526）。关键 IE：

| IE 名称 | 含义 | 作用 |
|---------|------|------|
| `SUPI` | 用户永久标识 | 在 NSSAAF 建立会话上下文 |
| `S-NSSAI` | 切片标识 | 区分这是哪个切片的认证 |
| `GPSI` | 通用公共订阅标识 | AAA-S 用它映射到切片租户侧用户档案 |
| `Serving network name` | 服务 PLMN/SNPN | 用于 EAP-AKA' 的密钥衍生输入 |
| `AAA-S selection info` | AAA-S 路由 | UDM 下发，用于 NSSAAF 选路 |

**第 6-9 步 — EAP 交换**：NSSAAF 与 AAA-S 建立 AAA 会话后，把 AAA-S 生成的 `EAP-Request/AKA'-Challenge`（含 RAND、AUTN、MAC）回传给 AMF。AMF 不解析 EAP 内容，直接用 **DL NAS TRANSPORT** 消息（TS 24.501 Section 4.4.6）的 `Payload container`（类型 = "EAP message"）封装下行。UE 用 **UL NAS TRANSPORT** 携带 `EAP-Response` 上行。EAP-AKA' 的 challenge/response 通常 1~2 轮即可完成。

**第 10-11 步 — Nnssaaf_NSSAA_Authentication Confirm**：每轮 UE 的 EAP-Response 都通过 `Authentication Confirm` 操作回传给 NSSAAF。最后一轮 AAA-S 返回 `EAP-Success` 及可选的 MSK。NSSAAF 据此向 AMF 返回**认证成功 + 被授权的 S-NSSAI + 授权有效期（Re-authentication 时间窗）**。

**第 12 步 — Configuration Update Command**：AMF 把该 S-NSSAI 从 Pending 移入 **Allowed NSSAI**，通过 UE Configuration Update Command 下发更新后的 Allowed NSSAI。此后 UE 方可在该切片上建立 PDU 会话。

## 五、Network-initiated 重认证与 Revocation 撤销

NSSAA 不是一次性结论，AAA-S 可随时主动介入。TS 23.502 Section 4.20.3/4.20.4 定义了两个网络侧主动流程：

```mermaid
sequenceDiagram
    participant AAA as AAA-S
    participant NSSAAF
    participant AMF
    participant UE

    Note over AAA: 场景1:密钥到期/策略变更
    AAA->>NSSAAF: 触发Re-Authentication (S-NSSAI)
    NSSAAF->>AMF: Nnssaaf_NSSAA_ReAuthentication
    AMF->>UE: DL NAS TRANSPORT (EAP-Request)
    Note over UE,AMF: 重复EAP交换...
    AMF->>NSSAAF: 结果
    NSSAAF-->>AAA: 结果

    Note over AAA: 场景2:撤销授权
    AAA->>NSSAAF: 撤销指示
    NSSAAF->>AMF: Nnssaaf_NSSAA_Revocation Notification
    Note over AMF: S-NSSAI移入Rejected NSSAI
    AMF->>AMF: 触发已建PDU会话释放(该切片)
    AMF->>UE: Configuration Update Command
```

**重认证（Re-authentication）**：当 AAA-S 因密钥到期、策略变更或安全事件需要重新核验 UE 时，通过 NSSAAF 向 AMF 发起 `Nnssaaf_NSSAA_ReAuthentication`，AMF 再次向 UE 下发 EAP-Request，过程与首次类似。期间该 S-NSSAI 可保留在 Allowed NSSAI，但若认证失败则立即转入 Rejected。

**撤销（Revocation）**：AAA-S 直接判定某 UE 不再有权使用该切片，通过 `Nnssaaf_NSSAA_Revocation Notification` 通知 AMF。AMF 的处理非常关键：除了把 S-NSSAI 移入 Rejected NSSAI 外，还必须**主动释放该切片上已建立的所有 PDU 会话**（触发 SMF 执行 PDU Session Release），否则撤销形同虚设。这是实战中最容易被忽视的联动点。

## 六、Nnssaaf SBI 服务操作总表

NSSAAF 的 SBI 接口在 TS 29.526 中定义，资源 URI 前缀为 `/naa-nssaaf/v1/`，主要服务操作如下：

| 服务操作 | 方向 | 触发时机 | 关键作用 |
|----------|------|----------|----------|
| `Nnssaaf_NSSAA_Authentication Obtain` | AMF→NSSAAF | 首次发起切片认证 | 建立 EAP 会话，索取第一个 EAP-Request |
| `Nnssaaf_NSSAA_Authentication Confirm` | AMF→NSSAAF | 每轮 UE EAP-Response 上行 | 转发 EAP-Response，最终得结论 |
| `Nnssaaf_NSSAA_ReAuthentication` | NSSAAF→AMF | AAA-S 主动重认证 | 通知 AMF 重新启动 EAP 交换 |
| `Nnssaaf_NSSAA_Revocation Notification` | NSSAAF→AMF | AAA-S 撤销授权 | 触发切片访问回收+PDU 会话释放 |

Obtain 与 Confirm 通常用 `POST`，订阅/通知类（ReAuthentication、Revocation）走 `createNotification`/回调模式。NSSAAF 内部必须为每个 (SUPI, S-NSSAI) 维护一个 EAP 会话状态机，处理多轮交互、超时与去重。

## 七、与主鉴权的核心对比

| 维度 | 主鉴权（Primary 5G AKA） | 切片二次认证（NSSAA） |
|------|-------------------------|----------------------|
| **触发** | 注册/切换必然触发 | 仅当订阅 S-NSSAI 标注 NSSAA |
| **决策点** | UDM/ARPF + AUSF | 切片租户的 AAA-S |
| **凭证来源** | USIM（归属 PLMN） | 切片专属（独立 SIM/证书） |
| **密钥产物** | KSEAF→KAMF→KgNB，派生空口密钥 | 仅 MSK，**不**进入 5G 密钥层级 |
| **承载消息** | NAS Authentication 三件套 | NAS TRANSPORT 承载 EAP |
| **粒度** | UE 级（全网） | S-NSSAI 级（单切片） |
| **结论产物** | 安全上下文 + Allowed NSSAI 初值 | 更新 Allowed/Pending/Rejected NSSAI |

## 八、抓包识别与排错实战

**如何识别 NSSAA 流程**：在 Wireshark 中过滤 5G NAS 消息，NSSAA 的特征是出现成对的 **DL NAS TRANSPORT / UL NAS TRANSPORT**，且其 `Payload container type = "EAP message"`（值 0x02 或 0x03）。展开 Payload Container 可见 EAP Code=1(Request)/2(Response)/3(Success)/4(Failure)，Type 字段可区分 EAP-AKA'(50) 与 EAP-TLS(13)。同时 SBI 接口侧可看到对 `naa-nssaaf` 服务的 HTTP/2 POST。

**常见故障点**：
1. **UE 不支持 NSSAA**：当 AMF 发现切片需 NSSAA 但 UE 能力不支持时，该 S-NSSAI 直接进 Rejected NSSAI。排错时检查 UE 是否在 NAS 能力中声明支持，以及 EAP 方法是否与 AAA-S 协商一致。
2. **AAA-S 路由失败**：NSSAAF 无法根据 UDM 下发的 AAA-S selection info 选路，导致 Obtain 超时。检查 NSSAAF 与 AAA-S 之间的 SWn 链路、AAA 协议（RADIUS/Diameter）配置。
3. **EAP-AKA' 密钥衍生不匹配**：`Serving network name` 输入不一致会导致 RES* 校验失败。需确保 NSSAAF、UE、AAA-S 三方使用的 serving network name 完全相同。
4. **Revocation 后 PDU 会话未释放**：AMF 收到 Revocation Notification 但未联动 SMF 释放该切片 PDU 会话，导致"认证已撤销但业务仍通"的安全漏洞。（部分早期实现确实存在该缺陷）。
5. **Pending NSSAI 卡死**：EAP 交互超时且未清理，S-NSSAI 长期滞留 Pending。需检查 AMF 的 NSSAA 定时器配置（典型 30s）。

**厂商差异**：爱立信、华为、中兴对 NSSAAF 的部署位置不同——有的与 AUSF 共部署，有的独立 NF；对 AAA-S 协议支持上，部分厂商仅支持 Diameter，部分同时支持 RADIUS。这在跨厂商切片互联测试中是常见踩坑点。

## 九、常见问题

**Q1：NSSAA 和 EPS 时代的 Secondary Authentication 是什么关系？**
A：概念上一脉相承但机制不同。EPS 的 Secondary Authentication 是 PDN 连接级的，由 SMF 触发、与 DN-AAA 交互；而 5G NSSAA 是**切片级**的，由 AMF 触发、通过 NSSAAF 与切片级 AAA-S 交互，且在注册阶段即可执行，授权粒度更靠前。两者也可共存：切片级 NSSAA 通过后，SMF 仍可对具体 DN 做二次认证。

**Q2：EAP-AKA' 产生的 MSK 为什么不用于空口加密？**
A：这是 3GPP 刻意的设计隔离。空口加密密钥必须由归属 PLMN 的根密钥 K 单向派生，以保证整个 5G 密钥层级的一致性与可追溯性。切片租户的 AAA-S 是**不可信的第三方域**，若将其 MSK 引入 5G 密钥树，会引入跨信任域的密钥耦合与潜在泄露面。因此 NSSAA 的 MSK 仅在 NSSAAF/AAA-S 内部用于该切片会话级别的衍生，与接入层密钥严格隔离。

**Q3：Pending NSSAI 会被 UE 保存吗？跨 AMF 移动如何处理？**
A：Pending NSSAI 主要由 AMF 在注册区内维护并下发给 UE。当 UE 发生跨 AMF 移动（新 AMF 通过 UDM 可看到该 S-NSSAI 仍需 NSSAA），新 AMF 会重新判断并可能再次触发 NSSAA——除非原 NSSAAF 上下文可被新 AMF 复用。R17/R18 增强了上下文迁移机制以减少重复 EAP 交互。

**Q4：如果 AAA-S 不可达，UE 能正常使用其他切片吗？**
A：能。NSSAA 是按 S-NSSAI 独立判定的，仅被标注 NSSAA 的切片受影响（进入 Rejected 或滞留 Pending），其他切片的 Allowed NSSAI 不受影响。这体现了切片间的安全隔离原则。

## 参考来源

1. [3GPP TS 23.502 — System procedures for the 5G System, Section 4.20 Network Slice-Specific Authentication and Authorization](https://www.3gpp.org/dynareport/23502.htm) — NSSAA stage-2 过程定义
2. [3GPP TS 29.526 — NSSAAF Service Based Interface Protocol](https://www.etsi.org/deliver/etsi_ts/129500_129599/129526/) — Nnssaaf SBI 服务操作 stage-3 定义
3. [3GPP TS 33.501 — Security architecture and procedures for the 5G System](https://www.3gpp.org/dynareport/33501.htm) — NSSAA 安全过程与 EAP-AKA' 应用
4. [3GPP TS 24.501 — NAS protocol, Section 4.4.6 Slice-specific authentication](https://www.3gpp.org/dynareport/24501.htm) — NAS 层 EAP 消息承载（UL/DL NAS TRANSPORT Payload Container）
5. [网络切片特定鉴权和授权过程（中文解读）](https://www.cnblogs.com/bitmetaverse/articles/18060242) — 流程图与中文机制分析

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
