好的,我们继续深入探索3GPP TS 33.401。在完成了对第六章——UE与核心网(EPC)之间宏观安全流程的解读之后,我们将进入第七章。这一章将我们的视角从核心网进一步下沉,聚焦于UE与接入网(E-UTRAN)之间,也就是UE与eNodeB之间更为具体、更为细致的安全交互过程。
第七章内容繁多且极为重要,涵盖了从密钥使用到切换、状态转换的各种细节。因此,我们将分篇进行拆解。本文将首先聚焦于7.0节 General (概述), 7.1节 Mechanism for user identity confidentiality (用户身份保密机制), 和 7.2.1-7.2.3节 Handling of user-related keys in E-UTRAN (E-UTRAN中用户相关密钥的处理)。
深度解析 3GPP TS 33.401:7.0-7.2.3 UE与接入网安全交互(密钥处理与身份保密)
本文技术原理深度参考了3GPP TS 33.401 V18.3.0 (2025-03) Release 18规范中,关于“7 Security procedures between UE and EPS access network elements”的前导部分,旨在为读者阐明4G网络中临时身份标识GUTI的使用机制,以及在E-UTRAN中各级密钥(
KASME,KeNB, AS keys)是如何被触发设置、唯一识别并进行生命周期管理的。
在之前的章节中,我们已经知道,UE和MME通过AKA流程,安全地协商出了会话根密钥KASME。现在,是时候将这份“信任”从核心网延伸到网络的边缘——接入网了。第七章的核心任务,就是详细描述这份信任是如何“落地”为对空口信令和数据的实际保护的。
我们的主角“小明”此时正坐在咖啡馆里,他的手机静静地放在桌上,屏幕虽暗,但后台却与网络保持着一种“若即若离”的连接。这种连接状态的管理,以及从空闲到激活瞬间的安全建立,正是本章要揭示的奥秘。
1. 概述与适用范围 (7.0 General)
与第六章类似,第七章的开头首先明确了其规则的普适性,特别是在涉及中继节点(RN)的场景下。
The statements relating to eNBs in clause 7 apply also to RNs regarding the security between a UE and a relay node.
The statements relating to UEs in clause 7 apply also to RNs regarding the security between a relay node and a Donor eNB and between a relay node and its MME unless stated otherwise.
深度解读:这段熟悉的文字再次强调了一致性原则。无论UE是连接到常规的eNodeB,还是连接到一个中继节点RN,它们之间交互的安全程序都必须遵循第七章的规定。同样,RN作为UE接入“施主”eNB时,其行为也必须符合本章对UE的规定。这确保了在复杂的网络拓扑中,接入层的安全标准是统一且不打折扣的。
2. “隐身”的艺术:用户身份保密机制 (7.1 Mechanism for user identity confidentiality)
我们在5.1.1节已经了解到,为了保护用户隐私,网络会避免使用永久身份IMSI,而倾向于使用临时身份。7.1节则具体阐述了这一机制的核心——GUTI。
The MME shall allocate a GUTI to a UE in order to support the subscriber identity confidentiality. The GUTI is defined in TS 23.003.
S-TMSI, the shortened form of the GUTI, is used to support the subscriber identity confidentiality with more efficient radio signalling procedures (e.g. paging and Service Request).
深度解读:
-
GUTI (Globally Unique Temporary Identity):这是MME在UE首次附着成功后,为其分配的一个全局唯一的临时身份标识。它的结构复杂,包含了归属运营商ID(PLMN-ID)、MME的ID以及一个在MME内部唯一标识UE的M-TMSI。网络侧可以通过GUTI直接定位到为该UE服务的MME。
-
S-TMSI (SAE-Temporary Mobile Subscriber Identity):这是GUTI的一个“短格式”版本。在某些对空口信令效率要求极高的场景下(如寻呼UE),网络只需要在一个MME的管辖范围内唯一识别UE即可。此时,就不需要发送包含PLMN-ID和MME-ID的完整GUTI,只需发送其“短格式”S-TMSI(由MME Code和M-TMSI组成),大大节省了无线资源。
GUTI的更新机制
为了防止临时身份被长期追踪,GUTI需要被定期更新。规范对此提出了一个关键的安全要求:
A new GUTI shall be sent to the UE only after a successful activation of NAS security.
深度解读:这是一条“先上锁,再给新钥匙”的规则。MME为UE重新分配一个新的GUTI时,必须通过一条已经受到NAS安全保护(即经过加密和完整性保护)的信令来下发。常见的下发时机是Attach Accept或TAU Accept消息。
- 安全考量:如果在一个不受保护的信道上下发新的GUTI,攻击者就可以截获这条消息,从而建立起旧GUTI和新GUTI之间的关联,使得“临时身份”的匿名性大打折扣。在一个已经加密的信道中下发,则可以保证攻击者无法窥探到新旧GUTI的对应关系。
场景串联:小明成功开机附着后,MME通过加密的Attach Accept消息,给了他第一个GUTI。当他乘坐地铁,手机发起一次位置更新(TAU)后,新的MME在TAU Accept消息中,又会为他分配一个新的GUTI。这样一来,即使有人在两个不同的地铁站都监听到了小明手机发出的信令,也很难确认这两个信号来自同一个用户,因为手机使用的临时身份已经发生了改变。
3. 密钥的生命周期:E-UTRAN中的密钥处理 (7.2 Handling of user-related keys in E-UTRAN)
这一节是第七章的核心,它详细描述了从KASME到最终空口保护密钥的设置、识别和生命周期管理的全过程。
3.1 密钥的“播种”:AKA期间的密钥设置 (7.2.1 E-UTRAN key setting during AKA)
AKA流程不仅完成了认证,更重要的是“播种”了密钥。
Authentication and key setting are triggered by the authentication procedure… A successful run of AKA results in a new KASME that is stored in the UE and MME.
NAS keys, KeNB and the RRC and UP keys are derived from KASME using the KDFs specified in Annex A.
深度解读:本节重申了在第六章建立的核心概念:
-
一次成功的AKA,其直接成果是在UE和MME中生成了一个全新的
KASME。 -
这个
KASME是所有其他密钥的“种子”,后续的NAS密钥(KNASenc/KNASint)和AS密钥(KeNB及其子孙)都将由它派生而来。
那么,这些派生出来的密钥是如何被“激活”使用的呢?
The NAS keys derived from the new KASME are taken in use in the MME and the UE by means of the NAS security mode set-up procedure (see clause 7.2.4.4). The AS keys are taken into use with the AS security mode set-up procedure (see clause 7.2.4.5) or with the key change on the fly procedure (see clause 7.2.9.2).
深度解读:密钥的派生和密钥的激活是两个步骤。派生可以在后台默默完成,但激活则需要一个明确的信令流程,也就是**安全模式设置(SMC)**程序。NAS密钥通过NAS SMC激活,AS密钥通过AS SMC激活。这确保了通信双方在“切换到新密码”这个动作上的精确同步。
3.2 密钥的“指纹”:E-UTRAN密钥识别 (7.2.2 E-UTRAN key identification)
网络中同时存在多套密钥,如何精确地识别它们?7.2.2节为不同层级的密钥定义了不同的“指纹”,即它们的唯一标识方法。
KASME的识别
Clause 6.3 of this specification states how the key KASME is identified, namely by the key set identifier eKSI.
深度解读:本节重申了6.3节的结论:KASME的唯一标识符是eKSI。
KeNB的识别
KeNB是UE和eNB之间共享的密钥,它的识别机制更为复杂,因为它与动态参数紧密相关。
The initial KeNB can be uniquely determined by the key set identifier, i.e. eKSI, together with the uplink NAS COUNT are used to derive it.
深度解读:初始KeNB(即UE从空闲态转为连接态时生成的第一个KeNB)的唯一身份,是由**eKSI + 上行NAS COUNT**这个组合来决定的。
-
eKSI:指向了它的“父亲”——是哪个KASME派生了它。 -
上行
NAS COUNT:提供了“新鲜度”,确保了即使使用同一个KASME,每次生成的KeNB也不同。
The intermediate key NH as defined in clause 7 can be uniquely determined by the key set identifier, i.e. eKSI, together with the initial KeNB derived from the current NAS security context…and a counter counting how many NH-derivations have already been performed…NCC, represents the 3 least significant bits of this counter.
深度解读:用于切换的中间密钥NH(Next Hop),其身份是由 eKSI + 初始KeNB + NCC(Next hop Chaining Counter) 共同决定的。NCC是一个短计数器,记录了在NH这条“密钥链”上已经前进了几步。
后续KeNB及其子密钥的识别
Intermediate key KeNB*, defined in clause 7, as well as keys non-initial KeNB, KRRCint, KRRCenc, KUPint, and KUPenc…can be uniquely identified by eKSI together with those parameters from the set {Initial KeNB or NH, algorithm distinguisher, algorithm identifier, and sequence of PCIs and EARFCN-DLs used…}
深度解读:对于在切换过程中产生的**后续KeNB**以及所有AS应用密钥(KRRC/KUP),它们的身份则由一个更庞大的参数集合唯一确定,包括:
-
eKSI(指明KASME来源) -
Initial KeNB或NH(指明是基于哪个中间密钥派生的) -
算法相关信息(指明用于哪个算法)
-
切换目标小区的物理信息(
PCI- 物理小区ID,EARFCN-DL- 频率)
总结:这套精密的识别体系,确保了在任何时刻、任何地点的任何一个密钥,都有一个可以追根溯源的、独一无二的“身份履历”。这对于网络进行故障排查、安全审计以及防止密钥混淆至关重要。
3.3 密钥的“生命期限”:E-UTRAN密钥生命周期 (7.2.3 E-UTRAN key lifetimes)
所有密钥都不是永恒的,它们有自己的生命周期。
All E-UTRAN keys are derived based on a KASME.
深度解读:这是密钥生命周期的第一原则:所有AS密钥的生命,都不能长于它们的“祖先”KASME。一旦KASME因为重认证等原因被更新,所有由旧KASME派生出的KeNB、KRRC、KUP密钥都必须被废弃。
KASME shall be created only by running a successful AKA or by the inter-RAT procedures towards E-UTRAN…
深度解读:KASME的生命周期始于一次成功的AKA(创建原生上下文)或一次成功的跨系统切换(创建映射上下文)。
In case the UE does not have a valid KASME, a KSIASME with value “111” shall be sent by the UE to the network, which can initiate (re-)authentication procedure to get a new KASME based on a successful AKA authentication.
深度解读:KASME生命的终结,可以通过UE发送eKSI=111来隐式触发。当网络收到这个信号,就意味着UE侧的KASME已失效,网络会启动AKA来创建一个全新的KASME,开启一个新的生命周期。
The key hierarchy which is described in clause 6.2 does not allow direct update to RRC and UP keys, but fresh RRC and UP keys are derived based on a fresh KeNB… This results as fresh RRC and UP keys in the eNB between inter-eNB handovers and state transitions…
深度解读:这是生命周期管理的又一重要原则:无法“局部热更新”。你不能在保持KeNB不变的情况下,只更新KRRC密钥。AS密钥的更新必须是“牵一发而动全身”的。要更新AS密钥,必须先生成一个新鲜的KeNB。而新鲜的KeNB,又是在发生状态转换(如空闲→连接)或切换时才生成的。这种机制,将密钥的刷新与网络的宏观行为(移动性)紧密绑定,使得密钥管理更加有序和可预测。
4. 总结
7.0至7.2.3节,为我们揭示了4G接入网安全的“幕后管家”是如何工作的。它不再是宏大的密码学流程,而是深入到了密钥管理的“柴米油盐”之中,确保整个体系的有序运行。
-
身份保密靠GUTI:通过在受保护的信道中下发和更新GUTI/S-TMSI,网络在保证高效寻址的同时,最大限度地保护了用户的身份隐私。
-
密钥激活靠SMC:密钥的派生与激活分离,通过明确的SMC信令流程,确保了通信双方在启用新密钥上的精确同步。
-
密钥识别靠“组合指纹”:为每一级密钥都定义了一套由其“血缘”(父密钥)和“环境”(动态参数)共同组成的唯一标识,杜绝了密钥混淆的可能。
-
密钥生命周期管理:
KASME的生命周期与附着会话绑定,而KeNB及AS密钥的生命则与RRC连接和移动性事件绑定。这种分层的生命周期管理,实现了安全与效率的完美平衡。
掌握了这些密钥处理的细节,我们才能真正理解在小明手机屏幕信号格闪烁的背后,那套精密的安全状态机是如何运转的。在下一篇文章中,我们将继续深入7.2.4节,详细拆解“安全模式命令(SMC)”这一激活所有保护的关键流程。
FAQ 环节
Q1:GUTI和IMSI有什么区别?为什么不直接加密IMSI来用?
A1:IMSI是用户的永久身份标识,固定不变,如同身份证号。GUTI是网络分配的临时身份标识,动态变化,如同酒店的临时房卡号。不直接加密IMSI的原因在于:1) 性能开销:如果每次都用公钥加密IMSI,性能开销巨大;如果用对称加密,又面临密钥如何安全协商的问题,最终还是会回到类似AKA的流程。2) 可追踪性:即使加密了IMSI,如果每次发送的密文都一样,攻击者虽然不知道你是谁,但依然可以通过这个不变的密文来追踪你的轨迹。而GUTI的动态变化,则彻底切断了这种关联。使用临时标识符是现代通信隐私保护的标准实践。
Q2:KeNB的唯一标识为什么那么复杂,需要eKSI + NAS COUNT等一大堆参数?不能像KASME一样也给它分配一个短的ID吗?
A2:这主要是因为KeNB的“动态”和“分布式”特性。KASME由中心化的MME生成和管理,MME可以很容易地维护一个小型数据库,为每个KASME分配一个唯一的eKSI。而KeNB是在UE和eNB之间使用的,并且在每次状态转换、每次切换时都会重新生成。eNB是分布式、数量庞大的,让它们去维护和同步一个全局唯一的KeNB ID系统,会带来巨大的复杂性和信令开销。因此,规范采用了一种更巧妙的“隐式”识别方法:KeNB的身份由其派生路径唯一确定。只要你知道它是从哪个KASME(由eKSI指定)和哪个NAS COUNT派生出来的,你就能唯一地重建出这个KeNB,无需为它分配一个额外的、需要信令传递的ID。
Q3:规范说AS密钥不能“局部热更新”,这是出于什么安全考虑?
A3:这主要是为了保证密钥派生链条的完整性和可追溯性,并简化安全状态的管理。如果允许只更新KUPenc而不更新KeNB,就需要引入额外的信令和参数来保证这次更新的新鲜度,否则就可能被重放。而将AS密钥的更新与KeNB的刷新强绑定,意味着每次AS密钥更新都源于一次宏观的网络事件(状态转换或切换),这些事件本身就包含了足够的新鲜度参数(如NAS COUNT或目标小区的PCI)。这种设计使得密钥的刷新机制更加统一和简洁,减少了引入漏洞的可能性。
Q4:eKSI的值只有3比特(0-6),如果一个UE在一个MME下发生了超过7次重认证,eKSI的值不够用了怎么办?
A4:eKSI的值是循环使用的。MME在分配新的KSIASME时,只需要保证它与当前UE上下文中存储的其他KSIASME(如果有non-current上下文的话)不冲突即可。例如,当前current的eKSI是1,non-current的eKSI是2,那么MME可以为下一次AKA分配3。当UE和MME只有一个current上下文时,MME可以自由选择除当前值之外的任何一个值。3比特(7个可用值)的设计,是基于UE和MME最多存储“一主一备”两个上下文的假设,7个值足以保证总能找到一个可用的新ID。
Q5:一个UE的KASME的典型生命周期有多长?
A5:这并没有一个固定的标准,很大程度上取决于运营商的安全策略配置。一个KASME的生命周期从UE成功附着开始,直到UE去附着(如关机、拔卡)或网络侧删除其上下文(如长期不活动)结束。在此期间,如果网络配置了周期性的重认证策略,KASME的生命周期可能会被主动缩短。例如,运营商可能配置策略,要求对活跃用户每24小时进行一次静默的重认证(用户无感知)来更新KASME。在没有强制重认证策略的情况下,一个KASME理论上可以持续存在数天甚至更长,只要UE保持附着状态。