首页 › security › 5G NAS安全模式控制SMC信令拆解

5G NAS 安全模式控制(SMC)信令全链拆解:从 KAMF 到 NAS 加密完整性激活

一、机制定位:SMC 在 5G 安全架构中的承上启下

在 5G 系统的安全链路中,主认证(5G-AKA / EAP-AKA')只是产出了根密钥 K_AUSF 并经 KDF 推演出 K_AMF,但这一系列密钥此时还"躺在抽屉里"没有真正使用。真正把 K_AMF 激活、把算法选定、把 NAS 信令通道置入加密+完整性保护状态的,正是 NAS 安全模式控制(Security Mode Control, SMC)流程。

根据 3GPP TS 24.501 §4.4.2.5「建立 NAS 消息的安全交换」明确规定:"通过 NAS 信令连接安全交换 NAS 消息通常由 AMF 在注册过程中通过启动安全模式控制程序来建立。成功完成安全模式控制程序后,UE 和 AMF 之间交换的所有 NAS 消息都将使用当前的 5G 安全算法进行完整性保护……所有 NAS 消息都将使用当前的 5G 安全算法进行加密。"

简言之,SMC 是 5G 安全状态机的"激活开关",它完成三件事:

  1. 算法协商:在 UE 上报的安全能力范围内,AMF 选定一对(加密算法 NEA、完整性算法 NIA);
  2. 安全上下文绑定:通过 ngKSI 标识当前使用的密钥集(native 或 mapped),将 K_AMF 派生出的 K_NASenc / K_NASint 装载到 NAS 协议栈;
  3. 防降级锚定:通过 ABBA(Anti-Bidding down Between Architectures)参数,防止攻击者把 UE 诱导降级到更弱的 EPS 安全域。

需要特别强调:NAS SMC 是一条"半保护"的临界消息——它本身只做完整性保护、不加密(因为 UE 尚未装载加密算法的下行解密能力),而它之后的 SECURITY MODE COMPLETE 才是第一条既加密又完整保护的 NAS 消息。理解这一临界性是排错的关键。

sequenceDiagram
    autonumber
    participant UE
    participant gNB as gNB (RRC)
    participant AMF
    note over UE,AMF: 前置:5G-AKA 主认证完成,K_AMF 已就绪
    UE->>gNB: Initial NAS message(明文)<br/>Registration Request<br/>含 UE security capability
    gNB->>AMF: NGAP Initial UE Message(透传)
    Note over AMF: 1. 校验 UE 安全能力<br/>2. 选定 NEA/NIA 算法<br/>3. 派生 K_NASenc/K_NASint<br/>4. 分配 ngKSI
    AMF->>UE: SECURITY MODE COMMAND<br/>(仅完整性保护, 未加密)<br/>Selected NAS security algo<br/>+ Replayed UE sec capability<br/>+ ngKSI + ABBA
    Note over UE: 校验回显能力=自身能力<br/>校验 ABBA<br/>装载算法与密钥
    UE->>AMF: SECURITY MODE COMPLETE<br/>(加密+完整性保护)<br/>含 IMEISV(可选) + 初始消息 MAC
    Note over UE,AMF: NAS 安全通道正式建立<br/>后续所有 NAS 消息加密+完整性保护
    AMF->>UE: Registration Accept (已加密保护)

二、设计意图:5G 相对 4G 做了哪些安全增强

很多人会把 5G NAS SMC 简单等同为 EPS 的 SMC,这是误读。5G 在此环节做了三处关键增强:

增强一:初始 NAS 消息的部分完整性保护。 在 EPS(TS 24.301)中,初始 Attach Request 是完全明文、完全无保护的,攻击者可篡改 UE 能力位实施降级。5G 引入了对初始 NAS 消息的"延迟完整性保护"——UE 在 SECURITY MODE COMPLETE 中带上对那条明文初始消息计算的 NAS-MAC(封装在 NAS message container 中),AMF 收到后回算校验。这一机制堵住了 4G 时代著名的"初始消息篡改"攻击面。

增强二:ABBA 反降级参数。 4G 只能针对"算法降级"防护(通过 capability 回显),却无法防御"架构降级"——即攻击者诱导 UE 从 5G 退到 4G。ABBA 由网络下发,UE 本地校验其值是否大于或等于 UE 内部记录的最小集合,不满足则拒绝。详见 TS 33.501 §6.7。

增强三:ngKSI 的 native/mapped 区分。 4G 的 KSI 只有 0–6 取值,5G 的 ngKSI 还额外编码"密钥来源"(native 直接来自 5G 认证 / mapped 由 EPS 映射而来),便于在 N26 互通过程中正确管理两套安全上下文。

三、逐消息 IE 深度解析

3.1 SECURITY MODE COMMAND(下行,AMF→UE)

这是 SMC 流程的核心控制消息,TS 24.501 §8.2 中定义其关键 IE 如下:

IE 名称 是否必选 作用 编码要点
Extended protocol discriminator M 标识 5GMM 区分 SM/ MM 消息
Security header type M 标识完整性保护、未加密 取值标明"integrity protected"
Message type M SECURITY MODE COMMAND 枚举值
Selected NAS security algorithm M 选定 NEA + NIA 1 字节,type 4,高4位完整性/低4位加密(或反之,按TS编码)
ngKSI M 标识密钥集 0–6,含 native/mapped 标志
Replayed UE security capability M 回显 UE 上报的算法能力 NEA/NIA bit map,防止篡改
ABBA M 反架构降级 长度 + 内容,内容值随网络部署递增
Additional 5G security information O 紧急呼叫相关 含 RG 等子字段
IMEISV request O 请求设备身份 SM Complete 中带回

3.2 SECURITY MODE COMPLETE(上行,UE→AMF)

graph TD
    A[SECURITY MODE COMPLETE] --> B["Security header: 加密+完整性保护<br/>首条受全保护NAS消息"]
    A --> C[IMEISV 携带, 网络请求时]
    A --> D["NAS message container<br/>含初始NAS消息的MAC校验值"]
    A --> E[5GMM cause: 仅Reject带]
    D --> D1["对明文 Registration Request<br/>计算NAS-MAC"]
    D --> D2[AMF回算并比对]
    D2 --> D3{匹配?}
    D3 -->|否| F["判定初始消息被篡改<br/>拒绝/去注册"]
    D3 -->|是| G[初始消息合法性确认]
    style B fill:#d4edda,stroke:#28a745
    style D fill:#fff3cd,stroke:#ffc107

SMC COMPLETE 的两个特殊价值:第一,它是第一条真正加密的 NAS 消息,UE 此时已装载 NEA 算法;第二,它可选携带 IMEISV,完成设备身份核查——这是 5G 反盗窃、反伪基站的重要一环(详见 TS 23.502 注册流程中的 Equipment Identity Check)。

3.3 SECURITY MODE REJECT(UE→AMF)

当 UE 无法接受 AMF 选定的算法或安全参数时,回送 Reject,携带 5GMM cause(TS 24.501 §9.11.3.2)。常见原因值:

实际网络中,Reject 最常见的诱因是算法能力不匹配:例如 UE 只支持 NEA2/NIA2,而 AMF 因策略强制选择 NEA3,或反向 AMF 错误地回退到 NEA0。

四、算法协商与 NEA/NIA 算法体系

5G 定义了 8 个核心安全算法(TS 33.501 Annex A/B),NAS 层使用其中前缀为 N 的版本:

算法 类型 基础密码原语 用途
NEA0 / NIA0 Null 无 仅紧急未认证会话
NEA1 / NIA1 128-bit SNOW 3G 加密/完整性
NEA2 / NIA2 128-bit AES-CTR / AES-CMAC 加密/完整性(最广泛部署)
NEA3 / NIA3 128-bit ZUC 加密/完整性

算法选择原则(TS 33.501 §5.1.x):AMF 在 UE 上报能力 ∩ 网络策略支持的算法集合中,按"非空算法优先于空算法、高位算法优先于低位"选取。NEA0/NIA0 只允许用于未认证的紧急呼叫,正常注册若被选到 Null 算法,UE 应在完成紧急注册后视为受限。

抗降级的关键——ABBA:ABBA 不是算法选择,而是"安全域版本号"。其值为一个集合,UE 维护本机支持的最小 ABBA 集合。若网络下发的 ABBA 未覆盖 UE 要求的最小集合,UE 判定为降级企图。这一机制在 GSMA 安全研究《Never let me down again: Bidding-Down Attacks》中被证实可有效阻断 5G↔4G 互操作降级链。

五、ngKSI 与 NAS 安全上下文生命周期

ngKSI(5G key set identifier)虽只有 3 比特,却是安全上下文管理的核心索引。它的取值语义:

理解 native/mapped 的区别对排查 N26 切换场景至关重要:当 UE 从 EPS 切到 5GS 且使用单注册模式时,AMF 通过 mapped 密钥建立临时安全上下文,此时 SMC 选定的 ngKSI 带 mapped 标志,后续 UE 重新执行 5G-AKA 后才会升级为 native。

stateDiagram-v2
    [*] --> 无安全上下文: ngKSI=7
    无安全上下文 --> 主认证中: 发起 Registration
    主认证中 --> 上下文待激活: K_AMF就绪
    上下文待激活 --> NAS安全激活: 收到SMC, 校验通过
    NAS安全激活 --> NAS安全激活: AS SMC独立激活用户面
    NAS安全激活 --> 无安全上下文: Deregistration/超时
    NAS安全激活 --> 上下文待激活: 重新认证 re-auth<br/>ngKSI递增
    note right of NAS安全激活
        SMC后所有NAS消息:
        完整性保护(MANDATORY)
        加密(除明文白名单)
    end note

六、密钥派生链:从 KAMF 到 NAS 会话密钥

SMC 流程"激活"的本质,是用 K_AMF 通过 KDF 推演出 NAS 专用密钥并装载(TS 33.501 §6.4、§6.6):

其中 NN 是算法区分参数(区分 enc/int),KDF 输入还包含 SNPN/Serving Network 标识,确保不同网络派生出的密钥相互隔离。

需要与已介绍的「密钥层级树」相区分:本文聚焦的是 K_AMF 这一层向横向(NAS enc/int)的派生与激活,而密钥层级树讲的是从 K 到 K_SEAF、K_AMF、再到 K_gNB/K_NAS 的纵向树状结构。两者是同一棵树的不同切面。

七、实战连接:抓包识别与故障排错

7.1 抓包如何识别 SMC 流程

在 Wireshark / TShark 过滤器中:

7.2 常见故障点

故障现象 根因 排错思路
UE 回送 SMC REJECT 算法能力不匹配 / ABBA 校验失败 比对回显能力与 UE 上报;检查 AMF 算法策略与 ABBA 配置
SMC COMPLETE 解不开(MAC-I 错误) 密钥派生输入不一致 / K_AMF 错误 排查主认证是否真正成功、KDF 的 serving network 输入
注册卡在 SMC 不完成 AS 安全未就绪 / RRC 容器丢失 确认 AS SMC 已执行,gNB 已下发 AS 安全算法
紧急呼叫使用了 NEA0 未认证紧急会话 属正常策略,非故障;但需核查是否被滥用
## 八、5G NAS SMC 与 EPS SMC 对比
维度 EPS NAS SMC (TS 24.301) 5G NAS SMC (TS 24.501)
密钥基础 KASME K_AMF
密钥集标识 KSI (0–6) ngKSI (0–6, native/mapped)
初始消息保护 完全明文无保护 SM COMPLETE 中带初始消息 MAC
防架构降级 无 ABBA 参数
算法前缀 EEA/EIA NEA/NIA
SUCI 隐私 SUPI 明文 注册前 SUCI 加密(SIDF)

九、常见问题

Q1: SMC COMMAND 为什么只完整性保护而不加密? A: 因为此时 UE 尚未装载所选加密算法的下行解密能力——算法正是在这条消息中刚被通告的。若加密下发,UE 无法解密读取。完整性保护用的是当前已有的 K_NASint(可对明文计算 MAC),不依赖算法协商完成,因此可行。

Q2: ngKSI 的 native 和 mapped 到底什么区别? A: native 表示密钥直接来自 5G 本域的 5G-AKA/EAP-AKA' 认证(K_AMF 由 K_SEAF 派生);mapped 表示密钥由 EPS 的 KASME 通过 KDF 映射而来,仅在 N26 单注册模式跨系统移动时临时使用,安全性略低于 native,后续应触发重认证升级。

Q3: UE 如何防御算法降级攻击? A: 三重防线:① Replayed UE security capability 回显校验,确保 UE 上报的能力未被中间人篡改;② 不接受低于本机最低要求的算法;③ ABBA 参数防架构降级。三者结合使 NAS SMC 具备端到端的降级防护。

Q4: Security Mode Reject 后 UE 会做什么? A: UE 进入去注册相关处理,通常 abort 当前注册尝试,根据 cause 决定是否回退到紧急注册(仅紧急服务)或回到 RM-DEREGISTERED 状态等待重试。AMF 侧应记录告警,因为正常 UE 不应拒绝合法算法协商。

Q5: NAS SMC 与 AS SMC 是什么关系? A: 两者独立。NAS SMC(AMF↔UE,TS 24.501)保护 NAS 信令;AS SMC(gNB↔UE,TS 38.331 RRC)保护空口 RRC 与用户面。NAS SMC 通常先完成,随后 AMF 通过 NGAP 触发 gNB 执行 AS 安全激活,建立 K_gNB 派生的空口密钥。

参考来源

  1. 3GPP TS 24.501 V18.x — Non-Access-Stratum (NAS) protocol for 5GS — §4.4.2.5 建立 NAS 消息的安全交换,§8.2 消息内容定义
  2. 3GPP TS 33.501 V18.10.0 — Security architecture and procedures for 5G System — §6.4/§6.6 NAS 密钥派生,§6.7 ABBA,Annex A/B 算法定义
  3. ShareTechnNote — 5G Security / Authentication — NAS Security Mode Command 流程与算法选择解读
  4. 3glteinfo — 5G NAS Security Mode Procedure Call Flow — SMC 呼叫流程与失败分支分析
  5. GSMA — Never let me down again: Bidding-Down Attacks and Mitigations in 5G and 4G — ABBA 与降级攻击学术分析
  6. arXiv:2212.09149 — From NEA and NIA to NESAS and SCAS: Demystifying the 5G Security Architecture — 5G 安全架构系统性综述

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