手机开机,几秒内连上网,看起来天经地义。但你想过一个更根本的问题吗:手机怎么确定,头顶上这个基站不是别人架的假站?基站又怎么确定,这部手机不是克隆卡?
在商场连一个陌生的Wi-Fi你都要犹豫一下,而移动网络面对的处境更极端——空口是广播信道,你发出的每一个比特,半径几百米内的天线都听得见。在这样的信道上完成“你是谁”的确认,还不许把任何秘密明文送出门,这是移动网络安全要解的第一道题。
这道题的答案叫认证与密钥协商,业内简称AKA。本文把它拆开讲透:挑战应答为什么安全、AUTN这个小结构凭什么证明“网络是真的”、5G相比4G把哪三处设计推倒重做,以及一线工程师在信令里见到的那些鉴权失败,各自对应什么病根。
先想一个最朴素的方案:手机把密码发给网络,网络一比对,对上就放行。
这个方案在空口上等于裸奔。空口是广播的,密码发出去就永远收不回来,谁听到谁就“是你”了。网站登录传密码好歹还有TLS加密套着,而手机入网那一刻,恰恰是加密还没建立的时刻——典型的鸡生蛋问题:加密需要的钥匙,得靠认证来发;而认证这个动作本身,还没法加密。
解法是一套用了三十年的老智慧:挑战应答。原则只有一句话——
证明“我知道秘密”,而不是把秘密本身传出去。
具体做法:网络出一道一次性随机题(记作RAND),手机用只有自己知道的密钥K算出答案发回去。窃听者题目、答案都听得到,但只要K从不出门、算法单向,听到再多遍也算不出下一题的答案。
用公式说,答案大致长这样:
$$RES = f(K,\ RAND)$$
f是单向函数:由K和RAND算RES容易,反过来由RAND和RES反推K,计算上不可行。整个移动网络安全的大厦,就盖在这一条不等式上。
那K放在哪?答案是:全世界只有两份。一份在发卡时就写进USIM卡的安全域里,读不出来,只能“进题出答案”;另一份在归属运营商的凭证库里。除此之外,包括你手机操作系统、包括你漫游去的那个国家运营商,谁都不持有K。
很多人以为鉴权就是“一问一答”,实际上5G的鉴权材料是一个五件套,每一样都有明确分工:
| 材料 | 谁生成 | 走到哪 | 使命 |
|---|---|---|---|
| RAND | 归属凭证库 | 明文飞到手机 | 一次性题目,保证每次不同 |
| AUTN | 归属凭证库 | 明文飞到手机 | 网络的证件:证明网络认识我,且题目是新的 |
| RES* | 手机卡内计算 | 回传归属网终审 | 手机的答案:证明手机认识K |
| HXRES* | 归属认证服务 | 交给拜访网络 | 答案的散列指纹,供拜访网粗判 |
| 锚点钥匙 | 两端各自派生 | 从不在空口出现 | 认证产物,后续加密用它 |
重点看AUTN。它是网络递给手机的“证件”,展开就三个字段:
$$AUTN = (SQN \oplus AK)\,\Vert\, AMF \,\Vert\, MAC$$
三项全过,手机才认定“这个网络是真的”,才肯算答案回传。注意方向:鉴权从来不是单向查户口,而是互相验证件。手机验网络那一步,靠的正是AUTN里这个小小的MAC。
这些计算全部发生在USIM卡内部:题目进卡,答案出门。所以换手机不换卡,安全不受影响——钥匙根本不在手机里。这也是防克隆卡的全部原理:卡里的K读不出、改不了,克隆卡没有K,答不出题。
产出答案的同时,卡还顺带算出加密和完整性保护要用的密钥原料。换句话说,认证成功的副产品,就是后续加密的钥匙——认证和加密不是两件事,是一件事的两段。
挑战应答的骨架,4G和5G是同一副。5G真正动刀的,是“谁说了算”。要理解这一点,得先看4G的老流程差在哪。
4G时代,归属网络把鉴权材料整套打包发给拜访网络:题目、证件、标准答案,还有认证成功后直接可用的锚点钥匙,一个信封全给你。之后拜访网络自己收答案、自己比对、自己发钥匙——判对判错,归属网络全程不知情。
这个设计有三处毛病:
毛病一:答案和钥匙同时出门。拜访网络拿着标准答案自查,等于归属网络把判决权完全让渡。而拜访网络可能是合作伙伴,可能是漫游地运营商,安全水准参差。
毛病二:认证完没有回执。用户到底认证成功没有,归属网络永远不知道。极端场景下,一个假核心网收了用户的答案就自己宣布通过,归属网络对此毫无感知。
毛病三:钥匙不认地方。派生钥匙时不绑定“此刻我在谁家网里”,同一套钥匙材料理论上可以在不同网络间挪用、串用。
5G对这三处各动一刀:
第一刀:真答案不出家门,只发指纹。归属网络生成答案后自己留着(XRES),发给拜访网络的只是答案的散列指纹(HXRES)。拜访网络可以用指纹快速粗判——指纹对不上当场拒绝,省一趟来回;但指纹推不出真答案,判决权收归归属网络:最终比对必须在归属网络完成。
第二刀:钥匙过关才放行。锚点钥匙不再随材料预发,而是归属网络终审通过后,才发给拜访网络。先验证件,再发钥匙,顺序倒了过来。认证结果还会回告归属网络存档——拜访网络骗不了家。
第三刀:钥匙绑定服务网。钥匙派生的输入里掺入了“服务网络名”。同一把K、同一道题,在不同网络里派生出的钥匙完全不同,跨网挪用的路被堵死。
用一张时序图看5G入网认证全流程(为聚焦认证,图中省略了只做透明转发的基站环节):
sequenceDiagram
participant U as 手机与USIM卡
participant S as 拜访网接入管理
participant A as 归属网认证服务
participant P as 归属网凭证库
U->>S: 注册请求(身份加密隐藏)
S->>A: 请求鉴权材料
A->>P: 请求生成鉴权向量
P->>A: 题目、证件与真答案
Note over P,A: 真答案与钥匙留在家
A->>S: 题目、证件与答案指纹
S->>U: 下发题目与证件
Note over U: 卡内验MAC查SQN算答案
U->>S: 回传答案
S->>A: 粗判指纹后转交答案
A->>A: 终审比对答案
A->>S: 通过并下发锚点钥匙
A->>P: 回报认证结果
S->>U: 后续信令用新钥匙保护
值得说明:图里的“拜访网络”和“归属网络”,不只在出国漫游时才有区别。即便你在家乡用本运营商的网络,接入管理层和凭证管理层在架构上也是分开的两个角色——只是恰好同属一家运营商而已。标准这样设计,是把“接入可以发生在哪里”和“凭证只有家能管”解耦。
把整个信任关系画成一张图更直观:
flowchart TD
H["归属网络:管凭证发钥匙"]
C["USIM卡:K永不出卡"]
S["拜访网络:管接入不持K"]
U["手机:先验网再亮答案"]
A["空口:人人可听"]
H -->|发卡时写入K| C
H -->|只发题目证件指纹| S
S -->|转发题目与证件| A
A -->|手机验网络真假| U
U -->|答案回传拜访网| S
S -->|答案交归属终审| H
H -->|过关才发锚点钥匙| S
S -->|用新钥匙保护会话| U
看清楚一件事:K这一生只旅行过一次——发卡那天从运营商到卡里。此后无论多少次入网、漫游到多少个国家,空口上飞的永远只有题目、证件、指纹和答案。密钥从不旅行,这是全部设计的底座。
站在手机视角,收到证件后是一场三步连检,任何一步不过,认证就地终止:
flowchart TD
R["收到题目与证件"] --> M["卡内用K重算MAC"]
M --> C{"MAC对得上?"}
C -->|对不上| F1["假网络,立即终止"]
C -->|对上| Q["解出序列号SQN"]
Q --> D{"序号在窗口内?"}
D -->|太旧或跳太远| F2["判重播,走同步失败"]
D -->|新鲜| K["算答案与密钥材料"]
K --> O["答案回传等新钥保护"]
第一步验MAC,确认网络认识我;第二步查SQN窗口,确认题目不是重播。都过了,才算跟真网络对上了暗号。
这里有个工程上极有价值的细节:SQN窗口机制。为了容忍偶尔的乱序和重复(比如信令重传),账本校验不是“必须恰好等于下一页”,而是允许一个窗口范围;同时为了防止账本被恶意大幅推后,窗口外的处理也不是简单拒绝,而是走一条同步失败的特殊通道:手机回一个专门的同步参数,网络据此把账本对齐到手机的实际页码,然后重新出题。
这套机制平时安静无声,出事时却是标志性症状——后面调试一节会讲到它的经典案发场景。
还有一个容易被忽略的点:在5G-AKA流程里,手机自始至终收不到一张“认证成功”的明确回执。手机怎么知道自己过了?答案是看行动:拜访网络下一刻发来的信令,若能被新派生的钥匙正确解密和完整性校验,就等于网络在说“你过了”。受保护的信令本身就是回执。
上面讲的流程是5G-AKA。但5G其实同时支持第二种认证方法,两者气质截然不同:
| 维度 | 5G-AKA | EAP-AKA' |
|---|---|---|
| 出身 | 沿袭移动网挑战应答血统 | 源自Wi-Fi与企业网认证家族 |
| 往返开销 | 少,题答两趟 | 多一轮认证往返 |
| 成功回执 | 无显式回执,靠受保护信令间接确认 | 有受保护的显式成功消息,手机拿得到实据 |
| 归属网可见性 | 事中终审加事后回报 | 认证过程全程在归属网眼前完成 |
| 防追踪表现 | 曾被形式化分析指出存在边角案例 | 回执机制天然补上此短板 |
| 谁来选 | 归属运营商按策略决定 | 同左 |
第二种方法借用的是企业网认证的老框架:认证过程像一场多轮对话,由归属网络的认证服务亲自主持,手机每一步的回应归属网都看得到,最后还有一条受保护的成功消息发到手机手上——不存在“猜自己过没过”的问题。
为什么保留两个流派?因为这是一组典型的工程取舍:5G-AKA少一个往返,入网更快、信令更省,适合把时延当命的网络;EAP方法多一层确认,安全属性更完备,适合对确定性要求更高的场景。标准没有二选一,把选择权交给归属运营商按策略配置——同一个网络里,不同用户群可能走不同的认证路。
补充一句学界考据:曾有形式化分析工作把两种方法放进同一套符号系统推演,结论是5G-AKA因为缺那张显式回执,在防追踪的角落里留了一个理论口子,而EAP方法恰好没有。这也是“快与稳”取舍的一个真实注脚。
原理讲完,落到一线。工程师真正和鉴权打交道,往往是在排障的时候。信令里常见的几种鉴权异常,各自指向完全不同的病根:
| 信令现象 | 手机的含义 | 经典根因 | 排查方向 |
|---|---|---|---|
| MAC校验失败 | 网络不知道K | 卡参数与网端参数表错位,OPc配置不一致 | 核对发卡数据表与网端签约数据 |
| 序列号失步循环 | 一直收到“旧题” | 网端账本回滚、双活数据不同步 | 查近期数据操作,观察是否批量发生 |
| 同步失败刷屏 | 卡判重播并要求对账 | 数据迁移窗口期账本错位 | 迁移完成后批量观察是否自愈 |
| 认证通过但完整性失败 | 两边派生的钥匙不一致 | 服务网名等派生输入配置有差异 | 查钥匙派生输入,别死盯鉴权环节 |
三个经典案发场景,值得每个工程师记住:
场景一:换卡供应商之后大面积MAC失败。发卡数据表里的算子参数与网端配置差了一个变换环节,卡算出的校验码和网络期望的永远对不上。症状是批量、稳定复现,且集中在特定批次卡。这类问题的迷惑性在于:流程完全正常,就是数值不匹配,只能对参数表。
场景二:网端容灾切换后的序列号失步风暴。签约数据库从备份恢复,账本页码回退了几页;卡端的页码走在前面,一收题就判“这是重播”,集体走同步失败通道。特征是时间点与数据操作强相关、批量爆发。多数情况靠同步机制自愈,极端页码偏差过大的才会卡死、需要人工干预。
场景三:鉴权全过、业务不通。认证成功,加密也建立了,但信令完整性校验一直失败。新手往往反复排查鉴权环节,其实是钥匙派生的输入不一致——比如服务网名两边配置不同,同一把K派生出的钥匙却不同,后续每一条受保护信令都对不上。记住一句口诀:鉴权失败看凭证,完整性失败看派生输入。
最后澄清几个常见误解:
Q: 鉴权和加密到底是什么关系? A: 鉴权是“互相确认身份并就钥匙达成一致”,加密是“用这把钥匙把内容变哑”。顺序不可颠倒:没有鉴权就没有钥匙,没有钥匙加密无从谈起。所以鉴权失败的信令后面,不会出现任何加密成功的迹象——排障时看失败点的位置就能分层。
Q: 为什么每次认证的题目必须是新的? A: 因为空口上的一切都可被录音。如果题目固定,窃听者录一次问答对,之后直接原样回放就能冒充。一次性随机题加序列号账本,让每一套问答都只能用一次,旧录音对不上新账。
Q: 手机怎么知道基站不是假的? A: 靠AUTN里的MAC。假基站架得再像,没有K就算不出能通过校验的MAC,手机第一步验证件就会拒绝。5G又加了两道保险:空口上不再出现明文身份(注册请求里只有加密隐藏的身份),以及拜访网络必须经归属网络终审过关才能拿到钥匙——假站连“骗手机连上”之后的路都走不通。
Q: 两种认证方法,普通用户能感知到差别吗? A: 感知不到。这是网络侧的策略配置,选哪种、对哪些用户选哪种,都由归属运营商决定。用户能看到的结果只有一种:连上了,或者没连上。
Q: 换个信号更强的假基站,手机会连上去吗? A: 手机可能被吸引去尝试接入(这由无线侧信号强弱决定,与鉴权无关),但认证这一关过不去:验MAC不通过就终止,不交出任何有价值的东西,更不会建立加密会话。所以假基站在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 等场景全覆盖。
