APDU常用指令GSM和USIM

APDU= ApplicationProtocol data unit, 是智能卡与智能卡读卡器之间传送的信息单元, (给智能卡发送的命令)指令(ISO 7816-4规范有定义)    CLA   INS  P1  P2 Lc  Data  Le

其中CLA为指令类别;INS为指令码;P1、P2为参数;Lc为Data的长度;Le为希望响应时回答的数据字节数,0表最大可能长度。

00A4040000:发送一个空的选择命令,获取卡和主安全域的信息。00A40400是select选择对应的CLA,INS,P1和P2,后面2位是发送的文件名的长度。此命令使用文件名或应用标示符来选择IC卡内DF(专用文件)或EF(基本文件)。

80此命令创建卡片文件系统,80CA9F7F00:获取CPLC信息。8050XXXXX:  双向认证并建立会话密钥。

非接触CPU卡应该支持以下与应用无关的常用指令命令:

编号

指令

指令类别

指令码

功能描述

 

APPLICATION UNBLOCK

84

18

应用解锁

 

APPLICATION BLOCK

84

1E

应用锁定

 

CARD BLOCK

84

16

卡片锁定

 

EXTERNAL AUTHENTICATE

00

82

外部认证

 

GET CHALLENGE

00

84

取随机数

 

INTERNAL AUTHENTICATE

00

88

内部认证

 

PIN UNBLOCK

84

24

个人密码解锁

 

READ  BINARY

00

B0

读二进制文件内容

 

READ  RECORD

00

B2

读记录文件指定内容

 

SELECT

00

A4

选择文件

 

UPDATE  BINARY

00/04

D6

写二进制文件

 

UPDATE  RECORD

00/04

DC

写记录文件

 

VERIFY

00

20

验证口令

 

编号

指令

指令类别

指令码

功能描述

 

CHANGE/PIN RELOAD

80

5E

重装/修改个人密码

 

CREDIT FOR LOAD

80

52

圈存

 

DEBIT FOR PURCHASE/
CASE WITHDRAW/UNLOAD

80

54

消费/取现/圈提

 

GET BALANCE

80

5C

读余额

 

GET TRANSCATION PROVE

80

5A

取交易认证

 

INITIALIZE FOR XXX

80

50

初始化XXX交易

 

UNBLOCK

80

2C

解锁被锁住的口令

 

UPDATE OVERDRAW LIMIT

80

58

修改透支限额







应用层发出的命令报文和卡片回送到应用层的响应报文统称为应用协议数据单元(APDU)。响应是和命令相对应的,通常被称为APDU命令-响应对。在一个APDU命令-响应对中,命令报文或响应报文都可能包含数据。



1:C-APDU 格式


  C-APDU由一个4字节长的必备头后跟一个变长的条件体组成。
  C-APDU中发送的数据长度用Lc(命令数据域的长度)表示。
       R-APDU中期望返回的数据字节数用Le(期望数据长度)表示。
  当Le存在且值为0时,表示要求可能的最大字节数(≤256)。
  在应用选择中所给出的读记录(READ RECORD)命令、选择(SELECT)命令Le应该等于“00”。



图1:APDU命令结构



2:C-APDU命令内容

  命令均由终端应用层(TAL)发出,它用5个字节组成的命令头通过TTL向IC卡发送指令。命令头由5个连续字节CLA、INS、P1、P2和P3组成:
CLA:命令类别;INS:指令代码;P1 和 P2:附加参数;P3:根据不同的 INS, 指明发送给 IC 卡的命令中数据的字节长度或期待 IC 卡响应的最大数据长度。



图2:APDU命令内容   

3:R-APDU格式


当使用T=1协议时,对于所有Le=’00’的命令,状态字SW1 SW2=“90 00”或“61 La”均表示命令的成功执行。
但由于可读性的需要,这两种状态字只用了“90 00”作为参考。


R-APDU格式由一个变长的条件体和后随两字节长的必备尾组成,见图3。



图3:APDU响应结构


R-APDU中接收到的数据字节数用Lr(响应数据域长度)表示。Lr不通过传输层返回,应用层在需要时可以依靠响应报文数据域对象结构计算出Lr。
响应结尾的2个字节代码是命令的处理状态,它们通过传输层回送。


表1:响应 APDU 内容



4:命令报文和响应报文


A:读记录命令

表2:读记录命令报文



表3:读记录命令引用控制参数(2)




B:选择命令


选择命令通过文件名或AID来选择IC卡中的PSE或ADF。成功执行该命令设定PSE或ADF的路径。
后续命令作用于SFI选定的PSE或ADF相联系的AEF。从IC卡返回的响应报文包含回送FCI。

表4:SELECT 命令报文




表5:SELECT命令引用控制参数



表6:SELECT命令的可选参数




 响应报文数据域


 响应报文中数据域应包括所选择的PSE或ADF的FCI。在选择命令的响应报文回送的FCI模板中,除了“BF0C”模板中包含的数据元之外,不应有附加数据元。
 表7定义了成功选择PSE后回送的FCI。


表7:选择 PSE的响应报文(FCI)




表8:选择 ADF 的响应报文(FCI)




当一个DF成功选中后,终端重复发出选择(SELECT)命令,且P2设置为选择下一个文件的选项及使用相同的部分DF名时,
卡片应该选中与部分DF名称匹配的不同的DF文件(如果这样的DF存在)。在没有应用层命令干扰的情况下重复发出相同的选择(SELECT)命令,
卡片应该可以找到所有满足条件的DF文件,且每个文件不会被找到两次。当所有满足条件的DF都被选择后,再发出同样的选择(SELECT)
命令,应该得到没有文件被选择的结果,卡片应该响应SW1SW2=“6A82”(文件未找到)。


阅读更多

没有更多推荐了,返回首页