做过现网注册问题排查的工程师,几乎都遇到过这样的场景:用户投诉"手机显示仅限紧急呼叫",你在核心网侧抓包,看到Initial Registration被拒;你满心以为能在信令里找到用户的IMSI来定位用户,结果翻遍整个NAS消息,只看到一个长得像乱码的字符串SUCI: h'01 25 00 0F ...。再往深查,同事提醒你:"去查一下鉴权五元组"、"看看是不是SQN不同步"、"K_AMF刷新了吗"——一堆密钥名词扑面而来。
这篇文章就把5G的认证与密钥体系彻底讲透:网络怎么确认"你是你",你怎么确认"网络是网络",以及一次认证之后,那一整棵密钥树是怎么长出来的。理解了这套体系,注册类故障的排查逻辑会清晰很多。
先建立一个直觉:移动网络的认证从来不是单向的"查身份证",而是双向的相互认证:
这两个动作在一次流程里同时完成,而且附带一个"副产品"——双方各自算出一把相同的会话密钥。所以这项技术的全名叫 AKA(Authentication and Key Agreement,认证与密钥协商):认证和发钥匙,一个流程,两件事一起办。
一个日常类比:你住酒店,前台不是只核对你的身份证(网络验你),你也会通过订单号、门锁授权确认"这家酒店确实认我的预订"(你验网络);核验通过的同时,双方约定好了房卡密码(密钥协商)——之后开锁(加密通信)用的就是这把房卡,而不是你的身份证原件。
5G没有沿用4G的认证架构照搬,而是做了两处关键重构。要理解"为什么这样设计",得先看旧架构的痛点。
痛点一:用户身份明文裸奔。 在4G及之前的系统里,手机开机后第一次通信时要发送明文的IMSI(国际移动用户识别码)。这就像每次进小区都在大门口喊出自己的身份证号。空口嗅探设备(所谓"伪基站"/IMSI catcher)可以被动监听这个消息,把用户身份、位置轨迹全部收集走。
痛点二:拜访网络权力过大。 4G时代认证向量(含期望响应和根密钥材料)会从归属网络下发到拜访网络的MME,拜访网络深度参与认证的裁决过程。在漫游场景下,这意味着拜访运营商拿到了相当敏感的凭据。
5G对应的两个解法,构成本文的两条主线:
SUCI(Subscription Concealed Identifier,隐匿订阅标识)是SUPI(真实永久标识,通常就是IMSI)的加密形态。它的原理用一句话概括:终端用归属运营商的公钥把IMSI加密,只有归属网络用私钥才能解开。
flowchart TD
SUPI["SUPI 真实标识<br/>即IMSI"] --> ENC["终端执行ECIES加密"]
PK["归属网络公钥<br/>预置在USIM中"] --> ENC
ENC --> SUCI["SUCI 临时化名"]
SUCI --> NET["空口与信令中传输"]
NET --> DEC["归属网络UDM用私钥解密"]
DEC --> OUT["还原出SUPI"]
几个工程上值得注意的细节:
这就是为什么你在注册信令里永远抓不到明文IMSI:明文只存在于终端和归属网络UDM这两个端点,中间的gNB、AMF、AUSF看到的都是密文。 调试时如果要确认用户身份,只能从归属侧(UDM/签约数据)反查SUCI对应的SUPI,这也是很多新工程师第一次做注册排查时最不适应的地方。
理解了身份隐藏,我们看认证主体流程。5G-AKA默认流程的时序如下(简化版,省略了部分中间应答):
sequenceDiagram
participant UE as 终端与USIM
participant S as AMF扮演SEAF
participant A as AUSF 归属网络
participant H as UDM与ARPF
UE->>S: 初始注册消息 携带SUCI
S->>A: 转发认证请求 携带SUCI和网络名SNN
A->>H: 请求认证向量
H->>A: 下发五元组 RAND AUTN XRES* CK IK
A->>A: 计算K_AUSF与K_SEAF 生成HXRES*
A->>S: 返回RAND AUTN HXRES*
S->>UE: NAS Authentication Request
UE->>UE: USIM校验AUTN 推导RES*
UE->>S: NAS Authentication Response 携带RES*
S->>S: 比对RES*哈希与HXRES*
S->>A: 发送认证结果
A->>A: 比对RES*与XRES*
A->>S: 确认通过 下发K_SEAF
流程里有三个"为什么这样设计",是理解5G认证精髓的关键:
为什么答卷要"背对背批两次"? 注意拜访网络SEAF手里只有HXRES*(期望响应的哈希值),而不是完整的期望响应XRES*。终端交卷(RES*)后,SEAF先比对哈希做"初判",AUSF再拿归属侧保密的XRES*做"终判"。这样设计的好处是:拜访网络全程接触不到完整答卷,即使它被攻破,攻击者也拿不到可用于伪造认证的凭据。漫游场景下,这一点的价值尤其大。
AUTN里藏了什么? USIM收到RAND(随机数挑战)和AUTN后,会做两件事:用根密钥K验证AUTN里的消息鉴权码MAC(确认"挑战确实来自掌握K的归属网络",用户验网络就在这一步);检查其中的序列号SQN是否在正常范围内(防止攻击者重放旧的认证挑战)。如果SQN异常,终端会回送AUTS触发重同步流程,归属网络校准计数器后重新发起认证。
SNN是什么? 服务网络名(Serving Network Name)标明了"终端正在为哪个PLMN做认证"。归属网络签发认证向量时把SNN绑进去,防止拜访网络把一份认证材料挪用到别的网络——这是对漫游场景的又一道防线。
认证成功只是拿到密钥的"许可证",真正的密钥体系是一棵逐级派生的树。根密钥K从出厂就封存在USIM卡和归属网络的鉴权中心里,任何环节都不传输、不落盘,网络里流动的永远只是派生物:
flowchart TD
K["根密钥K<br/>封存于USIM与归属网络"] --> CKIK["CK 与 IK"]
CKIK --> KAUSF["K_AUSF<br/>归属侧锚点密钥"]
KAUSF --> KSEAF["K_SEAF<br/>拜访侧锚点密钥"]
KSEAF --> KAMF["K_AMF<br/>接入管理密钥"]
KAMF --> KNAS["K_NASint 与 K_NASenc<br/>保护NAS信令"]
KAMF --> KGNB["K_gNB<br/>基站密钥"]
KGNB --> KRRC["K_RRCint 与 K_RRCenc<br/>保护RRC信令"]
KGNB --> KUP["K_UPint 与 K_UPenc<br/>保护用户面数据"]
各级密钥的派生关系可以简化表示为(实际KDF还包含固定前缀等参数,此处为便于理解做了精简):
$$K_{AUSF} = \mathrm{KDF}(CK \,|\, IK,\ SNN)$$
$$K_{SEAF} = \mathrm{KDF}(K_{AUSF},\ SNN)$$
$$K_{AMF} = \mathrm{KDF}(K_{SEAF},\ ABBA,\ SNN)$$
$$K_{gNB} = \mathrm{KDF}(K_{AMF},\ \text{NAS上行COUNT})$$
$$K_{RRCint} = \mathrm{KDF}(K_{gNB},\ \text{完整性算法编号})$$
这棵树每个分支的设计意图,值得逐条品味:
| 密钥 | 生成/持有的位置 | 保护对象 | 什么时候更新 |
|---|---|---|---|
| K | USIM与归属鉴权中心 | 一切密钥之根 | 永不更新,永不传输 |
| K_AUSF | AUSF | 派生拜访侧锚点 | 每次认证 |
| K_SEAF | SEAF(通常与AMF共址) | 派生K_AMF | 每次认证成功后由AUSF下发 |
| K_AMF | AMF | NAS信令与基站密钥 | AMF变更或周期性刷新 |
| K_gNB | gNB | RRC与用户面密钥 | 每次切换/换基站都刷新 |
| K_RRCint/enc | gNB与UE | RRC信令 | 随K_gNB更新 |
| K_UPint/enc | gNB与UE | 用户面数据 | 随K_gNB更新 |
为什么要长成树,而不是认证完直接发一把"万能钥匙"? 三个理由:
还有一个容易被忽略的小角色:ABBA参数。它在派生K_AMF时参与输入,作用是把"本次安全激活使用的算法编号"绑定进密钥材料里,防止攻击者把算法协商消息重放/篡改,诱使网络和终端降级到弱算法(所谓"算法降级攻击")。调试安全模式失败问题时,算法能力协商与ABBA的配合是值得检查的一环。
一个常见的认知盲区是以为5G只有一种认证方法。实际上标准定义了两种:5G-AKA和EAP-AKA'。由归属网络根据签约/卡的能力选择,拜访网络照单执行。两者的核心差异:
| 维度 | 5G-AKA | EAP-AKA' |
|---|---|---|
| 协议形态 | NAS层私有的请求-响应消息 | 借用成熟的EAP协议框架,消息封装在NAS里传输 |
| 认证裁决点 | AUSF(两轮比对,拜访侧先比哈希) | EAP服务器(AUSF)主导三轮EAP消息交互 |
| 结果通知 | 终端无法从认证消息本身获知"归属侧是否终判通过" | 有显式的EAP-Success/EAP-Failure,结果对终端透明 |
| 密钥原料 | CK/IK直接派生K_AUSF | 先把SNN混入派生CK'/IK',再派生K_AUSF |
| 复杂度 | 消息轮次少,时延略优 | 交互轮次多,但复用既有EAP生态,扩展性好 |
两种方法殊途同归:最终都产生K_AUSF,之后进入同一棵密钥推导树。至于现网部署选哪种,标准允许多种实现,具体以运营商网络配置和USIM能力为准。
注册被拒时,拒绝消息里携带的原因值是第一线索。与认证/安全强相关的常见原因:
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 注册被拒,原因为"非法UE" | 卡被列入黑名单/非法卡 | 查归属网络签约状态与EIR |
| 注册被拒,"5G业务不允许" | 签约数据未开通5G、HLR/UDM数据不一致 | 核对签约数据同步状态 |
| 认证响应后收到Security Mode Reject或MAC failure | 完整性校验失败:双方密钥不一致或算法不匹配 | 核对USIM状态、算法能力协商、AMF侧安全上下文 |
| 认证响应携带Synch failure | SQN序列号异常 | 触发重同步;排查是否卡被拔插到多台设备、虚拟卡滥用 |
| 注册被拒,"UE安全能力不匹配" | 终端上报的安全算法能力与网络期望不符 | 核对终端5G-EA/IA能力上报与网络配置 |
再配一张排查决策图,遇到注册拒绝可以按图索骥:
flowchart TD
REJ["收到注册拒绝"] --> Q{"看拒绝原因值"}
Q -->|非法UE| A1["查签约与EIR黑名单"]
Q -->|5G业务不允许| A2["查HLR与UDM签约数据同步"]
Q -->|安全能力不匹配| A3["查终端算法能力上报与网络配置"]
Q -->|MAC失败| A4["查SQN状态与重同步记录"]
Q -->|拥塞| A5["过一会再试 属正常负荷控制"]
误解一:"SUCI加密了,所以所有信令都是安全的。" 错。SUCI只保护初始注册时的用户标识这一个字段,真正的信令保护要等NAS安全激活完成、K_NASint/K_NASenc启用之后才开始。在认证完成之前的那几条明文NAS消息(如注册请求本身),恰好是协议设计上刻意最小化的。
误解二:"认证失败就是卡坏了。" SQN不同步、归属网络签约数据不一致、算法能力不匹配,表现都可能是认证或安全激活失败。先分清失败发生在哪个阶段、携带什么原因值,再下结论。
误解三:"5G-GUTI和SUCI是一回事。" 恰恰相反,它们是一对互补设计:SUCI用于"注册前还不知道网络是谁"的首次亮相,5G-GUTI用于注册成功后的日常身份(网络分配的临时标识,周期性更换)。日常场景下终端用5G-GUTI,只有网络认不出它时才退回用SUCI重新亮明身份(隐藏形态)。
Q: 5G-AKA和EAP-AKA'到底有什么本质区别? A: 本质区别在认证裁决权和结果通知机制。5G-AKA里拜访网络先用哈希初判、AUSF终判,但终端拿不到"归属侧是否认可"的显式回执;EAP-AKA'复用EAP框架,归属侧主导,终端能明确收到EAP-Success或Failure。安全目标两者都能达成,工程上主要差异是消息轮次和生态兼容性。选择权在归属网络,拜访网络被动适配。
Q: 密钥树里为什么偏偏是K_gNB每次切换都更新,而K_AMF不用? A: 这体现"暴露面与刷新频率成正比"的思路。gNB数量最多、物理暴露风险最高、且服务千变万化的空口环境,所以给它配最高频的密钥轮换——切换一次换一把,即使某把空口密钥泄露,影响范围也被限制在一次切换窗口内。而AMF数量少、位于运营商机房深处,K_AMF只在注册/AMF变更等关键节点刷新即可,频繁刷新反而引入信令开销。
Q: 用户面的数据默认加密吗?不加密会怎样? A: 空口用户面加密是可协商的(网络在安全激活时指示),但完整性保护是新引入的可选能力——4G时代用户面完全没有完整性保护,5G首次支持了它。对话音、视频这类流量,业界通常认为加密收益有限(内容本身不敏感且开销大);但对工业控制、遥测类小包敏感数据,开启UP完整性保护价值很高。这正是5G面向行业场景的安全设计之一。
Q: 用户投诉"换卡后频繁注册失败",从密钥体系角度怎么分析? A: 最典型的是SQN计数器失步:归属网络里记录的SQN与卡内计数器严重偏离(比如卡在其他设备/网络环境被过度使用),认证时终端判定序列号异常,反复触发Synch failure和重同步。排查时先在归属侧看该用户的鉴权重同步记录,确认失步后按流程处理,通常一次成功的重同步即可恢复。
Q: 手机丢了,捡到的人能用我的5G吗? A: 密钥体系的设计让这件事非常困难。根密钥K封在USIM卡的安全芯片里,读不出来;认证挑战每次都是新的随机数,录制的认证响应无法重放(SQN会挡住);PIN锁开启时卡本身也无法使用。真正薄弱环节从来不是密码学,而是没有设PIN的卡+挂失不及时——所以安全机制再好,运营流程(快速挂失、卡冻结)才是最后一环。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。