本轮聚焦子域:security(网络安全)。前几轮已覆盖主鉴权密钥层级推演、初始注册信令等主题,本文避开重复,深入剖析 5G 中独立于鉴权流程之外、专门用于永久标识符(SUPI)隐私保护的 SUCI 加密与 SIDF 解密机制。该机制由 3GPP TS 33.501 §6.12 与 Annex C、TS 23.003、TS 29.503 共同定义,是 5G 相对 4G 在用户隐私层面最关键的架构性升级。
在 2G/3G/4G 中,用户永久标识符 IMSI 在初始附着、被网络要求"Identity Response"等场景下,会以明文形式在空口(Uu)上传输。这带来两个根本性安全缺陷:
5G 在 TS 33.501 §6.12 中引入 SUPI(Subscription Permanent Identifier) 取代 IMSI,并规定:SUPI 在空口上严禁明文传输,必须以 SUCI(Subscription Concealed Identifier) 的形式发送。SUCI 的核心设计哲学是:
这是 5G 隐私模型相对 4G 的质变:从"尽量用临时标识减少明文曝光"升级为"永久标识在密码学层面被永久封印"。
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 加密保护的对象。也就是说,"路由所需的最小信息"与"身份敏感信息"被干净地切分开来——这正是隐私与可用性之间的最优折中。
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 认证设备)。
空方案并不是"漏洞",而是刻意保留的最低保障:
下图展示 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
关键设计点解读:
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 | 作用 |
|---|---|---|---|
| 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 加密/完整性算法,开启受保护通道 |
为什么这样设计(设计意图三连击):
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):
EF_RoutingIndicator 中下发(1-4 位,默认值由运营商定)。在 NGAP + NAS 层抓包(端口 SCTP 36412、NAS-MM):
NAS-PDU → 解码为 5GS Registration Request。5GS Mobile Identity IE:Type of identity 字段标记为 SUCI,且 SUPI format = 0(IMSI),则可见明文的 MCC/MNC/Routing Indicator/Protection Scheme ID/Key ID。Scheme Output 若 Protection Scheme ID = 0 → 直接看到明文 MSIN(这就是空方案,应引起隐私审计警觉)。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...(不可读)
Authentication Request(NAS)确认 RAND、AUTN 与 SUCI 解出的 SUPI 对应。POST /ue-authentications/{suci}/security-information,看响应是 200 OK + 鉴权向量 还是 4xx 错误。| 故障现象 | 根因 | 排错思路 |
|---|---|---|
| 初始注册卡在 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 论文)已指出若干残余弱点:
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 路由。
本文由「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 等场景全覆盖。
