首页 › deep-tech › 进门先对暗号:5G双向认证原理

进门先对暗号:5G双向认证原理

老电影里地下党接头,最经典的桥段不是验身份证,而是对暗号:“天王盖地虎。”对方接不上“宝塔镇河妖”,或者接的语气不对,双方立刻翻脸拔枪。为什么?因为接头现场最大的风险,是对方根本不是自己人——来的人怕遇上假接头人,蹲点的人怕来的是特务。暗号的作用是双向的:我证明我知道秘密,你也证明你知道秘密,而且整个过程里,真正的秘密(组织名单、联络图)从头到尾没有说出口。

手机入网的认证,本质就是这场接头。手机要证明“我是这张卡的合法主人”,网络也要证明“我是真运营商,不是路边搭的假基站”。而且和电影一样,真正的秘密——那张写死在卡里的主密钥——从头到尾不许离开卡片半步。

这篇文章讲清楚三件事:认证的暗号是怎么设计的、5G为什么要把“判卷权”收回归属网络、以及现网里认证失败时该往哪里查。

一、为什么上网先要对暗号:双向都有骗子

先看没有认证的世界会发生什么。

网络怕用户是假的。 如果只靠“报IMSI号”来认人,那么任何知道你号码的人都能冒充你入网——把你的号码抄下来,流量费记在你账上,通话被旁听。这相当于小区门禁只看脸不刷卡,认识你的人都能进。

用户怕网络是假的。 历史上真实存在过“IMSI捕手”(伪基站):架一个功率很强的假基站,手机在信号里“就高不就低”,会主动扑上来注册。假基站拿到你的明文身份后,可以静默定位你、拦截短信验证码。这是4G时代被安全研究者反复演示的经典攻击。

所以认证必须是双向的:用户验网络(防伪基站),网络验用户(防冒名)。而且双向验证要基于“只有真卡和真网络才知道的秘密”,而不是基于“号牌”——号牌谁都能抄,秘密只有发卡方和你本人持有。

5G把这件事又推进了一步:身份本身也加密了(SUCI机制,本专栏此前的文章专门讲过空口身份隐私),让假基站连“抄号牌”都抄不到。身份藏好了,接下来就是身份背后的信任怎么证明——这就是认证协议要解决的。

二、核心机巧:密钥不出卡

怎么证明“我知道一个秘密”,却又不把秘密说出来?这听起来像悖论,但日常里到处是原型。

酒局上怎么证明你是老王?不用掏身份证,你只要接住老王才知道的梗:“去年三亚,你把手机落海里那次……”能秒接上细节的,就是本人。你证明了自己掌握“只有你知道的经历”,但这段经历的具体内容并没有在酒桌上完整公开。

蜂窝网络的认证用的是同一招,行话叫挑战—响应(Challenge-Response):

  1. 网络出一道随机的考题(一个128位的随机数RAND),每次都不一样;
  2. 卡里用主密钥K对考题做运算,算出答卷(RES);
  3. 网络侧用同一把K对同一道题算出标准答案,两相对照,对上就是真卡。

这套机制的精妙之处有三层:

而承载这把K的物理位置也有讲究:K写在USIM卡里,与归属运营商一一对应,出厂后永不可读。运算(算答卷、验网络暗号)都在卡内完成,基带芯片只能“委托”卡算,拿不到中间结果。这样即使手机被植入恶意软件、基带被攻破,K依然是安全的——这是整个体系的地基。

三、考题是怎么出的:认证参数全解

把挑战—响应落到实处,需要几个精心设计的参数。先看一张总表,再逐个拆。

参数 谁生成 装在哪里 作用
K(主密钥) 开卡时写入 USIM卡内 + 归属网数据库 唯一的信任根,128位,永不出卡
RAND(随机数) 归属网出题 认证请求 128位考题,每次不同
AUTN(网络暗号) 归属网计算 认证请求 让卡验证网络是真网络
SQN(序列号) 双方各自维护 AUTN内嵌 像支票流水号,防重放
RES*(答卷) USIM计算 认证响应 证明“我会算”
XRES*(标准答案) 归属网计算 留在归属网 判卷用的对照答案
HXRES*(答案摘要) 归属网计算 交给拜访网 标准答案的哈希,供考场粗判
K_SEAF(锚密钥) 派生而来 认证成功后才交付 后续一切加密完整性的种子
AUTS(重新对表) USIM计算 认证失败消息 SQN失步时请求“重新对表”

其中最值得展开的是AUTN——它是最容易被新手忽略的“反向暗号”。很多初学者以为认证就是“网络考手机”,其实AUTN是手机反考网络的那一半。

网络出题时,把SQN和RAND一起用K算出一个认证码MAC,连同SQN一起打包成AUTN发给卡(以下为简化概念式):

$$MAC = f_1(K,\ SQN \oplus AK,\ RAND,\ AMF_{auth})$$

$$AUTN = (SQN \oplus AK) \parallel MAC$$

卡收到后用自己手里的K按同样算法重算一遍MAC:对得上,说明出题的必然持有真K——因为RAND和SQN是明文可见的,伪造者能看见却算不对MAC。看得出题目、算不出答案,这正是“知道秘密”与“见过秘密”的区别。

而SQN是防重放的第二道锁。它像一个只增不减的流水号:网络每出一道题,SQN加一;卡只接受SQN在合理窗口内的题。攻击者就算录下上一次的完整考题重放,SQN是旧的,卡一眼识破。若卡的SQN落后了(比如换机、数据回滚),卡不直接拒绝,而是回一个AUTS,里面带着卡本地的SQN,让归属网“重新对表”后再出题——这个细节是现网排查认证失败的重要线索,后面还会讲到。

5G的答卷RES*不是4G时代RES的简单照搬,而是把4G遗留的密钥对(CK/IK)通过密钥派生函数重新熔炼,避免新旧制式共用同一批衍生密钥产生“密钥串味”(以下同样为概念式,省略了若干输入参数):

$$RES^* = KDF(CK,\ IK,\ RAND,\ SQN \oplus AK)$$

四、4G的遗憾:判卷权在考场

有了随机考题和双向暗号,认证机制在4G时代已经相当成熟。但4G的判卷流程留了一个结构性遗憾。

4G的做法是“批发考卷”:归属网的HSS一次性把整包认证数据(考题RAND、网络暗号AUTN、标准答案XRES、以及派生的根密钥)全部交给拜访地的MME,然后就不参与了。此后出题、收卷、判卷全在MME本地完成。

这个设计的隐含假设是:所有运营商之间的转接网都值得信任。在自己国家的运营商网络里,这个假设大体成立。但它意味着:

打个比方:4G像是高考把标准答案提前寄到各个考点,让考点自己阅卷。绝大多数考点没问题,但制度上给了“假考点”可乘之机。

五、5G的修正案:终审权收回娘家

5G对这套流程做了一次架构级的重构,核心思想一句话:考场只负责监考,判卷权收回归属网。

先看角色分工:

flowchart TD
    UE["UE手机 + USIM卡<br/>密钥K锁在卡里"]
    SEAF["SEAF 在AMF内<br/>拜访地监考官"]
    AUSF["AUSF<br/>归属地终审法官"]
    ARPF["ARPF 在UDM内<br/>档案室兼出题人"]
    UE <-->|"双向对暗号"| SEAF
    SEAF -->|"转交考卷不判卷"| AUSF
    AUSF -->|"调档出题"| ARPF
    ARPF -->|"考题与判卷标准"| AUSF

四个角色,各司其职:USIM是保险箱(藏K);ARPF是档案室(存K、出题、算标准答案);AUSF是终审法官(唯一有权宣布“认证通过”的人,而且待在归属网);SEAF是监考老师(发考卷、收答卷、全程见不到标准答案和锚密钥)。

完整的5G-AKA时序如下:

sequenceDiagram
    participant UE as UE与USIM
    participant SE as SEAF在AMF内
    participant AU as AUSF归属网
    participant UD as UDM与ARPF
    UE->>SE: 注册请求(带加密身份SUCI)
    SE->>AU: 转交SUCI请求认证
    AU->>UD: 按SUCI解出用户调认证数据
    UD->>UD: 卡内同款算法出题
    UD->>AU: RAND加AUTN加判卷材料加K_SEAF
    AU->>SE: 只发考题RAND与AUTN
    SE->>UE: Authentication Request
    UE->>UE: 卡验AUTN并算答卷RES*
    UE->>SE: Authentication Response
    SE->>SE: 用哈希粗判一次
    SE->>AU: 上交答卷RES*
    AU->>AU: 终审比对RES*与XRES*
    AU->>SE: 判决通过并交付锚密钥K_SEAF
    SE->>UE: 启动NAS安全激活

把这张图看透,5G认证的全部精髓就在里面了。有三个细节值得停下来品:

第一,标准答案没有随考题下发。 归属网把XRES(标准答案)扣在自己手里,只把它的哈希HXRES给了拜访网。SEAF手里的HXRES只能用来“粗判”——像考官手里没有答案原文,只有一个密封的标准答案指纹,能筛掉明显乱写的卷子,但终审必须回传归属网*。

第二,锚密钥是“认证通过后才交付”的。 K_SEAF——后续所有加密和完整性保护的种子——在流程一开始就算好了,但AUSF一直押着,直到终审比对通过才交给SEAF。对比4G“密钥随考卷一起批发”,5G做到了“先验人,后给钥匙”。这直接封死了“假考场拿密钥”的路径:假基站就算把考卷原样转发,只要它拿不出真卡对得上的答卷,归属网就不会放钥匙,假考场空手而归。

第三,判卷逻辑发生在归属网,天然抗假基站。 假基站在4G时代可以扮演“考场”,到了5G它还得再冒充一个有终审权的“归属网”——而终审需要真K才算得出标准答案,这条路被物理性堵死了。

六、两条路:5G-AKA与EAP-AKA'

上面讲的这套“归属网终审版AKA”,叫5G-AKA。但标准并没有把它定为唯一路径,还保留了另一种选择:EAP-AKA'。很多工程师只知道“5G认证有两种”,却说不清为什么要留两种——这恰恰是设计上最有意思的地方。

EAP-AKA'把5G的认证材料装进了EAP框架——一个在企业网、WiFi接入认证领域用了二十年的老框架(公司员工连办公WiFi时的802.1X认证,走的就是EAP家族协议)。它的流程轮次更多,UE和归属网之间要经历身份交换、挑战、确认等好几轮EAP消息,最终由AUSF扮演EAP服务器完成双向验证。

两者怎么选,看这张对比表:

维度 4G EPS-AKA 5G-AKA EAP-AKA'
判卷人 拜访网MME本地判 归属网AUSF终审 归属网AUSF终审
身份保护 可能明文暴露IMSI SUCI加密身份 SUCI加密身份
锚密钥交付时机 随认证数据预先下发 终审通过后交付 终审通过后经EAP密钥派生
消息轮数 一问一答,最快 一问一答,最快 EAP多轮,略慢
抗假基站 弱 强 强
典型场景 4G通用 3GPP接入为主 非3GPP接入(如经WiFi互通)必用

为什么留两条路?三个理由:

理由一,快慢取舍。 5G-AKA一问一答就结束,消息少、时延低,适合海量物联网终端和高频接入场景;EAP-AKA'多轮握手,换来的是更强的密码学性质。运营商按自己的订阅策略二选一,归属网在出题时就告诉网络和手机“这次用哪种”,整个过程终端无感切换。

理由二,密钥分离的洁癖。 5G-AKA一问一答的模式下,有一个长期被安全界讨论的微妙之处:最终消息由归属网判卷,但UE并没有在最后一轮“再回一句话”证明自己确实算出了锚密钥。EAP-AKA'的最终确认消息补上了这个环节——双方都出示了“我手里有同一个密钥”的证据,密钥域的分离也更干净。安全研究圈曾公开讨论过5G-AKA的这一权衡,属于学术界公认的已知代价,标准制定时以“快”换“严”接受了它。

理由三,非3GPP接入的刚需。 手机经WiFi等非3GPP管道接入5G核心网时,接入认证走的是IPSec隧道建立流程,而IPSec(IKEv2)生态里嵌的正是EAP-AKA'。也就是说,只要你的手机用WiFi打过VoNR前置的注册、或者企业专网走固定宽带接入5G,背后跑的一定是EAP-AKA'——这条路径没有得选。

两种方法在最终密钥上殊途同归:认证成功后都得到归属网认可的锚密钥,再沿同一条派生链一路展开(密钥派生树的完整原理本专栏已有专文,此处只列链条):

$$K_{AUSF} \Rightarrow K_{SEAF} \Rightarrow K_{AMF} \Rightarrow {\,K_{NAS},\ K_{RRC},\ K_{UP}\,}$$

七、失败也是信息:三种认证失败

认证不是只会“通过”。失败的方式本身就是诊断信息,这是工程师排障时最重要的直觉。看这张分支图:

flowchart TD
    R["UE收到考题RAND与AUTN"] --> V{"USIM校验MAC与SQN"}
    V -->|"都对"| OK["算RES*回卷<br/>认证通过"]
    V -->|"MAC对不上"| F1["疑似假基站或密钥错<br/>拒绝认证"]
    V -->|"SQN超出窗口"| F2["回AUTS同步失败<br/>归属网重新对表"]
    F2 -->|"重新出题再考"| OK

三种结局,三种含义:

MAC对不上(Authentication Failure - MAC failure):卡用K重算的认证码和网络发来的不一致。可能性按概率排序:测试环境里卡密钥配置错误(见下文OPc大坑)、归属网数据库里这批卡的K录错、或者——真遇上了伪基站。在实验室里它几乎总是配置问题;在现网外场,它是安全事件的前兆信号。

SQN失步(Authentication Failure - Synch failure):卡认为“这张考卷的流水号太旧了”。最常见于:同一张卡的认证数据被多处并发使用(克隆卡迹象)、归属网数据回滚、或测试卡被反复插拔跨设备使用。网络处理方式不是拒绝,而是走AUTS重新对表后重发考题,用户无感——所以你在信令里看到一次Synch failure紧跟一次重试成功,通常不算故障。

非法用户(Illegal UE):卡根本不存在或已报废。这是最直接的结局。

八、现网实战:这些知识用在哪里

排障第一站:AMF认证日志。 手机起呼失败、反复掉网,抓NAS信令看Authentication Request/Response/Failure三件套。看Failure的原因码区分MAC failure还是Synch failure,方向完全不同——前者查密钥配置,后者查SQN状态或多卡并发。

实验室第一坑:OP与OPc。 认证算法除了K还需要一个运营商派生参数OPc。不少测试工具(如开源核心网、仿真卡工具)配置时要求填OPc,而发卡商给的Excel里给的却是OP——两者混用,算出的MAC必然对不上,现象是“卡怎么都认证不过,换张卡就好了”。这是新人搭环境时最高频的翻车点:拿到卡商数据先确认给的是OP还是OPc。

物联网卡的选型题。 海量表类终端如果走蜂窝接入,运营商默认多用5G-AKA(省信令、省时延);如果终端要经企业WiFi/固定网络接入,比如工厂里网关聚合了传感器再经宽带回传,那就必然落在EAP-AKA'路径上。做方案时先画清楚接入管道,认证方法就定了。

安全审计的视角。 现网网管里如果看到某个跟踪区域频繁出现MAC failure集群,值得警惕——正常网络里这个原因码应当极其罕见。它可能是某批卡数据错误,也可能是伪基站的痕迹。认证失败日志不只是故障指标,还是安全指标。

九、常见误解与陷阱

误解一:“认证就是加密。” 不是。认证解决“你是谁”,加密解决“别人听不听得见”。而且5G里是先认证、后激活加密(NAS安全模式命令在认证成功之后才来)。信令里认证过了但安全激活失败,手机同样上不了网——排查时这是两个独立的阶段。

误解二:“AUTN里的AMF是那个AMF网元。” 巧合的撞名:认证参数里的AMF是Authentication Management Field(认证管理域),一个几比特的标志字段;网元AMF是Access and Mobility Management Function。两者毫无关系。读老文档时这个撞名坑特别容易把人绕晕。

误解三:“卡被复制了,认证也能过。” 恰恰相反——克隆是认证体系重点防的场景。两张卡同时用,SQN会互相踩踏,双方都频繁触发Synch failure,归属网侧一眼就能看出异常。SQN机制本质上是一台“克隆检测器”。

误解四:“5G了假基站就绝迹了。” 大幅收敛但机制上没有归零:假基站依然可以让手机“扑上来”,但拿不到真实身份(SUCI加密)、过不了归属网终审、拿不到锚密钥——它退化成了“只能让手机白跑一趟”的骚扰工具,定位跟踪和短信拦截的窗口被大幅压缩。

常见问题

Q: 5G-AKA和EAP-AKA',一张卡会同时用到两种吗? A: 完全可能。走蜂窝基站接入时用其中一种(由归属网订阅策略决定),同一部手机连公司WiFi或经非3GPP管道接入5G核心网时,则固定走EAP-AKA'。两者派生出的密钥相互独立,互不串用。

Q: 为什么K一定要放在USIM卡里,不能放在手机基带的存储中? A: 卡是独立的防篡改芯片,恶意App和被攻破的基带都读不到它,K的暴露面被压缩到物理接触攻击。放在基带里等于把信任根埋进了最复杂的软件堆栈,一旦系统被root,整个信任链就塌了。

Q: 认证失败后手机会怎样?会立刻换网吗? A: 看原因。Synch failure会自动重试(重新对表后出新题),用户无感;MAC failure会被记录并可能触发对网络的拒绝,手机可能重选小区或换网重试;如果归属网判定非法用户,会拒绝注册并可能列入黑名单。

Q: 我怎么在抓包里一眼认出5G-AKA和EAP-AKA'? A: 看消息形态:5G-AKA就是干净的一对Authentication Request/Response;EAP-AKA'会在NAS消息里看到嵌套的EAP消息(EAP-Request/Identity、EAP-Request/AKA'-Challenge、EAP-Success等一串)。看到EAP字样就是后者。

Q: 换了新手机,需要重新认证吗?SQN会不会失步? A: 卡没换就不用重新发卡,插上即走认证流程,SQN由归属网和卡自动同步,通常无感。极少数情况下(归属网数据异常)会触发一次AUTS重对表,表现为入网慢一两秒。

参考来源

  1. Authentication and Key Agreement - Wikipedia — AKA挑战-响应机制、SQN防重放与AUTN结构的权威概述
  2. RFC 5448: EAP-AKA'(IETF) — EAP-AKA'协议的消息流程、密钥派生与改进动机的原始定义
  3. SIM card - Wikipedia — USIM卡内主密钥K的存储方式与卡内运算职责
  4. free5gc 开源5G核心网 — 开源5GC对SEAF/AUSF/UDM认证交互的实现参考,可对照实测信令
  5. 5G - Wikipedia — 5G安全架构与双向认证原则的背景介绍

本文由「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 等场景全覆盖。

51学通信知识星球海报-扫码加入