好的,我们继续深入解读3GPP TS 33.501规范。

深度解析 3GPP TS 33.501:6.9 Security handling in mobility (移动中的安全处理)

本文技术原理深度参考了3GPP TS 33.501 V18.9.0 (2025-03) Release 18规范中,关于“6.9 Security handling in mobility”的核心章节,旨在为读者深度剖析5G网络中最核心、最复杂的动态安全场景——移动性管理中的密钥处理与上下文同步。

在上一篇文章中,我们探讨了UE在不同“静止”状态(连接态、空闲态、非活跃态)之间转换时的安全机制。然而,5G的“5”代表的正是移动通信(Mobile Communications)。“移动”是其与生俱来的基因。当用户以每小时数百公里的速度在不同基站、不同区域甚至不同城市之间穿梭时,如何确保安全上下文的无缝交接和密钥的持续有效,是5G安全面临的终极考验。

今天,我们将深入解读规范中技术密度最高、挑战最大的章节之一——6.9 移动中的安全处理。这一章是前述所有安全概念的“集大成者”和“实战演练场”。我们将在这里看到:

  • 切换(Handover):当UE从一个基站的覆盖范围移动到另一个时,密钥是如何像接力棒一样被安全、快速地传递的?
  • 密钥链(Key Chaining):5G是如何通过精妙的“水平”与“垂直”密钥派生,实现“前向安全”,让攻击者即使攻破一个基站,也无法预测下一个基站的密钥?
  • 上下文同步:在高速移动中,如何确保UE、AMF、gNB这三方对安全上下文的认知始终保持“神同步”,避免因状态不一致导致的安全漏洞?
  • 密钥更新:网络是如何在不中断业务的情况下,实现“空中换锁”(Key-change-on-the-fly)的?

我们的主角,“安安”,正乘坐着飞驰的高铁。她的手机屏幕上,高清视频流畅播放,丝毫没有因为列车的移动而卡顿。这背后,正是6.9节所定义的复杂安全机制在以毫秒级的速度精密运作。而核心网工程师“李工”,将再次为我们揭开这场“速度与激情”背后的安全大幕。

1. 6.9.1 Void & 6.9.2 Key handling in handover (切换中的密钥处理) - 信任的“无缝接力”

本节的核心是定义在切换(Handover)——即UE在保持连接(CM-CONNECTED)状态下,从一个小区移动到另一个小区的控制权交接过程——中的密钥处理机制。

1.1 密钥链模型 (Key Chaining Model) - Figure 6.9.2.1.1-1

The general principle of key handling for KNG-RAN*/NH at handovers is depicted in Figure 6.9.2.1.1-1.

这张图是理解5G切换安全的核心。它描绘了一个被称为“密钥链 (Key Chaining)”的模型。

  • 初始状态 (NCC=0):当UE首次在AMF下建立AS安全时,AMF会使用K_AMF派生出第一个K_gNB_initial和一个**“备用密钥种子”NH_initial (Next Hop)**。K_gNB_initial被下发给第一个基站使用。
  • 水平派生 (Horizontal Derivation):当UE从gNB-A切换到gNB-B,且gNB-A没有可用的NH时(例如,这是第一次切换),它会使用**当前的K_gNB**作为输入,结合目标小区的物理信息(如PCI),派生出一个新的密钥K_gNB*。这个过程就像从树干上水平地伸出另一根枝条。
  • 垂直派生 (Vertical Derivation):当gNB-A拥有一个从AMF处获得的NH时,它会使用这个**NH**作为输入,结合目标小物的物理信息,派生出新的K_gNB*。这个过程就像在树干的顶端向上生长出一节新的树干。派生完成后,这个NH就被消耗掉了。

这个模型的精髓在于实现了“前向安全”(Forward Secrecy)。 在垂直派生中,由于新密钥K_gNB*是从NH派生而来,而NH是由AMF生成并安全下发的,所以即使攻击者攻破了gNB-A并获取了其所有的密钥(包括K_gNB),他也无法推算出下一次切换将要使用的NH,从而无法预测出K_gNB*。这就保证了每一次切换后的安全都是全新的。

1.2 切换类型与密钥派生 (6.9.2.3)

切换根据涉及的网元不同,分为多种类型,其密钥处理也略有差异。

  • Xn切换 (Xn-handover):UE从一个gNB切换到另一个gNB,且这两个gNB之间有Xn接口直接连接。

    1. 源gNB(Source gNB)执行垂直派生(如果它有可用的NH)或水平派生,计算出K_gNB*
    2. 源gNB将这个新计算出的K_gNB*和对应的NCC值,安全地通过Xn接口发送给目标gNB(Target gNB)。
    3. 目标gNB收到K_gNB*后,将其作为自己的K_gNB,并据此派生出RRC/UP密钥。
    4. 目标gNB在发送给UE的Handover Command消息中,包含这个NCC值。
    5. UE收到命令后,也根据NCC值的变化,执行与源gNB完全相同的派生过程,计算出同一个K_gNB*,从而与目标gNB完成密钥同步。
  • N2切换 (N2-handover):两个gNB之间没有Xn接口,切换必须通过AMF来中转。这个流程更为复杂,但安全性更高。

    1. 源gNB向AMF发起切换请求。
    2. AMF执行垂直派生。它使用自己保存的K_AMF,计算出一个全新的NH
    3. AMF将这个全新的{NH, NCC}对,安全地通过N2接口发送给目标gNB。
    4. 目标gNB收到NH后,再用它和目标小区的物理信息,派生出K_gNB*
    5. 后续流程与Xn切换类似,UE最终也会收到NCC值,并从自己保存的NH派生出相同的K_gNB*

场景代入: 安安的高铁飞速前进,手机需要从基站A切换到基站B。

  • 如果是Xn切换:基站A会自己“加工”出一个新钥匙K_gNB*,然后把这把新钥匙通过“内部通道”(Xn接口)直接递给基站B。
  • 如果是N2切换:基站A会向“指挥中心”(AMF)报告:“请求切换!”。AMF会亲自“铸造”一把全新的“万能钥匙胚子”(NH),然后把它交给基站B,并告诉基站B:“用这个胚子,根据你自己的门锁样式,打造一把新钥匙K_gNB*”。N2切换的安全性更高,因为它保证了每一次跨AMF的切换,其密钥都源自核心网,实现了完美的“前向安全”。

2. 6.9.3 移动性注册更新 - AMF之间的“信任交接”

当安安的高铁驶入另一个城市,超出了原AMF的服务区,就需要进行AMF的更换。这个过程称为移动性注册更新

At mobility registration update, the source AMF shall use local policy to determine whether to perform horizontal KAMF derivation… If the source AMF determines to perform horizontal KAMF derivation, the source AMF shall derive a new key KAMF’ from the currently active KAMF and the uplink NAS COUNT value in the received Registration Request message.

解读: 此时,源AMF-1需要将安安的“数字档案”(UE Context)安全地移交给目标AMF-2。这个过程的核心,是K_AMF的交接。

  • 水平K_AMF派生:为了增强安全性,源AMF-1并不会直接把自己的K_AMF给AMF-2。而是会执行一次水平派生,使用当前的K_AMF和触发这次注册更新的Registration Request消息的上行NAS COUNT作为“新鲜性”输入,派生出一个全新的**K_AMF'**。
  • 上下文传递:源AMF-1会将这个K_AMF',连同UE的SUPI、安全能力、当前的NAS COUNT值等,一起打包成UE Context,通过安全的内部接口(如N14接口)发送给目标AMF-2。
  • 新AMF接管:目标AMF-2收到后,将K_AMF'作为自己的K_AMF,并据此重新派生出新的NAS密钥。然后,它会发起一次NAS SMC流程,与UE同步这套新的安全上下文,并分配新的GUTI。

这个机制,与CM-IDLE唤醒时用NAS COUNT派生K_gNB的思路如出一辙,都是利用永不重复的NAS COUNT,在无需重新认证的情况下,生成一个全新的、与之前密钥无关联的话密钥,实现了AMF切换过程中的“前向安全”。

3. 6.9.4 空中换锁:Key-change-on-the-fly

在某些情况下,网络可能需要在不发生切换、不中断业务的情况下,主动更新当前正在使用的密钥。这就是“空中换锁”。

Key change on-the-fly consists of key refresh or key re-keying.

  • 密钥刷新 (Key Refresh):通常由gNB发起,用于防止PDCP COUNT计数器回绕(wrap around)。当一个DRB上的数据量巨大,32位的COUNT即将用尽时,如果继续使用旧密钥,就会导致密钥流重用。此时,gNB会发起一次伪切换(intra-gNB handover),利用垂直派生(从NH)生成一个全新的K_gNB,并与UE同步。这个过程对用户完全无感。

  • 密钥重发 (Key Re-keying):通常由AMF发起,用于激活一个全新的安全上下文。例如,在一次由归属网络触发的重认证成功后,AMF需要将新生成的K_AMF及其派生的K_gNB投入使用。AMF会向gNB发送一个UE CONTEXT MODIFICATION REQUEST消息,其中包含了新的K_gNB。gNB收到后,会通过一次伪切换流程,与UE同步并激活这套全新的AS密钥。

4. 6.9.5 & 6.9.6 并发流程规则与直接重路由

这两节定义了在复杂的移动场景下,为了避免安全状态混乱而必须遵守的“交通规则”。

6.9.5 Rules on concurrent running of security procedures AMF shall not initiate any of the N2 procedures including a new key towards a UE if a NAS Security Mode Command procedure is ongoing with the UE.

  • 避免并发冲突:规范严格禁止AMF在正在进行NAS SMC流程时,又去发起一个需要更新密钥的N2切换流程。它必须等待一个流程完全结束后,才能发起另一个,避免UE和网络在“到底该用哪套新密钥”上产生混淆。

6.9.6 Security handling in registration with AMF reallocation via direct NAS reroute In registration with AMF reallocation via direct NAS reroute, the initial AMF shall send the complete Registration Request in clear text to the target AMF.

  • 直接重路由:这是一种特殊的AMF变更场景。当UE向AMF-1发起注册,而AMF-1发现根据UE的位置或切片需求,它应该由AMF-2服务时,AMF-1可以直接将UE的初始注册请求(Registration Request)“重定向”给AMF-2。在这个过程中,为了效率,AMF-1会把整个NAS消息明文转发。而安全性的保障,则依赖于AMF-2在接手后,立即与UE启动一个完整的、全新的认证和安全建立流程。

5. 总结

本章深入探讨的6.9节,是5G安全体系中动态性、复杂性和精妙性最高的篇章。它将之前所有的静态安全概念,都投入到了高速移动的“实战”之中。

  • 切换安全的核心——密钥链:通过“垂直派生(用NH)”和“水平派生(用旧K_gNB)”相结合的密钥链机制,5G在切换的效率和“前向安全”之间取得了完美的平衡。N2切换强制使用垂直派生,提供了最高的安全性。
  • AMF更换的平滑过渡:通过基于NAS COUNT的水平K_AMF派生,实现了AMF之间的安全上下文迁移,避免了昂贵的主认证,保证了广域移动的连续性。
  • 主动的密钥更新:通过“空中换锁”机制(Key Refresh/Re-keying),网络具备了在不影响用户业务的情况下,主动刷新密钥、应对潜在威胁的能力。
  • 严格的并发控制:通过定义明确的流程互斥规则,确保了在复杂并发场景下,安全状态的唯一和同步,防止了因“状态错乱”导致的安全漏洞。

正是这套复杂而健壮的移动性安全处理机制,才使得安安能够在时速300公里的高铁上,安心地享受着如履平地般的5G高清视频体验。


FAQ

Q1:垂直密钥派生和水平密钥派生,哪个更安全?为什么不总是用更安全的那个? A1:垂直密钥派生更安全。因为它使用NH作为输入,而NH是由AMF基于K_AMF新生成的,与当前gNB持有的K_gNB无关。这实现了完美的“前向安全”。而水平派生是基于旧K_gNB,理论上如果旧K_gNB泄露,攻击者有可能推算出新K_gNB(虽然还需要知道目标小区的PCI等信息)。 不总是用垂直派生的原因是效率和资源。垂直派生需要gNB持有从AMF下发的NH。AMF并不会无限制地给gNB下发NHNH是一种宝贵的“一次性资源”。在gNB之间可以快速直接通信的Xn切换场景下,为了追求最低的切换时延,允许gNB在没有可用NH时,使用次优但足够安全的水平派生来快速完成切换。而在必须经过AMF中转的N2切换中,AMF则会抓住这个机会,强制执行最安全的垂直派生。

Q2:什么是NCC (Next Hop Chaining Counter),它在密钥链中起什么作用? A2:NCC是一个与NH密钥对绑定的、很短的计数器(通常只有几比特)。它的核心作用是帮助UE和gNB同步应该使用哪一个NH。AMF可能会一次性为gNB准备好几个NH密钥以备连续的切换使用。每一个NH都与一个唯一的NCC值相关联。在切换时,网络会将要使用的那个NH对应的NCC值告诉UE。UE收到NCC后,就能准确地知道应该从自己本地保存的NH链中,拿出哪一个NH来派生新的K_gNB*,从而保证了双方密钥计算的同步。

Q3:K_AMF的水平派生和K_gNB的水平派生,有什么共同点和不同点? A3:共同点在于,它们都是同层级密钥之间的派生,目的都是为了在不进行更高层级交互(如主认证或联系AMF)的情况下,快速生成一个新密钥以适应移动性。不同点在于:

  • K_gNB水平派生:发生在gNB之间(Xn切换),用于快速的本地切换。
  • K_AMF水平派生:发生在AMF之间(移动性注册更新),用于更大范围的广域移动。 它们都巧妙地利用了一个动态变化的参数(分别是目标小区的PCI和注册请求的NAS COUNT)作为“新鲜性”来源,以保证新生成的密钥与旧密钥不同。

Q4:密钥刷新(Key Refresh)和密钥重发(Key Re-keying)有什么区别? A4:密钥刷新(Key Refresh)通常是接入网内部为了解决密码学问题(如COUNT回绕)而发起的,它不改变更高层级的K_AMF,只是在K_gNB的派生链上“向上”生长了一节。而密钥重发(Key Re-keying)通常是核心网为了应用一个全新的安全上下文(如认证后)而发起的,它会引入一个全新的K_AMF(或映射的K_AMF),并由此重建整个K_gNB派生链。前者是“维护性更新”,后者是“革命性更新”。

Q5:为什么“直接重路由”(Direct NAS Reroute)时,初始AMF可以明文转发注册请求? A5:这是一种在特定场景下的效率优化,其安全性由后续流程来保障。这种场景发生在UE首次接入时,初始AMF(AMF-1)根据负载均衡或UE的位置等信息,判断UE应该由另一个AMF(AMF-2)服务。此时,UE和AMF-1之间还没有建立任何安全上下文。AMF-1如果先和UE走一遍完整的认证流程,再把上下文移交给AMF-2,效率会非常低。因此,规范允许AMF-1直接将UE的(可能包含SUCI的)原始注册请求明文转发给AMF-2。安全性的闭环在于,AMF-2在收到这个“二手”请求后,会将其视为一个全新的、从零开始的注册请求,立即与UE启动一个完整的、标准的主认证和安全模式命令流程。因此,最终的安全上下文是在UE和真正的服务AMF(AMF-2)之间建立的,中间的转发过程虽然是明文,但不影响最终结果的安全性。