当前位置: 首页 > news >正文

5G注册时,你的第一条NAS消息到底怎么加密的?从信令包看懂NAS Security Mode Command

5G注册流程中的NAS安全机制:从信令包透视初始消息加密逻辑

当你的5G手机开机或进入新覆盖区域时,那个瞬间完成的注册过程背后,隐藏着一套精密的通信安全机制。作为网络接入的第一道关卡,NAS(非接入层)消息的安全处理直接决定了后续所有通信的可靠性。本文将带你深入Wireshark抓包现场,拆解Registration Request这条关键信令在不同安全上下文状态下的加密逻辑,还原3GPP规范中那些晦涩条款背后的真实运作场景。

1. 初始NAS消息的安全传输基础

在5G网络中,NAS层负责终端与核心网之间的直接对话,而注册请求(Registration Request)往往是这段对话的开场白。与4G不同,5G允许初始NAS消息在特定条件下以明文传输,这种设计平衡了安全性与接入效率的双重需求。

核心安全参数构成了整个机制的基石:

  • Kseaf:由认证服务器派发的锚点密钥
  • Kamf:由AMF(接入和移动性管理功能)持有的派生密钥
  • ngKSI:密钥集标识符,用于关联安全上下文
  • NAS COUNT:防止重放攻击的计数器

当UE(用户设备)首次接入网络时,其USIM卡中并不存在有效的5G NAS安全上下文。此时根据3GPP TS 24.501规范,Registration Request消息被允许以"分段保护"的形式发送:

Registration Request (无安全上下文) ├── cleartext IEs │ ├── SUCI/GUTI │ ├── UE security capabilities │ └── ngKSI └── 不包含NAS message container

这种情况下的信令包特征非常明显:Security header type字段为"plain NAS message, not security protected"(二进制值0000),且整个消息没有任何加密或完整性保护痕迹。通过Wireshark过滤器nas_5gs.security_header_type == 0可快速定位这类消息。

2. 安全上下文存在时的双重封装机制

当UE持有有效的安全上下文(如之前成功注册过同一PLMN),情况变得复杂起来。此时Registration Request会呈现独特的"信封套信封"结构:

Registration Request (有安全上下文) ├── cleartext IEs │ ├── 与无上下文时相同的必选字段 └── NAS message container (加密) ├── 包含所有cleartext IEs的副本 └── non-cleartext IEs ├── 5GMM capability ├── PDU session status └── 其他敏感信息

这种看似冗余的设计实则暗藏玄机:

  1. 外层cleartext保证AMF总能解析基础信息
  2. 内层加密容器确保敏感数据安全
  3. 完整信息副本便于安全模式建立后验证

在Wireshark中,这类消息会显示两个关键特征:

  • Security header type为"integrity protected and ciphered"(二进制值0010)
  • 存在无法直接解析的NAS message container IE(通常显示为加密数据块)

表:初始NAS消息的三种传输模式对比

场景特征无安全上下文有安全上下文(无敏感数据)有安全上下文(含敏感数据)
Security headerPlain NAS (0000)Integrity protected (0001)Integrity protected & ciphered (0010)
NAS container不存在不存在存在并加密
典型IE分布仅cleartextcleartext + 空安全头cleartext + 加密container
AMF处理策略直接处理验证MAC后处理解密container后处理

3. NAS Security Mode Command的密钥转折点

当AMF收到注册请求后,安全模式建立流程随即展开。这个过程中最关键的NAS Security Mode Command消息承担着三项使命:

  1. 算法协商:从UE支持的算法列表中选择最优组合
  2. 上下文同步:通过ngKSI对齐双方的安全上下文
  3. 消息重传:通过RINMR标志控制初始消息的二次提交

在信令层面,这条消息呈现出有趣的矛盾特性:

  • 消息本身不加密(因UE尚未激活解密功能)
  • 但必须进行完整性保护(使用新生成的Kamf)
# 简化的AMF侧安全模式命令生成逻辑 def generate_smc(ue_security_capabilities): selected_algorithms = { 'ciphering': select_algorithm(ue_security_capabilities['ciphers']), 'integrity': select_algorithm(ue_security_capabilities['integrity']) } smc_message = { 'security_header': 'integrity protected with new context', 'ngKSI': current_context.ngksi, 'algorithms': selected_algorithms, 'replayed_capabilities': ue_security_capabilities, 'abba': generate_anti_downgrade_parameters() } if need_retransmission: smc_message['RINMR'] = True # 添加MAC值 smc_message['mac'] = calculate_mac( key=current_context.kamf, count=downlink_nas_count, message=smc_message ) return smc_message

实际抓包中,工程师需要特别关注三个字段:

  1. Selected NAS security algorithms:指示后续通信使用的加密/完整性算法
  2. Replayed UE security capabilities:用于终端验证网络是否被篡改
  3. Additional 5G security information:包含关键的RINMR和HDP标志

4. 完整流程的交互验证机制

当UE回应NAS Security Mode Complete时,整个安全通道才真正建立。这个阶段最易混淆的是初始消息的重传逻辑:

  1. 当AMF设置RINMR=1时,UE必须在Security Mode Complete中携带完整的初始NAS消息
  2. 此时重传的消息不再加密(与原始Registration Request不同)
  3. AMF会对比原始cleartext与重传内容的一致性

典型问题排查场景

  • MAC校验失败:检查上下行NAS COUNT是否同步
  • 解密失败:确认Kamf推导是否使用相同参数
  • 算法不匹配:验证UE和AMF的supported算法列表
# 常见安全模式建立失败原因值 24.501 Clause 5.4.1.4 定义的错误代码: - #24: Integrity check failure - #25: Not enough authentication data - #26: Feature not supported - #3e: Invalid NAS message container

在现网故障排查中,通过对比Security Mode Command和Complete消息中的以下字段往往能快速定位问题:

  • 算法选择是否匹配双方能力
  • ngKSI是否指向同一上下文
  • ABBA参数是否一致
  • UE security capabilities是否被篡改

掌握这些核心要点后,工程师可以精准分析5G注册过程中的各类加密异常,从协议栈层面理解那些看似"魔法"般的自动恢复机制背后的逻辑。

http://www.jsqmd.com/news/952314/

相关文章:

  • 算法与后端选型参考:市面聚合型 AI 平台功能拆解实测
  • AI驱动简历优化实战手册(附GPT-4+ATS双校验工作流)
  • 2026 年龙华全屋定制工厂避坑指南:这 5 个细节决定最终效果 - 产品测评官
  • PIL库的DecompressionBombWarning到底在防什么?手把手教你安全调整Image.MAX_IMAGE_PIXELS上限
  • 从E1帧结构到2.048Mbit/s:手把手拆解PCM30/32路系统的通信原理(含典型设备分析)
  • MoveIt与Gazebo联调避坑指南:详解`follow_joint_trajectory` Action连接失败的全流程排查
  • 2026年新消息:湖北地区防腐粉末涂料供应格局与种类丰富的实力厂商推荐 - 2026年企业资讯
  • 2026年当下,剖析北京化妆师培训市场:谁才是靠谱之选? - 2026年企业资讯
  • 期货量化快期模拟资金怎么调:天勤 TqKq 出入金与账户重置
  • 用STM32CubeMX和HAL库快速驱动MQ-2烟雾传感器(2024最新教程)
  • AI - MCP(Model Context Protocol,模型上下文协议)
  • Matlab图像修复三法实操:插值/OMP/K-SVD一键对比与结果图自动生成
  • 别再手动敲命令了!用Shell脚本一键搞定Mesos+Marathon集群搭建(附避坑指南)
  • 查看mysql数据库容量大小方法
  • 资深工程师一语道破:选对PCB平台,事半功倍!
  • 2026年潍坊市可靠的智能装车机实力厂家业内推荐与选购解析 - 2026年企业资讯
  • 【普中STM32F1xx开发攻略--标准库版】-- 第 43 章 触摸屏实验
  • 不只是备份!深度挖掘华为HiSuite备份文件,教你找回已删除的微信聊天记录
  • Android17新规:内存超限直接杀App,没有崩溃日志怎么排查?
  • structlog:Python 结构化日志的标准答案
  • MIT 6.1810: xv6 book Chapter5: Page faults 笔记
  • 告别LabelImg!用ArcGIS Pro给遥感影像打标签,效率提升不止5倍
  • 2026年食堂承包性价比排名,靠谱的食堂承包公司推荐 - mypinpai
  • 别再用API硬连AI工具了!信贷中台智能编排引擎(IPA)上线72小时内完成OCR/NLP/评分卡全链路自治闭环
  • 告别‘炼丹’:用计算图可视化理解逻辑回归的梯度下降
  • 从Redis缓存到RPC调用:深入理解Java序列化在分布式系统里的核心作用
  • 为什么92%的AI转正试点失败?3个被低估的技术断点,及HR与IT联合攻坚SOP
  • 2026 年跨境行业全新变局,亚马逊、tiktok、Shopee、速卖通迎来合规整改。 - Zhou6
  • 期货实盘委托成交持仓对不上:天勤排查顺序与字段对照
  • AI辅助开发新思路:让快马平台生成你想象不到的sweezy cursors炫酷效果