学习笔记USIM卡与终端命令详解.docx
- 文档编号:11942801
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:71
- 大小:43.54KB
学习笔记USIM卡与终端命令详解.docx
《学习笔记USIM卡与终端命令详解.docx》由会员分享,可在线阅读,更多相关《学习笔记USIM卡与终端命令详解.docx(71页珍藏版)》请在冰点文库上搜索。
学习笔记USIM卡与终端命令详解
ETSITS102221UICC与终端接口;物理和逻辑特性
1USIM-ME命令结构
本章节描述了UICC(USIM)所支持的命令和响应APDU格式。
命令APDU结构
本章节描述了一个通用的应用协议数据单元(APDU)的基本结构。
APDU是指在传输层之上的应用层的数据(移动设备和卡之间)传输协议。
一个命令APDU包含数据包头和数据体。
见下表,其中,数据包头包含CLA字段,INS字段,P1和P2字段,其是命令APDU的必要组成部分。
数据体部分是可选部分,包括Lc,Data和Le。
表10.1:
命令APDU的内容
代码
长度
描述
类属
CLA
1
指令所属的类
包头
INS
1
指令代码
P1
1
参数1
P2
1
参数2
Lc
0or1
命令数据体包含的字节数
数据体
Data
Lc
命令数据体
Le
0or1
响应数据最大字节数
对于C-APDU结构的四种可能组合见下表:
表10.2:
C-APDU组合
组合
结构
1
CLAINSP1P2
2
CLAINSP1P2Le
3
CLAINSP1P2LcData
4
CLAINSP1P2LcDataLe
2.1.1Class字段编码
Class类字段的最高4位(b8-b5)的含义参见下表,位4和3表示安全数据标识,位2和1表示所用的逻辑通道,逻辑通道可以从0到3。
如果UICC卡支持逻辑通道机制,那么最大可获得的逻辑通道数标识在ATR的卡兼容性数据对象中,如果该数据对象不存在,则只支持b2=b1=0的数据通道。
一个运行在支持逻辑通道的UICC上的应用,应该要么在消息校验中,从签名的计算中去除类字节,或者将其设置为缺省值。
移动终端可以改变应用所使用的逻辑通道,与所使用的逻辑通道比较安全消息校验签名。
表10.3:
类字节编码
b8
b7
b6
b5
b4
b3
b2
b1
值
含义
0
0
0
0
-
-
-
-
'0X'
参见ISO/IEC 78164
1
0
1
0
-
-
-
-
'AX'
参见ISO/IEC 78164,除非特殊说明。
1
0
0
0
-
-
-
-
'8X'
参见ISO/IEC 78164 及本文档
-
-
-
-
X
X
-
-
-
安全消息标识(参见表10.4)
-
-
-
-
-
-
X
X
-
逻辑通道号
表10.4:
安全消息标识编码
b4
b3
含义
0
0
在终端和卡之间不使用SM
0
1
私有SM格式
1
x
按照ISO/IEC7816-4使用安全管理
1
0
不鉴别命令头
1
1
鉴别命令头
缺省情况下,卡不采用安全消息,除非由应用特别指出。
2.1.2指令字段编码
参见下表
表10.5:
电信应用的指令字节编码
命令
CLA
INS
命令APDUs
SELECTFILE
0X
'A4'
STATUS
8X
'F2'
READBINARY
0X
'B0'
UPDATEBINARY
0X
'D6'
READRECORD
0X
'B2'
UPDATERECORD
0X
'DC'
SEARCHRECORD
0X
'A2'
INCREASE
8X
'32'
VERIFY
0X
'20'
CHANGEPIN
0X
'24'
DISABLEPIN
0X
'26'
ENABLEPIN
0X
'28'
UNBLOCKPIN
0X
'2C'
DEACTIVATEFILE
0X
'04'
ACTIVATEFILE
0X
'44'
AUTHENTICATE
0X
'88'
GETCHALLENGE
0X
'84'
TERMINALPROFILE
80
'10'
ENVELOPE
80
'C2'
FETCH
80
'12'
TERMINALRESPONSE
80
'14'
MANAGECHANNEL
0X
'70'
传输导向APDUs
GETRESPONSE
0X
'C0'
2.1.3参数字段编码
参数字节P1和P2的使用和具体的命令有关。
如果参数未被使用,则设置未'00'。
具体编码方式参见具体的命令。
2.1.4Lc字段的编码
该字段表示数据的长度,其为可选项。
如果该字段存在,则在其后将跟着相应长度的数据字节。
移动设备可以发送1到255各字节。
2.1.5数据体编码
数据体的编码与具体的命令有关。
参见下面章节。
2.1.6Le字段的编码
该字段表示命令发送后所期望的最大返回数据长度,其为可选项。
如果该字段存在,则在响应数据中应包含相应长度的数据。
如果Le设置为'00',则表示移动终端期望最大256个字节的数据,则UICC可返回介于1到256之间长度的数据。
响应APDU结构
响应APDU包含一个可选的数据体和一个必须的状态字,该状态字由两个字节组成:
SW1和SW2。
数据长度由Lr指示。
参见下表
表10.6:
响应APDU内容
编码
长度
描述
Data
Lr
响应数据字串
SW1
1
状态字节1
SW2
1
状态字节2
2.1.7UICC返回的状态字
本章节描述了由UICC返回的各种状态字
正常过程
表10.7:
状态字编码-正常过程
SW1
SW2
描述
'90'
'00'
命令正常结束
'91'
'XX'
命令正常结束,并包含UICC所返回的数据的长度,用'XX'表示。
延迟过程
表10.8:
状态字编码-延迟过程
SW1
SW2
错误描述
'93'
'00'
STK忙,当前不能执行该命令。
警告
表10.9:
状态字编码-警告
SW1
SW2
描述
'62'
'00'
无参考信息,非易失内存没有改变
'62'
'81'
部分返回数据可能损坏
'62'
'82'
读取文件或记录Le长度时,已经到结尾
'62'
'83'
所选的文件已经无效
'63'
'CX'
在内部重试X次后,命令执行成功
-校验失败,还有'X'次可试(参见注释)
注释:
对于VERIFYPIN命令,SW1SW2指示命令成功执行,但是PIN不正确,并可以重试'X'次。
对于任何其它命令,表示“在内部重试X次后,命令执行成功”
执行错误
表10.10:
状态字编码-执行错误
SW1
SW2
描述
'64'
'00'
无参考信息,非易失内存没有改变
'65'
'00'
无参考信息,非易失内存改变
'65'
'81'
内存错误
检查错误
表10.11:
状态字编码-检查错误
SW1
SW2
描述
'67'
'00'
-长度错误
'67'
'XX'
除了SW2='00'的情况下,该状态字与命令相关
'6B'
'00'
错误的参数P1-P2
'6D'
'00'
指令字段不支持或错误
'6E'
'00'
类字段不支持
'6F'
'00'
技术问题,无精确诊断信息
'6F'
'XX'
-除了SW2='00'的情况下,该状态字与命令相关
CLA字段中的功能不支持
表10.12:
状态字编码-CLA字段中的功能不支持
SW1
SW2
描述
'68'
'00'
无参考信息
'68'
'81'
不支持逻辑通道
'68'
'82'
不支持安全消息
命令不允许执行
表10.13:
状态字编码-命令不允许执行
SW1
SW2
描述
'69'
'00'
无参考信息
'69'
'81'
命令与该文件结构不兼容
'69'
'82'
不满足安全条件
'69'
'83'
鉴权/PIN被禁止
'69'
'84'
引用的数据失效
'69'
'85'
使用条件不满足
'69'
'86'
命令不允许执行(没有选中EF)
错误的参数
表10.14:
状态字编码-错误的参数
SW1
SW2
描述
'6A'
'80'
数据体参数不正确
'6A'
'81'
功能不支持
'6A'
'82'
文件没有找到
'6A'
'83'
记录没有找到
'6A'
'86'
参数P1-P2不正确
'6A'
'87'
Lc与P1-P2不一致
'6A'
'88'
引用的数据没有找到
应用错误
表10.15:
状态字编码-应用错误
SW1
SW2
错误描述
'98'
'50'
INCREASE命令不能执行,已经达到最大值
'98'
'62'
鉴权错误(与应用相关)
注释:
应用可以定义自己的错误代码
2.1.8命令的状态字
下表表示对于每一个命令所可能返回的状态字(用*号注明)。
表10.16:
命令和状态字
StatusWords
SELECT
STATUS
UPDATEBINARY
UPDATERECORD
READBINARY
READRECORD
SEARCHRECORD
INCREASE
VERIFYPIN
CHANGEPIN
DISABLEPIN
ENABLEPIN
UNBLOCKPIN
DEACTIVATEFILE
ACTIVATEFILE
AUTHENTICATE
GETCHALLENGE
TERMINALPROFILE
ENVELOPE
FETCH
TERMINALRESPONSE
MANAGECHANNEL
9000
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
91XX
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
9300
*
9850
*
9862
*
6200
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6281
*
*
6282
*
*
*
6283
*
*
63CX
*
*
*
*
*
*
*
*
6400
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6500
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6581
*
*
*
*
*
*
*
*
*
6700
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
67XX–(参见注释)
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6800
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6881
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6882
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6981
*
*
*
*
*
*
6982
*
*
*
*
*
*
*
*
*
6983
*
*
*
*
*
6984
*
*
*
*
*
*
*
*
*
*
*
*
6985
*
6986
*
*
*
*
*
*
*
*
6A80
*
*
*
6A81
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6A82
*
*
*
*
*
*
*
*
*
6A83
*
*
*
6A86
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6A87
*
*
*
6A88
*
*
*
*
*
*
6B00
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6E00
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6F00
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6FXX–(参见注释)
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
注释:
除了SW2='00'的情况
只有对支持USAT的移动终端,UICC才可以返回状态字'91XX'和'9300'。
2.1.9逻辑通道
使用逻辑通道的命令,用CLA字段的最低两位表示逻辑通道号,范围从0到3。
逻辑通道号0是永久可以获得的。
使用MANAGECHANNEL命令打开和关闭一个逻辑通道,逻辑通道号由UICC分配。
2USIM-ME命令描述
通用命令
这里描述了应用说支持的各种命令和相应的响应状态字。
如果应用不支持某个命令,则应该返回相应的状态字。
2.1.10SELECT
功能描述
本命令用于选择一个文件,参见第8章。
在命令执行成功后,记录的指针并不确定。
输入:
-文件标识符,应用标识符,路径,或空参数。
输出:
-如果选择的文件是MF,DF或者ADF:
∙文件标识符,总文件尺寸,PIN的状态,PIN禁止/使用的标识,及其它应用私有数据。
-如果选择的文件是EF:
∙文件标识符,总文件尺寸,访问条件,无效/有效标识,EF的结构,记录的长度(对于线性定长文件线形定长文件和循环文件)
命令参数和数据
代码
值
CLA
参见第10章
INS
参见第10章
P1
选择控制,见下表
P2
选择控制,见下表
Lc
数据的长度或为空
Data
文件标识符,DF名称,或路径,与P1的值相关
Le
空,'00',或者期望的最大数据长度
表11.1:
P1参数配置
b8
b7
b6
b5
b4
b3
b2
b1
含义
0
0
0
0
0
0
0
0
选择DF,EF或MF,通过文件标识符
0
0
0
0
0
0
0
1
选择当前DF的子DF
0
0
0
0
0
0
1
1
选择当前DF的父DF
0
0
0
0
0
1
0
0
通过DF名称选择应用-参见注释
0
0
0
0
1
0
0
0
以MF为起始,路径选择
0
0
0
0
1
0
0
1
以当前DF为起始,路径选择
注释:
:
这里指选择应用
表11.2:
P2参数配置
b8
b7
b6
b5
b4
b3
b2
b1
含义
-
X
X
-
-
-
-
-
应用进程控制,参见注释2
-
0
0
-
-
-
-
-
-激活/重置
-
1
0
-
-
-
-
-
-终止
0
-
-
0
0
1
0
0
要求返回FCP模板
0
-
-
0
1
1
0
0
无数据返回
-
-
-
-
-
-
X
X
按照AID选择
-
-
-
-
-
-
0
0
-第一次或者仅一次出现的
-
-
-
-
-
-
0
1
-最后一个找到的
-
-
-
-
-
-
1
0
-下一个
-
-
-
-
-
-
1
1
-前一个
注释1:
有无FCI的返回取决与APDU的类型。
注释2:
只适用于当P1指示按照DFNAME的方式选择。
如果P1='00'而且数据字段为空,那么P2应该被设置为'0C'(“无数据返回”),那么MF被设置为当前的目录。
为了避免歧义,当P1='00'时,当以文件标识符作为参数选择文件的时候,按照以下的搜索顺序进行,
-当前DF的之间子文件;
-父DF;
-父DF的直接子文件。
当P1≠'04'时,P2的位b2和b1没有意义,应该设置为0。
当P1='04'时,一个右侧数据可截断的AID可以作为输入数据。
响应数据
字节
描述
长度
1
FCP模板标签='62'
1
2(to3)
FCP模板的长度
1或2
3or4toLr
FCP模板数据
X
响应的数据包含所选择文件的文件控制参数(FCP),其内容与所选择的文件有关。
参见下表。
终端可以忽略其不支持的标签数据。
对于MF,DF或ADF的响应数据
下表为对应于MF,DF,或者ADF的响应数据,
表11.3:
对于MF,DF或ADF的响应数据
描述
标签
章节
状态
文件描述符
'82'
11.1.1.4.3
M
文件标识符
'83'
11.1.1.4.4
C1
DF名称(AID)
'84'
11.1.1.4.5
C2
专有信息
'A5'
11.1.1.4.6
C3
生存周期
'8A'
11.1.1.4.9
M
安全特性
'86','8B','8C'or'AB'
11.1.1.4.7
C4
PIN状态模板DO
'C6'
11.1.1.4.10
M
总文件大小
'81'
11.1.1.4.2
O
M:
必须。
O:
可选。
C1:
对于DF或MF,必选。
对于ADF,可选。
C2:
DF名称只对ADF是必须的。
C3:
对于MF,专有信息是必须的,对于DF/ADF,是可选的。
C4:
有,且只有一个标签必须有。
对于EF的响应数据
下表为对应于EF的响应数据,
表11.4:
对于EF的响应数据
描述
标签
章节
状态
文件描述符
'82'
11.1.1.4.3
M
文件标识符
'83'
11.1.1.4.4
M
专有信息
'A5'
11.1.1.4.6
O
身存周期
'8A'
11.1.1.4.9
M
安全特性
'86','8B','8C',or'AB'
11.1.1.4.7
C1
文件大小
'80'
11.1.1.4.1
M
总文件大小
'81'
11.1.1.4.2
O
短标识符(SFI)
'88'
11.1.1.4.8
O
M:
必须。
O:
可选。
C1:
有,且只有一个标签必须有。
文件控制参数
文件大小
字节
描述
值
长度
1
标签
'80'
1
2
长度
'02'
1
3to4
文件中数据字节的长度,除去结构信息
2
文件的大小介于'0000'和'FFFF'之间。
对于二进制文件,其是文件数据体的长度。
对于线性定长文件线形定长文件或循环文件,其是记录长度乘以记录的个数。
总文件大小
字节
描述
值
长度
1
标签
'81'
1
2
长度
X,X≥2
1
3toX+2
文件中数据字节的长度,包含结构信息
X
注释:
如果文件是EF,那么X=2。
对于EF,文件大小范围从'0000'到'FFFF'。
对于EF,“总文件大小”代表数据的大小和结构信息。
对于DF,“总文件大小”代表所有EF文件和DF文件的“总文件大小”,再加上该DF下剩余空间的大小。
该DF文件本身的结构信息不包含在内。
文件描述符
字节
描述
状态
值
长度
1
标签
M
'82'
1
2
长度
M
'02'或'05'
1
3
文件描述符(见下表)
M
1
4
数据编码
M
'21'
1
5到6
记录长度
C
'0001'到'00FF'
2
7
记录个数
C
'01'到'FE'
1
M:
必须
C:
对于线形文件和循环文件是必须的,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 笔记 USIM 终端 命令 详解