### 5.2 初始通信建立程序
初始通信建立程序应遵循3GPP TS 31.101 [55]的规定,但有以下限制:
- 对于3V及以下的SIM卡,最大时钟频率为4MHz,因此必须遵守3GPP TS 31.101 [55]中规定的相应功耗限制。
- ATR内容:如果SIM在TC1中指示的值不是0或255,ME应调用3GPP TS 31.101 [55]中定义的错误处理程序。
- T=15全局接口参数是可选的。历史字节的编码可能不遵循3GPP TS 31.101 [55],且ME无需解释。
- PPS程序:SIM的速率增强是可选的。但如果实施了速率增强,至少应支持F=512和D=8。
- 重置程序:SIM应表现得像“类型1 UICC”。
- 时钟停止模式:只有在文件特性中指定的条件下,才能关闭时钟(参见第9.2.1节)。对于在3GPP TS 31.101 [55]中定义的Class B或C操作条件下运行的SIM,支持时钟停止模式是强制性的。
#### 5.2.1 速率增强的错误处理
- 如果SIM在初始等待时间内未回答PPS请求,ME应重置SIM。
- 经过两次使用F=512和D=8或TA1中指示的值失败的PPS尝试后(SIM无PPS响应),ME应使用默认值启动PPS程序。如果这也失败(SIM无PPS响应),ME可以继续使用默认值,无需请求PPS。
- 如果SIM不支持ME请求的值,SIM应响应PPS请求,指示使用默认值。
#### 5.3 传输协议
传输协议的物理层和数据链路层应遵循3GPP TS 31.101 [55]的规定,但有以下限制:
- 对于ME和SIM,传输协议T=0的支持是强制性的。其他协议是可选的。本文件未定义使用除T=0以外的其他协议。
- 除了3GPP TS 31.101 [55]中指定的要求外,符合本文件的SIM卡和终端必须准备好在发起的任何传输的最后一个出站字符的起始位前沿之后不超过12个etu(时间单位)接收数据。对于本文件的目的,SIM卡和终端只需在接收到的最后一个字符的起始位前沿之后等待12个etu即可发送数据。
- 对于GSM命令,不得使用过程字节'61'和'6C'。SIM返回状态字节'9F'以控制终端传输层和SIM之间的交换。
在文档6.1 SIM Application structure中,描述了SIM应用的结构,具体如下:
- **文件组织**:SIM中的文件是按照层次结构组织的,可以是行政管理或应用特定的文件。这种结构允许操作系统访问存储在不同文件中的数据。
- **文件类型**:SIM支持的文件类型包括专用文件(Dedicated File, DF)和基本文件(Elementary File, EF)。DF可以包含访问条件和可选的EF或其他DF,而EF则包含访问条件和数据,不包含其他文件。
- **文件头和文件体**:每个文件由一个头和可选的文件体组成。文件头包含与文件结构和属性相关的信息,可以通过使用GET RESPONSE或STATUS命令获取。这些信息在管理阶段是固定的。文件体包含文件的数据。
- **文件选择**:在回答到复位(ATR)之后,主文件(Master File, MF)被隐式选择并成为当前目录。之后,每个文件可以通过使用3GPP TS 31.101 [55]中指定的SELECT功能来选择,但有一个例外:只支持通过文件ID引用和文档中指定的命令参数进行选择。
### 7.3 文件访问条件
文件访问条件定义了对SIM卡中每个文件执行特定操作所需的权限。以下是不同访问条件级别的定义:
- **ALWAYS (0)**: 行动可以无任何限制地执行。
- **CHV1 (1)**: 行动仅在以下任一条件满足时才能执行:
- 在当前会话中已向SIM提供正确的CHV1值;
- CHV1启用/禁用指示器设置为“禁用”;
- 在当前会话中已成功执行UNBLOCK CHV1。
- **CHV2 (2)**: 行动仅在以下任一条件满足时才能执行:
- 在当前会话中已向SIM提供正确的CHV2值;
- 在当前会话中已成功执行UNBLOCK CHV2。
- **ADM**: 这些级别的分配和满足要求的责任在于适当的行政机构。
- **NEVER (3)**: 行动不能在SIM/ME接口上执行。SIM可以在内部执行该行动。
访问条件级别不是层次化的。例如,正确提供CHV2并不允许执行需要CHV1的行动。一个满足的CHV条件级别在GSM会话结束前一直有效,只要相应的秘密代码未被封锁。如果连续三次错误尝试(不必然在同一会话中),之前由该秘密代码授予的访问权限将立即丢失。
### 条件级别不是层次化的
- **非层次化条件**:文件访问条件级别不是按层次结构排列的。例如,即使正确提供了CHV2(卡片持有人验证2),也不能执行需要CHV1(卡片持有人验证1)的操作。这意味着每个条件级别都是独立的,满足一个条件级别并不意味着可以执行需要更高权限级别的操作。
- **条件级别有效期**:一旦满足某个条件级别,它将一直有效,直到GSM会话结束,前提是相应的秘密代码(如CHV)未被封锁。如果在连续三次错误尝试后(不一定在同一卡片会话中),之前由该秘密代码授予的访问权限将立即失效。
- **CHV条件级别适用范围**:满足的CHV条件级别适用于DFGSM(GSM应用专用文件)和DFTELECOM(电信专用文件)。
- **ME对CHV2可用性的判断**:移动设备(ME)应使用STATUS命令的响应来确定CHV2是否可用。如果CHV2未初始化,则无法执行CHV2相关的命令,例如VERIFY CHV2。
这些规定确保了SIM卡的安全性,防止在多次错误尝试后未授权访问敏感数据或执行敏感操作。
### 9. 命令描述
文档详细描述了一系列用于与SIM卡交互的命令,这些命令是GSM网络中SIM卡与移动设备(ME)接口的一部分。以下是命令的中文概述:
1. **SELECT(选择)**:通过文件标识符选择文件。响应包括文件大小、类型和状态等信息。
2. **STATUS(状态)**:提供SIM卡的状态信息,包括选定文件的相关信息。
3. **READ BINARY(读取二进制)**:从文件中检索二进制数据。
4. **UPDATE BINARY(更新二进制)**:向文件写入二进制数据。
5. **READ RECORD(读取记录)**:从文件中检索特定记录。
6. **UPDATE RECORD(更新记录)**:向文件中的特定记录写入数据。
7. **SEEK(查找)**:在文件中搜索与给定模式匹配的记录。
8. **INCREASE(增加)**:按指定数量增加文件的值。
9. **VERIFY CHV(验证CHV)**:验证卡持有人验证(CHV)值。
10. **CHANGE CHV(更改CHV)**:更改CHV值。
11. **DISABLE CHV(禁用CHV)**:禁用CHV功能。
12. **ENABLE CHV(启用CHV)**:启用CHV功能。
13. **UNBLOCK CHV(解锁CHV)**:解锁CHV。
14. **INVALIDATE(使无效)**:使文件无效。
15. **REHABILITATE(重新启用)**:重新启用文件。
16. **RUN GSM ALGORITHM(运行GSM算法)**:执行GSM算法。
17. **SLEEP(休眠)**:使SIM卡进入休眠模式。
18. **GET RESPONSE(获取响应)**:获取命令的响应数据。
19. **TERMINAL PROFILE(终端配置文件)**:获取终端配置文件。
20. **ENVELOPE(信封)**:用于封装数据。
21. **FETCH(获取)**:从SIM卡获取数据。
22. **TERMINAL RESPONSE(终端响应)**:终端对SIM卡命令的响应。
每个命令都有其特定的编码和参数,以及可能的响应状态。这些命令用于执行各种操作,如文件选择、数据读写、安全验证等,以确保SIM卡与移动设备之间的有效通信和数据管理。
### 9. 命令描述
#### 9.1 映射原则
- **协议T=0的映射**:与TPDU层的映射遵循3GPP TS 31.101 [55]的规定,但有以下例外:
- 对于3GPP TS 31.101 [55]中定义的Case 2命令,使用过程字节'6C'的做法将被替换为使用'9F',如下面的case 2b所述。根据本文件,状态字节'9F'会触发GET RESPONSE命令,而3GPP TS 31.101 [55]中的过程字节'6C'会触发重新发出相同的命令。
- 对于3GPP TS 31.101 [55]中定义的Case 4命令,使用过程字节'61'的做法将被替换为使用'9F',如下面的case 4所述。根据本文件,状态字节'9F'会触发一个GET RESPONSE命令,该命令对ME是可选的,而3GPP TS 31.101 [55]中的过程字节'61'会根据GET RESPONSE命令后跟随的过程字节触发一个或多个GET RESPONSE命令。
- **GET RESPONSE命令的使用**:对于一些命令,T=0协议需要使用补充传输服务命令(GET RESPONSE)来获取输出数据。例如,SELECT功能需要以下两个命令:
- 第一个命令(SELECT)带有参数和作为功能输入的数据;
- 第二个命令(GET RESPONSE)带有指示返回数据长度的参数。
如果响应数据的长度事先未知,可以通过应用第一个命令并解释状态字来获得其正确的长度。SW1应为'9F',SW2应给出数据的总长度。在出现错误的情况下,可能会出现其他状态字。
#### 9.2 命令编码
- **CLA、INS和参数字节的编码**:遵循3GPP TS 31.101 [55]的规定,但本文件中的命令描述中有所限制。
- **命令的使用**:包括SELECT、STATUS、READ BINARY、UPDATE BINARY、READ RECORD、UPDATE RECORD、SEEK、INCREASE、VERIFY CHV、CHANGE CHV、DISABLE CHV、ENABLE CHV、UNBLOCK CHV、INVALIDATE、REHABILITATE、RUN GSM ALGORITHM、SLEEP、GET RESPONSE、TERMINAL PROFILE、ENVELOPE、FETCH和TERMINAL RESPONSE等。
#### 9.3 定义和编码
- **文件状态编码**:b8=0表示无效,b8=1表示未被无效。
- **访问条件编码**:包括ALWAYS、CHV1、CHV2、RFU、ADM、NEVER等状态。
- **文件类型编码**:'00'表示RFU,'01'表示MF,'02'表示DF,'04'表示EF。
- **CHV和UNBLOCK CHV的编码**:每个CHV使用8字节编码,仅使用十进制数字(0-9),最高位(bit 8)设置为零。
#### 9.4 命令与可能的状态响应
- **响应代码**:包括SW1和SW2,用于指示命令执行的结果,如正常结束('90' '00')、正常结束但有额外信息('91' 'XX')、命令被推迟('93' '00')、内存管理错误('92' 'XX')、引用管理错误('94' 'XX')、安全管理错误('98' 'XX')和应用程序独立错误('67' 'XX'、'6B' 'XX'、'6D' 'XX'、'6E' 'XX'、'6F' 'XX')。
这些原则和编码规则确保了SIM卡与移动设备之间的有效通信和数据交换。