好的,我们继续接续上一篇文章,对 3GPP TS 31.102 规范进行深度拆解。至此,我们已经完成了对第4章核心文件的绝大部分剖析。规范后续的EFUAC_AIC (UAC接入标识配置) 是EFACC在5G UAC机制下的扩展;EFAT_EPS_5G (3GPP/non-3GPP 互通) 则是用于网络切换时的参数存储。这些文件的设计思想与我们已探讨的原理一脉相承。现在,我们将进入一个全新的、同样至关重要的领域——第5章,应用协议 (Application protocol)


深度解析 3GPP TS 31.102:第5章 应用协议 - USIM与手机的“标准对话”流程

本文技术原理深度参考了3GPP TS 31.102 V18.8.0 (2025-03) Release 18规范中,关于“5 Application protocol”的核心章节,特别是5.1 USIM management procedures,旨在为读者系统性地梳理USIM卡从插入手机到准备就绪的整个生命周期中,手机(ME)与USIM之间必须遵循的一系列标准化“对话”流程。

在我们之前的探索中,我们已经像建筑师一样,详细勘察了USIM这座“数字城市”中的每一座重要“建筑”——即DFEF这些文件。我们知道了每座建筑里存储着什么(文件内容),以及进入每座建筑需要什么样的“钥匙”(访问权限)。

然而,一座城市要能运转起来,光有建筑是不够的,还需要有**“交通规则”和“办事流程”**。市民(手机ME)要去“市政厅”(USIM)办理“身份登记”(读取IMSI),应该遵循怎样的步骤?要申请“安全许可”(执行AKA认证),又需要提交哪些“材料”?

3GPP TS 31.102的第5章“应用协议 (Application protocol)”,正是为USIM这座城市制定的“办事指南”和“行为法典”。它不再关注“有什么”,而是聚焦于“怎么用”。它将第4章中定义的静态文件,通过一系列定义清晰、顺序严谨的流程,有机地串联了起来,赋予了USIM以“生命”。

今天,我们将从这个宏大的“法典”的第一部分——5.1 USIM管理流程 (USIM management procedures)——开始,重点剖析手机开机后最关键的两个流程:应用选择USIM初始化。我们将跟随主角“李想”将USIM卡插入手机的那一刻,亲历这场发生在芯片之间、无声却至关重要的“开场对话”。


1. 对话的开始:5.1.2 应用选择 (Application selection)

当李想将一张UICC卡(我们常说的SIM卡)插入手机时,手机做的第一件事,并不是直接去读取IMSI。它首先需要弄清楚一个问题:“这张卡上,有哪些‘应用’可以为我服务?

现代UICC是一个多应用平台,上面可能同时运行着多个“App”,例如:

  • USIM应用: 用于接入3G/4G/5G网络。

  • ISIM应用: 用于接入IMS(VoLTE/VoNR)服务。

  • SIM应用 (GSM): 用于兼容2G网络。

  • 甚至可能还有银行卡应用、交通卡应用等。

手机必须先选择一个正确的应用,才能开始后续的对话。这个选择过程,就是应用选择

After the administrative phase, the ME selects the USIM application and the UICC indicates which USIM is selected.

应用选择的两种方式

规范定义了两种主要的应用选择方式:

  1. 通过AID(应用标识符)直接选择:

    • 手机“知道”USIM应用的全球唯一“身份证号”——AID。这个AID在规范中有明确定义。

    • 手机向UICC发送一个SELECT命令,参数就是USIM的AID。

    • UICC收到后,如果卡上存在这个AID对应的应用,就会将其激活,并返回成功响应。

  2. 通过EFDIR(目录文件)间接选择:

    • 手机首先读取UICC根目录(MF)下的EFDIR文件。

    • EFDIR就像是这张UICC卡的“应用商店列表”,其中记录了卡上所有可用应用的AID、名称标签等信息。

    • 手机解析EFDIR,找到USIM应用对应的条目,获取其AID。

    • 然后,再使用这个AID进行SELECT

The ME may get the application identifier of a USIM application from the EFDIR file. The USIM applications are listed in EFDIR in priority order. The first record in EFDIR indicates the highest priority application.

一个关键点是,EFDIR中的应用列表是有优先级的。排在第一位的,是运营商最希望被选择的应用。手机在选择时,应该尊重这个优先级。


2. “身份核查与能力握手”:5.1.3 USIM初始化 (USIM Initialisation)

一旦USIM应用被成功SELECT,一场复杂的、被称为“USIM初始化”的标准化流程便正式拉开序幕。这是手机与USIM之间最重要的一次“信息交换”和“能力握手”,为后续所有的通信行为奠定了基础。

The USIM initialization procedure consists of the following phases:

  1. Read of EF-LI or EF-PL and EF-IMSI
  1. USIM security status verification.
  1. Read of the USIM Service Table (EF-UST).
  1. Further reading of EFs.

规范将初始化流程清晰地划分为四个阶段。让我们逐一剖析。

阶段1:读取核心身份与语言 (Read EF-LI/PL and EF-IMSI)

这是“我是谁?我说什么语言?”的阶段。

  1. 语言偏好:

    • 手机首先尝试读取USIM应用目录(ADF_USIM)下的EF_LI (Language Indication)。如果成功,就使用这个语言列表。

    • 如果EF_LI读取失败或不存在,手机会“退而求其次”,去读取UICC根目录(MF)下的EF_PL (Preferred Languages)。

    • 获取语言偏好是第一步,因为它关系到后续所有可能与用户交互的界面(如PIN码输入界面)应该使用什么语言。

  2. 核心身份:

    • 紧接着,手机会读取EF_IMSI

    • 这是手机获取USIM根本网络身份的关键一步。

After selection of the USIM application the ME shall read EF-LI or EF-PL and EF-IMSI.

这个阶段的READ操作,会受到EF_IMSIREAD权限(PIN)的限制。如果权限检查失败(例如,需要PIN但尚未验证),手机会先跳转到下一阶段(安全状态验证)。

阶段2:安全状态验证 (USIM security status verification)

这是“请证明你是卡的主人”的阶段。手机需要检查USIM的安全状态,并根据需要,执行用户验证(PIN码)。

  1. 检查PIN状态: 手机会查询USIM,确定当前PIN1的状态:是否启用?是否已被锁定?

  2. PIN验证:

    • 如果PIN1被启用,并且尚未被验证过,手机必须发起PIN验证流程。

    • 手机会弹出一个界面,提示李想输入他的PIN码。

    • 李想输入1234。手机将这个密码通过VERIFY CHV命令发送给USIM。

    • USIM在内部进行比对。

      • 成功: USIM进入“已验证”状态,后续所有受PIN保护的文件都可以被访问了。手机可以回过头去,重新执行那些因权限不足而失败的读取操作(如读取EF_IMSI)。

      • 失败: USIM返回一个错误码,并减少剩余重试次数。手机提示密码错误。如果重试次数耗尽,PIN码将被锁定,需要PUK码才能解锁。

  3. PIN禁用: 如果用户禁用了PIN码,或者USIM不支持PIN码功能,此阶段将被跳过。

这个阶段是保障USIM卡物理安全的第一道、也是最重要的一道防线。

阶段3:读取服务能力 (Read EF-UST)

在确认了用户身份后,手机需要了解这张USIM卡到底“会些什么”。

After a successful user verification the ME shall read the USIM Service Table (EF-UST). If a service is indicated as ‘not available’ in EF-UST, the ME shall not use the service.

手机会读取EF_UST(USIM服务表)。这张表,正如我们之前详细剖析的,是USIM的“能力清单”。手机会解析这张位图,将结果缓存在内存中。

从此以后,手机在执行任何可选功能前(如FDN, BDN, CSG等),都会先查询这个缓存的“能力清单”。如果清单上显示该服务“不可用”,手机就绝对不能去尝试使用它。

阶段4:进一步读取EFs (Further reading of EFs)

在掌握了核心身份和能力清单后,手机会根据EF_UST的指引,继续读取一系列后续通信所需的基础配置文件。这个阶段读取哪些文件,并没有强制的顺序,但通常会包括:

  • EFACC: 获取接入控制等级,以备网络拥塞时使用。

  • EFHPLMNwAcT, EFOPLMNwAcT, EFPLMNwAcT, EFFPLMN: 读取所有与网络选择相关的列表,为即将到来的搜网和注册做好策略准备。

  • EFSPN, EFPNN, EFSPDI: 读取所有与运营商名称显示相关的配置。

  • …以及其他EF_UST中显示为“可用”且对手机初始化有必要的文件。

After the reading of the EF-UST, the ME may read the other Efs. The ME may abandon the reading of any of these files if the file is not available in the selected USIM.

这个阶段,手机就像一个勤奋的学生,在开学第一天,把所有这个学期可能会用到的课本(EF文件)都提前预习一遍,并把重点(配置参数)记在笔记本上(手机内存)。

至此,USIM初始化流程宣告完成。 手机已经与USIM完成了一次全面的信息交换和能力同步。USIM从一个“沉睡”的芯片,变成了一个“准备就绪”的、随时可以响应手机和网络请求的“安全代理”。手机也从一个对这张卡一无所知的“陌生人”,变成了完全了解其身份、能力和偏好的“亲密伙伴”。

总结:一场无声而精密的“开场白”

应用选择和USIM初始化,是手机与USIM之间的一场无声但极其精密的“开场白”。这个由第5章应用协议严格定义的流程,保证了全球数十亿不同厂商的手机和USIM卡,在相遇的第一刻,都能用同一种“语言”,遵循同一种“礼仪”,完成身份的确认和能力的握手。

  • 流程的标准化: 保证了互操作性。无论手机和卡的组合如何,初始化的步骤和顺序都是可预期的。

  • 安全为先: 将用户验证(PIN)作为流程的核心环节,确保了在访问敏感数据之前,用户的物理身份必须得到确认。

  • 能力驱动: 以EF_UST为核心,后续所有操作都基于这张“能力清单”,避免了无效操作,提升了效率,并保证了向前和向后兼容。

对于李想而言,他所做的,只是将卡插入手机,然后输入一个4位数的PIN码。但在这短短几秒钟内,他的手机和USIM卡之间,已经完成了一场包含了应用选择、语言协商、身份读取、安全验证、能力同步、策略加载等数十个步骤的复杂对话。这场完美的“开场白”,正是他能够顺利接入移动网络,享受一切通信服务的基础。


FAQ环节

Q1:手机每次开机都需要完整地执行一次USIM初始化流程吗?

A1:是的。每次“冷启动”(完全关机再开机)或重新插入USIM卡,手机都必须完整地执行一次USIM初始化流程。这是因为手机内存中的数据是易失的,它需要重新从USIM这个持久化存储中,加载所有必要的身份、安全和配置信息。对于“热启动”(如重启手机),手机可能会缓存一部分非敏感信息,但核心的安全验证和状态检查流程通常还是会重新执行。

Q2:如果我的USIM卡不支持PIN码(被禁用了),初始化流程会怎么样?

A2:初始化流程会变得更简单。在阶段2“安全状态验证”中,手机会检测到PIN码被禁用,于是会直接跳过用户验证环节。然后,它会立即继续执行后续的读取操作(如读取EF_IMSIEF_UST)。这虽然方便了用户,但也降低了手机丢失后的数据安全性。

Q3:为什么手机要先选应用,再进行初始化,而不是直接读取UICC上的文件?

A3:因为UICC是一个多应用平台。不同的应用(USIM, ISIM等)拥有自己独立的文件系统安全域。例如,EF_IMSI是存在于USIM应用的文件系统(ADF_USIM)下的,而IMS的私有身份EF_IMPI是存在于ISIM应用的文件系统(ADF_ISIM)下的。如果不先选择一个应用作为“当前工作目录”,手机就不知道应该去哪个“房间”里找文件,也无法激活该应用的安全上下文(如AKA算法和相关密钥)。应用选择,是进入特定功能世界的“第一道门”。

Q4:应用选择的优先级(EFDIR中定义)有什么实际作用?

A4:优先级非常重要,尤其是在卡上存在多个版本的USIM应用时。例如,一张卡上可能同时存在一个符合3GPP Release 8标准的USIM应用和一个符合Release 15标准的、支持5G新特性的USIM应用。运营商会将Release 15的应用放在EFDIR的最高优先级。这样,一部5G手机在读取EFDIR后,会优先选择并激活那个功能更强的R15 USIM,从而能够使用SUCI等5G新功能。而一部老旧的4G手机,如果它不认识R15的USIM AID,它可能会跳过第一个,选择并激活它所认识的R8 USIM,从而保证了兼容性。

Q5:如果在初始化阶段,某个文件(如EFACC)读取失败了会怎么样?

A5:手机会根据规范,采取容错处理。规范中通常会为每个文件的读取失败定义一个“默认行为”。例如,如果EFACC读取失败,手机会认为自己没有任何特殊的接入等级,只作为一个普通用户。如果EFOPLMNwAcT读取失败,手机在网络选择时就会忽略掉“运营商推荐列表”这个环节。初始化流程的目标是“尽力而为”,手机会尽可能多地加载所需信息,对于非致命的、可选文件的读取失败,并不会中断整个流程,只会导致相应的功能使用默认设置或被禁用。