原创 IC卡安全操作基本命令-验证密码(VERIFY)

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

    验证密码命令用以校验个人密码,是卡片安全控制的一个重要手段。

    如果卡片支持多个PIN记录的话,需要支持选择PIN的校验。

    PIN的校验结果会影响对应的卡片安全状态。如果PIN校验成功以后,将对应的安全状态修改为PIN记录中指定的值,同时PIN的尝试计数器复位;如果PIN校验失败以后,对应的安全状态不改变,PIN的尝试计数器减一,制止减为0将PIN锁定再也不能进行该PIN的校验为止。

  2、命令报文格式。

    命令的APDU内容如下所示:

      代码              值
       CLA                 0x00
       INS                 0x20
       P1                  0x00
       P2                  PIN ID
       Lc                  DATA域的长度
       Data                PIN的内容
       Le                  不存在

    其中:

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

    * DATA域包含的是要校验的PIN的内容,和PIN文件的格式一样,用BCD编码方式,不足字节用0xFF补齐。

  3、响应报文数据

    响应报文数据域不存在。

  4、响应报文状态码

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

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

       SW1     SW2      含义
       0x63     0xCX        旧密码校验失败,X表示剩余的尝试次数
       0x65     0x81        存储区错误
       0x67     0x00        Lc错误
       0x69     0x81        PIN文件没有找到
       0x69     0x82        安全条件不满足
       0x69     0x83        PIN记录被锁定
       0x69     0x85        命令执行条件不满足
       0x6A     0x80        数据域参数不正确
       0x6A     0x86        P1、P2不正确
       0x6D     0x00        INS错误
       0x6E     0x00        CLA错误

  5、命令实现的其他要求

    命令实现无特殊要求。

  6、命令实现设计

    在实现过程中需要注意PIN记录状态和卡片安全状态的检查与相应的维护。

  7、命令使用示例

   (1)预设环境

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

   (2)命令报文

    验证PIN记录的APDU:

    00 20 00 01 02 12 34

    其中:

    * 00 表示VERIFY命令的CLA。
    * 20 表示VERIFY命令的INS。
    * 00 表示VERIFY命令的P1。
    * 01 表示VERIFY命令的P2,即要验证的PIN的ID。
    * 02 表示VERIFY命令的Lc,即数据域的长度。
    * 1234 表示要验证的PIN值。

   (3)VERIFY响应报文

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

文章评论0条评论)

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