首页 › deep-tech › 5G密钥层级与鉴权原理图解

图解5G安全原理:密钥层级与鉴权体系

一、从一个类比说起:一把永远不出门的母钥匙

想象一座高安全级别的办公大楼,你和物业之间共享一把“母钥匙”。这把母钥匙有一个铁律:永远不出你的口袋,也不出物业的保险柜。

那开门怎么办?答案是:每次需要进哪一层的门,双方就用约定的算法,从母钥匙现场“剪”出一把一次性子钥匙给那扇门。大楼保安(基站)只拿到它看守那一层的钥匙,前台(AMF)只拿到大堂的钥匙。任何一层失窃,都克隆不出母钥匙,也开不了别的层的门。

这就是5G安全体系最核心的设计哲学——密钥分层派生,一层一钥匙,密钥不出锚点。理解了这句话,你就理解了5G安全一半的“为什么”。

作为对比,4G的做法像是:母钥匙剪出一对“总钥匙”(IK/CK)交给大堂经理MME,大堂经理再原样把总钥匙转交给每个保安。保安拿到的是能开所有层的钥匙,一旦某个节点被攻破,整条链路都暴露。

二、4G安全为什么不够用了

在讲5G怎么做之前,先想清楚4G方案到底有什么问题。设计5G安全架构的人,是被三个现实威胁逼着走的:

威胁1:明文身份暴露(IMSI Catcher) 手机开机注册时必须告诉网络“我是谁”。4G时代,终端在部分地区会以明文发送IMSI(国际移动用户标识)。攻击者用一个伪基站广播强信号,诱导手机回落到2G/4G并发送IMSI,就能低成本地批量锁定、追踪特定用户的地理位置——这类设备就是IMSI Catcher(俗称“伪基站”的谍报用途版)。身份是整个安全体系的根,身份明文暴露等于在门上贴了你的家庭住址。

威胁2:密钥“一层传一层”的放大效应 4G中,HSS算出CK/IK后交给MME,MME派生后把基站的密钥交给eNB。密钥链路上经过的每个节点都持有较上游的密钥。节点越多,攻击面越大;而且eNB被物理部署在野外铁塔上,是整条链路里物理防护最薄弱的一环,偏偏它拿到的密钥权限不小。

威胁3:缺少锚定的“会话根” 4G中用户在MME之间移动、做T AU,密钥上下文要在核心网节点间搬来搬去。没有一个稳定的“锚”,每次搬移都是一次暴露机会,也给降级攻击(强迫你用更弱的老协议)留了口子。

5G的设计目标由此而来:身份要加密、密钥要分层、派生要有锚、每层钥匙只在自己那层用。

三、密钥层级:一棵倒着长的树

5G的密钥体系可以画成一棵从根到叶的树。根密钥K(256位)只存在于两个地方:用户USIM卡里和归属网络的认证中心(UDM/ARPF一侧)。树的每一层,都是用KDF(密钥派生函数)从上一层“剪”出来的:

graph TD
    K["根密钥 K<br/>USIM 与归属网络共享<br/>永不出现在网络侧任何节点"]
    KAUSF["K_AUSF<br/>归属网鉴权后产生<br/>锚定用户与归属网"]
    KSEAF["K_SEAF<br/>锚点密钥<br/>服务网络持有"]
    KAMF["K_AMF<br/>AMF 持有<br/>接入与移动性管理根"]
    KNASI["K_NAS_int<br/>NAS信令完整性"]
    KNASE["K_NAS_enc<br/>NAS信令加密"]
    KGNB["K_gNB<br/>基站密钥"]
    KRRCI["K_RRC_int<br/>RRC完整性"]
    KRRCE["K_RRC_enc<br/>RRC加密"]
    KUPI["K_UP_int<br/>用户面完整性"]
    KUPE["K_UP_enc<br/>用户面加密"]

    K --> KAUSF
    KAUSF --> KSEAF
    KSEAF --> KAMF
    KAMF --> KNASI
    KAMF --> KNASE
    KAMF --> KGNB
    KGNB --> KRRCI
    KGNB --> KRRCE
    KGNB --> KUPI
    KGNB --> KUPE

每一把钥匙的“出生地”和“职责”整理如下:

密钥 由谁派生 存在于谁手里 用来保护什么
K 制卡时写入 USIM、归属网鉴权中心 一切的根,永不出境
K_AUSF K + 服务网络名等 AUSF(归属网) 证明"这次鉴权归属网认可"
K_SEAF K_AUSF 派生 SEAF(服务网,随AMF) 服务网的网络域密钥锚点
K_AMF K_SEAF + ABBA等 AMF NAS层与接入层密钥的父密钥
K_NAS_int/enc K_AMF 派生 UE 与 AMF NAS信令的完整性与加密
K_gNB K_AMF 派生 UE 与 gNB 空口AS层的父密钥
K_RRC_int/enc K_gNB 派生 UE 与 gNB RRC信令保护
K_UP_int/enc K_gNB 派生 UE 与 gNB 用户数据保护

为什么NAS和AS要分成两层钥匙? 因为它们是两个信任域。NAS信令(手机↔AMF)走的是核心网信任域,即使基站被攻破,攻击者也解不开NAS信令——它只有K_gNB,没有K_AMF。这是5G相比4G最实质的防御提升:把“基站的权限”从“能看懂一切”降级为“只管空口这一段”。

四、KDF:密钥派生的“公式”

派生不是简单的异或,5G全网的密钥派生统一用一个原语:基于HMAC-SHA-256的KDF。它的形式是:

$$K_{new} = \text{HMAC-SHA-256}\big(K_{old},\ S\big)$$

其中派生参数 $S$ 由一串结构化字段拼接而成:

$$S = FC \,|\, P_0 \,|\, L_0 \,|\, P_1 \,|\, L_1 \,|\, \cdots$$

这个设计有两个精妙之处:

  1. 域分离:不同用途用不同FC,同一个输入永远派生不出两种用途的密钥。加密密钥和完整性密钥天生不同,即使算错也不会串门。
  2. 绑定上下文:把服务网络名绑进K_SEAF的派生里,密钥就和“这次是哪个运营商的网络在为我服务”绑死了。漫游时如果服务网谎报身份,派生出的密钥对不上,认证直接失败——这从数学上封死了“假网络欺骗归属网”的一类攻击。

用直觉理解:KDF像一台“单向榨汁机”,母钥匙加上下文丢进去,榨出来的子钥匙千变万化;但拿到子钥匙,想反推出母钥匙,在密码学上不可行。

五、5G-AKA:一次鉴权的完整旅程

密钥树有了,树是怎么“种”出来的?靠鉴权。5G主用两种鉴权方法:5G-AKA和EAP-AKA'。以主用的5G-AKA为例,把全程信令走一遍:

sequenceDiagram
    participant UE as UE (USIM)
    participant SEAF as AMF/SEAF (服务网)
    participant AUSF as AUSF (归属网)
    participant UDM as UDM/ARPF (归属网)

    UE->>SEAF: 注册请求,携带 SUCI(加密后的身份)
    SEAF->>AUSF: 转发 SUCI + 服务网络名
    AUSF->>UDM: 请求鉴权数据
    UDM->>UDM: 解出SUPI,用根密钥K算鉴权五元组
    UDM-->>AUSF: RAND, AUTN, XRES*, K_AUSF
    AUSF-->>SEAF: RAND, AUTN, HXRES*, K_SEAF
    Note over AUSF,SEAF: 归属网只下发K_SEAF<br/>XRES*被哈希成HXRES*
    SEAF->>UE: 用户鉴权请求 (RAND, AUTN)
    UE->>UE: USIM验证AUTN<br/>用K计算RES*
    UE-->>SEAF: 用户鉴权响应 (RES*)
    SEAF->>SEAF: 比较 HXRES* 与 H(RES*)
    SEAF->>AUSF: 上报RES*做最终核对
    AUSF-->>SEAF: 核对通过,确认
    SEAF->>UE: 安全模式命令 (启动NAS保护)

拆开看几个关键设计:

为什么挑战是五元组,还要“一半一半”地下发? 注意两处细节:归属网算出的比对基准XRES*,下发时被哈希成了HXRES*;根密钥派生的K_AUSF留在AUSF,SEAF只拿K_SEAF。这样,服务网络在鉴权过程中始终接触不到完整的高位密钥和明文比对材料。即使服务网(比如漫游合作的境外运营商)不可信,它能干的事也被严格限制。这是4G完全不具备的“归属网主导”设计。

AUTN是什么? 它是一张“网络的自证信”。基站里游荡着无数伪基站只会单向提问,而真网络的AUTN里含有一个只有持有根密钥K的双方才能算出的校验值。UE收到RAND+AUTN后,USIM用K验证AUTN——验证通过,说明对面是真网络;同时双方各自用K和RAND算出相同的会话密钥材料。一次挑战,完成了双向认证和密钥协商,这就是“挑战-响应”机制的经济学。

RES*为什么要用KDF算,而不是4G那样的直接拼接? 5G把鉴权响应也过一遍KDF,把服务网络名绑了进去,防止鉴权材料被跨网络重放挪用。

六、SUCI:给你的身份戴上口罩

前面时序图里出现的SUCI,值得单独一节,因为它是5G安全最受普通用户感知的改进。

流程是:USIM卡和归属网络预先共享/预置了一对ECIES(椭圆曲线集成加密方案)公私钥。UE注册时不发SUPI,而是用归属网公钥把身份加密成SUCI。只有归属网的UDM能用私钥解开,路过的不挂名网络节点、伪基站、甚至服务中的漫游网络,看到的都只是一段每次都不同的密文。

配合一次性随机数,同一个用户每次注册的SUCI都不一样——伪基站连“追踪同一个用户”都做不到了。2018年苏黎世联邦理工学院(ETH Zurich)团队对5G认证协议做过形式化分析,指出协议仍存在一些可改进的攻击场景,但总体确认了这套“身份隐私保护+双向认证”框架的成熟度远超4G。

七、切换时的密钥:横向推与纵向推

用户移动时怎么换钥匙?这体现了“锚点”设计的价值。

graph LR
    subgraph 切换前
        A[源gNB 持有 K_gNB_1]
    end
    subgraph 目标
        B["目标gNB<br/>需要 K_gNB_2"]
    end
    A -- "横向推导:K_gNB_2 = KDF(K_gNB_1, 目标小区信息)" --> B
    K_AMF["K_AMF<br/>锚点不动"] -- "纵向推导:换AMF时<br/>K_gNB_2 = KDF(K_AMF, 新信息)" --> B

ABBA参数在这里也顺便说一句:K_AMF派生时绑定了算法协商结果(每个算法一位),如果中间人把算法协商“降级”到弱算法,派生出的密钥对不上,链路立刻断裂。降级攻击从协议层面被否决。

八、4G与5G安全体系对比

把两代安全架构放在一张表里,差异一目了然:

维度 4G (EPS) 5G (5GS)
空口身份 IMSI 可能明文发送 SUCI 公钥加密,逐次变化
根密钥结构 CK/IK 一对,128位 K 单根,256位,分层树
密钥传递 HSS→MME→eNB 层层下发 只下发各层专属密钥,高位密钥不下移
NAS与AS隔离 eNB可见大部分密钥上下文 NAS密钥(K_AMF域)不进基站
用户面完整性保护 无(只加密不保完整) 引入,可按运营商策略开启
认证方法 EPS-AKA 单选 5G-AKA 与 EAP-AKA' 双选
锚点设计 密钥随节点迁移 K_SEAF/K_AMF 锚定,切换只派生不搬迁
抗降级 弱 ABBA绑定算法协商,降级即失败

九、实战连接:这些原理在现网里长什么样

调试场景1:注册卡在鉴权失败。 抓UE与AMF之间的NAS信令,如果看到“MAC failure”,含义是UE算出来的AUTN校验值对不上——通常是USIM与归属网根密钥数据不一致(开卡数据导入错、号段鉴权数据配置错)。如果是“同步失败”,是USIM侧序列号(SQN)超窗,多见于换卡、复卡或鉴权中心SQN管理异常。看到这两种失败,排查方向完全不同,而只有理解“挑战-响应”原理,才能从失败类型反推出错在哪一侧。

调试场景2:切换后掉话但注册正常。 如果水平密钥推导时源基站下发的目标小区信息有误(如邻区配置的PCI/频点错),目标基站派生出的密钥与UE算的对不上,AS层安全激活失败,表现就是切换失败或切过去立刻RRC重建。这种问题信令上不直观,必须想到“两端密钥派生输入不一致”这一层。

调试场景3:漫游用户无法注册。 先查服务网络名(SNN)配置。K_SEAF的派生绑定了SNN,两网配置的SNN拼写不一致(多一个斜杠、大小写不同),归属网AUSF与UE各自算出的密钥就是两把不同的钥匙,鉴权必挂。这是5G漫游联调中最经典的坑之一。

常见误解: - “5G加密了,所以抓包看不到信令了。” 错。NAS在UE↔AMF段是密文,但在AMF之后的核心网内部(N2之后的SBA接口)是明文的。抓包调试要在对的位置抓。 - “基站有用户密钥。” 半错。gNB只有K_gNB及其派生的AS层密钥,永远接触不到K_AMF、K_SEAF,更没有根密钥K。 - “用户面完整性保护默认开。” 不是。标准要求支持,但开启与否是运营商策略(受性能开销影响),多数现网按策略对部分业务开启。

十、把整个体系串成一句话

5G安全架构的本质,可以压缩成一个动作和三个原则:

一个动作:鉴权。USIM与归属网用共享的根密钥K做一次挑战-响应,双向确认身份,同时长出K_AUSF。

三个原则: 1. 只派生,不搬运——高位密钥永不向下游传递,下游只拿到专属子密钥; 2. 只绑定,不游离——每次派生都绑入上下文(网络名、小区信息、算法协商),密钥离开它的上下文就是废铁; 3. 只暴露,不裸奔——身份用SUCI加密,比对材料哈希下发,服务网拿不到全貌。

下次你在现网遇到鉴权失败、切换掉话、漫游不通,不妨回到这棵密钥树:问题往往就出在某一次“派生”的输入上——根、上下文、算法,三者必有一个不对。理解了树,故障就有了按图索骥的地图。

常见问题

Q: 5G-AKA和EAP-AKA'的区别是什么? A: 两者都完成“USIM+根密钥”挑战-响应式双向认证,差异在协议框架和信任分配。5G-AKA是专为5G设计的轻量方法,鉴权决策主要由归属网(AUSF核对RES*)把关,信令轮次少;EAP-AKA'复用了成熟的EAP框架(与Wi-Fi认证同源),多几轮交互,但把“服务网是否诚实”的最终裁定权也交给UE一方的EAP终结点。运营商二选一配置,多数商用网主用5G-AKA。

Q: K_AMF和K_gNB为什么不能合成一把? A: 因为它们属于两个信任域。NAS信令(UE↔AMF)穿越核心网,gNB只是转发管道;AS信令和用户数据(UE↔gNB)终结在基站。合成一把意味着基站能解NAS信令,等于退回4G的“基站可见一切”模型,分层防御就塌了。

Q: SUCI加密了身份,那伪基站问题解决了吗? A: 大幅缓解但没有绝迹。SUCI让伪基站拿不到身份、无法追踪用户;但伪基站仍可诱导终端驻留、干扰接入。真正的终端侧防护(如不回落弱网)还需要终端策略配合。另外SUCI依赖卡内预置归属网公钥,早期存量卡不支持时仍可能退回明文路径。

Q: 切换时密钥变了,为什么业务不断? A: 因为密钥切换与数据面切换是协调好的:源基站在切换命令里告知UE目标小区信息,UE提前算好K_gNB_2并派生AS层密钥;两端在数据路径切换的同一时刻换钥匙,靠序计数器对齐。只要派生输入一致,换钥匙对上层业务是瞬时的、无感的。

Q: 根密钥K会泄露吗?泄露了怎么办? A: K只存在于USIM和归属网鉴权中心,物理上是全系统保护最严的两处。若怀疑卡被克隆(K泄露),唯一办法是换卡换密钥——这也是分层体系的边界:架构保证“一个节点沦陷不塌全网”,但根沦陷只能重新发根。

参考来源

  1. A Formal Analysis of 5G Authentication (Basin et al., CCS 2018) — 苏黎世联邦理工学院团队对5G认证协议的形式化安全分析,某百科引用文献,证实其对协议弱点的结论
  2. Nick vs Networking — 电信核心网工程实践博客(LTE/移动网络专栏),核心网信令实战视角的延伸阅读
  3. GSMA Security — GSMA安全板块,运营商网络安全要求与欺诈防范的行业视角

本文由「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学通信知识星球海报-扫码加入