深度解析 3GPP TS 33.501:6.2.2 密钥派生与分发机制 (信任的铸造与传递)
本文技术原理深度参考了3GPP TS 33.501 V18.9.0 (2025-03) Release 18规范中,关于“6.2.2 Key derivation and distribution scheme”的核心章节,旨在为读者详细揭示5G安全密钥从生成到分发的完整生命周期,阐明其背后的核心安全原则。
在上一篇文章中,我们共同见证了5G安全体系中那棵枝繁叶茂的“信任之树”——密钥体系(Key Hierarchy)。我们知道了从根密钥K到保护每一比特数据的“叶片”密钥,这棵树上有哪些关键的节点。然而,仅仅知道树的结构是不够的。这棵树是如何从一颗种子开始,由谁负责浇水施肥,枝干又是如何被精确地修剪并嫁接到需要的地方?
今天,我们将深入探讨规范的6.2.2节——密钥派生与分发机制。这一节将回答“How”的问题:这些至关重要的密钥,在网络侧和终端侧,究竟是如何被一步步计算生成(派生),并安全地**传递(分发)**给需要它们的网络实体的。这就像一场精确的“信任铸造与传递”的接力赛,每一个环节都必须分毫不差。
我们的工业主角,AGV“智行一号”,已经成功完成了主认证。现在,核心网工程师“李工”的“后台系统”开始高速运转,为“智行一号”打造一套专属的、即将用于其所有通信的“数字钥匙”。我们将跟随李工的视角,揭开这场在毫秒之间完成的、横跨多个网络功能的复杂密钥工程的神秘面纱。
1. 6.2.2.1 网络侧的密钥之旅:从“中央金库”到“前线哨所”
网络侧的密钥派生与分发,是一条严格自上而下、从最核心的归属网络(HPLMN)到最边缘的接入网(NG-RAN)的单向数据流。每一个环节,都遵循着“最小权限”和“风险隔离”的原则。
1.1 ARPF:信任的源头,“创世”之所
Keys in the ARPF The ARPF shall process the long-term key K and any other sensitive data only in its secure environment. The key K shall be 128 bits or 256 bits long. During an authentication and key agreement procedure, the ARPF shall derive CK’ and IK’ from K in case EAP-AKA’ is used and derive KAUSF from K in case 5G AKA is used. The ARPF shall forward the derived keys to the AUSF.
ARPF(认证凭证库和处理功能),作为UDM内部的“终极保险库”,是整个密钥派生链的起点。
- 职责:它的唯一职责,就是守护最根本的长期密钥
K,并在认证开始时,执行第一次、也是最关键的一次派生。 - 产出:
- 如果认证方法是EAP-AKA’,它会从
K派生出CK’ 和 IK’。 - 如果认证方法是5G AKA,它会从
K直接派生出**K_AUSF**。
- 如果认证方法是EAP-AKA’,它会从
- 分发:ARPF将这些第一代派生密钥,安全地转发给AUSF。
场景代入:
李工将ARPF比作国家的“中央黄金储备库”。“这里存放着所有用户的‘黄金母版’(密钥K)。当需要为‘智行一号’制作新钥匙时,储备库会根据不同的‘铸造工艺’(认证方法),用母版制作出第一批‘纯金锭’(CK’/IK’ 或 K_AUSF),然后通过内部最安全的通道,交给‘国家铸币厂’(AUSF)。”
1.2 AUSF:信任的“铸造厂”,K_SEAF的诞生地
Keys in the AUSF The AUSF shall generate the anchor key, also called KSEAF, from the authentication key material received from the ARPF… The KAUSF may be stored in the AUSF between two subsequent authentication and key agreement procedures.
AUSF(认证服务器功能)是认证的决策者,也是锚点密钥的制造者。
- 职责:接收来自ARPF的初始密钥材料,并从中生成用于分发给服务网络的锚点密钥
K_SEAF。 - 产出:
K_SEAF。K_SEAF是基于K_AUSF和“服务网络名”派生而来的。对于EAP-AKA’,AUSF会先从CK’/IK’计算出K_AUSF。 - 分发:将
K_SEAF安全地发送给服务网络中的SEAF。 - 策略性缓存:规范允许AUSF存储
K_AUSF。这是一个重要的优化。如果AUSF缓存了K_AUSF,在后续的重认证或特定业务(如SoR/UPU)中,它就可以跳过向UDM/ARPF请求的步骤,直接使用缓存的K_AUSF来生成新的K_SEAF,大大提高了效率。
1.3 SEAF:“阅后即焚”的安全信使
Keys in the SEAF The SEAF receives the anchor key, KSEAF, from the AUSF… The SEAF shall never transfer KSEAF to an entity outside the SEAF. Once KAMF is derived KSEAF shall be deleted.
SEAF(安全锚点功能)是信任从归属网络传递到服务网络的第一站,它扮演了一个极其关键但又极其“短暂”的角色。
- 职责:接收来自AUSF的
K_SEAF,并立即用它来生成下一级密钥K_AMF。 - 产出:
K_AMF。 - 分发:将
K_AMF交给同在AMF实体中的其他功能模块使用。 - 核心原则:“阅后即焚”。规范强制要求,一旦
K_AMF被成功派生,SEAF必须立即删除K_SEAF。K_SEAF绝不能在SEAF中被长期存储,也绝不能被转发给SEAF之外的任何实体。
为什么这个原则如此重要?
K_SEAF是服务网络中所有安全的“根”。将其生命周期缩短到极致,可以极大地减小攻击时间窗口。即使AMF在后续的某个时间点被完全攻破,攻击者也只能获取到K_AMF,而无法追溯到更高层级的K_SEAF。
1.4 AMF:安全的“分发中心”与“多面手”
Keys in the AMF The AMF receives KAMF from the SEAF or from another AMF. The AMF shall generate keys KNASint and KNASenc dedicated to protecting the NAS layer. The AMF shall generate access network specific keys from KAMF. In particular,
- the AMF shall generate KgNB and transfer it to the gNB.
- the AMF shall generate NH and transfer it to the gNB…
- the AMF shall generate KN3IWF and transfer it to the N3IWF…
AMF(接入和移动性管理功能)是密钥派生与分发的“工作母机”,它从K_AMF这根“主枝干”上,派生出用于各种不同目的的“子枝干”。
- 职责:接收并保管
K_AMF,并根据不同的安全需求,派生和分发各类专用密钥。 - 产出与分发:
- NAS保护:派生
K_NASint和K_NASenc,供自己内部使用,以保护与UE之间的NAS信令。 - 3GPP接入保护:派生**
K_gNB**,并通过N2接口(NGAP协议)安全地将其分发给正在为UE提供服务的gNB。 - 前向安全/切换:派生**
NH**(Next Hop)密钥,并与NCC(Next Hop Chaining Counter)一起,在适当的时候(如N2切换)分发给gNB,用于下一次切换的密钥计算。 - 非3GPP接入保护:派生**
K_N3IWF**,并通过N2接口安全地分发给N3IWF(非3GPP互通功能),用于建立IPsec隧道。 - AMF间移动:派生
K_AMF',用于UE切换到新AMF时,安全地传递安全上下文。
- NAS保护:派生
场景代入:
李工看着AMF的日志,解释道:“K_AMF就像是我这个AMF部门的‘主公章’。当‘智行一号’需要和基站通信时,我用主公章制作一个‘授权给基站-A的公函’(K_gNB)并送过去;当它需要通过Wi-Fi上网时,我制作一个‘授权给N3IWF的公函’(K_N3IWF)送过去。我自己和它通信,就用从主公章派生出的‘内部用章’(NAS密钥)。主公章从不出我这个部门。”
1.5 NG-RAN (gNB) 与 N3IWF:信任的“前线执行者”
Keys in the NG-RAN The NG-RAN (i.e., gNB or ng-eNB) receives KgNB and NH from the AMF. … The NG-RAN … shall generate all further access stratum (AS) keys from KgNB and /or NH.
Keys in the N3IWF The N3IWF receives KN3IWF from the AMF. The N3IWF shall use KN3IWF as the key MSK for IKEv2…
这些位于网络边缘的实体,是密钥的最终使用者。
- gNB:收到AMF下发的
K_gNB后,将其作为本地的“根密钥”,派生出用于保护RRC信令和用户平面数据的所有AS层密钥(K_RRCint/enc,K_UPint/enc)。 - N3IWF:收到
K_N3IWF后,将其作为IKEv2协议中的主会话密钥(MSK),与UE协商建立IPsec安全隧道。
至此,网络侧的密钥派生与分发之旅全部完成。信任从最核心的ARPF出发,经过AUSF、SEAF、AMF的层层派生和传递,最终安全地部署到了最前线的gNB和N3IWF。
2. 6.2.2.2 UE侧的“平行宇宙”:终端的自我武装
5G安全体系最精妙的地方在于,上述所有在网络侧发生的复杂密钥派生,在UE侧,都以一个完全相同、完全平行的过程在本地独立地发生着。
2.1 USIM与ME的分工
Keys in the USIM The USIM shall store the same long-term key K that is stored in the ARPF. During an authentication and key agreement procedure, the USIM shall generate key material from K that it forwards to the ME.
Keys in the ME The ME shall generate the KAUSF from the CK, IK received from the USIM. … The ME shall perform the generation of KSEAF from the KAUSF. … The ME shall perform the generation of KAMF. … The ME shall perform the generation of all other subsequent keys that are derived from the KAMF.
UE内部形成了一个清晰的两级分工:
- USIM (保险库):只负责保管根密钥
K,并执行第一次派生,生成CK/IK,然后将其交给ME。 - ME (兵工厂):ME的基带处理器,是所有后续密钥派生的执行者。它从USIM获取CK/IK后,独立地、按照与网络侧完全相同的算法和参数,一步步计算出
K_AUSF,K_SEAF,K_AMF,K_NASint/enc,K_gNB,K_RRC/UP系列密钥…
这种“平行计算”的机制,使得UE和网络无需在空中传递任何会话密钥,只需交换一些用于派生的非敏感参数即可。双方各自在“密室”中,用相同的原料和相同的配方,最终调制出了一模一样的密钥,从而建立起安全的通信。
2.2 密钥的存储与生命周期管理
Any 5G security context, KAUSF and KSEAF that are stored at the ME shall be deleted from the ME if: a) the USIM is removed from the ME when the ME is in power on state; b) the ME is powered up and the ME discovers that the USIM is different from the one which was used to create the 5G security context; c) the ME is powered up and the ME discovers that there is no USIM is present at the ME.
规范对UE侧的密钥生命周期管理提出了极其严格的要求,以防止安全上下文被滥用。
- USIM与密钥强绑定:当UE发现USIM卡被拔出、被更换、或不存在时,必须立即删除所有存储在ME中的5G安全上下文和高级别密钥。
场景代入:
安安的手机不慎丢失,被小偷捡到。小偷将安安的SIM卡拔出,换上了自己的SIM卡。在他插卡的瞬间,安安手机的基带处理器会检测到USIM已更换,并立即触发安全机制,擦除掉所有之前为安安生成的、存储在手机非易失性存储器中的安全上下文(K_AMF等)。这意味着,小偷即使通过某种高科技手段获取了手机的内存数据,也无法找到任何与安安身份相关的有效密钥。这就是通过将密钥生命周期与物理UICC强绑定来实现的安全保障。
3. 总结
6.2.2节为我们详细描绘了一幅5G信任的“铸造与传递”图。它是一个优雅、严谨且高度安全的工程杰作。
- 派生链条清晰:从
K→K_AUSF→K_SEAF→K_AMF→K_gNB/K_N3IWF,每一级密钥的来源、用途和生命周期都得到了精确定义。 - 风险层层隔离:通过“阅后即焚”的
K_SEAF和严格的职责分离,确保了任何一个节点的沦陷,都不会危及整个信任链的根基。 - UE/网络平行计算:这是整个机制的基石,实现了无需在空口传递密钥的安全密钥协商。
- 物理与逻辑强绑定:UE侧的安全上下文与物理USIM的绑定,为设备丢失或被盗等现实世界中的安全风险提供了有效的缓解措施。
理解了密钥是如何被生成和分发的,我们就掌握了5G安全的“血液循环系统”。在下一篇文章中,我们将继续深入6.2.3节,探讨这些已经生成并分发到位的密钥,是如何被标识、管理和更新的,即密钥的“使用与维护”手册。
FAQ
Q1:为什么密钥派生是单向的?我能从K_gNB反推出K_AMF吗?
A1:绝对不能。这正是密钥派生的核心安全保证。所有的密钥派生函数(KDF)在密码学上都是“单向函数”(One-way Function),类似于哈希函数。这意味着从输入(如K_AMF)计算输出(K_gNB)在计算上是容易的,但从输出反向推导出输入在计算上是不可行的。这保证了即使边缘节点(如gNB)的密钥K_gNB泄露,攻击者也无法反向破解出核心网的密钥K_AMF,从而将风险控制在接入网层面。
Q2:AMF将K_gNB分发给gNB的过程是安全的吗?
A2:是的。AMF与gNB之间的N2接口本身就要求受到强大的安全保护。规范9.2节要求,N2接口必须使用IPsec或DTLS进行机密性、完整性和抗重放保护。因此,K_gNB是在一个已经预先建立好的、加密的“安全管道”中进行传输的,不会在传输过程中被窃听或篡改。
Q3:UE是如何知道何时该删除密钥的?比如拔SIM卡时手机可能已经关机了。 A3:这是一个很好的细节问题。规范考虑了这种情况。关键在于启动时的检查。
- 关机拔卡再开机:当UE重新开机时,ME会读取当前插入的USIM的身份信息。它会发现这个USIM的身份与上次关机前、用于创建现有安全上下文的USIM身份不匹配(或者是空的)。此时,ME就会触发删除机制。
- 开机状态拔卡(热插拔):如果手机支持SIM卡热插拔,ME的硬件会立即检测到USIM的移除事件,并可以立即触发安全上下文的擦除。 总之,安全机制的核心是确保存储在ME中的安全上下文,必须始终与当前物理存在的、且身份匹配的USIM相关联。
Q4:在密钥派生过程中,UE和网络如何确保使用完全相同的“服务网络名”等参数? A4:这些参数都是由信令明确承载或由双方根据当前状态独立计算得出的。
- 服务网络名:由SEAF根据自己所在的PLMN ID生成,并包含在发往AUSF的请求中。UE则根据自己当前驻留的网络的PLMN ID(从小区广播信息SIB中读取)独立生成。双方获取PLMN ID的来源是公开且一致的。
- 算法ID:由AMF/gNB选择后,通过受完整性保护的SMC消息明确告知UE。
- SUPI:在派生
K_AMF时,AMF在认证成功后从AUSF处获得,UE则使用自己USIM中的SUPI。 通过信令的精确同步和双方对自身状态的明确认知,保证了KDF输入参数的一致性。
Q5:整个密钥派生过程看起来非常复杂,这会耗费很长时间吗?
A5:不会。虽然逻辑上很复杂,但这些都是基于标准密码学原语(如AES, HMAC-SHA256)的计算。在现代基带处理器和网络设备的专用硬件加速下,每一次KDF运算都可以在微秒(百万分之一秒)甚至更短的时间内完成。整个密钥树的派生,从K_SEAF到最终的AS密钥,总耗时远小于1毫秒,对于整个连接建立流程(通常为几百毫秒)来说,这部分开销几乎可以忽略不计。复杂性体现在逻辑的严谨上,而非计算的时间消耗上。