---
标题: 5G 密钥的族谱：一层层往下传
作者: 爱卫生
封面: "[[封面1.png]]"
封面裁剪: false
原文地址:
打开评论: true
仅粉丝可评论: false
摘要: 想象一家大酒店的安保体系。如果每位员工都持有一把能打开全酒店所有房间的万能钥匙，那么任何一个人离职、丢钥匙，整栋楼都得换锁。
---

<!-- title: 5G 密钥的族谱：一层层往下传 -->

# 5G 密钥的族谱：一层层往下传

## 一、从一把万能钥匙说起

想象一家大酒店的安保体系。如果每位员工都持有一把能打开全酒店所有房间的万能钥匙，那么任何一个人离职、丢钥匙，整栋楼都得换锁。所以真实的酒店不会这么干：总经理的卡开管理层办公室，楼层主管的卡只开本楼层，客房服务员的手卡只开当日负责的房间，客人拿到的是一次性房卡，退房即失效。**权限越小的人，拿到的钥匙越“窄”，越“短命”。**

移动通信网络里的密钥管理，面对的是同一个问题，只是规模被放大到了亿级用户和百万级基站。你的手机和网络之间，既要加密信令、又要加密数据、既要保护完整性、还要在换基站时不断换钥匙。如果整张网从头到尾只用一把主密钥，那么任何一个环节被攻破——某个基站被入侵、某条传输链路被窃听——攻击者就等于拿到了你在全网的所有“万能钥匙”。

5G给出的答案是一棵精心设计的**密钥树**：一棵树只有一个深埋地下的根，但枝干层层分叉，每个末端只长一片叶子。这篇文章就带你把这棵树看明白：它长什么样、为什么这样分叉、每根枝条的命名逻辑是什么，以及当你的手机在高铁上飞驰换站时，这棵树是如何“边跑边长新枝”的。

## 二、4G的老问题：一根藤上的瓜

要看懂5G的设计，得先看它要修复什么。4G的密钥体系其实也分了层，但层次很浅：

$$K \rightarrow CK + IK \rightarrow K_{ASME} \rightarrow K_{eNB} \rightarrow \{K_{RRCenc}, K_{RRCint}, K_{UPenc}\}$$

根密钥K藏在USIM和归属网的HSS里，认证之后派生出CK（加密密钥）和IK（完整性密钥），两者合成锚点密钥KASME交给MME，MME再给每个基站派生KeNB，基站最后派生RRC和用户面的工作密钥。

这个体系在4G时代够用，但暴露了三个结构性短板：

**第一，锚点太少，域分不开。** KASME是一个“总闸”，它同时服务NAS信令和空口两大域，中间只隔了一个KeNB。归属网络（你的运营商）和服务网络（你漫游时的运营商）之间没有独立的锚点密钥——服务网络拿到KASME后，归属网对密钥的后续使用就失去了“抓手”。

**第二，新旧代际之间没有“防降级闸门”。** 手机在2G/3G/4G之间切换时，如果攻击者伪造网络能力，把一部支持强加密的手机“压级”到弱加密模式，旧体系缺少一个密码学层面的强制校验。

**第三，移动性换钥的链条不够长。** 4G在切换时也有密钥更新机制，但锚点层次决定了“新枝”只能从很浅的位置长出来，一代密钥被破之后的隔离手段有限。

5G把这棵树重画了一遍：锚点从一级变成三级，分支从五把变成十余把，并且在每个关键节点上加进了“域标签”和“代际标签”。下面看全貌。

## 三、密钥树全景图

5G完整的密钥派生链如下——每一个箭头都是一次密钥派生函数（KDF）的计算，而不是密钥的“搬运”：

```mermaid
flowchart TD
    K["根密钥K<br/>藏在USIM里"] --> CKIK["CK与IK<br/>认证时算出"]
    CKIK --> KAUSF["KAUSF<br/>归属网锚点"]
    KAUSF --> KSEAF["KSEAF<br/>服务网锚点"]
    KSEAF --> KAMF["KAMF<br/>核心网总闸"]
    KAMF --> KNAI["KNASint<br/>NAS完整性"]
    KAMF --> KNAE["KNASenc<br/>NAS加密"]
    KAMF --> KGNB["KgNB<br/>基站总闸"]
    KAMF --> KN3["KN3IWF<br/>非3GPP接入"]
    KGNB --> KRRCI["KRRCint<br/>RRC完整性"]
    KGNB --> KRRCE["KRRCenc<br/>RRC加密"]
    KGNB --> KUPI["KUPint<br/>用户面完整性"]
    KGNB --> KUPE["KUPenc<br/>用户面加密"]
```

先建立一个直觉：**越靠近树根的密钥，知道的人越少、活的时间越长；越靠近树叶的密钥，使用频率越高、更换频率也越高。** 根密钥K从你开卡那天起就躺在USIM里，可能五年不动；而用户面加密密钥KUPenc，可能今天下午已经换了三次。

再把每把钥匙的“户口”列清楚：

| 密钥 | 诞生在哪 | 谁持有 | 管什么 |
|---|---|---|---|
| K | 开卡时写入 | USIM + 归属网UDM | 终身根密钥，永不出卡、永不出归属网 |
| CK / IK | 每次认证算出 | USIM / 归属网 | 认证的中间产物，一次一换 |
| K_AUSF | 认证流程中派生 | 归属网AUSF + 手机 | 归属网信任锚，漫游时留给“娘家”的钥匙 |
| K_SEAF | 由K_AUSF派生 | 服务网SEAF + 手机 | 服务网信任锚，拜访地拿到的“授权书” |
| K_AMF | 由K_SEAF派生 | AMF + 手机 | NAS信令与空口安全的总源头 |
| K_NASint / K_NASenc | 由K_AMF派生 | AMF + 手机 | 手机到核心网的信令完整性/加密 |
| K_gNB | 由K_AMF派生 | gNB + 手机 | 空口安全的总源头，随切换不断更新 |
| K_RRCint / K_RRCenc | 由K_gNB派生 | gNB + 手机 | 空口信令完整性/加密 |
| K_UPint / K_UPenc | 由K_gNB派生 | gNB + 手机 | 用户数据的完整性/加密 |
| K_N3IWF | 由K_AMF派生 | 非3GPP互通网关 + 手机 | WiFi等非3GPP接入的独立分支 |

这张表里藏着5G设计的三个关键决策，我们逐一拆开看“为什么”。

## 四、决策一：锚点为什么要串三级

注意链条中段的三级锚点结构：K_AUSF → K_SEAF → K_AMF。这不是冗余，而是**信任域的隔离墙**。

在4G里，服务网络的MME从归属网HSS那里拿到KASME之后，两者对这把密钥的“含金量”认知就同步了——归属网既无法限制MME拿它做什么，也无法在后续重新洗牌。5G把这一步拆成了两道闸：

- **AUSF在归属网**：认证的最终裁决权在娘家。归属网派生K_AUSF后，只把“进一步派生”的权限往下传，而不是把根暴露出去。漫游场景下，这一层保证了你的密钥材料永远与归属网的认证结果绑定——这也是为什么5G规范明确要求归属网必须知道并参与“这次UE认证是否通过”的结论。
- **SEAF在服务网**：拜访地网络拿到的只有K_SEAF。它能以此派生出为本次驻留服务的一切钥匙，但它**永远拿不到K_AUSF本身**，更不可能上溯到根密钥K。
- **AMF接过K_SEAF派生出K_AMF**：到了这一层，才算进入“干活”的阶段——NAS安全和空口安全都从这里长出来。

一个值得体会的细节：SEAF在标准上通常就部署在AMF里面（两者常常是同一个网元的两个角色）。既然同址，为什么不干脆合成一把密钥？因为**角色和密钥必须分离**：今天SEAF和AMF可以住在一个进程里，明天运营商把AMF池化扩容、把SEAF独立部署时，密钥边界不用重画。密钥跟随信任域走，而不是跟随网元形态走。

## 五、决策二：域分离——同一堆原料，炼不同钥匙

数一数：从K_AMF长出了至少四把钥匙（KNASint、KNASenc、KgNB、KN3IWF），从KgNB又长出四把。KDF拿到的输入都是同一个上级密钥，凭什么输出的钥匙互不相关？

答案是：**派生函数的第二个输入——派生参数串S——里塞进了“用途标签”。** KDF本质上是一个带密钥的哈希运算，5G采用的KDF结构大致是：

$$K_{out} = KDF(K_{in},\ S), \qquad S = FC \parallel P_0 \parallel L_0 \parallel P_1 \parallel L_1 \parallel \cdots$$

其中FC是单字节“功能码”（区分这是在派生哪一类密钥），后面跟着若干“参数-长度”对。派生KNASint和派生KNASenc时，FC不同；派生KgNB时，参数里还带有接入类型等信息。**上级密钥相同、标签不同，输出的密钥就是两串毫无关联的随机数**——从KNASenc反推KNASint，在密码学上等同于暴力破解。

这就是“域分离”的精髓。它解决两个现实问题：

**一是限定泄露半径。** 假如某个算法日后被发现了缺陷（历史上加密算法被攻破的案例并不少），那么受影响的只有拿着这把钥匙的那个域：加密被破，完整性保护还活着，信令照样防篡改；反过来也一样。

**二是把“谁能看到谁”写死在结构里。** 基站只拿到KgNB这一支，它永远无法推导出NAS的钥匙；WiFi互通网关拿到KN3IWF这一支，和3GPP接入的KgNB完全是两棵子树。每个网元拿到的密钥材料，刚好只够它履行自己的职责——这正是酒店门禁体系的翻版。

## 六、决策三：ABBA——新旧代际之间的防降级闸门

5G不是凭空部署的，它必须在4G的汪洋里逐步生长。手机从4G迁移到5G（或者反向）时，安全上下文要跟着走。问题来了：**4G的密钥体系里没有5G的钥匙，怎么保证迁移过程中不会有人趁乱“压级”？**

所谓压级（bidding down）攻击是这样的：中间人伪装网络，谎称“我这边只支持2G的弱加密”，诱导一部明明支持强加密的手机退回弱保护模式。2G时代遗留的伪基站，正是靠这类手段钓鱼。

5G在NAS安全激活时引入了一个看似平淡的参数：**ABBA**（Anti-Bidding down Between Architectures，架构间防降级参数）。它的工作方式非常朴素——就是一个长度字段加代际标记，**标记“这次使用的安全上下文来自哪个代际的组合”**：

```mermaid
flowchart TD
    A["手机从4G迁移5G"] --> B{"ABBA标记核验"}
    B -->|代际标记齐全| C["允许派生新KAMF"]
    B -->|标记缺失或被篡改| D["UE拒绝激活"]
    C --> E["新旧安全上下文隔离"]
    D --> F["压级攻击被掐断"]
```

它朴素，却有两个妙处。第一，**ABBA参与了K_AMF的派生输入**——代际信息被直接揉进了新钥匙的“血统”里，任何对代际标记的篡改都会导致手机和网络算出两把对不上的钥匙，后续NAS完整性校验立刻失败，攻击自动暴露。第二，**每一次K_AMF刷新都伴随新旧上下文的强制隔离**：即使攻击者手里攥着4G时代的旧钥匙，也没法用它推算出5G时代的新钥匙。

一个容易混淆的点：ABBA不是加密算法，不“保护”任何数据。它只是一段**被密码学校验的声明**——声明本次会话的代际组合，并让这份声明与密钥血统绑定，篡改声明等于毁掉密钥。

## 七、边跑边换枝：切换时的密钥链条

前面的树画的是“静态解剖图”。但手机是在移动的，每次切换基站，空口的钥匙必须换——否则同一把KUPenc用到天荒地老，被破一次就全线沦陷。5G为此设计了一条**链式换钥**机制：

```mermaid
flowchart TD
    KAMF["KAMF"] --> NH0["NH链条 NCC=0"]
    NH0 --> G1["1号基站持KgNB"]
    G1 -->|切换到新小区| NH1["推导新NH NCC=1"]
    NH1 --> G2["2号基站持新KgNB"]
    G2 -->|继续移动| NH2["推导新NH NCC=2"]
    NH2 --> G3["3号基站持更新KgNB"]
```

拆开看几个关键零件：

**NH（Next Hop，下一跳密钥）与NCC（计数器）**。AMF手里维护着一条NH链：每次需要更新时，从当前密钥材料派生出下一环NH，同时计数器NCC加一。切换命令里会带着NCC值，手机对照自己的计数器，就知道该用链条的哪一环。

**小区参数参与派生**。目标基站的物理小区标识（PCI）和下行频点会作为参数进入新KgNB的派生。这意味着**哪怕两个基站拿到了同一环NH，它们各自算出的工作密钥也完全不同**——钥匙不光按“代”隔离，还按“门牌号”隔离。

**前向安全与后向安全**。这条链的单向性是精髓：第3站的密钥是从第2站的材料推导出来的，知道第3站的钥匙推不出第2站的（后向安全）；反过来，即使攻击者攻破了第2站，也只能往下污染，无法预知第4站、第5站的钥匙（前向安全）。基站被入侵的损失被锁定在“此站此刻”，不会顺着时间轴扩散。

这套机制还有个工程上的聪明之处：**链式推导不需要每次切换都回核心网重新认证**。NH链可以由AMF预先多备几环交给基站，基站间直接完成换钥——高铁上每几秒切换一次，如果每次都要跑一遍完整的鉴权信令，连接早就断了。安全性和移动性，在这里用“预 derivation”实现了兼得。

## 八、4G与5G密钥体系对照

把两代的差异收进一张表，你会更清楚5G“重画一棵树”到底重画了什么：

| 维度 | 4G体系 | 5G体系 |
|---|---|---|
| 锚点层数 | 一级锚点（KASME） | 三级锚点（K_AUSF / K_SEAF / K_AMF） |
| 归属网/服务网隔离 | MME拿锚点后归属网无抓手 | 归属网只交出K_AUSF的“下游”，锚点本身不出门 |
| 防降级机制 | 无密码学强制 | ABBA参数绑定K_AMF血统 |
| 用户面完整性保护 | 不支持（只加密） | K_UPint，可选强制开启 |
| NAS与AS域分离 | 共用一个中间层 | K_AMF下NAS与KgNB两支彻底分离 |
| 非3GPP接入 | 单独体系 | KN3IWF同树不同枝 |
| 切换换钥 | 有，链条短 | NH/NCC长链 + 小区参数入盐 |
| 身份隐私 | IMSI明文传输 | SUCI加密传输（配套机制） |

## 九、落到现网：你会在哪里遇见这棵树

原理讲完，说说这套知识在调试中的用武之地。

**抓包看什么。** 在UE侧或AMF侧抓NAS信令，注册流程里紧跟认证之后的NAS Security Mode Command值得逐字段看：ngKSI（密钥组标识，标记当前用的是哪套K_AMF上下文）、选中的完整性/加密算法、以及ABBA参数。如果ABBA字段和UE侧的代际认知不一致，UE会直接拒绝——这是排查“鉴权成功但安全激活卡死”类问题的第一站。切换流程里，看切换命令携带的NCC值是否单调递增，可以判断换钥链有没有断环。

**常见调试陷阱。** 其一，ngKSI冲突：手机里残留了旧注册的密钥组标识，新注册复用了相同的ngKSI却对应不同上下文，会导致安全激活失败——表象是注册反复重试，根因是密钥上下文对不上号。其二，基站异常重启后的NCC失步：AMF侧的NH链推进了，基站侧却丢了上下文，切换后密钥对不上，典型症状是切得过去、数据不通。其三，最隐蔽的一类——算法能力协商失败：UE安全能力列表被篡改或解析错误时，完整性校验失败的表现是“收到即丢弃”，没有明显的错误码，只能对比两侧对安全能力字段的解读。

**一个普遍的误解。** 很多初学者以为“5G加密”是一把钥匙管到底，或者以为基站知道用户的全部密钥。理解了这棵树之后你会明白：**基站的权限天生残缺**——它只有KgNB这一支，看不到NAS钥匙，更摸不到根；而每一次切换都在自动换枝。5G安全的设计哲学不是“造一把更结实的锁”，而是**让任何一把锁被撬开时，波及范围被结构性地锁死在最小**。

## 十、结语：结构即安全

回到开头的酒店类比。一家酒店的安保水平，不取决于门锁多贵，而取决于**权限体系设计得多细**。5G密钥体系的进化同样是结构性的：三级锚点隔离信任域，域分离限定泄露半径，ABBA封死降级后门，NH链让每一跳都长出新枝。

理解了“为什么这样设计”，再回头看那串令人生畏的密钥命名——KAUSF、KSEAF、KAMF——它们就不再是需要死记的缩写，而是一棵树上位置清晰、职责分明的枝干：**根管归属，锚管信任，枝管分工，叶管当下。** 下次在现网遇到安全类问题，先问自己一句：问题出在这棵树的哪一层？——答案往往就在那个层次的结构属性里。

## 常见问题

**Q: K_AUSF和K_SEAF方向到底谁派生谁？为什么有的资料画得不一样？**
A: 在5G-AKA流程中，归属网ARPF从CK/IK派生出K_AUSF交给AUSF，AUSF再往下交给SEAF侧，SEAF从K_AUSF派生K_SEAF，AMF再从K_SEAF派生K_AMF——自上而下单向流动。个别文章把K_SEAF画在K_AUSF上游，属于把“锚点重要性”和“派生方向”混为一谈了。记住一条铁律：**密钥只能从父派生子，上游永远推不出下游之外的东西，下游也永远重构不出上游**。

**Q: 有了KAMF这一把“总闸”，为什么NAS和空口不直接共用一套工作密钥？**
A: 因为两个域的对手和暴露面不同。NAS信令的一端是核心网AMF（部署在运营商机房，物理安全较强），空口信令的一端是遍布街头的基站（部署环境开放得多）。共用密钥意味着基站被入侵时NAS钥匙陪葬；分开之后，基站手里只有KgNB一支，损失半径被结构限定在空口。

**Q: 用户面完整性保护K_UPint是4G没有的，为什么5G要加？加密不是已经保证内容不被看了吗？**
A: 加密防“偷看”，完整性防“篡改”，这是两件事。4G的用户数据只加密不保完整，攻击者理论上可以在不被察觉的情况下改写字节流。5G面向URLLC类业务（工业控制、电网差动保护），一个被篡改而不被发现的报文可能造成物理世界的事故，所以把用户面完整性提为一等公民。代价是每个包多算一次MAC，对带宽敏感场景可以按承载选择关闭。

**Q: 切换时换钥匙会不会拖慢切换速度？**
A: 恰恰相反，NH链机制是**为速度设计的**。AMF可以预先把后面几环NH连同NCC一起下发，基站收到切换请求后本地一步派生目标密钥，不需要回核心网取钥。真正会拖慢切换的是NCC跳变（比如异AMF切换后计数器对不上），这时才需要AMF重新参与供钥——这也是排查“特定路径切换慢”时值得看的点。

**Q: 根密钥K能不能更换？比如用户挂失补卡之后？**
A: 可以。根密钥写在USIM里，补卡即换卡，新卡新K；同时归属网侧UDM中对应的K同步更新，旧卡的K从此作废。这也体现了把根密钥放在“可物理分离的载体”上的设计意图——卡是钥匙的物理边界，卡在人在，卡失钥失。

## 参考来源

1. [ShareTechnote: 5G Security](https://www.sharetechnote.com/html/5G/5G_Security.html) — 本文密钥层级、ABBA、切换NH链等内容的主要事实核验来源，含4G/5G安全体系逐项对照
2. [Techplayon: 5G Authentication and Key Management (5G-AKA)](https://www.techplayon.com/5g-authentication-and-key-management-5g-aka/) — 5G-AKA认证流程与锚点密钥在AUSF/SEAF/AMF间交接的图文详解
3. [CableLabs: 4G vs 5G Security, The Key Differences](https://www.cablelabs.com/)（2019，转引自ShareTechnote文献列表）— 两代网络安全机制差异的第三方对比视角
4. [GSMA: 5G Security Issues](https://www.gsma.com/security/)（转引自ShareTechnote文献列表）— 行业组织对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 等场景全覆盖。

![[知识星球二维码.png]]
