APDU命令整理解读.docx
- 文档编号:23055687
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:21
- 大小:20.22KB
APDU命令整理解读.docx
《APDU命令整理解读.docx》由会员分享,可在线阅读,更多相关《APDU命令整理解读.docx(21页珍藏版)》请在冰豆网上搜索。
APDU命令整理解读
APDU命令整理解读
1.APDU命令集
1.1ISO智能卡通用APDU命令集(详细介绍:
ISO7816标准(中文版).pdf中75~100页)
编号指令名称CLAINS功能描述读出带有透明结构1READBINARY00/04B0
的EF内容的一部分
将二进制值写入EF2WRITEBINARYD0
启动使用在命令3UPDATEBINARY00/04D6
APDU中给出的位来更新早已呈现在EF中的位
顺序地从给出的偏4ERASEBINARY0E
移开始将EF的内容的一部分置为其逻辑擦除的状态
给出了EF的规定记5READRECORD00/04B2
录的内容或EF的一个记录开始部分的内容
WRITERECORD命令6WRITERECORDD2
报文启动下列操作之一:
——写一次记录;——对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“或”运算;
——对早已呈现在卡内的记录数据字节与在命令APDU中给出的记录数据字节进行逻辑“和”运算
启动在线性结构EF7APPENDRECORD00/04E2
的结束端添加记录或者在循环结构的EF内写记录号1
启动使用命令APDU8UPDATERECORD00/04DC
给出的位来更新特定记录
可在当前上下文(例9GETDATACA
如应用特定环境或当前DF)范围内用于检索一个原始数据对象或者包含在结构化数据对象中所包含的一个或多个数据对象可在当前上下文10PUTDATADA
(例如应用特定环境或当前DF)范围内用于存储一个原始数据对象或者包含在结构化数据对象中的一个或多个数据对象正确的存储功能(写一次和/或更新和/或添加)通过数据对象的定义和性质来引出
设置当前文件后续11SELECTFILE00A4
命令可以通过那个逻辑信道隐式地引用该当前文件
启动从接口设备送12VERIFY00/0420
入卡内的验证数据与卡内存储的引用数据(例如口令)进行比较
启动卡使用从接口13INTERNALAUTHENTICATE0088
设备发送来的询问数据和在卡内存储的相关秘密(例如密钥)来计算鉴别数据
当该相关秘密被连
接到MF时命令可以用来鉴别整个卡当该相关秘密被连接到另一个DF时命令可以用来鉴别那个DF
使用卡计算的结果14EXTERNALAUTHENTICATE0082
(是或否)有条件地来更新安全状态而该卡的计算是以该卡先前发出(例如通过GETCHALLENGE
命令)的询问在卡内存储的可能的秘密密钥以及接口设备发送的鉴别数据为基础的
要求发出一个询问15GETCHALLENGE0084
(例如随机数)以便用于安全相关的规程(例EXTERNAL
AUTHENTICATE命令)
打开和关闭逻辑信16MANAGECHANNEL70
道
用于从卡发送至接17GETRESPONSE00C0
口设备用可用的协议不能传送的那一些的APDU(或APDU的一部分)
用来发送那些不能18ENVOLOPE80C2
由有效协议来发送的APDU或APDU的一部分或任何数据串
表6ISO智能卡APDU命令集
命令格式:
1.READBINARY的命令报文:
CLA00/04
INSB0
P1-P2见表下面说明
Lc字段空
数据字段空
Le字段待读的字节数
说明:
如果在P1中b8=1,则P1的b7和b6置为0(RFU若干位)P1的b5至b1是短EF标识符并且P2是在从文件开始的数据单元中被读的第1个字节的偏移。
如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被读的第1个字节的偏移。
如果Le字段仅包含若干“0”则对于短的长度在不超过256的范围内或者对扩充长度在不超过65536的范围内所有字节(直到文件结束为止)应被读出。
READBINARY的响应报文:
数据字段读的字节(Le字节)
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
2.WRITEBINARY命令报文:
CLA00/04
INSD0
P1-P2见表下面说明
Lc字段后续数据字段的长度
数据字段待写的数据单元串
Le字段空
说明:
如果在P1中b8=1,则P1的b7和b6显域0(RFU若干位)P1的b5至b1是短EF标识符并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。
如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第1个字节的偏移。
WRITEBINARY的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
3.UPDATABINARY命令报文:
CLA00/04
INSD6
P1-P2见表下面说明
Lc字段后续数据字段的长度
数据字段待写的数据单元串
Le字段空
说明:
如果在P1中b8=1,则P1的b7和b6置为0(RFU若干位),P1的b5至b1是短EF标识
符,并且P2是在从文件开始的数据单元中被更新的第1个字节的偏移。
如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被更新的第1个字节的偏移。
UPDATEBINARY的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
4.ERASEBINARY命令报文:
CLA00/04
INS0E
P1-P2见表下面说明
Lc字段空或02
数据字段见下表说明
Le字段空
说明:
如果在P1中b8=1,则P1的b7和b6显示0(RFU若干位),P1的b5至b1是短EF标识符,并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。
如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第1个字节的偏移。
如果数据字段呈现,它编码不被擦除的第1个数据单元的偏移,该偏移应大于在P1—P2中编码的一个偏移,当数据字段为空时,该命令擦除到该文件的结束端。
ERASEBINARY的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
5.READRECORD命令报文:
CLA00/04
INSB2
P1-P2P1:
记录号或被读的第1个记录的标识符(‘00’表示当前记录);
P2:
引用控制
Lc字段空
数据字段空
Le字段被读字节数
READRECORD的响应报文:
数据字段Le字节
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
6.WRITERECORD命令报文:
CLA00/04
INSD2
P1-P2P1=‘00’指明当前记录
P1:
所指定的记录号
Lc字段后续数据字段的长度数据字段待写的记录
Le字段空
WRITERECORD的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
7.APPENDRECORD命令报文:
CLA00/04
INSE2
P1-P2只有P1‘00’是有效的
Lc字段后续数据字段的长度数据字段待添加的记录
Le字段空
APPENDRECORD的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
8.UPDATERECORD命令报文:
CLA00/04
INSDC
P1-P2P1=‘00’指明当前记录
P1:
所指定的记录号
Lc字段后续数据字段的长度数据字段待更新的记录
Le字段空
UPDATERECORD的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
9.GETDATA命令报文:
CLA00/04
INSCA
P1-P2见表1-9
Lc字段空数据字段空
Le字段在响应时期望的字节数
值含义
‘0000’至‘003FRFU(保留供将来使用)
‘0040’至‘00FF’P2中的BER-TLV标签(1个字节)
‘0100’至‘01FF’应用数据(专有编码)
‘0200’至‘02FF’P2中的简单TLV标签
‘0300’至‘3FFF’RFU(保留供将来使用)
‘0400’至‘FFFF’P1-P2中的BER-TLV标签(2个字节)
表1-9参数P1-P2的编码
GETDATA的响应报文:
数据字段Le字节
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
10.PUTDATA命令报文:
CLA00/04
INSDA
P1-P2见表1-9
Lc字段后续数据字段的长度数据字段待写的参数和数据
Le字段空
PUTDATA的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
11.SELECTFILE命令报文:
CLA00/04
INSA4
P1-P2P1:
选择控制;
P2:
选择选项
Lc字段空或后续数据字段的长度数据字段如果存在下列内容则按照P1-P2
——文件标识符
——MF的路径
——当前DF的路径
——DF名称
Le字段空或在响应时期望的数据最大长度
SELECTFILE的响应报文:
数据字段信息按照P2(至多Le个字节)
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
12.VERIFY命令报文:
CLA00/04
INS20
P1-P2P1:
‘00’(其他值为RFU)
P2:
引用数据的限定符
Lc字段空或后续数据字段的长度
数据字段空或验证数据
Le字段空
VERIFY的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
13.INTERNALAUTHENTICATE命令报文:
CLA00/04
INS88
P1-P2P1:
在卡内引用的算法
P2:
引用的秘钥
Lc字段后续数据字段的长度
数据字段鉴别相关的数据(例如询问)
Le字段在响应中期望的字节最大数
INTERNALAUTHENTICATE的响应报文:
数据字段鉴别相关的数据(例如对询问的响应)
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
14.EXTERNALAUTHENTICATE命令报文:
CLA00/04
INS82
P1-P2P1:
在卡内引用的算法
P2:
引用的秘钥
Lc字段空或后续数据字段的长度
数据字段空或鉴别相关的数据(例如对询问的响应)
Le字段空
说明:
P1=‘00’表示没有信息被给出,在发出命令之前引用的算法为已知,或在数据字段中提供。
P2=‘00’表示没有信息被给出,在发出命令之前引用的秘密为已知,或在数据字段中提供。
EXTERNALAUTHENTICATE的响应报文:
数据字段空
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
15.GETCHALLENGE命令报文:
CLA00/04
INS84
P1-P2‘0000’(其他值为RFU)
Lc字段空
数据字段空
Le字段在响应中期望的最大字节数
GETCHALLENGE的响应报文:
数据字段询问数据
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
16.MANAGECHANNEL命令报文:
CLA00/04
INS70
P1-P2P1=‘00’打开逻辑信道
P1=‘80’关闭逻辑信道(其他值为RFU)
P2:
‘00’‘01’‘02’‘03’(其他值为RFU)
Lc字段空
数据字段空
Le字段‘01’如果P1-P2=‘0000’;
空,如果P1-P2不等于‘0000’说明:
P1的位b8用来表示开放功能或关闭功能;如果b8为“0”,则MANAGECHANNEL应打开逻辑信道,如果b8为“1”,则MANAGECHANNEL应关闭逻辑信道。
MANAGECHANNEL的响应报文:
数据字段逻辑信道号,如果P1-P2=‘0000’;
空,如果P1-P2不等于‘0000’
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
17.GETRESPONSE命令报文:
CLA00/04
INSC0
P1-P2‘0000’(其他值为RFU)
Lc字段空
数据字段空
Le字段在响应中期望的数据最大长度
GETRESPONSE的响应报文:
数据字段按照Le的APDU(的一部分)
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
18.ENVELOPE命令报文:
CLA80
INSC2
P1-P2‘0000’(其他值为RFU)
Lc字段后续数据字段的长度
数据字段APDU(的一部分)
Le字段空或期望数据的长度
说明:
当对于发送数据串而言根据T=0来使用ENVELOPE命令时,在ENVELOPE命令ADPU中的空数据字段意味着“数据串的结束”.
ENVELOPE的响应报文:
数据字段空或按照Le的APDU(的一部分)
SW1-SW2状态字节:
用来说明指令执行是否出错,由于什么原因出错
1.2GSM11.11定制APDU(详细介绍:
GSM11.11协议—98年11月版第8章第30页至36页)
编号指令名称CLAINS功能描述1SELECTA0A4选择文件2STATUSA0F2用来给SIM一个机会发送
主动命令给ME3READBINARYA0B0从当前的EF中读一个字
节字符串4UPDATEBINARYA0D6用命令中的字节字符串
更新当前EF中的字节字
符串5READRECORDA0B2从固定长度记录EF或循
环EF中读一条完整的记
录6UPDATERECORDA0DC更新固定长度记录EF或
循环EF中读一条完整的
记录7SEEKA0A2从固定长度记录的EF文
件中查找给定的记录8INCREASEA032用来在循环EF中最后一
个被写入记录的后面增
加一条记录,如果最后被
写入记录位于循环EF尾,
则更新最后有一条记录
把从接口设备送入卡内9VERIFYCHVA020
的验证数据与卡内存储
的引用数据进行比较10CHANGECHVA024修改卡内存储的验证数
据
11DISABLECHVA026使验证数据不可读
12ENABLECHVA028使验证数据可被读
13UNBLOCKCHVA02C解锁由于3次输入错误验
证而被锁的验证数据
14INVALIDATEA004使当前EF文件无效
15REHABILITATEA044恢复无效的EF文件
16RUNGSMALGORITHMA088运行SIM卡内置算法
17SLEEPA0FA在SIMPhase2阶段已被
去除
18GETRESPONSEA0C0用来获得前一条命令的
响应数据,GETRESPONSE
只允许跟在RUNGSM
ALGORITHM,SEEK,SELECT
和INCREASE命令的后面
19TERMINALPROFILEA010ME用来把涉及到SAT的功
能传递给SIM卡
20ENVELOPEA0C2用来传递数据给SIM卡中
的SAT应用程序
21FETCHA012用来接收SIM卡传给ME的
主动命令内容
22TERMINALRESPONSEA014把ME执行完主动命令后
的信息返回给SIM卡
命令格式:
SELECT
COMMANDCLASSINSP1P2P3SELECTA0A4000002
STATUS
COMMANDCLASSINSP1P2P3STATUSA0F20000lgth
READBINARY
COMMANDCLASSINSP1P2P3READA0B0OffsethighOffsetlowlgthBINARY
UPDATEBINARY
COMMANDCLASSINSP1P2P3UPDATEA0D6OffsethighOffsetlowlgthBINARY
READRECORD
COMMANDCLASSINSP1P2P3
READA0B2Rec.NO.ModelgthRECORD
UPDATERECORD
COMMANDCLASSINSP1P2P3UPDATEA0DCRec.NO.ModelgthRECORD
SEEK
COMMANDCLASSINSP1P2P3
SEEKA0A200Type/Modelgth
INCREASE
COMMANDCLASSINSP1P2P3INCREASEA032000003
VERIFYCHV
COMMANDCLASSINSP1P2P3VERIFYA02000CHVNO.08
CHV
CHANGECHV
COMMANDCLASSINSP1P2P3CHANGEA02400CHVNO.10
CHV
DISABLECHV
COMMANDCLASSINSP1P2P3DISABLEA026000108
CHV
ENABLECHV
COMMANDCLASSINSP1P2P3ENABLEA028000108
CHV
UNBLOCKCHV
COMMANDCLASSINSP1P2P3UNBLOCKA02C00CHVNO.10
CHV
INVALIDATE
COMMANDCLASSINSP1P2P3INVALIDATEA004000000
REHABILITATE
COMMANDCLASSINSP1P2P3REHABILITATEA044000000
RUNGSMALGORITHM
COMMANDCLASSINSP1P2P3RUNGSMA088000010ALGORITHM
GETRESPONSE
COMMANDCLASSINSP1P2P3
GETA0C00000lgthRESPONSE
TERMINALPROFILE
COMMANDCLASSINSP1P2P3TERMINALA0100000lgthPROFILE
ENVELOPE
COMMANDCLASSINSP1P2P3ENVELOPEA0C20000lgth
FETCH
COMMANDCLASSINSP1P2P3FETCHA0120000lgth
TERMINALRESPONSE
COMMANDCLASSINSP1P2P3TERMINALA0140000lgthRESPONSE
注:
详细格式说明请参考GSM11.11协议—98年11月版第9章第40页至52页.
1.3ETSITS102.221协议—2007年7月版定制APDU
编号指令名称CLAINS功能描述1SELECT0X/4X/6XA4选择文件2STATUS8X/CX/EXF2用来给SIM一个机会
发送主动命令给ME3READBINARY0X/4X/6XB0从当前的EF中读一
个字节字符串
4UPDATEBINARY0X/4X/6XD6用命令中的字节字
符串更新当前EF中
的字节字符串5READRECORD0X/4X/6XB2从固定长度记录EF
或循环EF中读一条
完整的记录6UPDATERECORD0X/4X/6XDC更新固定长度记录
EF或循环EF中读一
条完整的记录7SEARCHRECORD0X/4X/6XA2从固定长度记录的
EF文件中查找给定
的记录8INCREASE8X/CX/EX32用来在循环EF中最
后一个被写入记录
的后面增加一条记
录,如果最后被写入
记录位于循环EF尾,
则更新最后有一条
记录9RETRIEVEDATA8X/CX/EXCB用来从当前的
BER-TLV结构的EF文
件中获得一个数据
对象10SETDATA8X/CX/EXDB用来在当前的
BER-TLV结构的EF文
件中创建一个新的
数据对象或替代一
个已经存在的数据
对象或删除一个数
据对象11VERIFYPIN0X/4X/6X20验证PIN码12CHANGEPIN0X/4X/6X24修改PIN码13DISABLEPIN0X/4X/6X26使PIN码不可访问14ENABLEPIN0X/4X/6X28使PIN码可被访问
15UNBLOCKPIN0X/4X/6X2C解锁由于3次输入错
误PIN值而被锁的
PIN码
16DEACTIVATEFILE0X/4X/6X04使当前EF文件无效
17ACTIVATEFILE0X/4X/6X44恢复无效的EF文件
使用从接口设备发18AUTHENTICATE0X/4X/6X88/89
送来的询问数据和
在卡内存储的相关
秘密(例如密钥)来
计算鉴别数据
19GETCHALLENGE0X/4X/6X84用来产生一个随机
数
20TERMINALCAPABILITY8X/CX/EXAA用来告诉SIM关于终
端的功能
21TERMINALPROFILE8010ME用来把涉及到SAT
的功能传递给SIM卡
22ENVELOPE80C2用来传递数据给SIM
卡中的SA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- APDU 命令 整理 解读