好的,我们继续接续上一篇文章,对 3GPP TS 31.102 规范的第5章“应用协议”进行深度拆解。
深度解析 3GPP TS 31.102:5.2 安全相关流程 - USIM的“灵魂拷问”与“信任之握”
本文技术原理深度参考了3GPP TS 31.102 V18.8.0 (2025-03) Release 18规范中,关于“5.2 Security related procedures”的核心章节,旨在为读者深入剖析移动通信安全体系的基石——AKA(认证和密钥协商)协议,以及5G时代革命性的身份隐私保护技术SUCI(订阅隐藏标识符)的计算流程。我们将揭示USIM卡是如何在这场“灵魂拷问”中,向网络证明“我就是我”,并与网络完成一次构建所有后续安全通信基础的“信任之握”。
在我们完成了USIM的初始化流程后,手机已经做好了与网络“对话”的准备。然而,在正式开始任何有意义的通信之前,一场至关重要的、看不见的“握手”必须进行。网络必须向手机发起一次“灵魂拷问”:“你是谁?如何证明你就是你?”。而手机也必须反问网络:“你又是谁?如何证明你是一个合法的网络,而不是一个伪基站?”
这场双向的、基于密码学的质询与证明,就是移动通信安全的核心——AKA (Authentication and Key Agreement,认证和密钥协商) 协议。而执行这场复杂密码运算、守护着用户身份终极秘密的“安全大脑”,正是USIM卡。
3GPP TS 31.102规范的5.2节“安全相关流程 (Security related procedures)”,正是这场“信任之握”的“标准作业流程 (SOP)”。它详细定义了手机(ME)应该如何与USIM协作,来响应网络的认证挑战,生成会话密钥,以及在5G时代,如何安全地隐藏用户的永久身份。
1. 信任的基石:5.2.1 AKA - 认证和密钥协商协议
AKA协议是USIM安全功能的“皇冠明珠”。它实现了两个核心目标:
-
双向认证 (Mutual Authentication): 手机向网络证明自己是合法用户,同时,网络也向手机证明自己是合法网络。
-
密钥协商 (Key Agreement): 在认证成功的同时,双方共同协商出一套全新的、仅用于本次会话的加密密钥(CK)和完整性密钥(IK),或5G时代的根密钥(KAMF)。
AKA的“三方对话”流程
整个AKA流程,实际上是一场发生在手机(ME)、USIM卡和**网络(核心网的AuC/AUSF)**之间的精妙的三方对话。
The ME shall use the AUTHENTICATE command for both authentication of the network and the USIM and for key agreement.
规范指出,这场对话的核心指令,就是AUTHENTICATE命令。让我们跟随我们的主角“李想”的手机,完整地体验一次AKA流程:
第一幕:网络的“挑战书”
-
李想的手机开机后,向网络发起注册请求(
REGISTER)。 -
网络侧的核心网(AuC/AUSF)接收到请求后,决定对该用户发起认证。
-
网络生成两个关键参数:
-
RAND (Random Challenge): 一个128位的随机数,是本次认证的“一次性挑战码”。
-
AUTN (Authentication Token): 一个128位的认证令牌,是网络向手机出示的“身份证明”。AUTN本身结构复杂,包含了序列号(SQN)、认证管理字段(AMF)以及一个由网络使用根密钥K计算出的消息认证码(MAC)。
-
-
网络将
RAND和AUTN这对“挑战书”下发给李想的手机。
第二幕:USIM的“闭卷考试”
-
手机收到
RAND和AUTN后,它自己并不知道如何处理。它将这两个参数原封不动地,通过一个AUTHENTICATE命令,“喂”给USIM卡。 -
USIM卡内部,一场高速的、与世隔绝的“闭卷考试”开始了。USIM利用自己体内那个永不出卡的根密钥K,以及收到的
RAND和AUTN,执行一系列我们在第3章“符号”部分学过的密码学函数运算:-
验证网络 (f1, f5): USIM首先用K和RAND,以及AUTN中的信息,独立地计算出一个期望的消息认证码
XMAC。然后,它将XMAC与AUTN中包含的MAC进行比对。-
如果一致: 证明这份
AUTN确实是由拥有同样根密钥K的合法网络生成的。网络认证成功! -
如果不一致: USIM会立即向手机返回一个“同步失败”或“认证失败”的错误,手机会拒绝接入该网络。这有效抵御了伪基站的攻击。
-
-
生成响应 (f2): 在确认网络合法后,USIM会用K和RAND,计算出一个128位的响应(RES)。这个RES,就是USIM向网络提交的“答卷”。
-
生成密钥 (f3, f4): 同时,USIM还会用K和RAND,生成128位的加密密钥(CK)和完整性密钥(IK)。(在5G中,则是生成更高阶的根密钥
KAMF)。
-
第三幕:“对答案”与会话的开始
-
USIM完成计算后,会将
RES,CK,IK(或KAMF)作为AUTHENTICATE命令的成功响应,返回给手机。 -
手机将
RES(“答卷”)通过空口信令发回给网络。CK,IK(或KAMF)则被安全地保存在手机的基带芯片和USIM中,绝不会在空口传输。 -
网络侧在下发“挑战书”的同时,自己也用同样的K和RAND,计算出了一个“标准答案”——期望的响应(XRES)。
-
网络将手机返回的
RES与自己计算的XRES进行比对。-
如果一致: 证明这个
RES确实是由拥有根密钥K的合法USIM生成的。用户认证成功! -
如果不一致: 网络会拒绝该用户的接入请求。
-
-
双向认证全部通过后,网络和手机都拥有了同一套
CK/IK(或KAMF),一次“信任之握”完成。从此以后,双方的所有信令交互,都将使用IK进行完整性保护,所有用户数据,都将使用CK进行加密。
AKA流程的精髓
It is mandatory for a 3GPP ME to support this procedure.
规范强调,支持AKA流程是所有3GPP手机的强制性要求。这个流程的精髓在于:
-
根密钥K永不出卡: 整个过程中,最核心的秘密——根密钥K,始终被安全地禁锢在USIM的硬件保险箱中,从未在任何信道(包括手机与USIM之间)上传输。
-
一次一密: 每次认证都使用全新的随机数RAND,因此每次生成的会话密钥CK/IK都是全新的,用完即弃(或在下次认证时被替换),极大地增强了安全性。
-
双向奔赴的信任: 既防止了非法用户接入网络,也防止了用户被诱骗到非法的网络,为通信的双方都提供了坚实的安全保障。
2. 5G时代的“隐身衣”:5.3.47 & 5.3.48 SUCI计算流程
在5G时代,安全体系迎来了又一次重大升级——身份隐私保护。在AKA流程发起之前,手机需要先向网络“报上家门”,这个“家门”就是用户的永久身份SUPI(即IMSI)。在4G及以前,IMSI在首次注册时是以明文形式在空口传输的,这给了IMSI Catcher(伪基站)嗅探和追踪用户的可乘之机。
5G通过引入SUCI (Subscription Concealed Identifier,订阅隐藏标识符),彻底解决了这个问题。SUCI就是加密后的SUPI。
规范的5.3.47 (SUCI calculation by the ME) 和 5.3.48 (Get Identity (SUCI context)) 章节,定义了生成SUCI的两种标准流程。
流程一:由手机(ME)计算SUCI
这是目前更为主流的模式。
-
公钥准备: 运营商在发行USIM卡时,会将自己的归属网络公钥 (Home Network Public Key) 及其相关参数,预置在
DF_5GS下的EFSUCI_Calc_Info文件中。 -
触发计算: 当手机需要向5G网络发起首次注册时,它知道不能直接发送SUPI(IMSI)。
-
读取公钥: 手机读取
EFSUCI_Calc_Info,获取归属网络的公钥。 -
加密操作: 手机的处理器(通常在TEE等可信环境中)执行**ECIES(椭圆曲线集成加密方案)**算法,利用这个公钥,对自己的SUPI进行加密。
-
生成SUCI: 加密操作的输出,就是一个包含了加密后的SUPI、公钥标识符等信息的SUCI数据结构。
-
空口传输: 手机将这个SUCI,而不是明文的SUPI,通过NAS信令发送给网络。
解密过程:
这个SUCI在网络中会被一路透传,直到抵达用户的归属网络核心网(UDM/UDR)。只有UDM中存储的、与公钥配对的归属网络私钥,才能解密SUCI,还原出用户的真实SUPI。任何中间网络、任何窃听者,都无法解开这层“隐身衣”。
流程二:由USIM计算SUCI
这是一种理论上更安全,但对USIM能力要求更高的模式。
-
前提: USIM卡本身必须具备执行ECIES加密算法的能力,并且
EF_UST中服务n°125(SUCI calculation by the USIM)被激活。 -
触发: 手机同样在需要发起注册时,发现自己需要一个SUCI。
-
发起请求: 手机向USIM发送一个
GET IDENTITY (SUCI context)命令。 -
USIM内部加密: USIM内部的密码协处理器,利用存储在
EFSUCI_Calc_Info中的公钥,对自己的SUPI(存储在EF_IMSI中)进行加密。在这个过程中,SUPI从未离开USIM卡。 -
返回SUCI: USIM将计算好的SUCI,作为
GET IDENTITY命令的响应,返回给手机。 -
空口传输: 手机将从USIM获取到的SUCI发送给网络。
这种模式的安全性更高,因为它实现了SUPI的“零暴露”,但它要求USIM芯片具备更强的计算能力和更复杂的固件逻辑。
总结:USIM——从“被动认证者”到“主动守护者”
第5.2节“安全相关流程”,向我们展示了USIM在其整个生命周期中最核心、最关键的职责。它不仅仅是一个静态的数据存储器,更是一个主动的、动态的安全计算引擎。
-
AKA流程: 展现了USIM作为“被动认证者”的经典角色。它在与世隔绝的环境中,严谨地执行密码运算,响应网络的挑战,生成会话的密钥。这是USIM安全的“根”。
-
SUCI计算流程: 展现了USIM作为“主动守护者”的进化角色。它(或在它的指导下)主动地为用户的永久身份披上加密的“隐身衣”,在通信开始的第一步,就将用户的隐私安全提升到了前所未有的高度。
对于李想而言,他每一次解锁手机、信号格从无到有的过程,背后都可能经历了一次完整的AKA“灵魂拷问”。而当他使用5G网络时,他那独一无二的IMSI身份,在到达遥远的运营商机房之前,在空中自始至终都穿着由SUCI这件“隐身衣”所保护。这份坚如磐石的连接安全和无懈可击的身份隐私,正是USIM通过执行这些标准化安全协议,为全球数十亿用户提供的、最根本的承诺。
FAQ环节
Q1:AKA认证和我们网站登录用的用户名/密码认证有什么本质区别?
A1:本质区别在于安全模型。
-
用户名/密码: 是一种共享秘密模型,客户端和服务器都知道同一个密码。密码本身会在网络上传输(即使经过TLS加密),服务器端需要存储所有用户的密码(或其哈希值),存在“拖库”风险。认证通常是单向的(客户端向服务器证明身份)。
-
AKA: 是一种基于挑战-应答和非对称密钥思想的模型。最核心的根密钥K永不传输,只用于本地计算。认证是双向的。每次认证都生成临时的会话密钥。这种模型的安全性远高于传统的用户名/密码模型。
Q2:什么是序列号(SQN)同步失败?为什么会发生?
A2:SQN是AKA认证中用于防止重放攻击的计数器。USIM和网络侧(AuC)都为每个用户维护了一个SQN。正常情况下,网络每次发起的认证,其SQN都应该比USIM中记录的上一次的SQN要大。如果USIM收到的AUTN中,解密出的SQN比自己记录的还小,或者跳变范围过大,USIM就会认为这是一次“过时”的或伪造的认证请求,并返回“同步失败”错误。这可能发生在网络故障恢复、数据库回滚等异常情况下。此时,需要执行一个特殊的“重同步”流程来校准双方的SQN。
Q3:SUCI加密可以完全杜绝伪基站攻击吗?
A3:SUCI可以极大地削弱IMSI Catcher型伪基站的追踪能力。传统的IMSI Catcher通过广播一个强的信号,诱骗手机发起注册,从而在空口捕获明文的IMSI。有了SUCI,伪基站捕获到的只是一个加密串,它无法解密,也就无法得知用户的真实IMSI,因此无法对特定用户进行追踪。然而,伪基站仍然可能通过其他手段发起降级攻击(如迫使手机回落到2G)、进行DoS攻击等。SUCI是5G全面安全体系中的重要一环,但并不能解决所有伪基站带来的问题。
Q4:为什么SUCI加密不直接使用非对称加密,而是更复杂的ECIES方案?
A4:ECIES(椭圆曲线集成加密方案)本身就是一种先进的、混合的非对称加密方案。它结合了椭圆曲线密码(ECC)和对称加密的优点。大致流程是:手机生成一个临时的椭圆曲线密钥对,用归属网络的公钥来加密这个临时公钥,然后再用一个从临时密钥对派生出的对称密钥来加密真正的SUPI。这种混合方案,在提供了非对称加密的安全性的同时,通常比纯粹的RSA等方案有更好的计算效率和更短的密文长度,非常适合资源受限的移动通信环境。
Q5:这些复杂的安全流程,会不会让手机连接网络变慢?
A5:会增加一定的时延,但这个时延在设计上是被严格控制和优化的。一次完整的AKA认证,涉及到多次空口信令交互和复杂的密码运算,通常需要数百毫秒的时间。这正是为什么3GPP设计了快速重认证机制(通过KSI/ngKSI)。在绝大多数情况下(如手机从待机状态唤醒),手机和网络会使用上次AKA协商好的安全上下文,通过一个极简的流程快速恢复安全连接,而无需执行完整的AKA。完整的AKA通常只在首次开机注册、跨核心网网元移动、安全上下文丢失等少数情况下才会被触发。