首页 › deep-tech › 4G/5G网络安全:认证与密钥层级全解

4G/5G网络安全:认证与密钥层级全解

为什么你的手机连上基站后,别人截获信号也看不到你的微信内容?为什么换一张SIM卡就变成了另一个人?这背后是一套精密的"身份验证 + 密钥推导"体系——从SIM卡里藏着的那个永久密钥K开始,逐级衍生出加密通话、保护数据的全部秘密。

一、从一个生活类比说起

想象你住进一家酒店:

  1. 前台验证身份(你出示身份证 → 前台核验)—— 这是认证(Authentication)
  2. 发房卡(前台给你一张电子房卡,只能开你的房间)—— 这是密钥分发(Key Distribution)
  3. 每次刷卡进门(房卡和门锁验证)—— 这是加密通信(Encrypted Communication)

4G/5G网络的安全机制本质上就是这三步。只是"前台"变成了核心网的AUSF/UDM,"房卡"变成了一串128位的密钥,而"刷门卡"变成了每条信令和数据的加密解密。

二、安全架构总览:4G vs 5G

4G和5G的安全架构有一个核心区别:网络功能的拆分方式不同。

维度 4G EPS-AKA 5G-AKA / EAP-AKA'
认证服务器 MME(合一功能) AUSF(独立网元)
密钥锚点 HSS生成KASME UDM生成KAUSF → AUSF派生KSEAF
归属网络验证 否(拜访网络MME验证) 是(AUSF在归属网络验证)
用户身份保护 IMSI明文传输(大漏洞!) SUCI加密传输(ECIES方案)
服务网络绑定 PLMN ID SNN(Serving Network Name)
二次认证 不支持 支持(EAP-AKA' 可扩展)

下面这张图展示了5G安全架构中各功能实体的关系:

graph TB
    UE["📱 UE<br/>(USIM + ME)"]
    gNB["📡 gNB<br/>(基站)"]
    AMF["🔐 AMF/SEAF<br/>(安全锚点)"]
    AUSF["🔑 AUSF<br/>(认证服务器)"]
    UDM["🗄️ UDM/ARPF<br/>(用户数据+密钥存储)"]
    SIDF["🔓 SIDF<br/>(SUCI解密)"]

    UE -->|1. Registration Request<br/>携带SUCI| AMF
    AMF -->|2. Nausf_UEAuth| AUSF
    AUSF -->|3. Nudm_UEAuth| UDM
    UDM -->|4. 5G Auth Vector| AUSF
    AUSF -->|5. RAND+AUTN+HXRES*| AMF
    AMF -->|6. Auth Request| UE
    UE -->|7. RES*| AMF
    AMF -->|8. RES* → AUSF| AUSF
    AUSF -->|9. KSEAF + 成功| AMF
    UDM -.->|SUCI解密请求| SIDF

    style UE fill:#4CAF50,color:#fff
    style AUSF fill:#FF9800,color:#fff
    style UDM fill:#2196F3,color:#fff
    style AMF fill:#9C27B0,color:#fff

关键设计哲学:5G把认证验证权从拜访网络收回归属网络。为什么?因为在4G中,一个恶意伪造的基站可以骗过MME,因为它自己就是"裁判"——自己生成挑战、自己验证响应。5G让AUSF(归属网络)做最终裁决,拜访网络只是"传话人"。

三、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: Registration Request<br/>(携带SUCI或5G-GUTI)
    SEAF->>AUSF: Nausf_UEAuthentication_Authenticate<br/>SUCI/SUPI + SNN
    AUSF->>UDM: Nudm_UEAuthentication_Get<br/>SUPI + SNN
    Note over UDM: ① 用永久密钥K生成5G AV<br/>② 计算RAND, AUTN<br/>③ 推导XRES*, KAUSF
    UDM-->>AUSF: 5G Authentication Vector<br/>RAND + AUTN + XRES* + KAUSF
    Note over AUSF: ④ 从KAUSF推导KSEAF<br/>⑤ 计算HXRES*
    AUSF-->>SEAF: RAND + AUTN + HXRES*
    SEAF-->>UE: Authentication Request<br/>RAND + AUTN
    Note over UE: ⑥ USIM用K验证AUTN<br/>⑦ 验证通过→计算RES*
    UE-->>SEAF: Authentication Response<br/>RES*
    Note over SEAF: ⑧ H(RES*) vs HXRES*<br/>初步验证
    SEAF->>AUSF: Nausf_UEAuthentication_Confirm<br/>RES*
    Note over AUSF: ⑨ XRES* vs RES*<br/>最终验证
    AUSF-->>SEAF: 认证成功 + KSEAF
    Note over SEAF: ⑩ 从KSEAF推导KAMF
    SEAF-->>UE: Security Mode Command<br/>(NAS安全上下文建立)
    UE-->>SEAF: Security Mode Complete

逐步拆解:每一步在做什么

步骤①②③ — UDM/ARPF生成认证向量

UDM里存着每个用户的永久密钥 K(128位或256位),这是所有安全的"根"。当收到认证请求时:

核心公式(简化表示):

$$CK \parallel IK = KDF(K, RAND)$$

$$KAUSF = KDF(CK \parallel IK, \text{SQN} \oplus AK, \text{SN_id})$$

步骤⑥⑦ — UE验证网络(关键!这是"双向认证"的核心)

UE收到RAND和AUTN后,USIM芯片内部:

  1. 用自己存的K和收到的RAND,重新计算AUTN中应包含的MAC值
  2. 对比计算出的MAC和收到的MAC是否一致 → 验证"网络是真的"
  3. 检查SQN(序列号)是否在合理范围内 → 防止重放攻击(别人录一段之前的认证消息再发给你)
  4. 全部通过后,用K和RAND计算自己的 RES* → 证明"我是真的"

步骤⑧⑨ — 网络验证UE

这里体现了5G相对4G的关键改进:

为什么要两级验证?这是安全分层的思想:SEAF在拜访网络,可能被攻破;但真正的密钥KSEAF只有AUSF验证通过后才发放。即使SEAF被攻破,攻击者拿不到KSEAF也无法解密后续通信。

四、密钥层级体系:从根到叶的完整推导链

这是5G安全最精妙的部分——一个根密钥K如何逐级派生出保护不同层次、不同场景的全部密钥。

graph TD
    K["🗝️ K<br/>永久根密钥<br/>(USIM + UDM各存一份)"]
    K -->|"KDF(K, RAND)"| CK_IK["CK + IK<br/>加密密钥 + 完整性密钥"]
    CK_IK -->|"KDF(CK‖IK, SQN⊕AK, SN_id)"| KAUSF["🔑 KAUSF<br/>AUSF密钥"]
    KAUSF -->|"KDF(KAUSF, SNN, SUPI)"| KSEAF["🔒 KSEAF<br/>安全锚点密钥<br/>(存于SEAF)"]
    KSEAF -->|"KDF(KSEAF, SNN, SUPI)"| KAMF["🔐 KAMF<br/>AMF密钥<br/>(NAS安全根)"]
    KAMF -->|"KDF(KAMF, ...)"| KNASint["📝 KNAS-int<br/>NAS完整性密钥"]
    KAMF -->|"KDF(KAMF, ...)"| KNASenc["🔒 KNAS-enc<br/>NAS加密密钥"]
    KAMF -->|"KDF(KAMF, ...)"| KgNB["📡 KgNB<br/>gNB密钥<br/>(AS安全根)"]
    KgNB -->|"KDF(KgNB, ...)"| KRRCint["📝 KRRC-int<br/>RRC完整性密钥"]
    KgNB -->|"KDF(KgNB, ...)"| KRRCenc["🔒 KRRC-enc<br/>RRC加密密钥"]
    KgNB -->|"KDF(KgNB, ...)"| KUPenc["🔒 KUP-enc<br/>用户面加密密钥"]

    style K fill:#D32F2F,color:#fff
    style KSEAF fill:#FF9800,color:#fff
    style KAMF fill:#9C27B0,color:#fff
    style KgNB fill:#4CAF50,color:#fff

每一层密钥的职责

密钥 存储位置 保护对象 密钥长度
K USIM + UDM 根密钥,永远不离开安全存储 128/256 bit
KAUSF USIM + AUSF 派生KSEAF的中间密钥 256 bit
KSEAF SEAF(AMF) 安全锚点,跨AMF移动时推演新密钥 256 bit
KAMF AMF + UE NAS层安全的根密钥 256 bit
KNAS-int AMF + UE NAS信令完整性保护(防篡改) 128/256 bit
KNAS-enc AMF + UE NAS信令加密(防窃听) 128/256 bit
KgNB gNB + UE 空口AS层安全的根密钥 256 bit
KRRC-int gNB + UE RRC信令完整性保护 128/256 bit
KRRC-enc gNB + UE RRC信令加密 128/256 bit
KUP-enc gNB + UE 用户面数据加密(你的微信、网页等) 128/256 bit

为什么需要这么多层密钥?

前向安全(Forward Security):如果某一层的密钥被破解,不应该能反推上一层。密钥推导函数(KDF)是单向函数——知道KAMF无法反推出KSEAF,就像知道房卡号猜不出前台的主密码。

最小权限原则:gNB只需要KgNB及其子密钥,不需要知道KSEAF。即使基站被攻破,攻击者只能解密当前空口数据,无法冒充用户发起其他会话。

移动性密钥隔离:UE从AMF1切换到AMF2时,用KSEAF重新推导新的KAMF',而不是把KAMF在AMF之间传递。这避免了"一个AMF被攻破,殃及所有AMF"的级联风险。

五、SUCI:5G最被低估的隐私革命

4G时代有一个众所周知的安全漏洞:IMSI Catcher(伪基站)攻击。攻击者只需伪装成基站,发送一条"Identity Request",手机就会老老实实把IMSI明文报上来。5G用SUCI彻底解决了这个问题。

SUPI → SUCI 的加密过程

字段 含义 类比
SUPI 永久用户标识(相当于IMSI) 你的身份证号
SUCI 加密后的用户标识 身份证号放进信封里密封
5G-GUTI 临时标识(AMF分配) 酒店房卡号(不暴露身份)

SUCI的加密采用 ECIES(Elliptic Curve Integrated Encryption Scheme) 方案:

$$\text{SUCI} = \text{MCC} \parallel \text{MNC} \parallel \text{Routing Indicator} \parallel \text{Protection Scheme ID} \parallel \text{Home Network Public Key ID} \parallel \text{Ciphertext}(SUPI)$$

工作原理(用锁和钥匙类比):

  1. 归属网络(HPLMN)有一对公私钥:公钥预存在USIM里,私钥存在UDM/SIDF里
  2. UE每次注册时,用公钥把SUPI加密成密文
  3. 只有归属网络的SIDF能用私钥解密出SUPI
  4. 即使空口被完全监听,攻击者看到的只是一个密文

注意:SUCI加密是可选的!运营商可以选择"空方案"(null-scheme),此时SUCI就是SUPI的明文。这也是为什么业界一直在推动运营商部署ECIES方案。根据公开资料,韩国SK Telecom在2023年已实现99%的SUCI加密采用率。

六、NAS安全与AS安全:两层防线

5G的安全分两层,就像酒店的"大门锁"和"房间锁":

安全层 名称 保护范围 终止点
NAS安全 Non-Access Stratum Security UE ↔ AMF之间的信令 AMF(核心网)
AS安全 Access Stratum Security UE ↔ gNB之间的信令和数据 gNB(无线接入网)
graph LR
    subgraph "UE"
        NAS_UE["NAS层"]
        AS_UE["AS层<br/>(RRC/PDCP)"]
    end
    subgraph "gNB"
        AS_gNB["AS层"]
    end
    subgraph "核心网"
        AMF_NW["AMF<br/>(NAS终止)"]
    end

    NAS_UE <-->|"KNAS-enc<br/>KNAS-int<br/>NAS信令加密+完整性"| AMF_NW
    AS_UE <-->|"KRRC-enc<br/>KRRC-int<br/>KUP-enc<br/>信令+数据加密"| AS_gNB

    style NAS_UE fill:#9C27B0,color:#fff
    style AS_UE fill:#4CAF50,color:#fff
    style AMF_NW fill:#9C27B0,color:#fff
    style AS_gNB fill:#4CAF50,color:#fff

为什么需要两层?

纵深防御:假设gNB被攻破(物理入侵、软件漏洞),攻击者能解密AS层数据,但NAS信令仍然加密保护。这意味着攻击者无法伪造NAS层的注册/去注册/会话管理等关键信令。

用户面特别设计:用户面数据(你的业务数据)只在AS层加密(KUP-enc),NAS层不加密用户面数据。为什么?因为用户面数据量巨大,如果在NAS层再加密一遍,AMF会成为性能瓶颈。AS层加密由gNB处理,更加高效。

完整性保护的区别: - NAS信令:必须完整性保护 + 加密 - RRC信令:必须完整性保护 + 加密 - 用户面数据:加密必须,完整性可选(Rel-15)

这意味着理论上用户面数据可能被篡改而不被发现(只加密不校验)。但从Rel-16开始,3GPP增强了用户面完整性保护的要求。

七、4G EPS-AKA回顾:理解5G改进的基础

要真正理解5G为什么这样设计,必须先看4G做了什么、有什么缺陷。

4G认证流程(简化)

UE → MME: Attach Request (IMSI)
MME → HSS: Authentication Information Request (IMSI)
HSS → MME: EPS AV (RAND + AUTN + XRES + KASME)
MME → UE: Authentication Request (RAND + AUTN)
UE → MME: Authentication Response (RES)
MME: 验证 RES vs XRES

4G的三大安全缺陷

缺陷1:IMSI明文暴露

手机初始附着时,可能被要求发送IMSI明文。伪基站正是利用这一点,伪装成网络向UE索取IMSI。

缺陷2:归属网络不参与验证

MME(拜访网络)自己做最终验证。这意味着一个被攻破的MME可以通过伪造验证结果来欺骗整个系统。

缺陷3:缺少服务网络绑定

4G的KASME推导虽然绑定了PLMN ID,但粒度较粗,无法像5G的SNN那样精确标识服务网络。

5G如何逐一修复

4G缺陷 5G修复方案
IMSI明文暴露 SUCI加密(ECIES)
归属网络不验证 AUSF在归属网络做最终验证
服务网络绑定弱 SNN绑定到密钥推导
无二次认证支持 EAP-AKA'支持可扩展二次认证
用户面完整性弱 Rel-16增强UP完整性保护

八、EAP-AKA':5G的"备胎"认证方案

5G除了原生的5G-AKA,还支持 EAP-AKA'(EAP-AKA Prime)。为什么需要两套?

使用场景

场景 认证方式
普通手机(USIM卡) 5G-AKA(主流)
固定无线接入(FWA) EAP-AKA'
非3GPP接入(Wi-Fi→5G) EAP-AKA'
企业专网二次认证 EAP-AKA'

EAP-AKA'的优势:它基于IETF的EAP框架,天然支持与外部认证服务器(如RADIUS/AAA)交互。这意味着运营商可以方便地对接企业AAA服务器做二次认证,或者支持新的认证方式(如EAP-TLS证书认证)。

两种方案的消息封装差异

5G-AKA:    直接封装在5G NAS消息中
EAP-AKA':  封装在EAP消息中,再嵌入5G NAS消息

┌─────────────────────────────┐
│  5G NAS消息                  │
│  ┌─────────────────────┐    │
│  │  EAP消息(仅EAP-AKA')│    │
│  │  ┌───────────────┐  │    │
│  │  │  AKA参数       │  │    │
│  │  └───────────────┘  │    │
│  └─────────────────────┘    │
└─────────────────────────────┘

九、实战连接:工程师调试指南

1. 安全上下文未建立的成功率排查

现象:注册成功但Security Mode Command失败

排查思路: - 检查UE和AMF是否支持相同的加密/完整性算法(NEA系列/NIA系列) - 检查KAMF是否正确推导(SUPI、SNN参数是否一致) - 用Wireshark抓NAS层Security Mode Command/Complete,看选定的算法

2. SUCI相关问题

现象:Registration Request中SUCI为null-scheme(明文SUPI)

排查: - 检查USIM是否预置了归属网络公钥 - 检查USIM的SUCI计算配置(Protection Scheme ID应为0x01或0x02) - SIDF解密是否正常(UDM日志中查看解密结果)

3. 切换场景下的密钥更新

现象:Xn切换后数据面中断

排查: - 确认源gNB是否正确推导了目标gNB的密钥 - 检查NH(Next Hop)参数是否正确传递 - 验证密钥刷新计数器是否同步

4. 常见误解

误解 事实
"5G加密更安全所以不需要VPN" 5G只加密空口段(UE→gNB),核心网回传段需要额外保护
"SUCI完全防止了伪基站" SUCI只保护身份隐私,不防止你连接到伪基站本身
"5G-AKA不可能被攻击" 理论分析发现5G-AKA仍存在"活动检测攻击"(确认某SUPI是否在线)
"所有5G网络都启用了SUCI加密" 取决于运营商配置,null-scheme仍是合法选项

5. 加密算法速查

算法标识 名称 类型 强度
NEA0 空加密 加密 无保护
NEA1 128-EEA1(SNOW 3G) 加密 128 bit
NEA2 128-EEA2(AES) 加密 128 bit
NEA3 128-EEA3(ZUC) 加密 128 bit
NIA0 空完整性 完整性 无保护
NIA1 128-EIA1(SNOW 3G) 完整性 128 bit
NIA2 128-EIA2(AES) 完整性 128 bit
NIA3 128-EIA3(ZUC) 完整性 128 bit

注意:NEA0/NIA0(空算法)在紧急呼叫场景下允许使用,但在正常商业网络中应禁用。

十、安全流程全景图

把认证、密钥推导、安全模式建立串起来看:

flowchart TD
    A["📱 UE发起注册<br/>(携带SUCI)"] --> B["📡 gNB转发<br/>至AMF"]
    B --> C{"AMF/SEAF<br/>已有安全上下文?"}
    C -->|否| D["🔐 触发主认证<br/>5G-AKA或EAP-AKA'"]
    C -->|是| E["✅ 使用已有KAMF"]
    D --> F["🗄️ UDM生成5G AV<br/>KAUSF → KSEAF"]
    F --> G["🔑 AUSF验证UE响应<br/>→ 下发KSEAF"]
    G --> H["🔒 SEAF推导KAMF"]
    H --> I["📝 NAS Security Mode<br/>Command/Complete<br/>(建立NAS安全)"]
    E --> I
    I --> J["📡 AS Security Mode<br/>Command/Complete<br/>(建立AS安全)"]
    J --> K["✅ 安全通信建立<br/>NAS加密+完整性 ✓<br/>RRC加密+完整性 ✓<br/>用户面加密 ✓"]

    style A fill:#4CAF50,color:#fff
    style F fill:#2196F3,color:#fff
    style G fill:#FF9800,color:#fff
    style K fill:#4CAF50,color:#fff

常见问题

Q: 5G-AKA和EAP-AKA'能同时使用吗? A: 不能。UE在注册时选择一种方式。选择逻辑通常基于:USIM配置的认证方法指示、网络能力广播信息、以及接入类型(3GPP接入倾向5G-AKA,非3GPP接入倾向EAP-AKA')。但在不同注册流程中可以切换——比如3GPP接入用5G-AKA,Wi-Fi接入用EAP-AKA'。

Q: KSEAF和KAMF的推导都用到了SNN和SUPI,为什么不直接从KSEAF跳到NAS密钥? A: 多一层KAMF是为了支持移动性。当UE从AMF1移动到AMF2时,KSEAF不变(锚点稳定),但需要为新AMF推导新的KAMF'。如果直接用KSEAF做NAS加密,切换AMF就必须更换KSEAF,导致整个密钥链都要刷新,增加复杂度和风险。

Q: 用户面数据为什么不做NAS层完整性保护? A: 两个原因:(1) 性能——用户面数据量大,NAS层完整性校验会给AMF带来巨大计算负担;(2) 架构——用户面数据路径是UE→gNB→UPF,不经过AMF,NAS层加不进去。AS层的PDCP协议负责用户面加密和(可选的)完整性保护。

Q: 伪基站攻击在5G中完全消失了吗? A: 没有完全消失,但攻击面大幅缩小。5G的SUCI保护了身份隐私(伪基站抓不到IMSI/SUPI),但攻击者仍可通过以下方式造成干扰:①强制UE降级到4G/3G(如果运营商允许)再实施IMSI Catcher攻击;②利用SIB广播伪造紧急呼叫区域诱导UE发送明文标识;③进行拒绝服务攻击(拒绝UE的注册请求)。5G安全是"显著改善"而非"彻底消除"。

Q: 如果USIM卡被复制(克隆SIM),5G安全还能起作用吗? A: 如果攻击者获取了永久密钥K(通过物理克隆USIM),5G-AKA的所有安全机制都会失效——因为认证的根基就是"只有合法USIM和UDM持有K"。这正是为什么SIM卡的物理安全如此重要。5G引入的SUCI至少可以防止被克隆的卡暴露用户身份,但无法阻止克隆卡通过认证。运营商通常通过"同一SUPI只能有一个活跃会话"的策略来检测克隆卡。

参考来源

  1. P1 Security - Breaking Down AKA Protocols in Mobile Networks — 4G/5G AKA协议对比深度分析
  2. free5GC - Introduction to 5G AKA — 开源5G核心网项目对5G-AKA流程的实战解读
  3. Devopedia - 5G Authentication — 5G认证技术百科全书式概述
  4. NIST - Protecting Subscriber Identifiers with SUCI — 美国NIST关于SUCI隐私保护的官方技术白皮书
  5. ShareTechnote - 5G Core Authentication — 通信技术经典学习站点的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学通信知识星球海报-扫码加入