想象你走进一家银行办业务。柜员不会直接把你的钱交给任何一个声称"我是张三"的人,而是会要求你出示身份证、输入密码、甚至人脸识别。这三个动作分别对应了通信安全中的三个核心概念:身份标识(你是谁)、身份认证(证明你是谁)、密钥协商(之后我们怎么安全地通信)。
在移动通信网络中,你的手机每次开机、每次切换网络、每次建立通话,都在默默完成一套类似的"身份验证"流程。只不过,这套流程比银行柜台复杂得多——它需要在几毫秒内完成,还要防备各种精心设计的攻击手段。
为什么需要了解这些? 因为5G安全架构相比4G发生了根本性的变化。如果你是一名正在调试5G核心网的工程师,不理解SUPI/SUCI、不理解5G-AKA和EAP-AKA'的区别、不理解密钥层级K→K_AUSF→K_SEAF→K_AMF的推导链路,排查注册失败和安全上下文建立问题时就会一头雾水。
在讲5G怎么做之前,我们必须先理解4G"做错了什么"。这不是贬低4G——4G(EPS-AKA)在其诞生的2010年前后已经是领先的安全设计。但随着时间推移,几个关键漏洞被广泛利用:
在4G中,用户的永久身份标识IMSI(International Mobile Subscriber Identity)在某些场景下会以明文形式通过无线信道传输。什么场景?主要是首次附着(Initial Attach)时,网络还没有给手机分配临时标识GUTI的时候。

图表 1
所谓的IMSI Catcher(也叫Stingray)就是利用这个弱点:伪装成合法基站,诱使手机发送明文IMSI,从而跟踪用户位置和身份。这种设备在黑市上的价格已经从数十万美元降到了几千美元,甚至有开源项目可以自制。
在4G中,MME(属于拜访网络)向HSS请求认证向量后,整个认证过程都由MME独立完成。HSS不知道认证是否真的成功了,也不知道MME是否被攻破。这就好比银行把你的密码告诉了一个"代理点",但代理点有没有认真验证、有没有被收买,银行自己是不知道的。
4G的密钥推导链是:K(永久密钥) → CK/IK → K_ASME → K_eNB → ...
问题在于K_ASME由MME持有,而MME可能在拜访网络中。如果K_ASME泄露,攻击者可以推导出后续所有密钥。4G的密钥层级只有一层"锚点"(K_ASME),隔离性不够。
| 安全维度 | 4G EPS-AKA | 5G-AKA / EAP-AKA' |
|---|---|---|
| 永久标识传输 | IMSI可能明文传输 | SUPI加密为SUCI,永不明文 |
| 认证框架 | 仅EPS-AKA | 5G-AKA + EAP-AKA'双框架 |
| 归属网络控制 | HSS不感知认证结果 | AUSF向UDM确认认证成功 |
| 密钥锚点 | K_ASME(在MME) | K_SEAF(在服务网络)+ K_AUSF(在归属网络) |
| 非3GPP接入 | 无统一认证 | EAP-AKA'统一接入认证 |
| 服务网络绑定 | SN_ID参与但较弱 | SN_Name强绑定到密钥推导 |
| 防重放攻击 | 较弱 | 增强的序列号管理 |
你在网上购物时,快递单上不会写你的真实姓名和身份证号,而是写一个"收件编码"。只有快递站(归属网络)有能力把编码翻译回你的真实信息。路上的任何人看到快递单,都无法知道你是谁。
5G中,用户的永久标识叫SUPI(Subscription Permanent Identifier),格式类似于4G的IMSI(以imsi-开头的字符串,如imsi-460001234567890)。
手机在发送Registration Request时,不会直接发SUPI,而是用公钥加密把它变成SUCI(Subscription Concealed Identifier)。这个加密过程用的是ECIES(椭圆曲线集成加密方案)。
$$\text{SUCI} = \text{SUPI_Type} | \text{Home_Network_ID} | \text{Routing_Indicator} | \text{Scheme_Output}$$
其中Scheme_Output包含: - 临时公钥(UE生成的ephemeral public key) - 加密后的SUPI - MAC(消息认证码)

图表 2
3GPP定义了两种ECIES配置:
- Profile A:使用secp256r1曲线(NIST P-256)
- Profile B:使用Curve25519曲线
运营商在SIM卡中预置归属网络的公钥和Profile类型。手机每次注册时生成新的临时密钥对,因此每次产生的SUCI都不同——即使攻击者持续监听,也无法通过SUCI关联到同一个用户。
4G的认证就像你拿着身份证去住酒店,前台只检查一次身份证就给你房卡了。5G的认证则像酒店前台(服务网络)验证完你的身份后,还要打电话给发证机关(归属网络)确认:"我验证通过了,你那边也确认一下?"发证机关说"确认"后,前台才给你房卡。

图表 3
为什么要有SEAF和AUSF两层验证?
这个设计解决了一个核心问题:归属网络始终知道认证是否成功。在4G中,HSS发了认证向量后就"失联"了,MME可以伪造认证结果。5G中AUSF必须向UDM报告结果,从根本上堵住了这个漏洞。
XRES和RES是什么?为什么带星号?
5G引入了扩展的响应值。4G中的XRES/RES长度有限(通常4-16字节),5G的XRES/RES支持更长的长度(最大256位),这使得离线暴力破解更加困难。
$$XRES^* = \text{Concat}(RES, \text{CK} | \text{IK})$$
实际上XRES*是通过KDF(Key Derivation Function)从K推导出来的,而不是简单拼接,这里简化理解即可。
当手机通过Wi-Fi(非3GPP接入)连接到5G核心网时,使用的是EAP-AKA'(读作"EAP-AKA-Prime"),而不是5G-AKA。
EAP-AKA'和EAP-AKA的关键区别在于密钥推导函数中绑定了接入网络标识:
$$MK = \text{PRF'}(K, \text{Identity} | \cdots | \text{Access_Network_Identity})$$
这防止了一种攻击:攻击者把通过Wi-Fi认证获得的密钥,拿到蜂窝网络上来冒用。两种接入方式的密钥被密码学隔离。
| 认证方式 | 适用场景 | 关键区别 |
|---|---|---|
| 5G-AKA | 3GPP接入(蜂窝网络) | SEAF/AUSF双层验证,归属网络确认 |
| EAP-AKA' | 非3GPP接入(Wi-Fi等) | 基于EAP框架,绑定接入网络标识 |
| 共同点 | — | 使用相同的根密钥K,统一密钥层级 |
想象一栋办公大楼的安保体系:大门口的保安有大门钥匙(K_SEAF),楼层前台有楼层钥匙(K_AMF),你的部门有部门钥匙(KNASenc),你的工位有工位钥匙(KRRCenc)。如果某层的钥匙被偷了,只需要重新配那一层的钥匙,整栋楼不需要换锁——因为每层的钥匙是独立推导的,无法反向推导出上级钥匙。

图表 4
第一层:K(根密钥) - 永久存储在USIM卡和UDM/ARPF中 - 永远不在无线信道传输 - 类比:你和银行共享的"终极密码"
第二层:CK/IK(Cipher Key / Integrity Key) - 由USIM在认证过程中根据K和RAND计算得到 - 不直接用于通信加密,而是作为推导中间值
第三层:K_AUSF(归属网络锚点密钥) - 由AUSF从CK/IK推导,绑定了服务网络名称(SN_Name) - 关键点:AUSF位于归属网络,K_AUSF永远不会离开归属网络
第四层:K_SEAF(服务网络锚点密钥) - 由AUSF从K_AUSF推导后传给SEAF - 即使K_SEAF被攻破,攻击者也无法反向推导K_AUSF或K(因为KDF是单向函数)
第五层:K_AMF(接入管理密钥) - 由AMF从K_SEAF推导,绑定了SUPI - 这是AMF级别的"主密钥",用于推导所有NAS和接入层密钥
第六层及以下:具体业务密钥
| 密钥 | 用途 | 保护范围 |
|---|---|---|
| KNASenc | NAS信令加密 | UE ↔ AMF之间的非接入层信令 |
| KNASint | NAS信令完整性保护 | UE ↔ AMF,防篡改 |
| KRRCenc | RRC信令加密 | UE ↔ gNB之间的无线资源控制信令 |
| KRRCint | RRC信令完整性保护 | UE ↔ gNB,防篡改 |
| KUPenc | 用户面数据加密 | UE ↔ gNB之间的业务数据 |
| KUPint | 用户面数据完整性保护 | 5G新引入!4G不强制用户面完整性 |
5G的一个关键增强:4G只对控制面(NAS/RRC)强制完整性保护,用户面数据只有加密没有完整性保护。5G同时支持用户面的加密和完整性保护(KUPint)。这意味着攻击者即使无法解密数据,也无法像4G那样通过篡改用户面数据包来发起攻击。
5G使用HMAC-SHA-256作为密钥推导函数(KDF):
$$K_{\text{derived}} = \text{HMAC-SHA-256}(K_{\text{input}}, \text{FC} | P_0 | L_0 | P_1 | L_1 | \cdots)$$
其中: - FC是功能码(Function Code),标识推导用途 - P_0, P_1...是参数(如SN_Name、SUPI等) - L_0, L_1...是参数的长度
为什么用单向函数? 即使攻击者获得了K_AMF,他也无法反推K_SEAF或K_AUSF。这就像你不能从一盘炒好的菜还原出原始食材一样——哈希函数是信息损失性的。
时间线:
T0: UE发送Registration Request (SUCI)
T1: 网络发起Authentication (5G-AKA)
T2: 双方认证成功,建立K_SEAF
T3: AMF从K_SEAF推导K_AMF
T4: NAS Security Mode Command协商算法
T5: NAS安全上下文建立完成
T6: AS Security Mode Command (gNB与UE)
T7: 全部安全上下文就绪
5G的一个巧妙设计是:当用户在AMF之间移动时,新的AMF可以从K_SEAF重新推导K_AMF,不需要重新走完整的5G-AKA流程。
$$K_{\text{AMF,new}} = \text{KDF}(K_{\text{SEAF}}, \text{SUPI} | \text{新AMF相关参数})$$
这就像你换了楼层办公,楼层前台只需要用大楼总钥匙(K_SEAF)推导一个新的楼层钥匙(K_AMF),而不需要你重新去大门口验证身份。
5G支持网络切片,不同切片可能有不同的安全要求。密钥层级支持通过在KDF中加入Slice标识(S-NSSAI)来为不同切片推导独立的密钥:
$$K_{\text{slice}} = \text{KDF}(K_{\text{AMF}}, \text{S-NSSAI} | \cdots)$$
这确保了切片间的密钥隔离——一个切片被攻破不会影响其他切片的安全。
| 失败场景 | 可能原因 | 排查方向 |
|---|---|---|
| SUCI解密失败 | UE公钥与UDM不匹配 | 检查SIM卡公钥ID vs UDM配置 |
| AUTN验证失败(MAC Failure) | 密钥K不一致或SQN不同步 | 检查USIM的K值、重新同步SQN |
| AUTN验证失败(SQN Failure) | USIM的序列号超前 | 触发重新同步流程 |
| RES*验证失败 | 中间参数篡改 | 检查SEAF和AUSF之间的SBI接口 |
| Security Mode Reject | 算法协商失败 | 检查UE和AMF支持的算法列表交集 |
在调试5G安全流程时,关键的抓包点:
陷阱1:误以为SUCI不变 很多工程师以为SUCI是固定的。实际上,每次用公钥加密SUPI时,UE都会生成新的临时密钥对,导致SUCI每次都不同。不要试图用同一个SUCI去匹配用户。
陷阱2:混淆5G-AKA和EAP-AKA' 如果手机通过Wi-Fi接入5GC,走的是EAP-AKA',信令流程和NAS信令完全不同。抓包时看到的不是NAS消息,而是EAP消息,不要在NAS层找认证信令。
陷阱3:忽略Null Scheme 如果UE不支持SUCI加密或SIM卡未配置公钥,会回退到Null Scheme直接发SUPI。现网中如果出现这种情况,需要排查SIM卡配置。
5G安全架构的变化对运营商的运营模式产生了深远影响:
运维复杂度提升:AUSF/UDM/SIDF/SEAF这些新网元的引入,意味着安全故障的排查链路更长。传统4G时代只需要看MME和HSS,现在需要跨多个NF追踪SBI接口调用。
SIM卡升级需求:SUCI加密要求SIM卡(USIM)预置运营商公钥。这意味着存量SIM卡需要更换或通过OTA升级,对运营商的换卡成本和部署节奏提出了要求。
合规性压力:随着各国数据保护法规(如欧盟GDPR、中国《数据安全法》)的加强,SUPI/SUCI加密不再只是"技术选择",而是"合规要求"。运营商在5G部署中必须启用SUCI保护。
| 角色 | 5G安全增强带来的变化 |
|---|---|
| 设备厂商 | 需要实现AUSF/SIDF等新网元,密钥管理更复杂 |
| SIM卡厂商 | 需要支持ECIES公钥预置和安全存储 |
| 企业客户 | 5G LAN和专用切片需要独立的安全域管理 |
| 安全审计 | 需要理解新的密钥层级来审计合规性 |
| 监管机构 | 可以要求运营商证明SUCI保护的启用率 |
5G安全架构可以用一个"洋葱模型"来理解:
这四层保护相互配合,构成了5G比4G显著更强的安全基线。
Q: SUCI每次都不同,网络怎么知道我是谁? A: SUCI是用归属网络公钥加密的,只有归属网络的SIDF(在UDM中)能用私钥解密回SUPI。服务网络(SEAF/AMF)只看到SUCI密文,看不到SUPI明文。解密后归属网络把SUPI传给AUSF完成认证。
Q: 5G-AKA和EAP-AKA'能互相替代吗? A: 不能。5G-AKA用于3GPP接入(蜂窝),EAP-AKA'用于非3GPP接入(Wi-Fi等)。两者使用相同的根密钥K,但密钥推导参数不同(绑定了接入网络标识),确保密钥隔离。
Q: 如果K(根密钥)泄露了怎么办? A: K是整个安全体系的基石,一旦泄露,所有上层密钥都可以被推导。因此K只在USIM和UDM/ARPF中存储,永不在任何接口上传输。如果怀疑K泄露,唯一的办法是更换SIM卡(重新写入新的K值)。
Q: 4G的SIM卡能用在5G网络吗? A: 基本功能可以用(5G允许回退到类似EPS-AKA的流程),但无法使用SUCI加密等5G增强安全特性。建议运营商为5G用户发放支持5G安全特性的USIM卡。
Q: 用户面完整性保护是强制的吗? A: 5G规范要求AMF和UE协商时必须支持用户面完整性保护,但具体是否启用取决于运营商策略。对于高安全场景(如金融交易),建议强制启用。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
