首页 › security › 5G SUCI隐私保护与SIDF去隐藏全链拆解

5G SUCI隐私保护机制深度拆解:基于ECIES的SUPI加密与SIDF去隐藏全流程

聚焦 3GPP TS 33.501 Annex C、TS 23.003 §19、TS 24.501 §9.11.3.4,逐字段、逐信令拆解 5G 用户永久标识(SUPI)的空口隐藏机制,以及归属网络侧 SIDF 的去隐藏(de-concealment)全链。

一、为什么需要 SUCI:从 IMSI 明文到加密身份的范式跃迁

在 4G/EPS 时代,用户永久标识 IMSI 在初次附着(Attach)等场景中以明文形式通过空口广播。这直接催生了"IMSI Catcher / 伪基站"这一经典攻击面:攻击者只需伪装成一个基站,向 UE 发起 Identification Request,即可批量采集 IMSI,进而实现用户定位、追踪、IMSI 个人信息关联甚至定向中间人攻击。3GPP 在 5G 设计阶段(Rel-15 起始)从架构层面引入了 SUPI(Subscription Permanent Identifier)+ SUCI(Subscription Concealed Identifier) 的双层标识体系来根治这一顽疾:

其安全核心思想是:只有掌握归属网络(HN)私钥的实体(即 UDM 内的 SIDF)才能解开 SUCI 还原 SUPI;被访网络(VPLMN)、RAN 节点以及空口窃听者均无法解密。同时,由于每次加密使用一次性临时 ECC 密钥对,不同注册产生的 SUCI 之间不可关联,从而阻断跨注册的"身份链接追踪"。

这一机制的规范根基集中在三处:TS 33.501(5G 系统安全架构,Annex C 定义保护方案)负责密码学;TS 23.003(编号与寻址,§19 定义 SUCI 格式)负责编码结构;TS 24.501(NAS 协议,§9.11.3.4 定义 5GS Mobile Identity IE)负责信令承载。

二、SUCI 的字节级结构:哪些字段加密,哪些明文

理解 SUCI 的关键,是先厘清"哪些明文、哪些加密"。归属路由所需的字段必须明文(否则漫游与寻址无法工作),而真正能唯一定位到具体用户的 MSIN(Mobile Subscriber Identification Number,即 IMSI 的用户号部分) 才是被加密保护的对象。

SUCI 的整体结构(TS 23.003 §19.3、TS 33.501 §6.12.2)如下:

flowchart TD
    A[SUCI] --> A1["SUPI类型 4bit<br/>0=IMSI, 1=NSI"]
    A1 --> A2["MCC 3位 明文"]
    A2 --> A3["MNC 2~3位 明文"]
    A3 --> A4["路由指示RI 1~4位 明文"]
    A4 --> A5["保护方案ID 4bit<br/>0=Null,1=ProfA,2=ProfB"]
    A5 --> A6["HN公钥ID 8bit 1~255"]
    A6 --> A7["Scheme Output 变长"]
    A7 --> A7a["临时公钥E<br/>P-256约33B"]
    A7a --> A7b["密文C<br/>AES-128-CTR(MSIN)"]
    A7b --> A7c["MAC-tag 完整性"]
字段 长度/编码 是否加密 作用
SUPI Type 4 bit — 0 表示基于 IMSI 的 SUPI;1 表示网络特定标识(NSI,如 private network 的 user@realm)
MCC 3 位 BCD 明文 归属国家码,路由必需
MNC 2~3 位 BCD 明文 归属网络码,路由必需
Routing Indicator (RI) 1~4 位 明文 多 UDM/多 PLMN 场景下,引导 SUCI 路由到正确的 HN UDM 实例(TS 23.003 §19.3.2)
Protection Scheme ID 4 bit — 0=Null-scheme;1=ECIES Profile A;2=ECIES Profile B
Home Network Public Key ID 8 bit — 标识使用哪一张 HN 公钥(1~255),支撑密钥轮换(TS 33.501 Annex C.6)
Scheme Output 变长 加密 承载真正受保护的 MSIN(及临时公钥、MAC)

需要强调两点设计意图:其一,MCC/MNC/RI 明文是有意为之,否则漫游地网络无法把信令路由回归属网络;其二,被加密的只有 MSIN,因为去掉 MCC/MNC 后的 MSIN 才是"个人可识别"那一段。对于 SUPI Type=1(NSI)的私有网络场景,由于没有 MCC/MNC,整段标识符都被纳入加密。

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

TS 33.501 Annex C 定义了三种 Protection Scheme,这是 SUCI 机制中最容易被混淆的部分:

维度 Null-scheme (ID=0) Profile A (ID=1) Profile B (ID=2)
是否真正加密 否,MSIN 明文 是 是
ECC 曲线 无 NIST P-256 (secp256r1) Brainpool P-256 R1
KDF 无 ANSI X9.63 KDF (SHA-256) TS 33.220 KDF (HMAC-SHA-256)
加密算法 无 AES-128-CTR AES-128-CTR
完整性 MAC 无 AES-CMAC HMAC-SHA-256
MAC-tag — 固定长度(按 Annex C 截断) 固定长度(按 Annex C 截断)
适用场景 USIM 未预置 HN 公钥 / 互通测试 北美及多数全球运营商 偏好非 NIST 曲线的欧洲(如德国)运营商
隐私强度 无(等同于 4G IMSI 明文) 强 强

设计要点:3GPP 同时保留 NIST 与 Brainpool 两套曲线(Annex C.2 / C.3),本质上是地缘密码学偏好的妥协——部分监管环境对 NIST 标准曲线存疑,故提供 Brainpool 替代。两者在密码强度上等价,差异仅在曲线参数与配套 KDF/MAC。Null-scheme 是一个"功能降级开关":当 USIM 未预置归属网络公钥时,UE 只能以 Null-scheme 发送明文 MSIN,此时 5G 的身份隐私保护事实上形同虚设——这正是运营商是否在 USIM 个人化阶段写入 HN 公钥,成为决定 5G 隐私是否真正生效的关键部署变量。

四、SUCI 生成的密码学流程:ECIES 的端到端拆解

ECIES(Elliptic Curve Integrated Encryption Scheme)是 SUCI 的密码学内核。其精妙之处在于:UE 仅凭预置在 USIM 的 HN 公钥就能完成加密,而无需与网络交互任何共享密钥;解密则必须使用 UDM 侧的对应私钥。下面是 UE 侧加密与 SIDF 侧解密的对称数据流:

flowchart TD
    subgraph UE["UE/USIM 加密保护侧"]
      direction TB
      U1["HN公钥 PK_HN<br/>(USIM预置)"] --> U3
      U2["临时私钥e / 公钥E=e·G<br/>(每次新生成)"] --> U3["共享密钥 Z=e·PK_HN<br/>(ECDH)"]
      U3 --> U4["KDF"]
      U4 --> U5["Kenc"]
      U4 --> U6["Kmac"]
      U7["MSIN"] --> U8["C=AES-128-CTR(Kenc,MSIN)"]
      U6 --> U9["T=MAC(Kmac, E‖C)"]
      U8 --> U10["Scheme Output = E‖C‖T"]
      U9 --> U10
    end
    subgraph SIDF["UDM/SIDF 去隐藏侧"]
      direction TB
      S2["HN私钥d<br/>(仅UDM持有)"] --> S3
      S1["临时公钥E<br/>(从SUCI读取)"] --> S3["共享密钥 Z=d·E<br/>(ECDH)"]
      S3 --> S4["KDF"]
      S4 --> S5["Kenc"]
      S4 --> S6["Kmac"]
      S7["密文C"] --> S8["校验 T ?= MAC(Kmac,E‖C)"]
      S6 --> S8
      S8 -->|MAC通过| S9["MSIN=AES-128-CTR(Kenc,C)"]
      S9 --> S10["重组 SUPI=MCC+MNC+MSIN"]
    end
    U10 -.空口NAS.-> S1
    U10 -.空口NAS.-> S7

逐步解析其密码学逻辑:

  1. 临时密钥对生成:USIM 每次保护时生成一对全新的临时 ECC 密钥 (e, E),其中 E = e·G(G 为曲线基点)。这是实现"每次注册 SUCI 不可关联"的根本——e 用后即弃,下一次保护产生全新的 ECDH 共享密钥。
  2. ECDH 共享密钥协商:UE 计算 Z = e · PK_HN;由于椭圆曲线离散对数问题(ECDLP)的单向性,攻击者即使截获 E 和 PK_HN 也无法求出 Z。
  3. KDF 派生对称密钥:对 Z 经 KDF(Profile A 用 X9.63;Profile B 用 TS 33.220)派生出对称加密密钥 Kenc 与 MAC 密钥 Kmac。
  4. Encrypt-then-MAC:先用 AES-128-CTR 加密 MSIN 得密文 C,再对 (E‖C) 计算 MAC-tag T。这是教科书式的"先加密再认证"结构——先验 MAC 可在解密前就发现篡改,避免对被篡改密文做无谓解密(防范选择密文攻击)。
  5. Scheme Output 拼装:E ‖ C ‖ T。临时公钥 E 必须随文发送,否则接收方无法重建 ECDH;这与对称密码的密钥分发难题无关,正是非对称方案的价值。

SIDF 去隐藏则严格对称:用私钥 d 与临时公钥 E 算出同一个 Z = d · E = d·e·G = e·(d·G) = e·PK_HN(数学等价),从而派生出完全相同的 Kenc/Kmac,先校验 MAC,再解密 MSIN。

五、空口到核心网的完整信令时序:SUCI 如何被 SIDF 还原

将密码学放到真实信令流中,SUCI 从生成到被去隐藏、再到鉴权向量生成,跨越 UE、gNB、AMF、UDM/SIDF、ARPF/AuC 多个网元。以下是 TS 23.502 §4.2.2.2(注册流程)中与身份隐藏直接相关的子链:

sequenceDiagram
    participant UE as UE/USIM
    participant gNB
    participant AMF
    participant UDM as UDM(SIDF)
    participant ARPF as ARPF/AuC
    Note over UE: 无有效5G-GUTI,需用SUCI初始注册
    UE->>UE: 生成临时密钥(e,E)<br/>ECDH:Z=e·PK_HN<br/>KDF→(Kenc,Kmac)<br/>C=AES128-CTR(MSIN),T=MAC(E‖C)
    UE->>gNB: RRCSetupComplete<br/>(内含 REGISTRATION REQUEST)
    gNB->>AMF: INITIAL UE MESSAGE<br/>(NAS: Registration Request,<br/>5GS Mobile Identity = SUCI)
    Note over AMF: 仅解析明文:MCC/MNC/RI<br/>+Scheme ID + HN PK ID + Scheme Output
    AMF->>UDM: Nudm_UEAuthentication<br/>GenerateAuthData(SUCI)
    Note over UDM: SIDF:按 HN PK ID 取私钥d<br/>ECDH:Z=d·E<br/>KDF→(Kenc,Kmac)<br/>校验MAC,解密C→MSIN→重组SUPI
    UDM->>ARPF: 按SUPI生成鉴权向量
    ARPF-->>UDM: (RAND, AUTN, XRES*, KAUSF)
    UDM-->>AMF: 返回 SUPI + 鉴权向量
    Note over AMF: 进入5G-AKA / EAP-AKA'鉴权
    AMF->>UE: Authentication Request(RAND,AUTN)
    AMF->>UE: Registration Accept(分配 5G-GUTI)
    Note over UE,AMF: 后续优先用 5G-GUTI<br/>避免再次暴露 SUCI

逐条消息的关键 IE:

一个常被忽视的隐私优化设计:注册完成后 AMF 立即通过 Registration Accept 为 UE 分配 5G-GUTI。此后 UE 在 Service Request、切换等流程中优先使用 5G-GUTI 而非 SUCI 标识自己,从而把 SUCI 的使用频率压到最低。这也是为什么"5G-GUTI 重分配(GUTI Reallocation)"在网络层面是隐私保护链条的一环,而非纯粹的身份管理。

六、方案选择逻辑与频率限制:隐私的"第二道闸门"

除了加密本身,3GPP 还设计了两道"行为级"隐私闸门。下图梳理 UE 侧的保护方案选择与频率限制逻辑:

flowchart TD
    S["初始注册 / 网络发起Identity Request"] --> Q{"USIM是否<br/>预置HN公钥?"}
    Q -->|否| N["Null-scheme 方案ID=0<br/>MSIN明文"]
    Q -->|是| Q2{"支持的Profile?"}
    Q2 -->|NIST P-256| PA["Profile A 方案ID=1"]
    Q2 -->|Brainpool| PB["Profile B 方案ID=2"]
    PA --> FR["构造SUCI并发送"]
    PB --> FR
    N --> FR
    FR --> L{"是否触发<br/>频率限制?"}
    L -->|是| RJ["拒绝再次以明文/SUCI响应<br/>保护位置隐私"]
    L -->|否| OK["完成注册<br/>获取5G-GUTI"]
    OK --> GL["后续优先使用5G-GUTI"]

频率限制(TS 33.501 §6.12.2) 是一道反"主动探测"的防线:即便攻击者反复发起 Identity Request 强迫 UE 暴露身份,UE 内置的速率约束会限制其在单位时间内响应明文身份请求的次数,挫败伪基站通过高频探测实现的批量 IMSI/SUPI 采集。这与"每次注册使用临时密钥"共同构成"加密 + 行为约束"的双层隐私防御。

七、实战连接:抓包识别与故障排错

7.1 抓包如何识别 SUCI 流程

在 Wireshark(带 5G-NAS / NGAP 解析器)或 TShark 中,识别要点如下:

7.2 常见故障点与排错

现象 可能根因 排错思路
注册失败,UDM 无法还原 SUPI(Authentication 报错) USIM 的 HN 公钥与 UDM 私钥不配对(密钥版本/ID 不匹配) 核对 USIM 预置公钥 ID 与 UDM 侧私钥库的 HN PK ID 是否一致
USIM 走 Null-scheme,MSIN 明文 USIM 个人化阶段未写入 HN 公钥 检查 USIM 个人化参数;确认为何未下发公钥(早期卡、测试卡常见)
Profile A 与 B 不匹配 USIM 仅支持 Profile A,UDM 私钥按 Profile B 解密失败 对齐 USIM 与 UDM 的 Protection Scheme 能力,确认 Annex C 版本
跨注册可被关联 实现未使用一次性临时密钥(复用 e/E) 排查 USIM ECIES 实现是否每次重新生成临时密钥对
密钥轮换后部分老卡注册异常 新旧公钥并存,但 USIM 仍指向已退役公钥 ID 利用 HN PK ID 多槽位平滑过渡,保留旧私钥直至老卡退网
## 八、SUCI 机制的局限与残余风险

需客观指出,SUCI 并非银弹:

这些恰恰说明:SUCI 是 5G 隐私架构的"地基"而非"全部",必须与 GUTI 管理、频率限制、主认证抗链接性等机制协同,才能构成完整的用户身份隐私保护体系。

九、结论

5G SUCI 机制通过 ECIES 非对称加密 + 一次性临时密钥 + SIDF 单点去隐藏 + Null/Profile A/B 三档方案 的组合,首次在 3GPP 标准层面把用户永久标识的空口明文暴露问题系统性解决。其设计的精髓在于:用归属网络私钥构筑"只有我能解"的信任边界,用临时密钥换取"每次不可关联"的隐私属性,用频率限制与 GUTI 优化压缩暴露面。对协议开发与安全研究人员而言,真正理解 SUCI 的关键不在于记住字段长度,而在于把握其"密码学保护 + 网络架构收敛 + 终端行为约束"三位一体的设计哲学——这正是后续 6G 隐私增强标识(PEI 隐藏、UE 持久标识保护等)演进的范式起点。

常见问题

Q1: SUCI 和 5G-GUTI 都是"化名",二者有何本质区别? A: SUCI 是 SUPI 经 ECIES 加密后的标识,用于初始注册等极少数场景,且每次加密不可关联;5G-GUTI 则是 AMF 分配的临时路由标识,明文但与 SUPI 无密码学关联,用于注册后的日常通信以降低 SUCI 使用频率。二者构成"加密身份(低频)+ 临时身份(高频)"的分层隐私模型。

Q2: 为什么 SUCI 不加密 MCC/MNC,只加密 MSIN? A: 因为被访网络和 RAN 需要 MCC/MNC/RI 来把信令路由回归属网络的正确 UDM 实例,这些字段必须明文。而去掉运营商标识后的 MSIN 才是真正能定位到具体个人的字段,因此加密资源集中在 MSIN 上,是路由需求与隐私保护之间的最优折中。

Q3: Null-scheme 既然不加密,为何还要在标准里保留? A: 主要为互通与兼容兜底——当 USIM 未预置 HN 公钥(早期卡、测试卡、个别未完成个人化的场景)时,保证注册仍可完成,而非直接失败。它是"功能降级开关",部署上应尽量避免长期使用,否则 5G 的身份隐私保护将名存实亡。

Q4: SIDF 为什么放在 UDM 而不是 AMF? A: 解密 SUPI 必须使用归属网络私钥,而私钥只能存放在归属网络的可信边界内(UDM)。AMF 在漫游场景下属于被访网络,不应也无法持有 HN 私钥。把 SIDF 收敛在 UDM 内,既保证了私钥的最小暴露面,也实现了"归属解密、被访不可见"的信任分离。

Q5: Profile A 和 Profile B 该选哪一个? A: 密码强度上二者等价。Profile A(NIST P-256)全球通用性更好、生态成熟;Profile B(Brainpool P-256 R1)满足偏好非 NIST 曲线的监管需求(部分欧洲市场)。选择取决于运营商所在司法管辖区的合规偏好,而非安全强弱——但 USIM 与 UDM 两侧必须能力一致。

参考来源

  1. 3GPP TS 33.501 — Security architecture and procedures for 5G system — Annex C(ECIES Profile A/B)、§6.12(Subscription Identifier Privacy)
  2. 3GPP TS 23.003 — Numbering, addressing and identification — §19 Subscription Concealed Identifier (SUCI) 格式定义
  3. 3GPP TS 24.501 — Non-Access-Stratum (NAS) protocol for 5GS — §9.11.3.4 5GS mobile identity IE
  4. 3GPP TS 29.503 — Unified Data Management Services — §5.3 Nudm_UEAuthentication(SIDF 去隐藏)
  5. NIST CSWP 36A — Protecting Subscriber Identifiers with SUCI — SUCI 保护机制部署白皮书
  6. P1 Security — SUPI and SUCI in 5G: Identity Privacy That Actually Matters — 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学通信知识星球海报-扫码加入