-
IC
卡安全操作基本命令
-
外部认证
(EXTERNAL
AUTHENTICATION)
技术类别:
软件开发
发布时间:
2008-10-20
13:31:00
1
、命令功能描述
外部认证命令提供了利用卡片产生随机数,外部利用密
钥设备对该数据进行计算完成对
终端的数据认证功能,也就是卡片认证终端合法性的过程
。
外部认证成功以后,将修改对应的安全状态为内部认证结果的安全状态,并且复位卡片
内对应密钥的尝试计数器到初值。
如果验证失败,将对应密钥的尝试计数器值减一,直至减为
0<
/p>
将密钥锁定不能再进行外
部认证操作为止。
由于外部认证过程中需
要卡片产生的随机数,所以,在外部认证命令执行前终端必须向
卡片发送一条随机数命令
。
2
、命令报文格式
命令的
APDU
内容如下所示:
代码
值
CLA
0x00
INS 0x82
P1 0x00
P2 0x00
Lc 0x10
Data
认证数据
Le
不存在
其中:
DATA
域长度为
16Byte
,前
8Byte
是外部计算后的认证结果,也就是需要卡片验
证的数据,后
8
Byte
是外部给出的分散向量,用来计算认证过程密钥。
3
、响应报文数据
响应报文数据域不存在。
4
、响应报文状态码
此命令执行成功的状态码为
0
x9000
。
对于异常情况,
IC
卡可能回送的错误码如下所示:
SW1 SW2
含义
0x63
0xCX
认证失败,
X
表示对应密钥还能够尝试的次数
0x65
0x81
存储空间错误
0x67 0x00
Lc
错误
0x69
0x83
对应密钥锁定
0x69 0x84
随机数无效
0x69
0x85
不满足密钥使用条件
0x6A 0x80
数据域参数不正确
0x6A 0x86 P1
、
P2
p>
不正确
0x6A
0x88
密钥查找失败
0x6D 0x00
INS
错误
0x6E
0x00 CLA
错误
5
、命令实现的其他要求
外部认证命令是卡片认证终端过程,不同的应用可能会
有不同的规定,如果要支持特殊
应用的话,需要参与相关的应用需求,明确命令的数据的
具体格式和计算方法。
6
、命令实现设计
对认证数据的处理包括了如下几个步骤:
*
随机数有效性检查。在
数据处理前需要检查卡内是否事先存在
4Byte
有效的随机数
。
如果随机数有效的话,在随机数后补
4Byte
的
0x00
。
*
密码的查找。外部认证
需要专门的密钥,是对称密钥,通常是
3DES
密钥,在当前文
件的对称密钥文件中查找,
查找条件包括密钥用途、
密钥版本和密钥索引等,
可以使用单一
条件,
p>
也可以使用组合条件。
密钥找到以后需要检查相应的使用条件是否满
足,
密钥是否有
效等等。
*
过程密钥生成。利用找
到的认证密钥对命令数据域中后
8Byte
分散向量做
3DES
加密
计算,结果为
8Byte
,即为此次外部认证的过程密钥。
*
卡内认证结果计算。将
得到的过程密钥对补充
0x00
以后的随机数做
DES
加密计算,
得到
8By
te
的卡片计算结果。
*
将卡内计算结果和命令数据域前
< br>8Byte
的终端认证数据做比较,如果一致的话表示认
证成功,将对应密钥的尝试计数器复位,同时修改对应的安全状态;如果数据不一致的话,
表示认证失败,将对应密钥的尝试计数器减一,对应的安全状态不变。
*
最后返回相应的结果。
7
、命令使用示例
-
-
-
-
-
-
-
-
-
上一篇:关于熊猫的演讲英语例文500字
下一篇:外部培训管理规定