<!-- title: 5G切片NSSAA鉴权机制拆解 -->
<!-- domain: core-network -->

# 5G切片NSSAA鉴权机制拆解：从主认证到切片租户二次授权的信令全链

## 一、为什么需要"切片二次鉴权"：设计意图与架构定位

5G网络切片（Network Slicing）让运营商可以把一张物理网络切出多个逻辑网络，分别服务于 eMBB、URLLC、mMTC 以及垂直行业专网（车联网、工业、医疗等）。但这里引出一个传统网络没有的安全问题：**主网络认证（Primary Authentication，5G AKA / EAP-AKA'）只能证明"这个 UE 是运营商网络的合法签约用户"，却无法证明"这个 UE 有权接入某一个特定的行业切片"。**

举个例子：运营商把 SST=1（eMBB）的公共切片开放给所有签约用户；同时为某汽车厂部署了 SST=2 / SD=0xABCD 的车联网切片，该切片由汽车厂的 AAA 服务器（AAA-S）独立管理凭据。一个普通消费者 UE 即使是运营商合法用户，也不应自动获得车联网切片的接入权——它必须再被**汽车厂自己的 AAA-S** 鉴权一次。

这就是 3GPP 在 **Rel-16** 引入的 **NSSAA（Network Slice-Specific Authentication and Authorization，网络切片特定鉴权与授权）**，俗称"切片二次鉴权"。其规范定义在：

- **TS 23.502 clause 4.12.2**（信令流程）
- **TS 23.501 clause 5.15 / 5.16**（架构与 NSSAI 处理，含 Pending NSSAI）
- **TS 33.501 clause 6.1.3**（安全机制：对网络切片的认证与授权）
- **TS 29.526**（Nnssaaf 服务，SBI Stage 3）
- **TS 33.326**（NSSAAF 安全保障规范 SCAS）

设计上 NSSAA 有三条核心原则：

1. **与主认证解耦**：主认证（AUSF/UDM）只管"是否网络用户"；切片认证由切片租户自己的 AAA-S 独立裁定，运营商不必掌握垂直行业的凭据库。
2. **EAP 方法中立**：切片租户可自选 EAP 方法（EAP-AKA' 复用 5G 凭据，或 EAP-TLS 用企业证书），3GPP 不绑死。
3. **AMF 透明中继**：AMF 既不终结 EAP，也不解读切片凭据，仅做"搬运工"，把 UE 与 AAA-S 之间的 EAP 报文来回转发，保证端到端安全语义不被核心网破坏。

---

## 二、参与网元与角色：谁是 Peer、谁是 Authenticator

NSSAA 涉及的核心网元及其在 EAP 模型中的角色如下。理解角色划分，是看懂整条信令链的前提。

```mermaid
flowchart TD
  subgraph UE侧
    UE["UE<br/>EAP Peer / 请求方"]
  end
  subgraph 5G核心网
    AMF["AMF<br/>EAP 透明中继<br/>(Authenticator 前端)"]
    NSSAAF["NSSAAF<br/>3GPP侧EAP终结<br/>+ AAA协议适配"]
    UDM["UDM<br/>订阅数据(NSSAA required)"]
  end
  subgraph 切片租户域
    AAAS["AAA-S (可经AAA-P)<br/>实际认证方 / 凭据库"]
  end
  UE <-->|NAS: EAP message + S-NSSAI| AMF
  AMF <-->|"Nnssaaf_NSSAA (HTTP/2 SBI)"| NSSAAF
  NSSAAF <-->|AAA协议: RADIUS / Diameter| AAAS
  UDM -->|Nudm_SDM 订阅指示| AMF
```

需要特别强调两个容易混淆的角色：

- **AMF 不是真正的 EAP 认证器**。它扮演的是 RFC 3748 里"pass-through authenticator"的角色——负责在 NAS 上承载 EAP 报文，但不参与 EAP 算法、不校验切片密钥。
- **NSSAAF 是 3GPP 侧的"协议适配终结点"**。它创建并维护"切片鉴权上下文（slice authentication context）"，把 3GPP 的 SBI（Nnssaaf）语义翻译成对外的 AAA 协议（RADIUS/Diameter 上的 EAP），反之亦然。Rel-17 之后该 NF 正式更名为 **Network Slice-Specific and SNPN Authentication and Authorization Function**，因为 SNPN（独立非公众网络）的接入鉴权也复用了它。

当 AAA-S 属于第三方（例如企业）时，还可以插入 **AAA-P（AAA Proxy）** 做路由与策略隔离，TS 33.326 对 AAA-P 存在时的安全要求有专门约束。

---

## 三、NSSAA 完整信令时序与 IE 逐步解析

下面是端到端信令时序。注意：**NSSAA 一定发生在主认证完成之后**——AMF 只有在 UE 通过 5G AKA / EAP-AKA' 主认证、拿到 SUPI 之后，才会去 UDM 取订阅数据、判断哪些 S-NSSAI 需要二次鉴权。

```mermaid
sequenceDiagram
  participant UE
  participant AMF
  participant UDM
  participant NRF
  participant NSSAAF
  participant AAA as AAA-S / AAA-P
  UE->>AMF: 1. Registration Request<br/>(Requested NSSAI 含需NSSAA的 S-NSSAI)
  AMF->>UDM: 2. Nudm_SDM_Get<br/>(Slice Selection Subscription Data)
  UDM-->>AMF: 3. 每S-NSSAI: NSSAA required +<br/>routing indicator / AAA地址 / GPSI
  Note over AMF: 4. 主认证(5G AKA)完成后<br/>遍历需NSSAA的切片
  AMF->>NRF: 5. Nnrf_NFDiscovery<br/>(nfType=NSSAAF, S-NSSAI)
  NRF-->>AMF: 6. NSSAAF 实例信息
  AMF->>NSSAAF: 7. Nnssaaf_NSSAA_Authenticate Req<br/>(SUPI/GPSI, S-NSSAI, routing indicator)
  NSSAAF->>AAA: 8. 创建鉴权上下文,启动EAP会话
  AAA-->>NSSAAF: 9. EAP Request/Identity
  NSSAAF-->>AMF: 10. Nnssaaf_NSSAA_Authenticate Rsp(EAP包)
  AMF->>UE: 11. Downlink NAS Transport<br/>(Payload=EAP message + S-NSSAI)
  UE->>AMF: 12. Uplink NAS Transport(EAP + S-NSSAI)
  AMF->>NSSAAF: 13. Nnssaaf_NSSAA_Authenticate Req(EAP)
  NSSAAF->>AAA: 14. relay EAP
  AAA-->>NSSAAF: 15. EAP Challenge(AKA'/TLS)
  Note over UE,AAA: 16. EAP 多轮往返<br/>(AMF 全程透明中继)
  AAA-->>NSSAAF: 17. EAP Success + 授权数据<br/>(可选: DNN限制/有效期)
  NSSAAF-->>AMF: 18. Authenticate Rsp(Success,<br/>AuthorizedNetworkAssociation)
  Note over AMF: 19. S-NSSAI 从 Pending 移入 Allowed NSSAI
  AMF-->>UE: 20. Registration Accept / Config Update<br/>(Allowed NSSAI 更新)
```

逐条消息的关键 Information Element 解析：

**第 1 步 Registration Request**：UE 在 NAS 中携带 `Requested NSSAI`，其中包含一个或多个它想用的 S-NSSAI。这一步 UE 并不知道某个切片是否需要二次鉴权——这是网络侧的签约策略。

**第 2-3 步 Nudm_SDM_Get（取订阅）**：AMF 向 UDM 取 **Slice Selection Subscription Data**。UDM 的响应里，针对每个 S-NSSAI 会带回：
- 是否需要 NSSAA 的指示（`nssaa required`）；
- 用于路由到正确 AAA-S 的 **routing indicator / AAA routing data**；
- 对外标识 UE 的 **GPSI**（给第三方 AAA-S 用，避免暴露 SUPI）；
- 选用的 EAP 方法偏好。

**第 5-6 步 NRF 发现**：AMF 通过 `Nnrf_NFDiscovery` 找到能服务该 S-NSSAI 的 NSSAAF 实例（按 S-NSSAI、PLMN 等过滤）。

**第 7 步 Nnssaaf_NSSAA_Authenticate Request**（TS 29.526）：这是 NSSAA 的核心 SBI 调用，主要 IE 见下表。

**第 11-16 步 NAS 上的 EAP 传输**：AMF 用 **Downlink / Uplink NAS Transport** 消息承载 EAP 报文，`Payload Container Type = EAP message`，并附带目标 **S-NSSAI**，使 UE 与 AAA-S 的 EAP 交互在 AMF 看来是透明中继。这正是抓包时识别 NSSAA 的"指纹"（详见第六节）。

**第 17-20 步 结果处理**：EAP Success 后，NSSAAF 在响应中带 `AuthorizedNetworkAssociation`（已授权网络关联），AMF 据此把该 S-NSSAI 从 `Pending NSSAI` 移入 `Allowed NSSAI`，并通过 Registration Accept 或 UE Configuration Update 通知 UE。

---

## 四、S-NSSAI 授权状态机：Pending 与撤销

切片鉴权引入了一个新的 NSSAI 状态集合——**Pending NSSAI**（TS 23.501）。它装的是"正在进行或已失败的 NSSAA 切片"。一个 S-NSSAI 的授权状态转换如下：

```mermaid
stateDiagram-v2
  [*] --> Requested: Reg Req 携带 S-NSSAI
  Requested --> PendingNSSAI: UDM 订阅指示 NSSAA required
  PendingNSSAI --> PendingNSSAI: EAP 多轮往返中
  PendingNSSAI --> Allowed: EAP Success(AAA-S 授权)
  PendingNSSAI --> Rejected: EAP Failure / 超时
  Allowed --> PendingNSSAI: 周期性 re-auth 触发
  Allowed --> Revoked: AAA-S revoke(NSSAAF 通知 AMF)
  Revoked --> Rejected: 从 Allowed 移出
  Rejected --> [*]: UE 可重新发起请求
```

设计意图很清晰：**未通过二次鉴权的切片不能进入 Allowed NSSAI**，UE 自然无法为其建立 PDU Session。失败/超时的切片进入 Rejected，但 UE 仍可重新尝试（例如凭据更新后）。Rel-17/18 还增强了两个网络侧主动行为：

- **Re-authentication（再认证）**（TS 23.502 clause 4.12.2 的再认证子流程）：AAA-S 可要求周期性或事件触发地重新鉴权 UE，S-NSSAI 临时回到 Pending。
- **Revocation（授权撤销）**（TS 23.502 clause 4.12.2 撤销子流程）：AAA-S 主动撤销授权（例如终端证书吊销、合同到期）。NSSAAF 收到 revoke 后通知 AMF，AMF 立即把该 S-NSSAI 移出 Allowed NSSAI 并下发 Configuration Update，必要时触发该切片上已建 PDU Session 的释放。

---

## 五、核心 IE 参数表与方案对比

### 表 1：Nnssaaf_NSSAA_Authenticate 关键参数

| 参数（IE） | 方向 | 含义 | 设计用意 |
|---|---|---|---|
| SUPI / GPSI | AMF→NSSAAF | UE 标识；对第三方 AAA-S 优先用 GPSI | 隐藏 SUPI，保护用户隐私 |
| S-NSSAI | 双向 | 本次鉴权的目标切片 | 区分多个并行 NSSAA 会话 |
| Routing Indicator / AAA routing data | AMF→NSSAAF | 路由到正确 AAA-S | 一张网可对接多租户 AAA |
| EAP packet | 双向 | 承载 EAP 报文（Identity/Challenge/Success…） | 方法中立，NSSAAF 不解析算法 |
| AuthorizedNetworkAssociation | NSSAAF→AMF | 成功后的授权关联 + 可选授权数据 | 回传 DNN 限制/有效期等租户策略 |
| Authentication Result | NSSAAF→AMF | Success / Failure | 决定 S-NSSAI 进 Allowed 还是 Rejected |

### 表 2：主认证（5G AKA / EAP-AKA'） vs 切片二次认证（NSSAA）

| 维度 | 主认证 Primary Auth | 切片二次认证 NSSAA |
|---|---|---|
| 规范 | TS 33.501 clause 6.1.2 | TS 33.501 clause 6.1.3 / TS 23.502 4.12.2 |
| 触发时机 | 注册首步 | 主认证成功后，按 S-NSSAI 签约触发 |
| 认证方 | AUSF（+ UDM/SIDF） | 切片租户 AAA-S（经 NSSAAF） |
| 凭据来源 | USIM（运营商 K） | 切片专属凭据（证书/共享密钥，或复用 5G 凭据） |
| AMF 角色 | 协助参与 | 透明中继（pass-through） |
| 结果影响 | 决定能否接入网络 | 决定能否接入某个切片（Allowed NSSAI） |
| 撤销/再认证 | 一般无 | 支持 revoke 与 re-auth |

### 表 3：常见 EAP 方法适用场景

| EAP 方法 | 凭据形态 | 典型场景 | 说明 |
|---|---|---|---|
| EAP-AKA' | 复用 5G USIM 凭据 | 运营商自营切片 | 不需额外发卡，部署最轻 |
| EAP-TLS | X.509 证书（UE 侧客户端证书） | 企业/工业/医疗专网 | 强认证，需 PKI 证书分发与吊销管理 |
| 其他（EAP-TTLS 等） | 用户名口令等 | 受限场景 | 取决于 AAA-S 与终端支持 |

---

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

### 抓包如何认出 NSSAA

- **NAS 侧（5GMM）**：在 Registration 成功之后，若看到若干条 **Downlink / Uplink NAS Transport**，其 Payload Container 为 `EAP message`，且消息里带着 **S-NSSAI**，那就是 NSSAA 的 EAP 往返。**最容易和它混淆的是主认证 EAP-AKA'**：主认证的 EAP 出现在 Registration 过程中的 Authentication Request/Response NAS 消息里、且**不携带 S-NSSAI**；NSSAA 的 EAP 一定带 S-NSSAI 且发生在主认证之后。
- **SBI 侧（HTTP/2）**：观察 `POST /nnssaaf-nssaa/v1/...` 的 `Nnssaaf_NSSAA_Authenticate`，body 内 EAP 报文通常 base64 编码，多轮往返清晰可数。
- **AAA 侧**：若可抓到 NSSAAF↔AAA-S，可见标准 RADIUS `Access-Request/Challenge/Accept`（或 Diameter）承载 EAP。

### 常见故障点与排错思路

1. **切片一直停在 Pending、永远进不了 Allowed**：先查 UDM 订阅是否正确配置 `NSSAA required` 及 routing indicator/AAA 地址；再确认 NSSAAF 实例在 NRF 可被发现；最后看 AAA-S 侧凭据是否匹配、EAP 方法两端是否一致。
2. **EAP 超时（失败）**：数 EAP 往返轮数，定位是 AAA-S 响应慢、还是 UE EAP 栈不支持所选方法（尤其 EAP-TLS 客户端证书缺失）。
3. **选错 NSSAAF**：检查 NRF 发现的过滤条件（S-NSSAI、PLMN ID），多租户对接时易配串。
4. **Rel-17 SNPN 场景**：注意 **SNPN 接入凭据与切片凭据**是两套，NSSAAF 同时承担两者，需区分上下文。

---
## 常见问题

**Q1：NSSAA 和主认证 5G AKA 是什么关系？是不是重复鉴权？**
A：不重复，是"分层鉴权"。主认证证明"你是运营商网络的合法用户"，决定能否接入 5G 网络；NSSAA 证明"某个切片租户（如汽车厂）授权你接入它的切片"，决定能否用某张切片。二者串行执行，NSSAA 一定在主认证之后。

**Q2：AMF 既然做中继，为什么不直接让 UE 和 AAA-S 通信？**
A：因为 UE 在 5G 内没有到外部 AAA 的 IP 通路，且必须用 NAS 信令面承载。AMF 做透明中继既复用了 NAS 安全通道（完整性/加密保护），又不让核心网解读切片租户的私有凭据，实现了端到端的安全语义隔离。

**Q3：一个 UE 同时请求两个需要 NSSAA 的切片，流程怎么走？**
A：AMF 会为每个 S-NSSAI 分别发起独立的 NSSAA 会话（独立 Nnssaaf 上下文、独立 EAP 交换，可能对接不同 AAA-S）。某个切片鉴权通过即单独进入 Allowed NSSAI，互不阻塞。

**Q4：NSSAA 失败了，UE 还能正常上网吗？**
A：能。NSSAA 失败只影响那一个（或几个）需要二次鉴权的切片被移出/拒绝，UE 仍可使用不要求 NSSAA 的切片（如公共 eMBB 切片）正常建立 PDU Session。但若被拒切片是 UE 唯一可用/默认切片，则注册可能被拒。

**Q5：EAP-AKA' 和 EAP-TLS 在 NSSAA 里怎么选？**
A：由切片租户的 AAA-S 策略决定。EAP-AKA' 复用 USIM 上的 5G 凭据，适合运营商自营切片、零额外发卡；EAP-TLS 用企业证书，适合对认证强度要求高的工业/医疗专网，代价是要维护 PKI 与证书吊销（与 revocation 流程配合）。

---

## 参考来源

1. [3GPP TS 23.502 — Procedures for the 5G System](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3145) — clause 4.12.2 Network Slice-Specific Authentication and Authorization（含 re-auth / revocation 子流程）
2. [ETSI TS 129 526（= 3GPP TS 29.526）— Nnssaaf Service, Stage 3](https://www.etsi.org/deliver/etsi_ts/129500_129599/129526/16.07.00_60/ts_129526v160700p.pdf) — Nnssaaf_NSSAA 服务与 EAP 中继数据模型
3. [ETSI TS 133 326 — SCAS for NSSAAF](https://www.etsi.org/deliver/etsi_ts/133300_133399/133326/18.00.00_60/ts_133326v180000p.pdf) — NSSAAF 安全保障要求，含 AAA-P 场景
4. [3gpp-explorer — NSSAAF / NSSAA 词条](https://3gpp-explorer.com/glossary/nssaaf/) — EAP 方法中立性与角色说明（技术百科）
5. [free5GC Blog — 5G Network Slicing](https://free5gc.org/blog/20241230/20241230/) — 开源实现视角下的 AMF→Nnssaaf_NSSAA_Authenticate 调用

---
> 本文由「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)
