首页 › deep-tech › 5G 密钥的族谱:一层层往下传

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


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)的计算,而不是密钥的“搬运”:

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把这一步拆成了两道闸:

一个值得体会的细节: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,架构间防降级参数)。它的工作方式非常朴素——就是一个长度字段加代际标记,标记“这次使用的安全上下文来自哪个代际的组合”:

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为此设计了一条链式换钥机制:

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 — 本文密钥层级、ABBA、切换NH链等内容的主要事实核验来源,含4G/5G安全体系逐项对照
  2. Techplayon: 5G Authentication and Key Management (5G-AKA) — 5G-AKA认证流程与锚点密钥在AUSF/SEAF/AMF间交接的图文详解
  3. CableLabs: 4G vs 5G Security, The Key Differences(2019,转引自ShareTechnote文献列表)— 两代网络安全机制差异的第三方对比视角
  4. GSMA: 5G Security Issues(转引自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]]