1. 项目概述从空中信号到隐私保护最近在折腾5G网络测试有个问题一直让我挺好奇的我们手机在接入5G网络时那个唯一的身份标识SUCI号称是“加密”传输的号称能保护用户隐私防止被跟踪。这玩意儿到底是怎么“隐身”的是不是真的无懈可击光看协议文档太抽象了最好的办法就是直接抓包看看。这就像法医解剖协议文本是理论空中飞的真实无线电信号才是“尸体”一切秘密都藏在里面。所以我决定用手头最趁手的工具——Wireshark来一次实战抓包分析。目标很明确在真实的5G网络环境下我用的是运营商现网和实验室的测试环境捕获手机初始接入网络时发送的注册请求消息亲手把那个传说中的SUCI从空中“捞”出来看看它的真面目再一步步拆解它“隐身”的原理。这个过程不仅能验证5G的隐私保护机制是否如宣传般可靠更能让我们这些搞网络、搞安全的同行对空口安全有一个极其直观和深刻的理解。无论你是通信工程师、安全研究员还是对移动网络底层原理感兴趣的技术爱好者跟着我走一遍这个流程你收获的将远不止几个抓包过滤命令。2. 核心需求与原理拆解为什么SUCI必须“隐身”在动手之前我们必须搞清楚我们在找什么以及为什么找它。这决定了我们抓包时的策略和关注点。2.1 从IMSI到SUCI一场迫不得已的进化在4G及以前的网络里手机用来向网络证明“我是谁”的核心永久身份是IMSI国际移动用户识别码。你可以把它想象成你的身份证号。问题在于这个“身份证号”在手机每次尝试接入网络时都是以明文形式在空中传送的。任何在无线电覆盖范围内拥有简易无线电接收设备的人比如一个软件定义无线电SDR都可以轻松地嗅探并记录下这个IMSI。这意味着你的行踪可以被轻易追踪你出现在哪个基站下什么时候出现的都被这个明文广播的IMSI暴露无遗。这是4G时代一个重大的隐私短板。5G的设计目标之一就是修补这个漏洞。于是SUCI订阅隐藏标识符应运而生。SUCI不是一个固定的号码而是由你的永久身份SUPI订阅永久标识符通常就是IMSI经过公钥加密算法计算出来的一个临时、加密的标识符。关键点在于这个加密过程是在你的手机USIM卡内部完成的使用的公钥来自你归属的网络家乡网络。加密后的结果——SUCI才会被发送出去。这样设计的精妙之处在于对空中窃听者“隐身”在空中传输的是SUCI它本身是一串乱码不包含任何可读的IMSI信息。窃听者即使抓到了SUCI也无法反向推导出你的真实IMSI从而无法进行长期身份跟踪。仅对归属网络“可见”只有拥有对应私钥的归属网络才能解密SUCI得到真实的SUPIIMSI从而完成对你的身份认证。拜访地网络你漫游进入的网络也只能看到SUCI而不知道你的IMSI。2.2 抓包分析的核心目标与挑战我们的实战目标就是验证这套机制。具体来说我们要在空口信令中找到SUCI定位到手机初始注册时发送的Registration Request消息并从中提取出SUCI字段。解析SUCI结构SUCI并非完全不可读它有其固定的格式如路由指示、归属网络标识、加密方案标识、密文等我们可以解析出这些部分理解其构成。理解其“隐身”原理通过分析加密方案标识和密文部分直观感受“不可逆”的加密效果。我们虽然无法解密因为没有私钥但可以确认它确实被加密了。对比周边信息观察同一流程中是否还有其他可能泄露信息的字段例如5G-GUTI临时标识或IMEI评估整体隐私保护水平。挑战在于5G空口NR的协议栈和加密层比4G更复杂。我们抓取的是底层无线电信号需要经过解码才能看到高层的NAS非接入层信令而SUCI正是存在于NAS信令的Registration Request消息中。此外商用手机通常不会轻易暴露这些底层信令需要特定的测试模式或工程手机并在受控环境如实验室下进行以避免法律风险和对现网的干扰。3. 环境准备与抓包配置工欲善其事必先利其器。一次成功的抓包70%取决于前期的环境搭建和工具配置。3.1 硬件与网络环境搭建我采用了两种环境进行对比实验强烈建议在类似实验室的隔离环境中进行切勿在运营商现网进行主动扫描或干扰性测试。实验室测试环境推荐核心网使用开源的5G核心网软件如Open5GS或free5GC在服务器上搭建。基站使用软件定义无线电SDR设备如USRP B210或更专业的Ettus设备搭配开源5G gNB软件如srsRAN。终端具备工程模式或网络调试功能的5G测试手机/CPE或者使用5G模组配合开发板。我用的是一台开启了工程模式通过特定拨号代码进入的商用5G手机。优势环境完全可控可以配置网络使用SUCI加密并且可以抓取从空口到核心网的全链路数据包清晰看到信令流向。现网被动监听环境需极其谨慎终端一部支持网络诊断日志导出功能的手机例如三星手机通过*#9900#导出日志或华为手机的工程模式。原理不直接抓空口射频信号而是利用手机自身基带芯片解码后的日志文件这些日志通常包含详细的NAS信令PDU。然后我们将日志文件导入Wireshark进行分析。优势无需复杂射频设备法律风险相对较低属于读取终端自身日志。劣势日志格式因厂商而异解析麻烦且看不到空口底层交互。本次实战我以实验室环境为主进行讲解因为它能最完整地展现从空口射频到高层信令的全过程。3.2 软件工具链配置Wireshark主力分析工具。确保安装最新版本4.0并安装完整的5G/NR协议解析插件。在Wireshark的“帮助”-“关于Wireshark”-“插件”中确认有NR-RRC,NGAP,5G NAS等协议解码器。空口抓包工具如果你用srsRAN它自带srsepc和srsenb日志但更底层的数据需要借助tcpdump抓取lo或网卡上的流量或者使用其--rf.log_level参数生成基带IQ数据再用专门的工具解析。更通用的方法是使用UHDUSRP硬件驱动配合GRCGNU Radio Companion搭建一个简单的接收流图将接收到的信号保存为.pcap或.pcapng格式的文件。GRC中可以添加“File Sink”模块来存储数据。关键步骤你需要准确设置中心频率对应运营商或测试环境的NR频段如n78的3.5GHz、采样率、增益等参数。这部分需要一定的SDR和无线电知识。信令解码抓到的原始IQ数据或底层传输块数据需要被解码为RRC无线资源控制信令。srsRAN的log文件或一些专业工具如专业的协议分析仪软件可以完成这一步。最终我们需要得到包含NAS信令的RRC消息并保存为Wireshark能识别的.pcap格式。一个常见的工作流是SDR接收IQ数据 - 专用解码软件/脚本 - 输出包含RRC PDUs的.pcap - 用Wireshark打开分析。注意空口抓包和解码是本次实践中最具技术挑战性的一环。对于初学者如果只想分析SUCI结构可以从手机导出信令日志这个更易实现的路径入手。许多手机在工程模式下能生成包含完整NAS信令的文本或二进制日志我们可以将其转换为Wireshark可读的格式。3.3 Wireshark关键配置与过滤技巧拿到.pcap文件后用Wireshark打开。面对海量数据包精准过滤是高效分析的关键。首要过滤聚焦NAS信令。在过滤栏输入nas-5gs。这将只显示5G NAS层消息。在NAS消息中我们寻找Registration request (0x41)。你可以进一步过滤nas-5gs nas-5gs.message_type 0x41。定位SUCI字段。在Registration request消息中展开5GS mobile identity字段。这里就是携带身份信息的地方。如果手机是首次注册或无法使用5G-GUTI它就会使用SUCI。在5GS mobile identity里你会看到SUCI子项。关键观察在SUCI下会有一个Scheme output字段这里面就是一串看似随机的十六进制数这就是加密后的结果也就是在空中“隐身”传输的那部分。解析SUCI结构。即使被加密SUCI的格式也是标准的。Wireshark通常会尝试解析它。你可以看到类似这样的结构SUCI format标识这是一个SUCI。Home network identifier归属网络公共标识MCCMNC这部分是明文这是为了路由消息到正确的归属网络。Routing indicator路由指示符可选明文。Protection scheme identifier保护方案标识符。例如01代表NULL scheme即不加密仅用于测试02代表Profile A使用椭圆曲线加密EPC。我们期待看到的是02或更高的加密方案标识。Home network public key identifier归属网络公钥标识符用于指示使用哪组公钥。Scheme output加密输出密文。这就是对SUPIIMSI进行加密后的结果是我们关注的焦点。4. 实战抓包过程与SUCI解析实录现在我们进入最激动人心的环节——动手操作亲眼见证SUCI的“诞生”与“隐身”。4.1 触发一次初始注册流程在实验室环境中我重启了测试手机并强制其搜索并注册到我搭建的5G测试网络。为了确保手机使用SUCI而不是临时标识5G-GUTI进行注册我清除了手机内的USIM配置文件或等待之前的临时标识过期。使用配置好的SDR接收链和GRC流图我开始捕获空口信号。同时在核心网服务器侧我也用tcpdump抓取了N2接口gNB与核心网之间的流量作为辅助和验证。4.2 在Wireshark中定位并分析SUCI抓包结束后我得到了一个5g_initial_reg.pcapng文件。用Wireshark打开应用过滤器nas-5gs。很快我找到了第一条Registration request消息。Packet详情面板如下展开路径Frame-5G NAS-5GS Registration Request (0x41)-5GS mobile identity-SUCI。我看到的实际SUCI解码信息示例数值为虚构5GS Mobile Identity: SUCI ... SUCI format: SUCI (1) Home network identifier: MCC 460 (China), MNC 01 Routing indicator: 0 Protection scheme identifier: Profile A (2) Home network public key identifier: 0 Scheme output: a7b3c4d5e6f7890123456789abcdef012345678...逐项解析Home network identifier (MCC460, MNC01)这告诉我这部手机归属的中国移动网络。这部分信息是明文的因为网络需要它来将注册请求路由到正确的归属网络进行解密和认证。这是SUCI中唯一暴露的“身份线索”但仅能定位到运营商级别无法定位到具体用户。Protection scheme identifier: Profile A (2)太好了这正是我们想看到的。02表示手机和网络使用了EPC椭圆曲线加密方案来保护SUPI。这确认了加密机制已启用。Scheme output后面跟着一长串十六进制字符a7b3c4d5...。这就是加密后的“密文”是IMSI经过公钥加密后的结果。在Wireshark中它显示为一串不可读的十六进制数。这就是在空中实现“隐身”的核心。任何窃听者看到这串字符在不知道归属网络私钥的情况下理论上无法在可接受的时间内破解出原始IMSI。4.3 对比分析与深度观察为了加深理解我做了两个对比实验关闭加密的测试在测试网络侧我暂时将归属网络的公钥配置为NULL scheme (01)。重复抓包后在SUCI的Scheme output字段我震惊地看到了完整的IMSI如460011234567890以明文形式出现这个对比实验残酷地证明了如果没有加密方案或配置错误5G的隐私保护将倒退到4G时代SUCI形同虚设。这也凸显了正确配置网络公钥的重要性。观察后续流程在手机成功注册后网络会分配一个5G-GUTI临时标识给手机。在后续的Registration Accept消息和之后的业务请求中手机都会使用这个5G-GUTI而不再频繁使用SUCI。这意味着SUCI只在初始注册或认证失败等少数关键流程中出现进一步降低了身份信息暴露的风险。5. 常见问题、排查技巧与实操心得实战过程中不可能一帆风顺下面是我踩过的一些坑和总结的经验希望能帮你少走弯路。5.1 常见问题速查表问题现象可能原因排查思路与解决方案Wireshark无法识别5G NAS协议显示为Malformed Packet或未知协议。1. Wireshark版本过旧或未安装5G协议插件。2. 抓包文件不包含完整的协议栈可能只抓到了底层MAC或PHY数据。1. 升级Wireshark至最新稳定版并通过官方仓库或源码安装lte、nr相关解析器。2. 确认你的抓包点是在RRC层以上。如果是SDR抓的原始IQ数据需要先经过基带解码生成RRC PDU。尝试用专业协议分析仪软件或srsRAN的日志转换工具。过滤nas-5gs后没有任何数据包。1. 抓包环境并非5G或手机未成功注册到5G。2. 抓包点选择错误未捕获到N1接口空口或N2接口的信令。1. 确认手机状态栏显示5G图标且核心网为5GC。先抓取所有包(tcpdump -i any -w all.pcap)然后搜索ngap或http25GC接口协议确认有5G流量。2. 在实验室环境确保在连接gNB和UPF的网卡上或者使用手机日志导出功能。在Registration Request中找不到SUCI只看到5G-GUTI。手机正在使用之前分配的临时标识进行注册这是正常行为。SUCI仅在初始注册或特定安全上下文失效时使用。1. 强制触发初始注册在手机上开关飞行模式、重启手机、或清除网络设置。2. 在测试核心网侧将用户的签约数据中“订阅隐藏标识符”配置为强制使用。SUCI中的Protection scheme identifier显示为NULL scheme (01)。1. 测试网络未正确配置公钥。2. 手机USIM卡或终端不支持加密方案。3. 出于测试目的网络故意禁用加密。1. 检查5G核心网UDM/AUSF的配置确保已为归属网络配置有效的公钥和加密方案如Profile A。2. 确认测试手机和USIM卡支持5G SA模式和SUCI加密功能。商用卡通常支持。从手机导出的日志文件不知如何用Wireshark打开。手机日志通常是文本格式或厂商私有二进制格式非标准pcap。1. 寻找厂商提供的日志解析工具可能能将特定信令转换为pcap。2. 对于文本日志找到包含NAS信令的十六进制PDU部分手动复制出来在Wireshark中使用“从十六进制流导入”功能File - Import from Hex Dump。这需要你准确知道PDU的起始位置和协议类型。5.2 实操心得与进阶技巧环境隔离是王道强烈建议在屏蔽房或完全独立的射频环境进行空口抓包实验。外界运营商信号干扰会让你抓到的数据包混乱不堪难以分析。实验室小环境是学习的最佳场所。双链路抓包对比如果条件允许同时抓取空口UE-gNB和核心网接口gNB-AMF的数据包。用Wireshark的“跟踪流”功能可以清晰地看到一条信令从手机发出经过基站到达核心网的全过程。这对于理解整个协议栈和排查问题比如消息在哪个环节丢失或出错有巨大帮助。关注Wireshark的“专家信息”Wireshark会对异常或错误的数据包给出提示如Malformed,Unknown field,Bad checksum。这些信息往往是破解解析问题的钥匙。比如如果SUCI字段解析错误可能是协议插件版本不对或者抓包数据本身有误。理解“隐身”的局限性SUCI加密防止了空中接口的长期身份跟踪但它不是万能的。例如归属网络信息明文暴露MCC/MNC是明文的攻击者至少知道你在使用哪家运营商的网络。元数据泄露通话时间、数据流量模式、连接基站的位置通过基站ID推断大致区域等元数据仍然可能被收集和分析。密钥管理风险如果归属网络的私钥泄露那么所有用户的SUCI都将可被解密。这要求运营商有极高等级的安全密钥管理设施。从抓包到安全研究对于安全研究人员可以进一步探索SUCI重放攻击捕获一个SUCI后能否在其他地方重放以伪装成该用户加密方案分析深入研究Profile AECIES的实现是否存在侧信道攻击或实现漏洞的可能性伪基站False Base Station攻击在5G下伪基站能否迫使手机回落到4G或使用非加密方案来获取IMSI这涉及到5G的防伪基站机制如SUCI与4G/3G兼容性之间的安全博弈。通过这次从理论到实战的完整旅程我们不仅用Wireshark亲手“抓住”了那个在空中隐身飞行的SUCI更深刻地理解了5G隐私保护机制的设计精髓与实现细节。它不再是一个协议文档里冷冰冰的名词而是我们屏幕上可以观察、可以分析的一段段真实数据。这种亲手验证的过程对于构建扎实的通信网络安全知识体系是无价之宝。下次当你看到手机信号格上的“5G”图标时或许会对其中默默守护着你身份隐私的那套复杂而精妙的加密舞蹈多一份具象的认知。