External Authenticate
外部认证是IC卡 对 外部 读写卡的机具 读卡器,进行合法性认证
读卡器机具这边一个密钥,
IC卡内一个密钥
IC卡需要确认外部的读卡器是有资格读这个卡的,所以需要对其资格进行认证。
认证的方式是确定IC卡拥有的密钥是否和读卡器拥有的密钥相同或者对应。
具体方法是:
读卡器给IC卡发送一个取随机数的命令,
IC卡返回给读卡器一个4字节的随机数,并且IC卡将该随机数在卡的内存中保存。
读卡器得到4字节随机数,对4字节随机数补足0x00000000共8个字节,64位,利用密钥进行DES加密,生成8个字节的加密后的密文数据。
读卡器将生成的加密后的8个字节的密文数据,通过命令传送给IC卡。
IC卡得到加密后的8个字节的密文数据,
在卡内,对密文数据,通过密钥,解密,将解密后的数据,与之前保存的随机数,进行比较,如果相同,表示外部认证通过IC卡认为外部的读卡器是一个合法的读卡器。
如果外部认证通过,IC卡对该读卡器放开安全戒备,读卡器可以进一步的对IC卡内的文件进行读写之类的操作。
如果外部认证没有通过,那么读卡器的进一步的对IC卡内文件的操作,将会返回错误。
用到的命令:
取随机数:
代码 | 值 | 值 |
---|---|---|
CLA | 00 | 00 |
INS | 84 | 84 |
P1 | 00 | 00 |
P2 | 00 | 00 |
Lc | 不存在 | |
Data | 不存在 | |
Le | 要读取数据的长度 | 04 |
外部认证命令:
取随机数:
代码 | 值 | 值 |
---|---|---|
CLA | 00 | 00 |
INS | 82 | 82 |
P1 | 00 | 00 |
P2 | 外部认证密钥标识号 | 01 |
Lc | 08 | 08 |
Data | 8字节加密后的随机数 | 8字节加密后的随机数 |
Le | 不存在 |
参考手册《新版FMCOS2.0用户手册.pdf》
page51: