USIM卡文件系统详解.docx
《USIM卡文件系统详解.docx》由会员分享,可在线阅读,更多相关《USIM卡文件系统详解.docx(164页珍藏版)》请在冰豆网上搜索。
USIM卡文件系统详解
1应用及文件结构
本章描述了UICC的应用和逻辑结构。
1.1UICC应用结构
UICC中应用的组织结构如图8.1所示。
图8.1:
应用结构示例
本文档并未对应用的位置施加任何限制。
所有应用都由EFDIR中取得的应用标识符唯一地进行标识。
这些应用标识符被用来选择应用。
EFDIR,EFPL和EFICCID都是必需的,直接放置在主目录(MasterFile)下。
详细内容见本文档13章。
DFTELECOM是可选的。
当它存在时,存放在主目录中并使用保留的FID'7F10'。
DFTELECOM包括了应用的独立信息。
1.2文件类型
本章定义了适用于本文档内的应用的文件类型。
1.2.1专用目录文件
专用目录文件(DF)允许文件进行功能性分组。
它可以是专用目录文件和/或基本文件的上一级目录。
专用目录文件是通过文件标识符被引用的。
应用专用目录文件(ADF)是特殊的专用目录文件,包括应用所有专用目录文件和基本文件。
1.2.2基本文件
1.2.2.1二进制EF
由一系列字符串组成的,具有二进制结构的EF文件。
通过相对地址(偏移量),对特定的字节序列进行读写操作,地址由以字节为单位的启始地址及需要读写的字节个数组成。
二进制EF的第一字节的相对地址为‘0000’。
EF文件的数据长度在EF的SELECT响应中指明。
1.2.2.2线性定长EF
具有线性定长结构的EF是由一些长度固定且相等的一系列记录组成。
第一条记录的记录号是1。
记录的长度和其与记录数的乘积在EF的SELECT响应中指明。
Record1
Record2
:
:
Recordn
图8.2:
线性定长文件的结构
访问此类型EF中的记录的方法有若干种。
-记录号的绝对引用;
-当记录指针未被设定时,可以使用NEXT或PREVIOUS模式作用于第一或最后一条记录。
-当记录指针被设定时,可以对本记录、下一条记录(本记录指针置于最后一条记录处除外)或前一条记录(本记录指针置于第一条记录处除外)进行处理。
-使用模式查询识别某一条记录。
如果选定一条记录后的操作中途失败(如:
由于执行某命令不成功),该记录指针应保持在操作执行前设定的位置。
目前,本类文件中包含最多254条记录,并且,每条记录不能超过255个字节。
1.2.2.3循环记录EF
循环记录文件用来存储按时间序列排列的记录。
当所有的记录都已经被用于存储时,下一次数据的存储将覆盖最早的信息。
循环结构的EF由长度固定且相等的规定数量的记录组成。
在本记录结构中,最后一条记录(n)链接至第一条记录。
当记录指针被设置到最后一条记录n时,下一条记录为记录1。
与之相类似,当记录指针被设置到第一条记录时,前一条记录为记录n。
包含最新数据的最后更新的记录的记录号为1,包含最老数据的记录号为n。
Record1
Record2
:
:
Recordn
图8.3:
循环记录文件的结构
对于更新操作,仅有PREVIOUS记录可以被使用。
对于读取操作,寻址的方法可以是Next、Previous、Current和RecordNumber。
如果选定一条记录后的操作中途失败(如:
由于执行某命令不成功),则该记录指针应保持在操作执行前设定的位置。
目前,本类文件中包含最多254条记录,并且,每条记录不能超过254个字节。
1.3文件引用
文件标识符(FID)用于定位或标识一个特定的文件。
FID由两个字节组成,应以十六进制表示。
FID应遵从于以下条件:
-在有关文件建立时,应设定其FID;
-同一上级目录之下的两个文件的ID不相同;
-当前目录的子文件及当前目录的父文件及直接子目录不能具有相同的FID值
FID的串连接就是路径。
路径以MF或当前DF开始,以文件本身的标识符为结束。
如果当前DF的标识符未知,在路径开始处应使用保留值‘3FFF’。
FID的顺序总是从上级目录到子目录。
短文件标识符(SFI)占5个比特,范围是1到30。
同一上级目录下的任意两个文件的SFI不相同。
DF名称占1至16个字节。
DF的名称是AID,在同一张卡上,应是唯一的。
1.4选择文件的方法
在UICC激活(定义见6.1)并且返回复位应答(ATR)后,根目录被默认为当前目录。
利用“SELECT”功能,通过本章中定义的3个文件引用方法中的一种可选择每一个文件。
1.2.3通过标识符引用
选择一个DF、ADF和MF设置为当前目录,在这次选择之后,不存在当前EF。
选择EF设置当前EF,当前目录仍为DF、ADF或MF,这是EF的上级目录。
当前EF总是当前目录的一个子文件。
只有当前应用的ADF可以通过FID选择。
任何应用的专用命令都应仅在该应用是当前目录时才可操作。
下列文件可以从最后选中的文件通过文件ID标识符(FID)引用被选中。
-任何当前目录的直接子文件;
-任何当前DF的父目录的直接子目录;
-当前目录的父目录;
-当前DF或ADF;
-MF
图8.4是遵循当前文档的应用的逻辑结构实例。
图8.4:
逻辑结构实例
表8.1给出了使用FID引用时,遵循图8.4中所示逻辑结构的本文档定义的应用有效选择方式。
最后选定的文件的重新选择也是允许的,但并不显示。
表8.1:
文件选择
最后选定的文件
有效选择
MF
DF1
ADF1
DF3
DF4
DF5
EF1
EF2
EF3
EF4
EF5
EF6
EF7
DF1,EF1,EF-DIR
MF,EF2,
MF,DF3,DF4,EF3
MF,ADF1,DF4,DF5,EF4
MF,ADF1,DF3,EF5,EF6
MF,DF3,EF7
MF,DF1,EF-DIR
MF,DF1
MF,ADF1,DF3,DF4
MF,ADF1,DF3,DF5,
MF,DF4,ADF1,EF6
MF,DF4,ADF1,EF5
MF,DF3,DF5
1.2.4通过路径引用
一个文件,DF或EF,可以象8.3节中定义的那样通过路径引用进行选择。
表8.2中包括图8.4通过路径选择的实例。
本例中还考虑了当前应用(ADF1)此前已经通过DF名被选中的情况。
下表中的ADF1的FID为'7FFF'(见8.5)
表8.2:
通过路径选择文件的实例
最后选中的DF
路径的开始
选择实例
任意
MF
'EF1','EF-DIR','DF1','DF1||EF2'
任意
MF
'7FFF||DF3','7FFF||DF3||EF4',
'7FFF||DF3||DF5','7FFF||DF3||DF5||EF7'
'7FFF||DF4','7FFF||DF4||EF5',
'7FFF||DF4||EF6,
'7FFF||EF3'
DF1
CurrentDF
'EF2'
DF3
CurrentDF
'DF5','DF5||EF7','EF4'
DF4
CurrentDF
'EF5','EF6'
DF5
CurrentDF
'EF7'
在“从MF通过路径选择”中,终端不应在路径起始位置使用MF的文件标识(如:
‘3F00’)。
在“从MF通过路径选择”中,终端可以在路径开始处使用特定的FID'7FFF'(见8.5节)。
既在该逻辑通道中,路径开始于当前被激活应用的ADF。
在“从当前DF通过路径选择”中,终端不应在路径开始处使用特定文件ID'7FFF'。
在“从MF通过路径选择”或“从当前DF通过路径选择”中,终端不应使用当前DF(如:
‘3FFF’)的标识。
在“从MF通过路径选择”或“从当前DF通过路径选择”中,终端不应使用空数据字段。
1.2.5短文件标识符
DF中的任何EF可在DF或ADF级别通过以下命令并将短文件标识符(SFI)作为命令的一部分默认地实现对文件的选择,而无需使用SELECT命令。
-READBINARY
-UPDATEBINARY
-READRECORD
-UPDATERECORD
-INCREASE
-SEARCHRECORD
当文件的FCP包括带标识‘88’的TLVDO,SFI对特定文件的支持。
如果长度字节的值为0,表示该文件不支持短文件标识符。
如果文件的FCP中没有TLVDO字段,则表示该文件的FID的低5位数据为文件的SFI。
当READRECORD命令包含一个有效的SFI时,本文件被设为当前EF,且复位当前指针。
后续的记录通过READRECORD命令读入,且无需SFI。
当UPDATERECORD命令包括一个有效的SFI时,本文件被设为当前EF,且复位当前指针。
后续的记录通过updateRECORD命令更新,无需SFI。
当INCREASE命令包括一个有效的SFI时,本文件被设为当前EF,且复位当前指针。
后续的记录通过INCREASE命令增加,无需SFI。
当SEARCHRECORD命令包括一个有效的SFI时,本文件被设为当前EF,且复位当前指针。
后续的记录通过SEARCHRECORD命令搜索,无需SFI。
1.5应用的特性
应用既可以被显式引用,也可隐式引用。
应用可通过带AID的显式选择激活。
这会将应用的ADF设为当前ADF。
当前ADF可通过带隐式引用值‘7FFF’的FID引用。
1.2.6显式应用选择
1.2.6.1用DF名选择
一个通过AID在UICC中被描述的可选应用,应通过一个以1到16字节方式编码的DF名称来引用。
每个名称在一个UICC中都应是唯一的。
DF名称可被用在SELECT命令中,选择一个可选应用。
1.2.6.2用局部DF名称选择
一个可选应用也可通过局部DF名称的方式进行选择:
P1=‘04’,P2参数必选符合ISO/IEC7816-4中的定义first、next、previous或last方式。
在这种情况下,DF的名称被右截短。
若在卡上存在几个AID中起始字节内容相同的应用,选中的应用则取决于P2中指定的值。
即使卡片正处于“previous”对话中,如果P2中指定为“last”选项,则选中的应用就是与局部DF名称相匹配的最后被激活的应用。
利用局部DF名称选择应用对于单一应用卡片为可选项,对于多应用卡为必选项。
卡片应在由ISO/IEC7816-4中规定之ATR历史字节的压缩-TLV对象定义的“卡片服务参数”以及“卡片性能”中指明对这一性能的支持。
对next、previous和first的解释应在应用中指明。
用这些参数选中的应用与SELECT命令中提供的局部DF名次相匹配。
如果UICC不支持局部DF名称的选择,UICC应作出适当的响应(如:
命令参数不支持‘6A86’)。
1.2.7应用对话的激活
当终端发送一个带应用AID且在命令参数中指明应用应被激活的SELECT命令时,应用对话被初始化。
在激活后,应用可能会需要一个初始化进程。
该过程不在文档范围内,但应在应用规范中描述。
本进程用来为终端和UICC中的应用提供一个定义良好的状态。
在选中应用后,UICC评估应用的安全环境。
SE依应用的校验需求(见表9.1)设定。
应用PIN的校验状态依应用指定的应用对话激活进程更新。
终端会向UICC发送一个特定的STATUS命令指出应用的初始化进程已被成功执行。
在一个假定的逻辑通道上,仅允许存在一个活动的可选应用对话。
因此,为激活一个新的可选应用对话与原有的对话并行,必须打开一个新的逻辑通道。
可选的应用对话可以在几个通道对话中发生。
1.2.8应用对话的终止
在应用终止之前,应用可以执行一个对话终止进程。
本进程应在应用规范中描述。
在进程执行之前,终端应向UICC发送一个特定的STATUS命令指明应用的终止进程将启动。
在终止进程执行后,终端及应用将处于一个定义良好的状态。
如果下列状况在任何一个应用对话被激活的逻辑通道上发生,应用对话将被终止:
-隐含地;一个的带有不同于当前活动应用AID的的SELECT命令(通过DFNAME)被UICC执行,且命令参数中表明该应用应被激活。
-明确地;一个的带有当前活动应用AID的的SELECT命令(通过DFNAME)被UICC执行,且命令参数中表明该应用应被终止。
-若逻辑通道被关闭。
当终端对UICC进行复位时,应用对话也被终止。
应用PIN的校验状态会被应用对话终止程序依据程序中所描述的方式来进行更新。
1.2.9应用对话的复位
如果一个的带有当前活动应用AID的的SELECT命令(通过DFNAME)被UICC执行,且命令参数中表明该应用应被激活。
则应用对话被复位。
复位使得应用对话的激活进程被初始化。
应用的安全状态依应用指明的应用对话激活进程更新。
1.2.10GSM/USIM应用交互作用和限制
USIM对话的激活排斥GSM对话的激活。
即指出一旦USIM应用对话被激活,带有字节置为‘A0’的Class的发送给UICC的命令将会把SW1SW2'6E 00'(指令不支持)返回给终端。
类似地,GSM的激活排斥USIM对话的激活。
一次最多仅有一个USIM对话可被激活。
1.6文件ID的保留
以下FID被本规范保留:
ADF:
-操作用途:
'7FFF'
专用目录:
-管理用途
'7F4X','5F1X','5F2X'.
-操作用途:
'7F10'(DFTELECOM),'7F20'(DFGSM),'7F21'(DFDCS1800),'7F22'(DFIS-41),'7F23'(DFFP-CTS),'7F24'(DFTIA/EIA-136'),'7F25'(DFTIA/EIA-95')and'7F2X',whereXrangesfrom'6'to'F'.
注释:
'7F80'(DFPDC)用于日本PDC规范。
'7F90'(DFTETRA)用于TETRA规范。
'7F31'(DFiDEN)用于iDEN规范。
-‘7F10’下保留的文件ID:
'5F50'(DFGRAPHICS);'5F3A'(DFPHONEBOOK).
基本文件:
-管理用途:
'6FXX'intheDFs'7F4X';'4FXX'intheDFs'5F1X','5F2X'.
'6F1X'intheDFs'7F10','7F20','7F21';
'4F1X'inall2ndlevelDFs.
'2FEX'intheMF'3F00';
DF'7F4X'中的'6FXX';DF'5F1X','5F2X'中的'4FXX';
DF'7F10','7F20','7F21'中的'6F1X';
所有2级DF中的'4F1X';
MF'3F00'中的'2FEX';
-操作用途:
'6F2X','6F3X','6F4X'in'7F10'and'7F2X';
'4FYX',whereYrangesfrom'2'to'F'inall2ndlevelDFs.
'2F05','2F06'and'2F1X'intheMF'3F00'.
'7F10'和'7F2X'中的'6F2X','6F3X''6F4X';
当Y的范围在2和F之间时,所有2级DF中的'4FYX';
MF'3F00'中的'2F05','2F06'和'2F1X'。
-ISO/IEC7816-4的操作用途:
[13]:
'2F00'EFDIR,'2F01'EFATRintheMF'3F00'.
MF'3F00'中的'2F00'EFDIR,'2F01'EFATR。
除特殊注明外,X在以上各种情况中的取值范围为0到F。
1.7逻辑通道
ISO/IEC7816-4中定义了逻辑通道。
除逻辑通道0外,最多还可以有3条逻辑通道。
通道0总是可用,并通过卡片对话打开。
可以从UICC的ATR中判断UICC对逻辑通道的支持与否、分派方式、支持的最大通道数等性能:
-至少除基本通道外的一个通道;
-和由UICC指定的逻辑通道数量。
(一个逻辑通道上的命令相互依赖是独立的,区别于另一个逻辑通道上的命令相互依赖。
)
在逻辑通道间不存在命令及其响应的交叉,在UICC截获到某条APDU指令并返回收到的信号起到UICC返回该指令APDU返回值止,仅有一个逻辑通道是激活的。
为了使几个逻辑通道在同一时间都可以被访问,特定的文件(EF、DF、ADF)应在其文件描述符中被设置为“可共享”。
在每个打开的逻辑通道中,文件访问都应被独立地管理。
特别是一个基于记录类型的文件在每一个打开的逻辑通道上都应有不同的记录指针。
当从不同的逻辑通道访问相同的文件时,应用应对保持数据一致性负责(在卡片和终端中)。
注释:
对循环记录文件应给予特别的关注,如:
当文件被读入一个通道且在另一通道中更新时。
逻辑通道由MANAGECHANNEL命令打开,其中,卡片分配一个通道号,并在响应中返回。
逻辑通道将保持打开状态直到它被明确地以MANAGECHANNEL命令关闭,或者UICC失活。
从基本通道执行打开函数时,成功打开后,MF应被隐式选中作为当前的DF。
从非基本通道执行打开函数时,成功打开后,发出命令的逻辑通道的当前DF应被选为当前DF。
在以上两种情况下,在新的逻辑通道中都没有选定当前EF。
MANAGECHANNEL命令的参数
新通道的特性
当前DF
当前活动应用的ADF(通过特定的'7FFF'file-id引用)
CLA=00(从基本通道)
MF
未定义
CLA00(从非基本通道)
执行打开通道命令的DF与当前DF相同
执行打开通道命令的逻辑通道中活动应用的ADF
一旦新通道打开,每个逻辑通道中的当前DF和当前文件独立。
若未共享的DF或ADF上执行了MANAGECHANNEL命令,卡片应响应一个适当的错误信息。
该响应应指出不允许执行该命令。
没有新的通道打开。
2文件内容
本章将详细说明3G对话过程中的基本文件,定义基本文件的访问条件、数据项及编码方式。
数据项是基本文件的一部分,它代表一个完整的逻辑实体,例如,在一个EFADN记录中的α标识符。
对无指配值的或在3G对话期间被ME清除的EF或数据项,应将其字节设为‘FF’。
在管理阶段之后,所有的数据项应该有一个确定值或所有字节设为‘FF’。
若数据项在3G对话期间被其他3G对话分配的值所“删除”,则采用后分配的值,这时数据项并不是“无指配值”,例如对于在EFLOCI中删除的LAI,最后一个字节取值‘FE’。
一个与属性相关联的文件,依赖于它的文件类型,这个文件类型可以指示数据是如何被访问的,比如,文件的大小,记录的长度等等。
虽然在本文档中指明一些文件和储存于一个文件中的数据项有一个固定的长度,当读取这些结构的时候,终端获取的数据长度是来源于文件信息提供的属性的数据项的长度,而没有使用本文档规定的固定长度。
尽管终端能够读取整个文件结构,但是它只能使用可以被终端识别的数据项里的元素。
EF可分为必选(M)和可选(O)。
可选的EF文件尺寸可为0。
所有尺寸大于0的完整的EF包括全部的必选数据项。
可选数据项可用‘F’填满,或当处于文件末尾时,可选数据项可以不存在。
当采用ITU-TT.50中建议的编码规则时,所有字节的B8均设为0。
图5.1和图5.2列出了所有文件,见5.8节。
2.1必选文件列表
文件标识符
文件类型
EFDIR
线性定长文件
EFICCID
二进制文件
EFPL
二进制文件
EFLI
二进制文件
EFIMSI
二进制文件
EFKeys
二进制文件
EFKeysPS
二进制文件
EFPLMNwAcT
二进制文件
EFHPLMN
二进制文件
EFACMmax
二进制文件
EFUST
二进制文件
EFACM
循环文件
EFGID1
二进制文件
EFGID2
二进制文件
EFSPN
二进制文件
EFPUCT
二进制文件
EFCBMI
二进制文件
EFACC
二进制文件
EFFPLMN
二进制文件
EFLOCI
二进制文件
EFAD
二进制文件
EFCBMID
二进制文件
EFECC
线性定长文件
EFCBMIR
二进制文件
EFPSLOCI
二进制文件
EFFDN
线性定长文件
EFSMS
线性定长文件
EFSMSP
线性定长文件
EFSMSS
二进制文件
EFSMSR
线性定长文件
EFICI
循环文件
EFOCI
循环文件
EFICT
循环文件
EFOCT
循环文件
EFOCT
二进制文件
EFEXT5
线性定长文件
EFCCP2
线性定长文件
EFSTART-HFN
二进制文件
EFTHRESHOLD
二进制文件
EFOPLMNwACT
二进制文件
EFHPLMNwAcT
二进制文件
EFARR
线形定长文件
EFNETPAR
二进制文件
EFEHPLMN
线形定长文件
EFQOSP
线形定长文件
EFSML
二进制文件
EFKc
二进制文件
EFKcGPRS
二进制文件
2.2在MF层下的基本文件内容
在MF层上有四个EF文件,在TS 31.101[11]对这些EF有所规定。
1.2.11EFDIR
该EF包含应用标识符(AID)和应用标签作为必选项。
USIM应用只能通过AID选择方式进行选择。
对于应用选择EFDIR入口不包括路径对象。
建议应用标签内容长度不超过32字节。
内容:
—参见TS31.101[11]
编码:
—参见TS31.101[11]
1.2.12EFICCID(ICC识别)
该EF为ICC卡提供一个唯一的识别号。
内容:
—参见TS31.101[11]
编码:
—参见TS31.101[11]
1.2.13EFPL(首选语言)
该EF包括n种语言的编码。
这些信息由用户/运营商确定,它按优先权的顺序定义了首选语言。
这些信息被终端用于MMI的目的。
这些信息也可被用于首选语言的小区广播信息的显示,描述如下。
当CB信息标识能力可用时,ME只选择那些使用的语言相应于这个EF或者EFLI,(这些EF都应该曾经被使用过)的路径的CB消息。
CB消息的语言由接CB消息的数据编码表(参见TS23.038[5])定义,如果需要核对EFPL里的语言编码,ME应该将小区广播服务对应的数据编码表里语言编码转换成ISO639[19]里定义的语言编码。
内容:
—参见TS31.101[11]
编码:
—参见TS31.101[11]
1.2.14EFARR(访问规则索引)
该EF包括在MF下的基本文件的访问规则索引。
对于USIM应用,该文件是必选的。
内容:
—参见TS31.101[11]
编码:
—参见TS31.101[11]
2.3在USIMADF层下的文件内容
USIMAD