原创 IC卡安全操作基本命令-密码解锁(PIN UNBLOCK)

2008-10-20 13:33 7930 11 11 分类: 软件与OS
1、命令功能描述

    验证密码命令用以解锁个人密码,是PIN维护的一个重要命令。

    每一个PIN记录都含有一个尝试次数计数器,在校验PIN的过程中,如果PIN校验失败的话,尝试计数器的值减一,如果连续多次失败的话,尝试计数器的值可能减为0,这时PIN记录被锁定,将无法再进行校验操作,也就是无法使用了。这时需要对PIN记录进行解锁操作。

    解锁操作主要是将PIN记录的尝试计数器复位。

  2、命令报文格式

    命令的APDU内容如下所示:

      代码              值
       CLA                 0x84
       INS                 0x24
       P1                  PIN ID
       P2                  0x01
       Lc                  0x04
       Data                MAC
       Le                  不存在

    其中:

    * P1指定要解锁PIN的ID号,如果P1为0x00表示对PIN文件的第一条记录进行解锁,否则根据P1指定的PIN ID进行查找。

    * 为了进行安全控制,命令数据域带MAC,MAC用对应DF的主控密钥计算。

  3、响应报文数据

    响应报文数据域不存在。

  4、响应报文状态码

    此命令执行成功的状态码为0x9000。

    对于异常情况,IC卡可能回送的错误码如下所示:

       SW1     SW2      含义       
       0x65     0x81        存储区错误
       0x67     0x00        Lc错误
       0x69     0x81        PIN文件没有找到
       0x69     0x82        安全条件不满足
       0x69     0x84        随机数无效
       0x69     0x85        命令执行条件不满足
       0x69     0x87        MAC丢失
       0x69     0x88        MAC错误
       0x6A     0x86        P1、P2不正确
       0x6D     0x00        INS错误
       0x6E     0x00        CLA错误   

  5、命令实现的其他要求

    根据COS提供的功能不同,该命令的功能可以用应用中定义的重装个人密码(RELOAD PIN)命令代替。

  6、命令实现设计

    在执行该命令前,应用必须先发一条取随机数命令,卡片存在4Byte有效随机数。

  7、命令使用示例

   (1)预设环境

    假设PIN文件支持多个PIN记录,要解锁的PIN示例对应的为添加命令示例中添加的PIN。

   (2)命令报文

    解锁PIN记录的APDU:

    84 24 01 01 04 11 22 33 44

    其中:

    * 84 表示PIN UNBLOCK命令的CLA。
    * 24 表示PIN UNBLOCK命令的INS。
    * 01 表示PIN UNBLOCK命令的P1,即要解锁的PIN的ID。
    * 01 表示PIN UNBLOCK命令的P2。
    * 04 表示PIN UNBLOCK命令的Lc,即数据域的长度。
    * 11223344 表示PIN UNBLOCK命令的MAC。

   (3)PIN UNBLOCK 响应报文

    卡片处理以后,PIN UNBLOCK 没有响应报文。

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条