APDU命令整理.doc

上传人:scccc 文档编号:12460548 上传时间:2021-12-04 格式:DOC 页数:17 大小:387KB
返回 下载 相关 举报
APDU命令整理.doc_第1页
第1页 / 共17页
APDU命令整理.doc_第2页
第2页 / 共17页
APDU命令整理.doc_第3页
第3页 / 共17页
APDU命令整理.doc_第4页
第4页 / 共17页
APDU命令整理.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《APDU命令整理.doc》由会员分享,可在线阅读,更多相关《APDU命令整理.doc(17页珍藏版)》请在三一文库上搜索。

1、1.APDU命令集1.1 ISO智能卡通用APDU命令集(详细介绍:ISO 7816标准 仲文版).pdf中75100页)编号指令名称CLAINS功能描述1READ BINARY00/04B0读出带有透明结构 的EF内容的一部分2WRITE BINARYD0将二进制值写入EF3UPDATE BINARY00/04D6启动使用在命令 APD中给出的位来 更新早已呈现在EF 中的位4ERASE BINARY0E顺序地从给出的偏 移开始将EF勺内容 的一部分置为其 逻辑擦除的状态5READ RECORD00/04B2给出了 EF勺规定记 录的内容或EF勺一 个记录开始部分的 内容6WRITE REC

2、ORDD2WRITE RECORD令 报文启动下列操作 之一:写一次记录; 对早已呈现在 卡内的记录数据字 节与在命令APD!中 给出的记录数据字 节进行逻辑或”运 算;对早已呈现在 卡内的记录数据字 节与在命令APD!中 给出的记录数据字 节进行逻辑和”运 算7APPEND RECORD00/04E2启动在线性结构EF 的结束端添加记录 或者在循环结 构的EF内写记录号18UPDATE RECORD00/04DC启动使用命令APDU 给出的位来更新特 定记录9GET DATACA可在当前上下文(例 如应用特定环境或当 前DF)范围内用于检 索一个原始数据对象 或者包含在结构化数 据对象中所包

3、含的一 个或多个数据对象10PUT DATADA可在当前上下文 (例如应用特定环 境或当前DF)范围 内用于存储一个原 始数据对象或者包 含在结构化数据对 象中的一个或多个 数据对象正确的 存储功能(写一次 和/或更新和/或添 加)通过数据对象 的定义和性质来引 出11SELECT FILE00A4设置当前文件后续 命令可以通过那个 逻辑信道隐式地引 用该当前文件12VERIFY00/0420启动从接口设备送 入卡内的验证数据 与卡内存储的引用 数据(例如口令)进 行比较13INTERNAL AUTHENTICATE0088启动卡使用从接口 设备发送来的询冋 数据和在卡内存储 的相关秘密(例如

4、 密钥)来计算鉴别 数据当该相关秘密被连接到MF寸命令可以 用来鉴别整个卡 当该相关秘密被连 接到另一个DF寸命 令可以用来鉴别那 个DF14EXTERNAL AUTHENTICATE0082使用卡计算的结果 (是或否)有条件地 来更新安全状态而 该卡的计算是以该 卡先前发出(例如 通过 GETCHALLENG 命令)的询冋在卡 内存储的可能的秘 密密钥以及接口设 备发送的鉴别数据 为基础的15GET CHALLENGE0084要求发出一个询问(例如随机数)以便 用于安全相关的规程(例 EXTERNAL AUTHENTICATED 令)16MANAGE CHANNEL70打开和关闭逻辑信 道1

5、7GET RESPONSE00CO用于从卡发送至接 口设备用可用的协 议不能传送的那一些的APDU或APDU 的一部分)18ENVOLOPE80C2用来发送那些不能 由有效协议来发送 的 APDU或 APD的 一部分或任何数据 串表6 ISO智能卡APDU命令集命令格式:1.READ BINARY勺命令报文:CLA00/04INSB0P1-P2见表下面说明Lc字段空数据字段空Le字段待读的字节数说明:如果在P1中b8=1,则P1的b7和b6置为0(RFU若干位)P1的b5至bl是短EF标识 符并且P2是在从文件开始的数据单元中被读的第1个字节的偏移。如果在P1中b8=0,则P1_P2是在从文件

6、开始的数据单元中被读的第1个字节的偏移。如果Le字段仅包含若干“ 0”则对于短的长度在不超过256的范围内或者对扩充长度在不超过65536的范围内所有字节(直到文件结束为止)应被读出。READ BINARY勺响应报文:数据字段读的字节(Le字节)SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错2.WRITE BINARY命 令报文:CLA00/04INSD0P1-P2见表下面说明Lc字段后续数据字段的长度数据字段待写的数据单元串Le字段空说明:如果在P1中b8=1,则P1的b7和b6显域0(RFU若干位)P1的b5至b1是短EF标识 符并且P2是在从文件开始的数据单元中被写的

7、第1个字节的偏移。如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第 1个字节的 偏移。WRITE BINARY 的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错3.UPDATA BINARY 命令报文:CLA00/04INSD6P1-P2见表下面说明Lc字段后续数据字段的长度数据字段待写的数据单元串Le字段空说明:如果在P1中b8=1,则P1的b7和b6置为0(RFU若干位),P1的b5至bl是短EF标识 符,并且P2是在从文件开始的数据单元中被更新的第1个字节的偏移。如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被更新

8、的第1个字节的偏移。UPDATE BINARY 的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错4 .ERASE BINAR 丫命令报文:CLA00/04INS0EP1-P2见表下面说明Lc字段空或02数据字段见下表说明Le字段空说明:如果在P1中b8=1,则P1的b7和b6显示0(RFU若干位),P1的b5至bl是短EF标识 符,并且P2是在从文件开始的数据单元中被写的第1个字节的偏移。如果在P1中b8=0,则P1_P2是在从文件开始的数据单元中被写的第 1个字节的 偏移。如果数据字段呈现,它编码不被擦除的第1个数据单元的偏移,该偏移应大于在P1 P2

9、中编码的一个偏移,当数据字段为空时,该命令擦除到该文件的结 束端。ERASE BINARY 的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错5.READ RECOR命 令报文:CLA00/04INSB2P1-P2P1 :记录号或被读的第1个记录的标识符(00 '表示当前记录);P2:引用控制Lc字段空数据字段空Le字段被读字节数READ RECORD 的响应报文:数据字段Le字节SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错6.WRITE RECOR命 令报文:CLA00/04INSD2P1-P2P1= 00'指明当前

10、记录P1:所指定的记录号Lc字段后续数据字段的长度数据字段待写的记录Le字段空WRITE RECORD 的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错7.APPEND RECORD 令报文:CLA00/04INSE2P1-P2只有P1 00'是有效的Lc字段后续数据字段的长度数据字段待添加的记录Le字段空APPEND RECORD 的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错8.UPDATE RECOF命 令报文:CLA00/04INSDCP1-P2P1= 00'指明当前记录P1:所指定的记录

11、号Lc字段后续数据字段的长度数据字段待更新的记录Le字段空UPDATE RECORD 的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错9.GET DATA命 令报文:CLA00/04INSCAP1-P2见表1-9Lc字段空数据字段空Le字段在响应时期望的字节数值含义'0000'至003FRFU(保留供将来使用)'0040 '至'00FF'P2中的BER-TLX标签(1个字节)'0100 '至'01FF'应用数据(专有编码)'0200 '至'02FF&#

12、39;P2中的简单TLVV标签'0300 '至'3FFF'RFU(保留供将来使用)'0400 '至'FFFF'P1-P2中的BER-TLX标签(2个字节)表1-9参数P1-P2的编码GET DATA的响应报文:数据字段Le字节SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错10.PUT DATA命令报文:CLA00/04INSDAP1-P2见表1-9Lc字段后续数据字段的长度数据字段待写的参数和数据Le字段空PUT DATA的响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错1

13、1.SELECT FILE 命令报文:CLA00/04INSA4P1-P2P1:选择控制;P2:选择选项Lc字段空或后续数据字段的长度数据字段如果存在下列内容则按照 P1-P2文件标识符M的路径当前DF的路径DF名称Le字段空或在响应时期望的数据最大长度SELECT FILE的响应报文:数据字段信息按照P2(至多Le个字节)SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错12.VERIFY命令报文:CLA00/04INS20P1-P2P1: 00'(其他值为RFU)P2:引用数据的限定符Lc字段空或后续数据字段的长度数据字段空或验证数据Le字段空VERIFY的响应报文

14、:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错13.IN TERNAL AUTHENTICATE令报文:CLA00/04INS88P1-P2P1:在卡内引用的算法P2:引用的秘钥Lc字段后续数据字段的长度数据字段鉴别相关的数据(例如询问)Le字段在响应中期望的字节最大数INTERNAL AUTHENTICATE 响应报文:数据字段鉴别相关的数据(例如对询问的响应)SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错14. EXTERNAL AUTHENTICATE:令报文:CLA00/04INS82P1-P2P1:在卡内引用的算法P2:引用的秘钥L

15、c字段空或后续数据字段的长度数据字段空或鉴别相关的数据(例如对询问的响应)Le字段空说明:P1= 00 '表示没有信息被给出,在发出命令之前引用的算法为已知,或在数据 字段中提供。P2= 00 '表示没有信息被给出,在发出命令之前引用的秘密为已知,或在数据 字段中提供。EXTERNAL AUTHENTICATE 响应报文:数据字段空SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错15.GET CHALLENG命 令报文:CLA00/04INS84P1-P2 0000'(其他值为RFU)Lc字段空数据字段空Le字段在响应中期望的最大字节数GET CHAL

16、LENG的 响应报文:数据字段询问数据SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错16.MANAGE CHANNEL令 报文:CLA00/04INS70P1-P2P仁 00'打开逻辑信道P1= 80'关闭逻辑信道(其他值为RFU)P2: ' 00'' 01'' 02'' 03'(其他值为 RFU)Lc字段空数据字段空Le字段'01' 如果 P1-P2= ' 0000'空,如果P1-P2不等于0000'说明:P1的位b8用来表示开放功能或关闭功能 ;如果b

17、8为“ 0” ,则MANAGE CHANN应LT 开逻辑信道,如果b8为“ 1”,则MANAGE CHANN应关闭逻辑信道。MANAGE CHANN的响应报文:数据字段逻辑信道号,如果 P1-P2= 0000 ' 空,如果P1-P2不等于0000'SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错17.GET RESPONS命令报文:CLA00/04INSC0P1-P2 0000'(其他值为RFU)Lc字段空数据字段空Le字段在响应中期望的数据最大长度GET RESPONSE 的响应报文:数据字段按照Le的APDU的一部分)SW1-SW2状态字节:用来说

18、明指令执行是否出错,由于什么原因出错18.ENVELOP命令报文:CLA80INSC2P1-P2 0000'(其他值为RFU)Lc字段后续数据字段的长度数据字段APDU的部分)Le字段空或期望数据的长度说明:当对于发送数据串而言根据 T=0来使用ENVELOPE令时,在ENVELOP命令 ADPU中的空数据字段意味着“数据串的结束”ENVELOPE的响应报文:数据字段空或按照Le的APDU的部分)SW1-SW2状态字节:用来说明指令执行是否出错,由于什么原因出错1.2 GSM 11.11定制APDU (详细介绍:GSM 11.11协议一98年11月版 第8章 第30页至36页)编号指令

19、名称CLAINS功能描述1SELECTA0A4选择文件2STATUSA0F2用来给SIM个机会发送 主动命令给ME3READ BINARYA0BO从当前的EF中读一个字节字符串4UPDATE BINARYA0D6用命令中的字节字符串 更新当前EF中的字节字 符串5READ RECORDA0B2从固定长度记录EF或循环EF中读一条完整的记 录6UPDATE RECORDA0DC更新固疋长度记录EF或 循环EF中读一条完整的记录7SEEKA0A2从固定长度记录的EF文件中查找给定的记录8INCREASEA032用来在循环EF中最后 个被写入记录的后面增 加一条记录,如果最后被 写入记录位于循环EF

20、尾, 则更新最后有一条记录9VERIFY CHVA020把从接口设备送入卡内 的验证数据与卡内存储 的引用数据进行比较10CHANGE CHVA024修改卡内存储的验证数据11DISABLE CHVA026使验证数据不可读12ENABLE CHVA028使验证数据可被读13UNBLOCK CHVA02C解锁由于3次输入错误验 证而被锁的验证数据14INVALIDATEA004使当前EF文件无效15REHABILITATEA044恢复无效的EF文件16RUN GSM ALGORITHMA088运行SIM卡内置算法17SLEEPA0FA在SIM Phase 2阶段已被去除18GET RESPONS

21、EA0C0用来获得前一条命令的响应数据,GETRESPONS 只允许跟在RUN GSM ALGORITHM,SEEK,SELEC 和INCREASER令的后面19TERMINAL PROFILEAO10M囲来把涉及到SAT勺功 能传递给SIM卡20ENVELOPEAOC2用来传递数据给SIM卡中 的SAT应用程序21FETCHAO12用来接收SIM卡传给ME的 主动命令内容22TERMINAL RESPONSEAO14把M助行完主动命令后 的信息返回给SIM卡命令格式SELECTCOMMANDCLASSINSP1P2P3SELECTA0A4000002STATUSCOMMANDCLASSINS

22、P1P2P3STATUSA0F20000igthREAD BINARYCOMMANDCLASSINSP1P2P3READBINARYA0B0Offset highOffset lowlgthUPDATE BINARYCOMMANDCLASSINSP1P2P3UPDATEBINARYA0D6Offset highOffset lowlgthREAD RECORDCOMMANDCLASSINSP1P2P3READRECORDA0B2Rec.NO.ModelgthUPDATE RECORDCOMMANDCLASSINSP1P2P3UPDATERECORDA0DCRec.NO.ModelgthSEEK

23、COMMANDCLASSINSP1P2P3SEEKAOA200Type/ModeigthINCREASECOMMANDCLASSINSP1P2P3INCREASEA032000003VERIFY CHVCOMMANDCLASSINSP1P2P3VERIFYCHVA02000CHV NO.08CHANGE CHVCOMMANDCLASSINSP1P2P3CHANGECHVA02400CHV NO.10DISABLE CHVCOMMANDCLASSINSP1P2P3DISABLECHVA026000108ENABLE CHVCOMMANDCLASSINSP1P2P3ENABLECHVA028000

24、108UNBLOCK CHVCOMMANDCLASSINSP1P2P3UNBLOCKCHVA02C00CHV NO.10INV ALIDATECOMMANDCLASSINSP1P2P3INVALIDATEA004000000REHABILITATECOMMANDCLASSINSP1P2P3REHABILITATEA044000000RUN GSM ALGORITHMCOMMANDCLASSINSP1P2P3RUN GSMA088000010ALGORITHMGET RESPONSECOMMANDCLASSINSP1P2P3GETRESPONSEA0C00000igthTERMINAL PROF

25、ILECOMMANDCLASSINSP1P2P3TERMINALPROFILEA0100000lgthENVELOPECOMMANDCLASSINSP1P2P3ENVELOPEA0C20000lgthFETCHCOMMANDCLASSINSP1P2P3FETCHA0120000lgthTERMINAL RESPONSECOMMANDCLASSINSP1P2P3TERMINALRESPONSEA0140000lgth注:详细格式说明请参考GSM 11.11协议一98年11月版 第9章第40页至52页.1.3 ETSI TS 102.221 协议一2007 年 7 月版 定制 APDU编号指令名称

26、CLAINS功能描述1SELECT0X/4X/6XA4选择文件2STATUS8X/CX/EXF2用来给SIM一个机会发送主动命令给ME3READ BINARY0X/4X/6XB0从当前的EF中读一 个字节字符串4UPDATE BINARY0X/4X/6XD6用命令中的字节字 符串更新当前EF中的字节字符串5READ RECORD0X/4X/6XB2从固定长度记录EF 或循环EF中读一条完整的记录6UPDATE RECORD0X/4X/6XDC更新固疋长度记录EF或循环EF中读一 条完整的记录7SEARCH RECORD0X/4X/6XA2从固定长度记录的EF文件中查找给定 的记录8INCREA

27、SE8X/CX/EX32用来在循环EF中最 后一个被与入记录 的后面增加一条记 录,如果最后被写入 记录位于循环EF尾,则更新最后有一条 记录9RETRIEVE DATA8X/CX/EXCB用来从当前的BER-TLV吉构的 EF文件中获得一个数据 对象10SET DATA8X/CX/EXDB用来在当前的BER-TLV吉构的 EF文件中创建一个新的 数据对象或替代一 个已经存在的数据 对象或删除一个数 据对象11VERIFY PIN0X/4X/6X20验证PIN码12CHANGE PIN0X/4X/6X24修改PIN码13DISABLE PIN0X/4X/6X26使PIN码不可访问14ENABL

28、E PIN0X/4X/6X28使PIN码可被访问15UNBLOCK PIN0X/4X/6X2C解锁由于3次输入错 误PIN值而被锁的PIN码16DEACTIVATE FILE0X/4X/6X04使当前EF文件无效17ACTIVATE FILE0X/4X/6X44恢复无效的EF文件18AUTHENTICATE0X/4X/6X88/89使用从接口设备发 送来的询问数据和 在卡内存储的相关 秘密(例如密钥)来 计算鉴别数据19GET CHALLENGE0X/4X/6X84用来产生一个随机数20TERMINAL CAPABILITY8X/CX/EXAA用来告诉SIM关于终 端的功能21TERMINAL

29、 PROFILE8010M囲来把涉及到SAT的功能传递给SIM卡22ENVELOPE80C2用来传递数据给SIM 卡中的SAT应用程序23FETCH8012用来接收SIM卡传给ME勺主动命令内容24TERMINAL RESPONSE8014把M助行完主动命 令后的信息返回给SIM卡25MANAGE CHANNEL0X/4X/6X70打开和关闭逻辑信 道26GET RESPONSE0X/4X/6XC0用于从卡发送至接 口设备用可用的协 议不能传送的那一些的APDU或APDU 的一部分)命令格式(下面只列出在 GSM 11.11协议的基础上增加或改变的 APDU命令):SEARCH RECORD

30、命令就是 GSM 11.11 中的 SEEK 命令;VERIFY PIN 命令就是 GSM 11.11 中的 VERIFY CHV 命令;CHANGE PIN 命令就是 GSM 11.11 中的 CHANGE CHV 命令;DISABLE PIN 命令就是 GSM 11.11 中的 DISABLE CHV 命令;ENABLE PIN 命令就是 GSM 11.11 中的 ENABLE CHV 命令;UNBLOCK PIN 命令就是 GSM 11.11 中的 UNBLOCK CHV 命令;DEACTIV ATE FILE 命令就是 GSM 11.11 中的 INVALIDATE 命令; ACTIV

31、 ATE FILE 命令就是 GSM 11.11 中的 REHABILITATE 命令;AUTHENTICATE 命令同 GSM 11.11 中的 RUS GSM ALGORITHM 命令; MANAGE CHANNEL命令属于ISO 7816-4标准 APDU 命令集;GET CHALLENGE 命令属于ISO 7816-4标准 APDU 命令集;TERMINAL CAPABILITY的 命令报文:CLA8X/CX/EXINSAAP1-P20000Lc字段接下来数据字段的长度数据字段命令数据Le字段RETRIEVE DAT的 命令报文:CLA8X/CX/EXINSCBP1-P2P1=00; P2:见表 3-1.Lc字段后续数据字段的长度数据字段空或数据对象的标签Le字段响应数据的长度B8B7B6B5B4B3B2B1含义10-第一个模块00-00000接下来一个模块01-00000转发前一个模块11-保留供将来使用-XXXXX安全报文标识-00000当前EF任何其他值保留供将来使用表3-1 P2编码SET DATA勺命令报文:CLA8X/CX/EXINSDBP1-P2P1:00;P2:见表3-1Lc字段后续数据字段的长度数据字段BER-TLV数据对象或删除时的标签字段Le字段

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1