原创
应用锁定命令(APPLICATION BLOCK)
2008-10-20 13:36
4984
2
2
分类:
软件与OS
1、命令功能描述
该命令的成功执行将使得当前选择的应用失效。
当应用成功执行本命令以后,再次用SELECT命令选择时,将回送状态码0x6283。
对于其他的命令根据不同命令的情况决定是否能够执行。
对应用的锁定操作可以分为临时锁定和永久锁定两种,被临时锁定的命令可以用APPLICATION UNBLOCK命令解除锁定,如果是永久锁定的话,是一个不可逆操作,应用将无法恢复原来的状态,处于待删除状态。
2、命令报文格式
命令的APDU内容如下所示:
代码 值
CLA 0x84
INS 0x1E
P1 0x00
P2 锁定类型
Lc 04
Data MAC
Le 不存在
其中:
* P2是锁定操作的类型指示符,如果P2为0x00的话表示临时锁定应用,应用还可以用对应的APPLICATION UNBLOCK命令解锁;如果P2是0x01的话,表示是永久锁定应用,将无法恢复。
* 本命令数据域不包含任何数据。
* 在数据域中包含有报文鉴别码MAC,MAC的计算通常用应用DF的主控密钥或者专用的密钥计算得到。
3、响应报文数据
响应报文数据域不存在。
4、响应报文状态码
此命令执行成功的状态码为0x9000。
对于异常情况,IC卡可能回送的错误码如下所示:
SW1 SW2 含义
0x64 0x00 标志状态位没有改变
0x65 0x81 存储空间错误
0x67 0x00 Lc错误
0x69 0x87 MAC丢失
0x69 0x88 MAC错误
0x6A 0x86 P1、P2不正确
0x6D 0x00 INS错误
0x6E 0x00 CLA错误
5、命令实现的其他要求
对应用的锁定操作是由终端发起的一个显式的操作过程,一般是在卡片与终端的交易过程中,卡片的响应连续多次异常或者持卡人可能身份不符等,为了防止可能出现的卡片的意外损失,终端可以临时锁定应用,使得应用暂时失效,持卡人必须持有效证件等到指定的网点进行应用解锁定操作,以确保应用的安全性。
应用的永久锁定一般发生在应用销毁前,持卡人注销该应用,应用进入等待删除阶段。对于有些不支持应用删除的卡片,应用的永久锁定也是卡片上应用逻辑删除的替代操作。
6、命令实现设计
对应用的锁定操作只要在MAC校验成功之后就可以执行,通常在DF的文件描述块中将状态字置为临时锁定或者永久锁定。
同时,需要修改当前应用的状态标志,后续的所有命令将根据命令情况决定是否能够执行。
7、命令使用示例
(1)预设环境
假设已经选定要锁定的应用为当前应用。
(2)命令报文
临时锁定当前应用的APDU:
84 1E 00 00 04 11 22 33 44
其中:
* 84 表示APPLICATION BLOCK命令的CLA。
* 1E 表示APPLICATION BLOCK命令的INS。
* 00 表示APPLICATION BLOCK命令的P1。
* 00 表示APPLICATION BLOCK命令的P2,即临时锁定应用。
* 04 表示APPLICATION BLOCK命令的Lc,即数据域的长度。
* 11223344 表示APPLICATION BLOCK命令的MAC。
永久锁定当前应用的APDU:
84 1E 00 01 04 11 22 33 44
其中:
* 84 表示APPLICATION BLOCK命令的CLA。
* 1E 表示APPLICATION BLOCK命令的INS。
* 00 表示APPLICATION BLOCK命令的P1。
* 01 表示APPLICATION BLOCK命令的P2,即永久锁定应用。
* 04 表示APPLICATION BLOCK命令的Lc,即数据域的长度。
* 11223344 表示APPLICATION BLOCK命令的MAC。
(3)APPLICATION BLOCK 响应报文
卡片处理以后,APPLICATION BLOCK 没有响应报文。
文章评论(0条评论)
登录后参与讨论