5G核心网学习平台
精华问答 #Q06

5G网络N2切换流程中的NASC参数是做什么用的?

来自知识星球

5G⽹络N2切换流程中的NASC参数是做什么⽤的?

5G网络N2切换流程中的NASC参数是做什么用的?

这个是星友今天的一个问题,原问题如下。

4到5切换过程中 这个字段是做什么的?

这个是nasc也就是nas container,包含了一个nas消息。这里是和安全相关,在33501里定义。我找了一个N2切换的NASC参数的说明,供

您参考。和4到5切换的作用类似。

好的,我们来深度解读一下在 4G 到 5G 切换(更准确地说是涉及到 5GC 的切换,包括 N2 切换和 N26 接口的 EPS 到 5GS 切换)过程

中,id-NASC (NAS Container) 这个字段的作用,并结合您提供的 3GPP TS 33.501 规范内容。

核心作用总结:

id-NASC (NAS Container) 是在切换过程中,由目标 AMF (Access and Mobility Management Function) 创建并发送给目标基站 (gNB/ng-

eNB),最终由目标基站封装在切换命令 (Handover Command) 中发送给 UE (用户设备) 的一个受完整性保护的信息容器。

它的主要目的是:

1. 传递更新后的 NAS 安全算法: 如果目标 AMF 决定在切换后使用与之前不同的 NAS 加密或完整性保护算法,NASC 会携带新的算法

2. 同步 NAS 安全上下文状态: 特别是在发生 K_AMF 密钥变更(例如水平密钥推导)时,NASC 会携带相关信息(如 K_AMF_change_flag、

ngKSI)和用于验证的 MAC,确保 UE 和网络侧对 NAS 安全上下文的认知保持一致。

3. 提供 NAS 层面的重放保护: NASC 中包含的下行 NAS COUNT 和 NAS MAC,使得 UE 可以验证这个“隐式”的 NAS 安全指令是否是

新鲜的、未被重放的。

4. 实现切换过程中的“隐式”NAS 安全模式命令 (SMC): 它允许网络在切换命令中就完成部分 NAS 安全参数的更新,而不需要在切换成

功后再单独发起一次 NAS SMC 流程,提高了效率。

结合规范 (TS 33.501, 6.9.2.3.3) 的深度解读:

1. 触发条件 (When is NASC created?):

强制创建: 当发生水平 K_AMF 推导时 (Source AMF 在 Namf_Communication_CreateUEContext Request 中设置了

keyAmfHDerivationInd 指示)。这种情况下,UE 和 Target AMF 都需要使用基于新 K_AMF 推导出的 NAS 密钥,并且 NAS

COUNT 需要重置为 0。NASC 必须被创建来同步这些变化。

可选创建: 即使没有发生水平 K_AMF 推导,如果目标 AMF 出于某种策略(例如,PLMN 策略、安全策略升级等)希望改变当前

使用的 NAS 安全算法,它也可以主动创建 NASC。这种情况下,NAS COUNT 不会重置。

2. 创建者和内容 (Who creates it and what's inside?):

创建者: 目标 AMF。

内容 (根据规范和您的截图):

K_AMF_change_flag: 一个标志位,指示 K_AMF 是否发生了改变(通常在水平推导时设为 1)。

Downlink NAS COUNT: 从 Source AMF 收到的下行 NAS COUNT 值。这个值至关重要,用于后续的 NAS MAC 计算和 UE

侧的重放保护检查。

ngKSI: (NAS Key Set Identifier) 标识当前使用的 K_AMF 密钥集。

Selected NAS security algorithms: 目标 AMF 选定的 NAS 加密算法 (如截图中的 128-5G-EA2) 和完整性保护算法 (如截图

中的 128-5G-IA1)。

NAS MAC: 一个 32 位的消息认证码。这是目标 AMF 使用 目标 K_NASint (NAS 完整性密钥,由目标 K_AMF 推导) 计算出来

的,计算范围覆盖 NASC 中的其他参数。计算时使用了一个特殊的 COUNT 值 (2^32-1) 以避免与正常 NAS 消息的

COUNT 冲突,并且 DIRECTION 设置为下行 (1)。

3. 传输路径 (How does it travel?):

Target AMF -> Target gNB/ng-eNB: NASC 包含在 NGAP HANDOVER REQUEST 消息中。

Target gNB/ng-eNB -> UE: NASC 包含在 RRC 层的切换命令 (HO Command,通常是 RRCConnectionReconfiguration 消息) 中。

4. UE 的处理 (What does the UE do with it?):

当 UE 收到切换命令并解析出 NASC 时:

验证 NAS MAC: UE 使用自己当前的 K_NASint 密钥和 NASC 中提供的 Downlink NAS COUNT (以及其他参数作为输入消

息),按照规范定义的算法(NIA)和参数(COUNT=2^32-1, DIRECTION=1)重新计算 MAC,并与 NASC 中携带的

NAS MAC 进行比较。

重放检查: UE 检查 NASC 中包含的 Downlink NAS COUNT 是否是预期的、未被重放的值。规范提到 "The UE shall not

accept the same downlink NAS COUNT value twice before a newly derived KAMF is taken into use and the

corresponding downlink NAS COUNT is set to zero." 这确保了指令的新鲜性。

更新 NAS 上下文: 如果 MAC 验证通过且重放检查通过:

UE 会采纳 NASC 中指定的新的 NAS 安全算法。

如果 K_AMF_change_flag 被设置(或通过其他方式得知 K_AMF 改变,例如 keySetChangeIndicator 在 HO Command 中

被设置),UE 会启用新的 K_AMF 并将 NAS COUNTs 重置为 0。

UE 会更新其 ngKSI (如果需要)。

5. 与 AS 安全的关系 (Relation to Access Stratum Security):

NASC 主要处理 NAS 层面的安全参数。

而 AS 层面 (RRC 和 User Plane) 的安全密钥 (K_gNB / K_eNB) 是由目标基站使用从 AMF 收到的 {NH, NCC} 对推导出来的。

NCC (Next hop Chaining Counter) 值也会包含在切换命令中给 UE,UE 用它和自己保存的 K_AMF 来推导匹配的 K_gNB / K_eNB。

如果 AMF 发送了 NSCI (New Security Context Indicator) 给 gNB(通常在 keyAmfChangeInd 为真时),gNB 会在切换命令中设

置 keySetChangeIndicator 为 true,明确告知 UE 需要进行 AS 密钥的更新(基于新的 K_AMF 或推导关系)。

总结 id-NASC 在 4G->5G 切换中的意义:

在从 4G (EPS) 切换到 5G (5GS) 的场景中(特别是通过 N26 接口或者 LTE 接入 5GC 后再切换到 NR),UE 可能需要从使用 EPS 安全算

法切换到 5G NAS 安全算法。

id-NASC 提供了一种高效的机制,在切换命令下发的同时,就将新的 5G NAS 算法(如截图中的 5G-EA2/IA1)安全地传递给 UE 并使

其生效。同时,通过 ngKSI 和可能的 K_AMF 更新(例如,从映射的 EPS 安全上下文推导初始 5G K_AMF),确保了 NAS 安全上下文的

正确建立和同步。

截图中的 Type of security context flag (TSC): Mapped security context (for KSIASME) 正是暗示了这种从 EPS 映射过来的场景。

简而言之,id-NASC 是 5G 切换流程中一个精巧的设计,它将 NAS 安全上下文的部分更新嵌入到切换命令中,通过 MAC 和 COUNT 保证其

安全性和新鲜性,从而简化了流程,提高了切换效率和安全性。

返回精华问答列表