首页 › security › 5G SUCI身份隐私保护机制拆解

5G SUCI 身份隐私保护机制深度拆解:从 ECIES 加密到 SIDF 解密全链解析

本轮聚焦子域:security(网络安全)。前几轮已覆盖主鉴权密钥层级推演、初始注册信令等主题,本文避开重复,深入剖析 5G 中独立于鉴权流程之外、专门用于永久标识符(SUPI)隐私保护的 SUCI 加密与 SIDF 解密机制。该机制由 3GPP TS 33.501 §6.12 与 Annex C、TS 23.003、TS 29.503 共同定义,是 5G 相对 4G 在用户隐私层面最关键的架构性升级。


一、为什么需要 SUCI:4G IMSI 明文之痛

在 2G/3G/4G 中,用户永久标识符 IMSI 在初始附着、被网络要求"Identity Response"等场景下,会以明文形式在空口(Uu)上传输。这带来两个根本性安全缺陷:

  1. 被动嗅探即可获取 IMSI:攻击者用廉价的 SDR(软件无线电)接收机即可抓取 IMSI,构建所谓的 IMSI Catcher(伪基站),用于用户位置追踪、行为画像甚至定向攻击。
  2. 主动攻击可强制明文重发:即便网络平时用 TMSI/GUTI 寻呼,伪基站只需发出"未知 TMSI"的 Identity Request,UE 就会回退到明文 IMSI,几乎无法防御。

5G 在 TS 33.501 §6.12 中引入 SUPI(Subscription Permanent Identifier) 取代 IMSI,并规定:SUPI 在空口上严禁明文传输,必须以 SUCI(Subscription Concealed Identifier) 的形式发送。SUCI 的核心设计哲学是:

这是 5G 隐私模型相对 4G 的质变:从"尽量用临时标识减少明文曝光"升级为"永久标识在密码学层面被永久封印"。


二、SUCI 的结构:TS 23.003 与 TS 24.501 视角

SUCI 是 5GS Mobile Identity IE 的一种取值(详见 TS 24.501 §9.11.3.4)。对于最常见的 IMSI-based SUPI,SUCI 由以下字段拼接而成(定义见 TS 23.003):

flowchart TD
    A["SUPI Format<br/>(1 nibble)<br/>0=IMSI / 1=Network-specific"] --> B["MCC<br/>(3位BCD)"]
    B --> C["MNC<br/>(2-3位BCD)"]
    C --> D["Routing Indicator<br/>(1-4位)"]
    D --> E["Protection Scheme ID<br/>(1 octet)"]
    E --> F["Home Network<br/>Public Key ID<br/>(1 octet)"]
    F --> G["Scheme Output<br/>(变长)"]
    style A fill:#fff3cd
    style G fill:#d1ecf1
    style E fill:#f8d7da
    style F fill:#f8d7da

字段说明表

字段 长度 说明 是否加密
SUPI Format 1 nibble 0=IMSI 类型,1=网络特定类型 否(明文)
MCC 3 位 BCD 移动国家码,用于路由到归属国 否
MNC 2-3 位 BCD 移动网络码,用于路由到归属运营商 否
Routing Indicator 1-4 位 路由指示符,明文保留,引导 SUCI 路由到正确的 UDM/SIDF 实例 否
Protection Scheme ID 1 octet 保护方案标识:0x00=空方案,0x01=Profile A,0x02=Profile B 否
Home Network Public Key ID 1 octet 归属网络公钥 ID(0–255),标识使用哪把已下发的公钥,支持密钥轮换 否
Scheme Output 变长 空方案下为明文 MSIN;ECIES 下为临时公钥‖密文‖MAC 是(仅此部分加密)

设计意图非常精妙:MCC/MNC/Routing Indicator 必须明文,否则网络无法把 SUCI 路由到归属网 UDM;而真正能唯一识别用户身份的 MSIN(Mobile Subscriber Identification Number,IMSI 中去掉 MCC/MNC 后的部分) 才是被 ECIES 加密保护的对象。也就是说,"路由所需的最小信息"与"身份敏感信息"被干净地切分开来——这正是隐私与可用性之间的最优折中。


三、三种保护方案:Null / Profile A / Profile B

TS 33.501 Annex C 定义了三种保护方案,由 USIM 中下发的"保护方案优先级列表"决定 UE 实际使用哪一个。

维度 Null-scheme (0) Profile A (1) Profile B (2)
椭圆曲线 — Curve25519(RFC 7748) secp256r1 / NIST P-256
密钥协商 无 X25519 ECDH ECDH on P-256
KDF — HKDF-SHA-256 ANSI X9.63-KDF(SHA-256)
加密算法 无 AES-128-CTR AES-128-CTR
MAC 算法 无 HMAC-SHA-256(截断 64 bit) AES-CMAC(128 bit)
是否需下发公钥 否 是 是
Scheme Output 内容 明文 MSIN 临时公钥(32B)‖密文‖MAC(8B) 临时公钥(33B压缩)‖密文‖MAC(16B)
隐私强度 等同于 4G 明文 强(国密友好、抗量子略优的 Curve25519) 强(NIST 标准曲线,北美主流)
典型部署 应急/未部署/老旧卡 欧洲、注重 Curve25517 的运营商 北美、3GPP 测试默认

注:Profile A 与 Profile B 在加密部分均采用 AES-128-CTR 分组流密码,差异主要体现在椭圆曲线、KDF 与 MAC 三处。两套方案并存体现了 3GPP 在密码学选型上的"双轨制"——既照顾偏好 Curve25519 的一方,也满足依赖 NIST 曲线合规审计的一方(如 FIPS 140-2 认证设备)。

空方案(Null-scheme)的工程意义

空方案并不是"漏洞",而是刻意保留的最低保障:


四、ECIES 加密全流程:UE 侧计算拆解

下图展示 UE(实际由 USIM 完成)基于 Profile A 计算 SUCI 的完整流程(对应 TS 33.501 Annex C.3):

flowchart TD
    S1["1. 读取 USIM:<br/>SUPI(MSIN)、HN公钥、Protection Scheme、Key ID"] --> S2
    S2["2. 生成一次性临时密钥对<br/>(d, P_eph = d·G)"] --> S3
    S3["3. ECDH 共享密钥<br/>X = ECDH(d, HN_Public_Key)"] --> S4
    S4["4. KDF 派生<br/>HKDF-SHA256(X) → K_enc(128bit) + K_mac(256bit)"] --> S5
    S5["5. 计算 MAC<br/>T = HMAC-SHA256(K_mac, MSIN) → 截断 64bit"] --> S6
    S6["6. 加密 MSIN<br/>C = AES-128-CTR(K_enc, MSIN)"] --> S7
    S7["7. 拼装 Scheme Output<br/>P_eph ‖ C ‖ T"] --> S8
    S8["8. 组装完整 SUCI<br/>MCC‖MNC‖RI‖SchemeID‖KeyID‖SchemeOutput"]
    style S3 fill:#e2d5f1
    style S5 fill:#fce4ec
    style S6 fill:#e8f5e9

关键设计点解读:

  1. 临时密钥 d 每次新生成:这是抗关联追踪的核心。即使同一 SUPI,每次注册/身份请求产生的 SUCI 都不同,攻击者无法通过比对密文判断"这是同一个用户"。
  2. Encrypt-then-MAC(先加密后认证):先算密文 C 再对 MSIN 计算 MAC。UDM 侧解密时先验 MAC,通过后才解密,可抵御选择密文攻击(CCA)。
  3. MAC 仅 64 bit(Profile A):在空口带宽受限场景下做截断,平衡安全性与开销。64-bit tag 在实际协议交互中已足够抵抗在线伪造。
  4. MAC 覆盖明文 MSIN 而非密文:TS 33.501 定义 MAC 输入为 scheme-input(即 MSIN),这意味着 SIDF 需先校验 MAC——但 MAC 是对明文的,所以解密前如何校验?答案:方案规定 SIDF 先用 K_enc 解密得到候选 MSIN',再用 K_mac 校验 MAC(MSIN'),二者一致才接受。这要求 SIDF 必须完整执行解密+验证,任何篡改都会导致 MAC 不匹配而被拒绝。

五、SIDF 解密:只在归属网络发生的秘密还原

SIDF(Subscription Identifier De-concealing Function) 是 5G 安全架构中最关键的隐私锚点。它作为 UDM 的一个内部功能部署(TS 23.501 §6.2.6),是全网唯一持有 HN 私钥、能从 SUCI 还原 SUPI 的实体。

下图展示初始注册中 SUCI 从 UE 发出、经 RAN/AMF、最终在 UDM/SIDF 完成解密并触发鉴权的完整信令时序(对应 TS 23.502 §4.2.2.2 与 TS 29.503 §5.3):

sequenceDiagram
    participant UE
    participant RAN as (R)AN / gNB
    participant AMF as AMF (SEAF)
    participant UDM as UDM/SIDF
    participant UDR as UDR

    UE->>UE: 无有效5G-GUTI<br/>生成临时密钥, 用HN公钥<br/>ECIES计算SUCI
    UE->>RAN: 1. RRC SetupRequest
    RAN->>UE: RRC Setup
    UE->>RAN: 2. RRC SetupComplete<br/>(携带NAS: Registration Request)
    Note over UE,RAN: NAS 5GS Mobile Identity = SUCI<br/>(RAN/AMF 无法解密!)
    RAN->>AMF: 3. NGAP InitialUEMessage<br/>(含SUCI)
    Note over AMF: AMF 仅有SUCI<br/>无法获知SUPI
    AMF->>UDM: 4. Nudm_UEAuthentication_Get<br/>(ueId=SUCI, servingNetworkName)
    Note over UDM: 5. SIDF用HN私钥执行ECIES逆向:<br/>ECDH→KDF→验MAC→解密MSIN→还原SUPI
    UDM->>UDR: 6. Nudr_Query<br/>(ueId=SUPI) 取鉴权签约(K, OPC)
    UDR-->>UDM: 鉴权签约数据
    Note over UDM: 7. 生成鉴权向量<br/>(RAND,AUTN,XRES*,K_AUSF)
    UDM-->>AMF: 8. 响应: 鉴权向量(+SUPI)
    Note over AMF: AMF 此时才获知SUPI<br/>(但仍未发送给RAN明文)
    AMF->>UE: 9. Authentication Request(RAND,AUTN)
    UE-->>AMF: 10. Authentication Response(RES*)
    Note over AMF: SEAF计算HXRES*比对<br/>成功则派生K_SEAF
    AMF->>UE: 11. Security Mode Command<br/>(开启NAS加密+完整性保护)
    Note over UE,AMF: 后续信令全部加密<br/>AMF下发5G-GUTI替代SUCI

时序中的关键 IE 解析

步骤 消息 关键 IE 作用
2 Registration Request 5GS Mobile Identity (SUCI) 携带加密的永久标识,类型标识为 SUCI
3 NGAP InitialUEMessage NAS-PDU(含 SUCI) RAN 透明转发 NAS 给 AMF
4 Nudm_UEAuthentication_Get suci(ueId)、servingNetworkName ueId 用 SUCI,servingNetworkName 用于 5G AKA 的 KDF 输入
8 AuthenticationInfoResult authType、authenticationVector(RAND,AUTN,XRES*,K_AUSF) 鉴权向量;SUPI 随响应回到 AMF
9 Authentication Request RAND、AUTN 发给 UE 触发 RES* 计算
11 Security Mode Command selected NAS security algo、replayed UE security cap. 协商 NAS 加密/完整性算法,开启受保护通道

为什么这样设计(设计意图三连击):

  1. 隐私边界 = 信任边界:在漫游场景下,访问域 AMF/SEAF(VPLMN)永远无法解密 SUCI,私钥仅存在于归属域 UDM。这意味着即便 VPLMN 被攻陷或与攻击者勾结,也无法批量获取漫游用户的永久标识——这是 4G 完全做不到的(4G 中 MME 直接拿明文 IMSI)。
  2. 解密与鉴权绑定:SIDF 解出 SUPI 后,UDM 立即用该 SUPI 从 UDR 取鉴权签约并生成向量,解密成功 ≠ 鉴权成功。攻击者即便伪造 SUCI,也会因 MAC 校验失败或鉴权向量对不上而被拒。
  3. 解密即一次性:由于 UE 用临时密钥,SIDF 每次解密都需完整执行 ECDH,这天然限制了 SIDF 的吞吐——这也是为何 SIDF 通常独立高并发部署、并支持按 Routing Indicator 水平扩展。

六、SIDF 的部署形态与 SUCI 路由

SIDF 的部署直接关系到核心网的可扩展性。在分布式 UDM 架构中:

flowchart TB
    subgraph AMF层
        AMF1[AMF 实例1]
        AMF2[AMF 实例2]
    end
    subgraph UDM/SIDF集群["UDM/SIDF 集群(按Routing Indicator分片)"]
        SIDF1[SIDF-RI=001<br/>私钥池A]
        SIDF2[SIDF-RI=002<br/>私钥池B]
    end
    UDR[(UDR 统一数据仓库)]
    AMF1 -->|"Nudm_UEAuthentication_Get<br/>按MCC+MNC+RoutingIndicator路由"| UDMR[SUCI路由器/前置]
    AMF2 --> UDMR
    UDMR --> SIDF1
    UDMR --> SIDF2
    SIDF1 -->|解出SUPI后查UDR| UDR
    SIDF2 --> UDR

路由逻辑(TS 23.003 Routing Indicator):


七、抓包实战:如何在 Wireshark 中识别 SUCI 流程

1. 抓包识别要点

在 NGAP + NAS 层抓包(端口 SCTP 36412、NAS-MM):

NAS-5GS: Registration request
    5GS registration type: initial registration
    nas-MobileIdentity: SUCI
        Type of identity: SUCI (1)
        SUPI format: IMSI (0)
        MCC: 460, MNC: 00
        Routing Indicator: 0001
        Protection scheme id: Profile A (1)
        Home network public key id: 1
        Scheme output: 9f3a...(不可读)

2. 关联后续鉴权


八、常见故障点与排错思路

故障现象 根因 排错思路
初始注册卡在 Authentication,UDM 返回 404/4xx USIM 未下发 HN 公钥,UE 用空方案;或 Key ID 与 UDM 私钥池不匹配 抓 SUCI 看 Protection Scheme ID 与 Key ID;核对 USIM EF_SUCI_Calc_Info 与 UDM 私钥表
大量 UE 注册失败,UDM CPU 飙高 SIDF 解密成为瓶颈(未按 Routing Indicator 分片) 检查 SIDF 实例数与分片策略;监控 ECDH OPS
SUCI MAC 校验失败 公私钥不配对(公钥下发版本 ≠ 私钥版本) 核对 Key ID 对应的公私钥指纹;密钥轮换期常见
漫游用户无法注册 VPLMN AMF 未正确路由 SUCI 到 HPLMN UDM(Routing Indicator 配置错误) 检查 NHRF/UDM 路由表与 SBI DNS 解析
隐私审计发现明文 MSIN 部署了空方案(未下发公钥) 推动发 Profile A/B 公钥,关闭空方案下发
## 九、SUCI 机制的局限性与 R18/R19 演进

尽管 SUCI 是巨大进步,但并非完美无缺,研究界(见参考来源 arxiv 论文)已指出若干残余弱点:

  1. 空方案残留:未部署公钥的卡仍泄露明文 MSIN。
  2. 明文字段可关联:MCC/MNC/Routing Indicator 明文,攻击者可做粗粒度运营商+地域画像。
  3. 5G-GUTI 仍是追踪入口:注册成功后网络用 5G-GUTI 寻呼,GUTI 复用周期内的关联追踪仍可能。
  4. 主动去激活攻击:伪基站可通过反复触发"身份请求"迫使 UE 重发 SUCI——虽然每次 SUCI 不同(临时密钥),但攻击者可统计 SUCI 生成频率做侧信道关联。

Rel-18/19 的相关演进方向包括:更频繁的 GUTI 重分配、PRINS(Primary Authentication and Key Establishment)对隐私的进一步加固、以及对 SUCI 重放攻击的检测机制研究(部分尚处学术阶段)。


常见问题

Q1: SUCI 和 GUTI 有什么区别?分别保护什么? A: SUCI 是永久标识 SUPI 的加密形态,仅在初始注册/无有效临时标识时使用,保护的是用户永久身份;GUTI 是网络分配的临时标识,用于后续信令寻呼,保护的是会话级位置隐私。SUCI 解决"我是谁不能被知道",GUTI 解决"现在用谁来找你"。两者互补:注册后网络立即下发 GUTI 替代 SUCI,避免重复使用同一 SUCI。

Q2: 访问域 AMF/SEAF 能不能解密 SUCI? A: 不能。这是 5G 隐私架构的核心保证。私钥仅存于归属域 UDM/SIDF,SUCI 在到达 SIDF 前始终保持密文形态。即便漫游到不可信的 VPLMN,访问域 AMF 也只能透传 SUCI 给 HPLMN。这与 4G 中 MME 直接持有明文 IMSI 形成本质差异。

Q3: 空方案(Null-scheme)是否意味着 5G 隐私保护失效? A: 部分失效。空方案下 Scheme Output 就是明文 MSIN,等同于 4G 明文 IMSI,伪基站可抓取。它存在的意义是兼容未部署公钥的场景。运维上应推动为所有新发卡下发 Profile A/B 公钥,并在 USIM 的方案优先级列表中将空方案置为最低优先级。

Q4: UE 每次生成 SUCI 为什么都不一样?这如何防止追踪? A: 因为 UE 每次都用新生成的临时椭圆曲线私钥 d 做一次 ECDH,导致共享密钥 X、派生的 K_enc/K_mac、密文 C、MAC T 全部不同,连临时公钥 P_eph 也不同。攻击者即使连续抓到同一用户的多个 SUCI,也无法判断它们属于同一人(除非能解密,而那需要 HN 私钥)。这把"基于密文的相关性追踪"在密码学层面堵死。

Q5: SIDF 为什么是核心网性能瓶颈?如何优化? A: 因为每次解密都要执行一次完整的 ECDH 标量乘法(椭圆曲线运算,远比对称加密昂贵),且 SUCI 临时密钥无法缓存复用。优化手段:①按 Routing Indicator 水平分片 SIDF;②使用硬件加速(如支持 P-256/Curve25519 的密码卡或 Intel AES-NI + EC 指令集);③将 SIDF 部署为无状态微服务,前置 SBI 负载均衡按 SUCI 路由。


参考来源

  1. 3GPP TS 33.501 — Security architecture and procedures for the 5G system — §6.12 SUPI 隐私保护、Annex C(C.3 Profile A / C.4 Profile B 保护方案)
  2. 3GPP TS 23.003 — Numbering, addressing and identification — SUCI 结构与 Routing Indicator 定义
  3. 3GPP TS 29.503 — Nudm Service — §5.3 Nudm_UEAuthentication_Get(SIDF 解密与鉴权向量生成 SBI 接口)
  4. 5G 隐私守护者:SUCI 加密机制全解析 — CSDN — SUCI 组成与 ECIES 流程中文解读
  5. SUCI — Subscription Concealed Identifier | 3GPP Glossary — SIDF 作为唯一解密实体的架构说明
  6. NIST CSWP 36 — Protecting Subscriber Identifiers with SUCI — SUCI 部署与隐私评估白皮书

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