首页 › security › 5G切片二次认证NSSAA信令拆解

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 服务。

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

各网元职责:

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

三、触发判断:何时发起 NSSAA

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

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 过程的后半段)。

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 定义了两个网络侧主动流程:

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 — NSSAA stage-2 过程定义
  2. 3GPP TS 29.526 — NSSAAF Service Based Interface Protocol — Nnssaaf SBI 服务操作 stage-3 定义
  3. 3GPP TS 33.501 — Security architecture and procedures for the 5G System — NSSAA 安全过程与 EAP-AKA' 应用
  4. 3GPP TS 24.501 — NAS protocol, Section 4.4.6 Slice-specific authentication — NAS 层 EAP 消息承载(UL/DL NAS TRANSPORT Payload Container)
  5. 网络切片特定鉴权和授权过程(中文解读) — 流程图与中文机制分析

本文由「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学通信知识星球海报-扫码加入