好的,我们继续对3-GPP T-S 33.511规范的逐章拆解。这是本系列解读的第五篇文章。在上一篇中,我们已经为5-G的空中接口控制面(R-R-C信令)构建了坚不可摧的“三层护盾”。现在,我们将把显微镜的焦点,从指挥网络运行的“神经系统”,转移到承载我们日常上网、视频、游戏等所有应用的“数据大动脉”——空中接口用户面

今天,我们将深入探讨5G相对于4G在数据安全上的革命性进步,以及g-Node-B在其中扮演的关键角色。

深度解析 3GPP TS 33.511:4.2.2.1 空口用户面安全 (Part 2 - User Plane Protection)

本文技术原理深度参考了3GPP TS 33.511 V18.3.0 (2024-03) Release 18规范中,关于4.2.2.1节下属的 4.2.2.1.2, 4.2.2.1.5, 4.2.2.1.7, 4.2.2.1.8, 4.2.2.1.10, 4.2.2.1.11 等核心条款。本文旨在为读者揭示5G如何为我们的数据流穿上“金钟罩铁布衫”,以及这套保护机制背后复杂的决策与执行逻辑。

引言:李明的新挑战——为自动驾驶数据流保驾护航

在“星辰通信”的实验室里,工程师李明刚刚因为出色地完成了R-R-C信令安全的验证工作而受到导师艾米的表扬。然而,一项更严峻、也更贴近最终用户体验的挑战,已经摆在了他的面前。

“李明,祝贺你成功守护了5G的‘神经系统’,”艾米递给他一份新的项目需求文档,“但对我们的客户而言,他们的数据能否安全传输,才是最核心的关切。我们的一个潜在重要客户——‘智行汽车’,希望利用5G网络的高带宽、低时延特性,传输他们自动驾驶车辆的实时遥测和高精地图数据。他们对数据传输的机密性和完整性,提出了最高级别的要求。”

李明打开文档,立刻感受到了压力。“智行汽车”的需求非常具体:

  • 完整性要求:任何情况下,都不能允许车辆上传的传感器数据或下载的高精地图数据在空中被篡改,哪怕一个比特的错误都可能导致车辆做出错误的决策。
  • 机密性要求:车辆的精确行驶轨迹、驾驶行为习惯、以及高精地图数据,都属于高度敏感的商业和个人隐私,绝不能在空中被窃听。

“这正是5G用户面安全的用武之地,”艾米补充道,“与4G时代用户面完整性保护只是‘选装配置’不同,5G将其提升到了‘标准配置’的高度。但与RRC信令的‘默认开启’不同,这套机制的启动与否,背后有一套更复杂的决策逻辑,g-Node-B不再是唯一的决策者。去吧,深入规范,找出这背后的秘密。”

李明带着新的使命,再次投入到对3GPP T-S 33.511的研读中。他知道,用户面安全,是守护亿万用户数据隐私和垂直行业应用安全的最后一道,也是最重要的一道空中防线。


1. 谁来发令?—— S-M-F在用户面安全中的“总司令”角色

李明在研究用户面安全时,首先发现了一个与R-R-C安全显著的不同之处:用户面数据的保护并不是像R-R-C信令那样,一旦安全模式激活就默认开启的。它的“开关”掌握在核心网的一个关键网元——S-M-F(Session Management Function,会话管理功能) 手中。

4.2.2.1.10 Ciphering of user data based on the security policy sent by the SMF Requirement Description: The gNB activates ciphering of user data based on the security policy sent by the SMF as specified in TS 33.501, clause 5.3.2.

4.2.2.1.11 Integrity of user data based on the security policy sent by the SMF Requirement Description: The gNB activates integrity protection of user data based on the security policy sent by the SMF as specified in TS 33.501, clause 5.3.2.

【李明的深度解读】

这两条需求明确指出,g-Node-B在用户面安全问题上,只是一个忠实的“执行官”,而发号施令的“总司令”是S-M-F。

这个决策流程是怎样的呢?李明在脑海中构建了这样一个场景: 当“智行汽车”的车载单元(U-E)开机,并请求建立一个用于数据传输的P-D-U会话(可以通俗地理解为一次上网连接)时:

  1. S-M-F进行决策: S-M-F会综合多种信息,来为这次会话制定一个用户面安全策略(U-P Security Policy)。这些决策依据可能包括:

    • 用户的签约数据: “智行汽车”的SIM卡签约信息里,可能明确标注了其所有数据业务都必须采用最高安全等级。
    • 所连接的数据网络(D-N-N): 车辆连接的是企业专用的高安全网络,还是普通的公共互联网。
    • 具体的业务类型(QoS Flow): 这次会话是用于传输关键的车辆控制信令,还是普通的娱乐信息。
  2. S-M-F下发策略: S-M-F制定的策略包含对**机密性(Ciphering)完整性(Integrity)**的要求,每个要求都有三个等级:

    • Required (必须): g-Node-B必须对该会话的用户数据启用相应的保护。如果因为U-E能力不支持等原因无法满足,会话建立就会失败。对于“智行汽车”这样的客户,策略一定是“Required”。
    • Preferred (首选): g-Node-B应优先尝试启用安全保护。但如果U-E不支持,会话仍然可以建立,只是数据会在没有保护的情况下传输。
    • Not Needed (不需要): 无需启用安全保护。
  3. g-Node-B执行策略: S-M-F将这个策略通过A-M-F传递给g-Node-B。g-Node-B收到后,必须不折不扣地执行。它会在后续与U-E的R-R-C信令交互中(如RRCReconfiguration消息),明确告知U-E是否需要以及如何开启用户面的安全保护。

【实验室实战:复现T-C-U-P-D-A-T-A-C-I-P-S-M-F与T-C-U-P-D-A-T-A-I-N-T-S-M-F测试】

为了验证这个决策链条,李明使用了核心网模拟器,扮演S-M-F的角色,向Orion-g-Node-B 9000发送不同的安全策略。

  1. 场景一 (策略:Required): 李明配置模拟S-M-F,在P-D-U会话建立过程中,向g-Node-B下发“完整性保护:Required”的策略。然后,他观察到g-Node-B在后续的RRCReconfiguration消息中,通过securityConfig字段,明确地向U-E指示了需要开启用户面完整性保护。
  2. 场景二 (策略:Not Needed): 接着,李明发起另一个P-D-U会话,但这次S-M-F下发的策略是“完整性保护:Not Needed”。如他所料,g-Node-B这次发送的RRCReconfiguration消息中,就没有包含开启用户面完整性保护的指示。

Expected Results: When the received UP integrity protection is set to “required”, the user plane packets are integrity protected based on the security policy sent by the SMF. When the received UP integrity protection is set to “not needed”, the user plane packets are not integrity protected based on the security policy sent by the SMF.

这个实验清晰地证明了Orion-g-Node-B 9000能够正确地“听从指挥”,担当好安全策略“执行官”的角色。


2. 用户数据的“金钟罩铁布衫”:坚不可摧的空中数据保险箱

一旦S-M-F下达了“保护”的命令,g-Node-B就会为流经它的用户数据,加上一套与R-R-C信令保护机制类似,但使用独立密钥的“金钟罩铁布衫”。

2.1 铁布衫:完整性保护 (Integrity Protection) - 捍卫数据的真实性

这是5G相对于4G在用户面安全上最大的飞跃,也是“智行汽车”最看重的能力。

4.2.2.1.2 Integrity protection of user data between the UE and the gNB Requirement Name: Integrity protection of user data between the UE and the gNB. Requirement Description: The gNB supports integrity protection and replay protection of user data between the UE and the gNB as specified in TS 33.501, clause 5.3.3. NOTE: This requirement does not apply to the gNB that is used as a secondary node connecting to the EPC.

【李明的深度解读】

“为什么‘智行汽车’如此看重完整性?”李明想,“因为对于自动驾驶,错误的数据比没有数据更可怕。”

他设想了一个场景:一辆自动驾驶汽车正在高速行驶,它通过5G网络实时从云端下载高精地图的更新数据。如果一个攻击者在空中截获并篡改了这些数据,将地图中的一段“直行高速”篡改成“前方有急转弯”,车辆的决策系统可能会基于这个错误信息做出灾难性的动作。

5G的用户面完整性保护,就是为了杜绝这种风险。它使用一套专用于用户面的完整性密钥(K-U-Pint),对每一个上行和下行的用户数据包(P-D-C-P P-D-U)计算M-A-C-I。其原理与R-R-C完整性保护完全相同,但密钥是独立的,这确保了控制面和用户面安全的分离,防止了跨平面的安全风险。

【实验室实战:复现T-C-U-P-D-A-T-A-I-N-T_g-N-B测试用例】

李明搭建了端到端的测试环境,模拟“智行汽车”的数据传输。

  1. 策略设置: 他首先确保核心网模拟器下发了“U-P Integrity Protection: Required”的策略。
  2. 启动业务: 他在模拟U-E和网络侧服务器之间发起了一段U-D-P数据流,模拟车载摄像头画面的上传。
  3. 捕获与验证: 使用空口分析仪,李明捕获到了这些U-D-P数据包。在每个数据包的P-D-C-P P-D-U尾部,他都看到了一个4字节的M-A-C-I。他将数据包内容和预置的K-U-Pint密钥输入验证工具,结果完美匹配。

实验证明,Orion-g-Node-B 9000为“智行汽车”的数据流穿上了一层坚固的“铁布衫”。

2.2 金钟罩:机密性保护 (Ciphering) - 守护数据的隐私

4.2.2.1.7 Ciphering of user data between the UE and the gNB Requirement Name: Ciphering of user data between the UE and the gNB. Requirement Description: The gNB supports ciphering of user data between the UE and the gNB as specified in TS 33.501, clause 5.3.2.

【李明的深度解读】

机密性保护,即加密,是为了防止数据被窃听。“智行汽车”的自动驾驶算法、车辆的精确G-P-S轨迹、甚至车内乘客的语音交互数据,都属于高度敏感的商业和个人隐私。如果这些数据在空中“裸奔”,就可能被竞争对手或黑客获取。

用户面加密使用另一把独立的密钥——K-U-Penc。在启用后,所有用户数据的载荷都会被加密成无法被解读的密文,只有拥有正确密钥的g-Node-B和U-E才能将其还原。

【实验室实战:复现T-C-U-P-D-A-T-A-C-I-P_g-N-B测试用例】

李明继续他的测试。

  1. 策略设置: S-M-F模拟器下发“U-P Ciphering: Required”策略。
  2. 捕获与解密: 他再次捕获了模拟摄像头上传的U-D-P数据流。在空口分析仪上,数据包的载荷部分显示为一堆毫无规律的乱码。但当他将这段密文和K-U-Penc密钥导入到测试工具的解密模块后,清晰的原始图像数据立刻呈现了出来。

“金钟罩”也已成功加持。

2.3 防御加成:抗重放保护 (Replay Protection) - 确保数据的时效性

4.2.2.1.8 Replay protection of user data between the UE and the gNB Requirement Name: Replay protection of user data between the UE and the gNB. Requirement Description: The gNB supports integrity protection and replay protection of user data as specified in TS 33.501, clause 5.3.3.

【李明的深度解读】

重放攻击在用户面同样危险。李明设想了一个场景:攻击者录制了一段“智行汽车”发出的合法数据包,内容是“请求紧急刹车”。然后,在几分钟后,当车辆在空旷的高速公路上正常行驶时,攻击者将这段录制的数据包重放给网络。如果g-Node-B接收并处理了这条过时的指令,可能会错误地触发车辆的紧急制动,造成追尾事故。

用户面的抗重放机制与R-R-C信令一样,依赖于单向递增的P-D-C-P C-O-U-N-T值。由于C-O-U-N-T值参与了M-A-C-I的计算,任何重放的、带有过时C-O-U-N-T值的数据包,都会因为M-A-C-I校验失败(如果接收方用当前的C-O-U-N-T去计算)或者被接收窗口拒绝而被g-Node-B丢弃。

【实验室实战:复现T-C-U-P-D-A-T-A-R-E-P-L-A-Y_g-N-B测试用例】

李明最后一次扮演“黑客”。

  1. 捕获: 他捕获了一个合法的、C-O-U-N-T值为N的用户数据包。
  2. 重放: 等待片刻,他将这个C-O-U-N-T值为N的数据包重新发送给Orion-g-Node-B 9000。
  3. 验证: 通过检查g-Node-B的底层日志,他确认g-Node-B的P-D-C-P层因为检测到这是一个重复的或过期的C-O-U-N-T值而将其丢弃,上层的应用对此毫无察觉。

“金钟罩铁布衫”的最后一道防御加成也验证无误。Orion-g-Node-B 9000为用户数据构建了一个坚固的空中保险箱。


3. 入侵应对:用户面完整性校验失败的“静默”处理

4.2.2.1.5 UP integrity check failure Requirement Name: UP integrity check failure Requirement Reference: TS 33.501, clause 6.6.4 Requirement Description: If the gNB or the UE receives a PDCP PDU which fails integrity check with faulty or missing MAC-I after the start of integrity protection, the PDU is discarded as specified in TS 33.501, clause 6.6.4.2.

【李明的深度解读】

与R-R-C信令一样,当g-Node-B收到一个完整性校验失败的用户数据包时,唯一的正确动作就是静默丢弃 (discarded)。对于每秒可能包含成千上万个数据包的高速用户数据流来说,这一点尤为重要。如果对每个坏包都产生告警或响应,不仅会给系统带来巨大负担,还可能被利用于发起拒绝服务攻击。

李明在实验室里,向Orion-g-Node-B 9000发送了大量缺少M-A-C-I或M-A-C-I错误的用户数据包,g-Node-B都如规范所要求的那样,稳定地将它们一一丢弃,保证了正常业务流不受影响。


FAQ 环节

Q1:5G用户面完整性保护相比4G,最大的不同是什么? A1:最大的不同在于,4G(LTE)的用户面完整性保护是可选的(Optional),在实际商用网络中很少部署。而5G将其定义为一项基础安全能力,虽然其开启与否受核心网S-M-F的策略控制,但g-Node-B和U-E必须支持该功能。这使得为高安全需求业务(如自动驾驶、工业控制)提供端到端的完整性保护成为可能,是5G安全的一大进步。

Q2:用户面的密钥(K-U-Pint, K-U-Penc)和控制面的密钥(K-R-R-Cint, K-R-R-Cenc)是相同的吗? A2:不相同。它们是两套完全独立的密钥。这两套密钥都是由g-Node-B基于从核心网A-M-F获取的根密钥K-g-N-B派生出来的,但是使用不同的派生算法和参数。这种设计确保了控制面和用户面之间的安全隔离,即使一套密钥出现问题,也不会影响另一套的安全性。

Q3:如果S-M-F下发的策略是“Preferred”,g-Node-B会如何处理? A3:如果策略是“Preferred”,g-Node-B会首先检查U-E上报的安全能力,看它是否支持所要求的安全算法。如果U-E支持,g-Node-B就会启动安全保护,这与“Required”的行为类似。但如果U-E不支持,g-Node-B将不会启动安全保护,但P-D-U会话依然会成功建立,只是数据会在没有保护的情况下传输。

Q4:所有用户数据都会被加密和完整性保护吗? A4:不是的。是否进行保护,以及具体是进行加密保护、完整性保护还是两者都进行,完全取决于S-M-F为该P-D-U会话设定的安全策略。例如,对于一个普通的手机上网业务,运营商可能会设定为“Ciphering: Preferred, Integrity: Not Needed”;而对于“智行汽车”的专网业务,则一定会设定为“Ciphering: Required, Integrity: Required”。

Q5:为什么处理完整性校验失败时,g-Node-B要“静默丢弃”? A5:这主要是出于两个安全考虑:1) 防止信息泄露:不给攻击者任何关于其攻击是否成功或失败的反馈信息。2) 增强系统鲁棒性:用户数据流量巨大,如果对每一个坏包都进行上报或响应,会消耗大量系统资源,容易被攻击者利用发起DoS(拒绝服务)攻击。静默丢弃是最有效、最安全、资源消耗最小的处理方式。