首页 › security › 5G用户面完整性保护激活拆解

5G用户面完整性保护(UP Integrity Protection)激活信令全链拆解

一、为什么5G必须引入用户面完整性保护

在4G/EPS时代,用户面(UP)数据在空口上只有机密性保护(Confidentiality/Ciphering),没有完整性保护。也就是说,eNB和UE之间的用户数据被加密以防止窃听,但攻击者理论上仍可以篡改、注入或重放密文数据流——因为加密本身并不能保证数据未被修改。这一缺陷在物联网、工业控制、车联网等对数据完整性敏感的场景下被放大。

3GPP在TS 33.501(5G系统安全架构与流程)中专门为用户面引入了完整性保护(Integrity Protection)机制,使5G空口用户面同时具备机密性 + 完整性 + 重放保护三重能力。这套机制由SMF依据订阅策略决策、由AMF经NGAP透传、最终在gNB与UE之间通过RRC和PDCP层激活。本文聚焦这一从SMF策略到PDCP MAC-I的完整激活链路,对应TS 33.501 §6.6(UP安全机制)与TS 38.413(NGAP SecurityIndication/SecurityResult IE)。

核心设计意图有三点: 1. 防篡改:通过32位MAC-I校验,丢弃任何被篡改的PDCP PDU(TS 33.501 §6.6.4.2)。 2. 策略可配、可分级:用 Required / Preferred / Not needed 三档语义(TS 38.413 §9.3.1.x),让运营商按DNN/切片强制或建议开启。 3. 算力受限可控:用 Maximum Integrity Protected Data Rate(MAXIPD,TS 38.413 §9.3.1.103) 上下行限速,避免gNB/UE为海量低价值流量做完整性运算而耗尽CPU。

二、机制全景:从SMF策略到PDCP MAC-I

UP完整性保护的激活本质上是一次三段式协商:

flowchart TD
    A[UDM<br/>DNN订阅UP安全策略] -->|Nudm_SDM| B[SMF<br/>决策 required/preferred]
    B -->|SecurityIndication<br/>MAXIPD| C[AMF]
    C -->|NGAP透传| D[gNB<br/>选算法/按DRB激活]
    D -->|RRC Reconfig<br/>integrityProtection per DRB| E[UE]
    D -.->|派生 KUPint| F[(KgNB)]
    E -.->|派生 KUPint| G[(KgNB')]
    D -->|SecurityResult| C
    C -->|反馈| B
    E -->|每个PDU附挂32位MAC-I| H[PDCP用户面数据]

三、完整信令时序图

以下时序描绘一个典型场景:UE已完成注册与5G AKA主认证、NAS SMC已建立,现发起一个策略为UP完整性"Required"的PDU会话建立(例如运营商将关键物联网DNN强制开启UP IP)。

sequenceDiagram
    autonumber
    participant UE
    participant gNB
    participant AMF
    participant SMF
    participant UDM
    participant UPF

    UE->>AMF: PDU SESSION ESTABLISHMENT REQUEST (NAS)
    Note over AMF,SMF: AS SMC已激活(CLAUSE 6.7.4), KRRCint/enc已就绪
    AMF->>SMF: Nsmf_PDUSession_CreateSMContext (含UE Security Capability)
    SMF->>UDM: Nudm_SDM_Get (SmData/DNN配置)
    UDM-->>SMF: UP安全策略 (integrity=required, ciphering=required)
    SMF->>UPF: N4 Session Establishment (PDR/FAR/QER)
    SMF->>AMF: Namf_Communication_N1N2MessageTransfer<br/>N2 SM(PDU Session Resource Setup)+ N1 SM(Accept)
    Note right of SMF: N2 SM携带 SecurityIndication IE<br/>IntegrityProtectionIndication = required<br/>ConfidentialityProtectionIndication = required<br/>Maximum Integrity Protected Data Rate UL/DL
    AMF->>gNB: NGAP PDU SESSION RESOURCE SETUP REQUEST<br/>(UE Security Capability + SecurityIndication + MAXIPD)
    gNB->>gNB: 比对UE算法能力与本地优先级表<br/>选定128-NIAx / 128-NEAx
    gNB->>UE: RRCReconfiguration<br/>DRB-ToAddMod: pdcp-Config{integrityProtection=on, ciphering=on}<br/>+ N1 SM容器
    Note over gNB: STEP 1c: gNB生成 KUPint / KUPenc (源自KgNB, CLAUSE 6.6.2)
    Note over UE: STEP 2a.1: UE生成 KUPint / KUPenc
    UE->>gNB: RRCReconfigurationComplete
    Note over UE,gNB: PDCP为每个UP PDU计算32-bit MAC-I并校验
    gNB->>AMF: PDU SESSION RESOURCE SETUP RESPONSE<br/>含 SecurityResult (IntegrityProtectionResult=performed)
    AMF->>SMF: Nsmf_PDUSession_UpdateSMContext (SecurityResult反馈)

时序中第10步是整个机制的激活触发点:RRC Reconfiguration消息中的DRB-ToAddMod,每个DRB的 pdcp-Config 里独立指明 integrityProtection 与 ciphering 是否开启。这正是TS 33.501 §6.6.2 Figure 6.6.2-1中"1b:gNB shall send the RRC Connection Reconfiguration message ... containing indications for the activation of UP integrity protection and ciphering for each DRB"的落地实现。

四、关键IE逐字段解析

4.1 NGAP SecurityIndication(IE ID = 137)

这是AMF下发给gNB的"策略指令",定义在TS 38.413 §9.3.1.x,ASN.1结构(取自spec第44980行附近):

SecurityIndication ::= SEQUENCE {
    integrityProtectionIndication      IntegrityProtectionIndication,
    confidentialityProtectionIndication ConfidentialityProtectionIndication,
    iE-Extensions        ProtocolExtensionContainer { {SecurityIndication-ExtIEs} } OPTIONAL,
    ...
}

IntegrityProtectionIndication ::= ENUMERATED { required, preferred, not-needed, ... }
ConfidentialityProtectionIndication ::= ENUMERATED { required, preferred, not-needed, ... }
IE字段 取值 gNB行为(依据TS 33.501 §6.6.1)
IntegrityProtectionIndication required gNB必须激活UP完整性,不得否决;若无法满足(如算法不支持),gNB拒绝该PDU Session的UP资源建立并向SMF回reject-cause
IntegrityProtectionIndication preferred gNB尽量激活;若条件不满足可不激活,可被否决,流程继续
IntegrityProtectionIndication not-needed gNB不得激活;策略同样不可被否决
ConfidentialityProtectionIndication 同上三值 同上,作用于UP加密
Maximum Integrity Protected Data Rate (UL/DL) 整数(bps) 上行/下行受完整性保护的数据速率上限,保护gNB/UE算力(TS 38.413 §9.3.1.103)

4.2 NGAP SecurityResult(IE ID = 155)

gNB在响应消息(如PDU SESSION RESOURCE SETUP RESPONSE、INITIAL CONTEXT SETUP RESPONSE)中向核心网回填实际执行结果:

SecurityResult ::= SEQUENCE {
    integrityProtectionResult      IntegrityProtectionResult,
    confidentialityProtectionResult ConfidentialityProtectionResult,
    ...
}
IntegrityProtectionResult ::= ENUMERATED { performed, not-performed, ... }

SecurityResult是排障的"第一现场":如果策略是 required 而回填 not-performed,则配置链路必然异常。

4.3 5G UE Security Capability(TS 24.501 §9.11.3.54)

UE通过该IE声明自身支持的安全算法位图:128-NEA0/1/2/3(加密)、128-NIA0/1/2/3(完整性),其中 NIA0 为空算法(NULL)。该IE在注册时上报、在NAS SMC中被AMF回放以防降级攻击(bidding-down)。注意:当UE连接ng-eNB时,需额外置 EIA7 位表示支持与ng-eNB的UP完整性保护(TS 33.501 §6.6.4.3),Rel-15及更早UE不支持此能力。

五、密钥派生链:KUPint从何而来

UP完整性保护使用的密钥 KUPint 是5G密钥层级树(TS 33.501 §6.2.1)中的一个分支,由 KgNB 派生:

graph TD
    K["KAUSF (主认证产出)"] --> KS["KSEAF"]
    KS --> KA["KAMF (NAS SMC激活)"]
    KA -->|"KDF, Annex A.9<br/>security key"| KG["KgNB (gNB级)"]
    KG -->|"algorithm distinguisher + id"| RRCint["KRRCint (RRC完整性)"]
    KG --> RRCenc["KRRCenc (RRC加密)"]
    KG --> UPint["KUPint (UP完整性) ⬅本文焦点"]
    KG --> UPenc["KUPenc (UP加密)"]
    KA -.->|"KDF Annex A"| NASint["KNASint"]
    KA -.-> NASenc["KNASenc"]

关键点(TS 33.501 §6.2.1、§6.6.2):

六、Required/Preferred/Not needed决策状态机

理解三值语义的差异是排障与策略设计的关键。下图给出gNB侧的决策逻辑:

stateDiagram-v2
    [*] --> 收到策略
    收到策略 --> 判断required: IntegrityProtectionIndication==required
    收到策略 --> 判断preferred: ==preferred
    收到策略 --> 强制不激活: ==not-needed

    判断required --> 可激活?
    可激活? --> 激活UP_IP_and_KUPint: 是(算法&能力支持)
    可激活? --> 拒绝PDU_Session: 否 -> reject-cause -> SMF

    判断preferred --> 可激活2?
    可激活2? --> 激活UP_IP: 是
    可激活2? --> 不激活_but_继续: 否(允许降级)

    强制不激活 --> 不放MAC-I

    激活UP_IP_and_KUPint --> 回填SecurityResult: performed
    不激活_but_继续 --> 回填SecurityResult2: not-performed

一个容易被忽略的细节:策略为 preferred 时,切换后可能出现激活/去激活状态翻转(TS 33.501 §6.6.1 NOTE 2)。因此source gNB在HANDOVER REQUEST中必须携带UP安全策略,target gNB按策略重新决策,SMF在Path-Switch时还要比对gNB上报的策略与本地存储是否一致,不一致则告警并下发正确策略。

七、4G vs 5G 用户面完整性对比

维度 4G EPS(TS 33.401) 5GS(TS 33.501 + 38.413)
UP机密性保护 支持(加密) 支持(加密)
UP完整性保护 不支持(仅控制面有完整性) 支持(5G标志性增强)
重放保护 UP无 UP支持(基于PDCP COUNT)
策略粒度 无(全局开启加密) 按PDU Session / DNN / 切片可配
策略三值语义 无 required / preferred / not-needed
速率保护 无 MAXIPD(上行/下行独立)
结果回填 无 SecurityResult(performed/not-performed)
MAC-I长度 — 32位(PDCP PDU)
算法 — 128-NIA1/2/3(及NIA0空算法)

八、抓包识别与实战排错

8.1 Wireshark中如何识别该流程

在NGAP过滤(ngap)中关注以下字段:

在NR RRC(rrc)中:定位 RRCReconfiguration → DRB-ToAddMod → pdcp-Config → integrityProtection(TRUE/FALSE)、ciphering。

在NR PDCP(pdcp)中:开启完整性保护后,每个用户面PDU会带 MAC-I(32-bit),可用 pdcp.mac-i 字段过滤;校验失败会触发丢弃。

8.2 常见故障点

  1. 策略required但回填not-performed:说明gNB侧算法或能力无法满足。优先核查 UE Security Capability 中NIA位图与gNB配置的算法优先级表是否交集为空。
  2. DRB建不起来、PDU会话失败:若UP安全策略为 required,gNB会直接拒绝UP资源建立并回reject-cause(§6.6.1)。需要确认UE是否支持所选NIA算法。
  3. MR-DC(EN-DC/NGEN-DC)下UP IP异常:若UE不支持与ng-eNB的UP IP(无EIA7位),且策略为required,则MN不得将该PDU session的任何DRB offload到SN(§6.10.4);若策略为preferred,NGEN-DC下MN总是去激活UP完整性。
  4. 切换后业务中断:preferred 策略下切换可能翻转激活状态;若target gNB未收到或误改策略,SMF会在Path-Switch比对时告警。需检查Xn/N2切换消息中UP安全策略是否完整透传。
  5. 紧急呼叫场景:未认证的IMS紧急呼叫,SMF会强制对UP机密性与完整性都置 Not Needed(§相关条款:unauthenticated emergency call)。这是合规设计,非故障。
  6. MAXIPD限速异常:若关键业务吞吐达不到预期,检查MAXIPD上行/下行值是否被设得过低,导致超出部分被限速。

九、设计哲学小结

5G UP完整性保护的本质是把"是否保护"从协议强制项变成了"可运营的策略":协议层保证UE/gNB必须具备该能力(强制性),而激活与否交给SMF按DNN/切片/订阅决策(灵活性),并通过SecurityResult形成闭环可审计(可观测性)。这种"能力强制 + 策略可选 + 结果回填"的三段式架构,是5G安全相对4G最核心的进步之一,也是URLLC、工业互联网等场景能在公网上承载的关键前提。

常见问题

Q1:UP完整性保护(integrity)和UP机密性保护(confidentiality/ciphering)有什么区别? A:机密性(ciphering)解决"防窃听",用KUPenc加密数据;完整性(integrity)解决"防篡改/防重放",用KUPint计算32位MAC-I校验。两者独立配置、独立派生密钥、可单独开关。4G只有机密性,5G两者皆有。

Q2:NIA0(空算法)开启了完整性保护吗? A:没有。NIA0是NULL算法,等同于不计算MAC-I。若DRB的 integrityProtection 未置TRUE,则gNB与UE"shall not integrity protect the traffic of such DRB and shall not put MAC-I into PDCP packet"(§6.6.2)。排错时应区分"算法是NIA0"与"完整性根本未激活"两种情况。

Q3:为什么需要Maximum Integrity Protected Data Rate? A:UP完整性保护要求每个PDU都做MAC-I运算,对gNB基带与UE芯片CPU有开销。MAXIPD(TS 38.413 §9.3.1.103)对受保护数据速率设上限,超出部分不被完整性保护或被限速,从而在安全性与算力之间取得平衡。

Q4:切换(Xn/N2)后UP完整性保护状态会变吗? A:策略为 required 或 not-needed 时不会变(不可被否决);策略为 preferred 时可能翻转(§6.6.1 NOTE 2)。因此source gNB必须在HANDOVER REQUEST携带UP安全策略,target gNB按策略决策,SMF在Path-Switch比对一致性,不一致则告警并下发正确策略。

Q5:UP完整性保护对所有DRB都生效吗? A:策略作用于一个PDU Session的所有DRB,但gNB是逐DRB激活的(§6.6.1:activate per each DRB)。同一PDU session的DRB在激活状态上应保持一致(MR-DC场景§6.10.4明确"all DRBs belonging to the same PDU session shall have the integrity protection either on or off")。

参考来源

  1. 3GPP TS 33.501 V18.x — Security architecture and procedures for the 5G System — §6.6.1 UP security policy、§6.6.2 UP security activation mechanism(Figure 6.6.2-1)、§6.6.4.2 UP integrity mechanisms、§6.2.1 key hierarchy
  2. 3GPP TS 38.413 V18.x — NG-RAN NGAP — §9.3.1 SecurityIndication(IE ID 137)、SecurityResult(IE ID 155)、§9.3.1.103 Maximum Integrity Protected Data Rate、IntegrityProtectionIndication ::= ENUMERATED {required, preferred, not-needed}
  3. 3GPP TS 38.323 — NR PDCP specification — 用户面数据完整性保护与MAC-I机制
  4. BigMac: Performance Overhead of User Plane Integrity Protection in 5G(学术测量) — UP完整性保护对gNB/UE性能开销的量化分析
  5. ShareTechnote — 5G PDCP Data Structure — PDCP PDU结构与MAC-I字段图解

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