保姆级教程:用Wireshark抓包实战分析5G NAS安全模式建立全过程
5G NAS安全模式建立全流程实战:Wireshark抓包深度解析
在5G网络的核心网交互中,NAS(Non-Access Stratum)安全模式的建立是保障用户隐私与数据安全的关键环节。不同于4G时代相对简单的安全机制,5G引入了更复杂的密钥派生体系和双向认证流程。本文将带您通过Wireshark工具,从实际抓包数据出发,逐步拆解从Registration Request到Security Mode Complete的完整信令交互过程。
1. 实验环境搭建与抓包准备
1.1 基础工具配置
开始分析前,需要准备以下实验环境:
- 5G测试网络:可以是商用网络测试环境或实验室搭建的5G核心网
- 支持5G的终端设备:建议使用商用5G手机或专业测试UE
- Wireshark 3.6+版本:需安装最新的5G协议解析插件
- PCAP采集设备:如便携式抓包设备或直接连接核心网镜像端口
关键配置技巧:
# 在Linux环境下设置网卡混杂模式 sudo ip link set eth0 promisc on # 启动Wireshark抓包(需root权限) sudo wireshark -k -i eth01.2 抓包过滤器设置
针对5G NAS流程,推荐使用以下显示过滤器组合:
ngap || nas-5gs- 聚焦N2/N1接口信令nas-5gs && (nas_5gs.mm.registration_request || nas_5gs.security_mode_command)- 精确定位关键消息frame contains "Security Mode"- 捕获所有安全模式相关消息
注意:实际环境中可能需要根据PLMN ID或UE ID进一步过滤,避免数据混杂
2. 初始注册请求解析
2.1 未加密Registration Request结构
当UE首次接入网络时,典型的未加密注册请求包含以下关键字段:
| 字段名 | 十六进制标识 | 说明 |
|---|---|---|
| Security header type | 0x00 | 指示未加密的明文消息 |
| ngKSI | 0x07 | 密钥集标识符(低3位有效) |
| UE security capabilities | 0x80,0x00,0x01 | 支持的加密算法列表 |
| SUCI/GUTI | 变长 | 用户隐藏标识或临时ID |
在Wireshark中,这些字段会以树状结构展示:
NAS-5GS (Registration Request) ├── Protocol discriminator ├── Security header type ├── Message type ├── ngKSI and Registration type └── UE security capabilities2.2 加密Registration Request特征
当UE存在有效安全上下文时,消息呈现不同特征:
- Security header type变为
0x01(完整性保护)或0x02(加密+完整性) - 出现NAS message container字段,内含加密后的完整注册信息
- MAC值用于完整性验证(通常4字节)
典型抓包示例:
0000 02 01 00 00 01 00 00 01 00 00 00 00 00 00 00 00 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 003. 安全模式建立关键流程
3.1 Security Mode Command详解
AMF下发的安全模式命令包含以下核心元素:
- Selected NAS security algorithms:网络选择的加密/完整性算法对
- Replayed UE security capabilities:回显的UE能力集(用于防篡改)
- Additional 5G security information:包含RINMR和HDP标志位
在Wireshark中验证MAC的步骤:
- 右键点击NAS-5GS协议层 → "Decode As..." → 选择5GS-NAS
- 在首选项设置中配置正确的Kamf密钥
- 检查"Integrity check"字段应为"Successful"
3.2 Security Mode Complete分析
UE响应的安全模式完成消息需要重点关注:
- NAS message container(如果RINMR置位):包含完整的初始注册请求
- IMEISV(如果被请求):设备标识的加密传输
- MAC验证:确认UE已正确应用安全算法
常见问题排查:
- 如果MAC验证失败,检查密钥派生路径是否正确:
Kseaf → Kamf → Knas-int → MAC - 加密失败时确认算法协商结果:
# 算法标识对应表 ALGORITHMS = { 0: '5G-EA0', 1: '128-5G-EA1', 2: '128-5G-EA2', 4: '128-5G-EA3' }
4. 安全上下文激活验证
4.1 双向保护机制测试
建立安全模式后,可通过以下方法验证保护机制:
- 完整性保护测试:篡改消息中的任意字节,观察是否被丢弃
- 加密验证:尝试用错误密钥解密后续NAS消息
- 计数器同步检查:连续发送多条消息验证NAS COUNT递增
4.2 典型故障场景模拟
| 故障类型 | 现象 | Wireshark过滤条件 |
|---|---|---|
| 算法不匹配 | Security Mode Reject | nas_5gs.security_mode_reject |
| 密钥不同步 | 连续鉴权失败 | nas_5gs.authentication_failure |
| COUNT溢出 | 连接异常释放 | tcp.flags.reset == 1 |
提示:在实际网络调试中,建议同时抓取N2接口(NGAP)消息,可更全面定位问题根源
通过上述步骤,我们完整还原了5G NAS安全模式建立的每个技术细节。掌握这些实战分析方法后,您将能够:
- 独立诊断5G鉴权过程中的各类异常
- 验证网络侧安全策略配置的正确性
- 优化终端设备的密钥管理机制
- 深入理解5G比4G增强的安全特性实现
(正文结束)
