深度解析 3GPP TS 23.003:2 Identification of mobile subscribers (Part 1 - 永久用户标识IMSI与SUPI/SUCI)
本文技术原理深度参考了3GPP TS 23.003 V18.7.0 (2024-09) Release 18规范中,关于“2 Identification of mobile subscribers”的核心章节,旨在为读者提供一个从2G到5G时代,移动通信网络如何识别和保护用户身份的全景视图。本文作为系列解读的第一部分,将聚焦于最核心的永久用户标识:IMSI、SUPI以及SUCI。
引言:小玲的第一部5G手机
故事的主角叫小玲,一位刚刚大学毕业的通信工程专业学生。她满怀期待地办理了一张全新的5G SIM卡,并插入了她的第一部5G手机。当她按下开机键,手机屏幕亮起,开始搜索网络时,一个看似简单的动作,背后却触发了移动通信世界里最基础也最关键的流程——用户身份识别与认证。
小玲手机里的这张小小SIM卡(更准确地说是USIM卡),是她在数字世界的“身份证”。这张身份证如何被网络识别?在便捷通信的同时,如何确保她的个人隐私不被泄露?
带着这些问题,我们将跟随小玲的手机,从开机入网的第一个信令开始,一步步揭开3GPP规范中关于用户标识的神秘面纱,深度探索从IMSI到SUPI/SUCI的演进之路。
1. 核心原则:永久标识与临时标识 (TS 23.003, 2.1 General)
在移动通信网络中,为了管理和识别成千上万的用户,每个用户都必须有一个全球唯一的身份标识。这是所有服务得以展开的基础。
A unique International Mobile Subscription Identity (IMSI) shall be allocated to each mobile subscriber in the GSM/UMTS/EPS system.
这段规范原文明确指出了在2G/3G/4G时代,这个唯一的身份就是我们熟知的IMSI(International Mobile Subscription Identity)。你可以把它理解为小玲SIM卡的“身份证号”,全球唯一,与她的手机号码(MSISDN)是分离的。
然而,如果每次通信都直接在空中传输这个固定的“身份证号”,就如同在大街上高喊自己的身份证号码一样,极易被非法监听者捕获,从而追踪用户的位置、分析其通信行为,带来巨大的隐私风险。为了解决这个问题,3GPP引入了“临时标识”的概念。
In order to support the subscriber identity confidentiality service the VLRs, SGSNs and MME may allocate Temporary Mobile Subscriber Identities (TMSI) to visiting mobile subscribers. The VLR,SGSN and MME must be capable of correlating an allocated TMSI with the IMSI of the MS to which it is allocated.
规范指出,网络侧的VLR(2/3G CS)、SGSN(2/3G PS)和MME(4G EPC)会给来访的用户分配一个TMSI(Temporary Mobile Subscriber Identity)。这个TMSI就像是网络给小玲手机分配的一个“临时昵称”。在后续的通信中,手机和网络之间就用这个“昵称”来相互识别,而真实的IMSI则被安全地保存在网络内部。一旦这个“昵称”可能暴露,网络可以随时给小玲更换一个新的,大大增强了隐私保护。
小结: 移动网络身份识别体系建立在两大基石之上:
- 永久标识 (Permanent Identifier):如IMSI,是用户的根本身份,全球唯一,存储在USIM卡和网络核心数据库(HLR/HSS/UDM)中。
- 临时标识 (Temporary Identifier):如TMSI,由网络动态分配,用于在空口信令中代替永久标识,实现用户身份的保密性。
2. IMSI的构成:解读你的“数字基因” (TS 23.003, 2.2 Composition of IMSI)
IMSI不仅仅是一串数字,它的结构本身就包含了丰富的信息,使得全球的网络都能准确地识别出用户的“归属地”。
IMSI is composed of three parts:
- Mobile Country Code (MCC) consisting of three digits. The MCC identifies uniquely the country of domicile of the mobile subscription;
- Mobile Network Code (MNC) consisting of two or three digits for 3GPP network applications. The MNC identifies the home PLMN of the mobile subscription…
- Mobile Subscriber Identification Number (MSIN) identifying the mobile subscription within a PLMN or SNPN.
规范原文和下图(源自规范Figure 1: Structure of IMSI)清晰地展示了IMSI的结构:
<------------------ Not more than 15 digits ------------------>
+---------------+-----------------+---------------------------+
| MCC | MNC | MSIN |
| (3 digits) | (2 or 3 digits)| |
+---------------+-----------------+---------------------------+
让我们以小玲的SIM卡为例,假设她的IMSI是 460011234567890。我们可以这样解读:
-
MCC (Mobile Country Code) - 移动国家码:
460这是IMSI的前3位,用于唯一标识国家。460代表的就是中国。无论小玲走到世界哪个角落,当她的手机开机时,当地网络看到这个460,就知道她是中国运营商的用户。 -
MNC (Mobile Network Code) - 移动网络码:
01紧随MCC之后的是2位或3位的MNC,用于识别运营商。例如,在中国,00和02等代表中国移动,01代表中国联通,11代表中国电信。所以,46001这个组合就精确地指向了“中国联通”。当小玲在国外漫游时,当地网络通过这个完整的PLMN-ID (MCC+MNC),就能准确地将认证和计费请求路由回中国联通。 -
MSIN (Mobile Subscriber Identification Number) - 移动用户识别码:
1234567890这是IMSI的最后一部分,由运营商自行分配,用于在其网络内唯一地标识小玲这个用户。
通过这样精巧的结构,一个IMSI号码就实现了全球范围内的用户归属地识别。
3. 5G的演进:更灵活的SUPI (TS 23.003, 2.2A Subscription Permanent Identifier)
进入5G时代,万物互联(IoT)的场景变得极为丰富。用户不再仅仅是“人”,也可以是汽车、电表、工业机器人、高清摄像头等等。传统的、仅基于SIM卡的IMSI体系已经无法满足所有场景的需求。为此,3GPP定义了一个更具扩展性的永久标识框架——SUPI(Subscription Permanent Identifier)。
The SUPI is a globally unique 5G Subscription Permanent Identifier allocated to each subscriber in the 5G System. It is defined in clause 5.9.2 of 3GPP TS 23.501.
SUPI可以看作是IMSI在5G时代的“超集”。它不仅可以承载IMSI,还能支持其他形式的标识符,以适应不同的应用场景。
The SUPI is defined as:
- a SUPI type: in this release of the specification, it may indicate an IMSI, a Network Specific Identifier (NSI), a Global Line Identifier (GLI) or a Global Cable Identifier (GCI); and
- dependent on the value of the SUPI type:
- an IMSI as defined in clause 2.1;
- a Network Specific Identifier (NSI), taking the form of a Network Access Identifier (NAI) as defined in clause 28.7.2;
- …
规范明确了SUPI的几种主要类型,让我们通过场景来理解:
-
基于IMSI的SUPI (SUPI Type: IMSI) 这是最常见的类型,直接兼容了从2G到4G的庞大用户基础。对于小玲这样的普通手机用户,她的SUPI本质上就是她的IMSI。当她的5G手机接入5G核心网(5GC)时,USIM卡中的IMSI就被网络解析为一个SUPI。
-
基于NSI的SUPI (SUPI Type: NSI) NSI(Network Specific Identifier)是一种网络特定的标识,通常采用NAI(Network Access Identifier)格式,类似于
username@realm。这种格式非常适合非SIM卡的设备或企业专网场景。 场景示例:在一个大型智能工厂里,有数千个工业传感器和机器人需要接入工厂自建的5G专网(SNPN)。为每个设备都插一张SIM卡既不经济也不方便。工厂可以为每个设备分配一个NSI,例如[email protected]。这个NSI就是该机器人的SUPI,它通过其他安全凭证(如证书或密码)进行认证,完全脱离了传统IMSI的体系。 -
基于GLI/GCI的SUPI (SUPI Type: GLI/GCI) GLI(Global Line Identifier)和GCI(Global Cable Identifier)主要用于固定无线接入(FWA)场景。 场景示例:小玲家里安装了5G家庭宽带,运营商提供了一个5G CPE(Customer Premise Equipment)设备。这个CPE的身份可能不是由SIM卡决定,而是与其连接的物理线路(光纤或电缆)的标识符绑定。这个线路标识符(GLI或GCI)就可以作为该家庭宽带业务的SUPI。
通过引入SUPI,5G网络具备了前所未有的身份管理灵活性,能够将移动蜂窝用户、企业专网设备、家庭宽带终端等多种类型的“用户”统一纳入一个框架下进行管理。
4. 5G隐私的守护神:SUCI (TS 23.003, 2.2B Subscription Concealed Identifier)
有了SUPI,5G解决了身份多样性的问题。但新的问题随之而来:在空口中传输SUPI,即便是像 [email protected] 这样的标识,同样存在隐私泄露的风险。攻击者依然可以关联设备与特定网络,进行追踪。
在4G及以前,首次接入网络时,IMSI是以明文形式发送的(IMSI Attach),这是其最大的安全短板。5G彻底解决了这个问题,引入了SUCI(Subscription Concealed Identifier)。
The SUCI is a privacy preserving identifier containing the concealed SUPI. It is defined in clause 6.12.2 of 3GPP TS 33.501.
简单来说,SUCI就是加密后的SUPI。小玲的5G手机在第一次联系网络时,不再发送明文的IMSI(SUPI),而是发送SUCI。这样,空口监听者就无法获取到她真实的永久身份。
SUCI的结构比IMSI复杂得多,因为它承载了加密和路由所需的所有信息。让我们结合规范中的Figure 2.2B-1来深入剖析。
4.1 SUCI的结构解析
下图是根据规范原文绘制的SUCI结构示意图:
| SUPI Type | Home Network Identifier | Routing Indicator | Protection Scheme Id | Home Network Public Key Id | Scheme Output |
|---|---|---|---|---|---|
| 0 - 7 | (MCC+MNC) or domain name | 1 - 4 digits | 0 - 15 | 0 - 255 | Encrypted SUPI part |
我们来逐一拆解这些字段的含义:
-
SUPI Type (0-7) 这个字段表明被加密的SUPI是什么类型。例如,对于小玲,她的SUPI基于IMSI,所以这个字段的值就是
0。 -
Home Network Identifier (归属网络标识) 这个部分是明文的!它包含了用户的MCC和MNC(对于IMSI型SUPI)或域名(对于NSI型SUPI)。这非常关键,因为当小玲在国外漫游时,当地网络需要知道把这个加密的SUCI送回给哪个国家的哪个运营商去解密。如果这部分也加密了,漫游网络将无从下手。
-
Routing Indicator (路由指示符) 由归属运营商分配,并写入USIM卡中。它帮助归属网络内部将SUCI请求路由到正确的认证服务器集群(AUSF)和用户数据管理(UDM)实例。在一个大型运营商网络中,可能有多个AUSF/UDM集群,路由指示符确保了请求能够被高效处理。
-
Protection Scheme Id (保护方案ID) 这个字段指明了使用了哪种加密方案。
0代表“空保护方案”(Null-Scheme),即Scheme Output部分是明文。其他值则代表不同的加密算法,如1代表 Profile A,2代表 Profile B,它们都基于椭圆曲线集成加密方案(ECIES)。 -
Home Network Public Key Id (归属网络公钥ID) 运营商可以拥有多套公私钥对,并将其公钥预置在用户的USIM卡中。这个ID告诉归属网络,UE是用哪一个公钥来加密SUPI的,以便网络能找到对应的私钥来解密。如果使用的是空保护方案,此字段为0。
-
Scheme Output (方案输出) 这是SUCI的核心,包含了被加密的用户私有信息。
- 对于IMSI型SUPI:这里面是被加密的MSIN部分。
- 对于NSI型SUPI:这里面是被加密的
username部分。
4.2 SUCI的工作流程
现在,我们可以完整地描绘出小玲的5G手机首次开机入网的隐私保护过程:
- 生成临时密钥对:手机利用椭圆曲线算法(ECIES)生成一个临时的公私钥对。
- 获取运营商公钥:手机从USIM卡中读取运营商预置的公钥,并通过
Home Network Public Key Id来确认是哪一个。 - 加密MSIN:手机使用运营商的公钥和自己生成的临时私钥,通过密钥协商协议(如ECDH)导出一个加密密钥,然后用这个密钥来加密自己的MSIN。
- 构建SUCI:手机将
SUPI Type、明文的MCC/MNC、Routing Indicator、Protection Scheme Id、Public Key Id,以及包含加密后MSIN和手机临时公钥的Scheme Output组合在一起,形成完整的SUCI。 - 发送SUCI:手机通过空口将这个SUCI发送给5G基站。
- 网络侧解密:
- 基站将SUCI转发给核心网的AMF。
- AMF看到明文的MCC/MNC,知道这是中国联通的用户,于是将SUCI转发给中国联通的SEPP(安全边缘保护代理)。
- SEPP根据Routing Indicator将请求路由到正确的AUSF/UDM。
- AUSF/UDM根据
Public Key Id找到对应的运营商私钥,再结合SUCI中包含的手机临时公钥,通过相同的密钥协商过程,导出与手机端完全相同的加密密钥。 - 使用此密钥解密
Scheme Output,成功还原出小玲的MSIN。 - 将MCC、MNC和解密出的MSIN组合起来,就得到了小玲完整的SUPI。
通过这一整套精密的密码学流程,5G网络在用户首次接入时就实现了对永久身份的端到端加密保护,这是对4G及之前网络的一个革命性安全升级。
5. 统一的分配原则 (TS 23.003, 2.3 Allocation and assignment principles)
无论是传统的IMSI,还是作为SUPI载体的IMSI,其分配和编码原则都需要遵循统一的国际标准,以确保全球互操作性。
IMSI shall consist of decimal digits (0 through 9) only. The number of digits in IMSI shall not exceed 15. The allocation and assignment of Mobile Country Codes (MCCs) is administered by the ITU. The assignment of Mobile network Codes (MNC) is the responsibility of each national numbering plan administrator.
规范的这些要求言简意赅:
- IMSI必须是纯数字。
- 长度不能超过15位。
- 最高级别的MCC由国际电信联盟(ITU)统一管理和分配。
- 次级的MNC则由各个国家的编号计划管理机构负责。
这些看似简单的规则,是构建起全球无缝漫游通信大厦的基石。
结语:从明文到密文,身份安全的巨大飞跃
通过对TS 23.003中用户永久标识相关章节的深度解读,我们跟随小玲的5G手机,完成了从开机到被网络识别的全过程。我们看到了:
- IMSI 作为跨越数个通信时代的经典设计,其分层结构如何支撑起全球漫游体系。
- SUPI 作为5G的创新,如何通过一个统一的框架,将人、物、家庭等不同类型的终端实体都纳入了统一的身份管理,为万物互联奠定了基础。
- SUCI 作为5G隐私保护的“杀手锏”,如何利用非对称加密技术,彻底解决了困扰移动通信数十年的“IMSI明文传输”顽疾,为用户的数字身份安全提供了前所未有的保障。
这不仅仅是技术名词的更迭,更是通信网络设计理念的一次巨大飞跃——从“能用”到“好用”,再到“安全地用”。在下一篇文章中,我们将继续深入探讨规范的后续章节,揭秘网络是如何为小玲分配“临时昵称”(如GUTI)来保护她后续的通信过程的。
FAQ
Q1:SUPI和IMSI到底是什么关系?
A1:可以理解为包含与被包含的关系。SUPI(订阅永久标识符)是5G系统中的一个身份框架,而IMSI是这个框架下最常用的一种身份标识格式。一个SUPI可以是IMSI格式的,也可以是为物联网设备设计的NSI格式(如 username@domain)。对于普通手机用户,其SUPI就是由其IMSI构成的。
Q2:为什么有了TMSI/GUTI这些临时标识,还需要SUCI? A2:TMSI/GUTI是在用户成功注册到网络上之后,由网络分配的临时标识,用于后续的通信过程。但SUCI解决的是首次注册或丢失临时标识后重新注册的场景。在这些场景下,UE没有可用的临时标识,必须向网络表明自己的永久身份。SUCI通过加密SUPI(如IMSI)的方式,保护了这个“第一次亲密接触”过程中的用户隐私。
Q3:SUCI是完全加密的吗?为什么Home Network Identifier部分要用明文? A3:SUCI不是完全加密的。其核心的用户私有部分(如MSIN)是加密的,但路由信息部分(如MCC、MNC组成的Home Network Identifier)必须是明文。这是为了让UE漫游地的网络(VPLMN)能够知道用户的归属网络(HPLMN)是谁,从而能将认证请求正确地转发回用户的归属运营商进行解密和认证。如果这部分也加密,漫游网络将不知道把请求送往何处。
Q4:什么是SUCI的“空保护方案”(Null-Scheme)?它还有用吗? A4:空保护方案(Protection Scheme ID = 0)是指SUCI的“Scheme Output”部分不进行加密,直接包含明文的MSIN。这相当于SUPI没有被隐藏。虽然它不提供隐私保护,但在某些特定场景下仍有其用途,例如在某些私有网络或测试环境中,为了简化流程或调试,可能会使用该方案。它保留了SUCI的整体格式,只是放弃了加密步骤。
Q5:一个国家可以有多个MCC(移动国家码)吗? A5:通常情况下,一个国家或地区被分配一个唯一的MCC。但在某些大型国家或特殊地区,可能会有多个MCC。例如,美国就被分配了多个MCC(如310-316)。同样,一个运营商在某些情况下也可能拥有多个MNC(移动网络码)。