一、IC 卡安全操作基本命令-写密钥(WRITE KEY) 1、命令功能描述 写密钥命令提供将密钥从卡外转入卡片中指定位置的功能,即包括新的密钥的添加,也包括对原有密钥的修改
为了保证密钥在传输过程中的安全性,在命令报文中的密钥将以密文的形式存在,用卡内外双方共有的密钥进行加密
该命令可以提供对称密钥的写操行,也可以提供非对称密钥的写操作
传输过程中用以加密密钥内容的密钥一般选用对称密钥,可以是相应 DF 的主控密钥
为了防止在传输过程中数据错误,命令数据域还带安全报文 MAC
下面主要介绍对称密钥的写操作
2、命令报文格式 命令的 APDU 内容如下所示: 代码 值 CLA 0x84 INS 0xD4 P1 KEY TYPE P2 0x00 Lc DATA 域长度 Data 密钥信息密文+MAC Le 不存在 其中: * P1 指定了要写入的密钥的类型,对于对称密钥给 0x00
* 如果写入的是对称密钥的话,分为 DES 密钥和 3DES 密钥两种,密钥体的长度分别为8Byte 和 16Byte
* DATA 域的密钥信息数据为加密以后的数据,加密的密钥为对应 DF 的主控密钥,加密算法为 3DES
* DATA 域密钥信息密文加密前的明文为对称密钥属性和密钥体组成的记录条,编码格式同 KEY 文件的编码格式
* 为了保证密钥的完整性,在传输过程中命令数据报文带安全报文字节,用对应 DF 的主控密钥计算
3、响应报文数据 响应报文数据域不存在
4、响应报文状态码 此命令执行成功的状态码为 0x9000
对于异常情况,IC 卡可能回送的错误码如下所示: SW1 SW2 含义 0x65 0x81 存储区错误 0x67 0x00 Lc 错误 0x69 0x81 对应的 KEY 文件没有找到 0x69 0x82 安全条件不满足 0x69 0x84 随机数无