天天看点

射频识别技术漫谈(27)——CPU卡概述

智能卡按安全级别可以分为三类:存储器卡、逻辑加密卡和cpu卡,其中cpu卡是安全级别最高的。从“cpu”这个名字可以看出,cpu卡最大的特点就是卡片里面有一个"cpu",有了cpu我们就可以对卡片编程写入软件(cos,卡片操作系统),实现复杂的安全加密算法,所以cpu卡的安全性是最高的。与之形成对比的是,存储器卡和逻辑加密卡中没有"cpu",尽管在我们看来像mifare1卡看起来似乎也很智能,但m1卡里存在的仅仅是一个专用集成电路(asic),而不是cpu。

    说到非接触式cpu卡,就不得不提接触式cpu卡,因为就cpu卡的灵魂——cos来说,二者遵循的协议基本是一样的,都是iso7816-4,不同之处在于二者进入cos的方式和途径,在此以复旦微电的非接触式cpu卡fm1208m01为例,与接触式cpu卡进入cos的过程对比如下图所示。

    cpu卡在进入iso7816-4协议之前所做的都是一些为卡片和读写器对话进行的准备工作。接触式cpu卡的序列比较简单,卡片插在卡座上,读写器给卡片一个复位(reset)信号,卡片回送一个应答atr(answer

to reset),atr由5部分组成:

    (1)初始字符ts:指定字符传送规则,如果是3b则高电平表示1,低电平表示0,先传送字符最低有效位;如果是3f

                   则高电平表示0,低电平表示1,先传送字符最高有效位。

    (2)格式字符t0:指定存在哪些接口字符以及历史字符的个数。

    (3)接口字符  :指定协议参数和协议类型

    (4)历史字符  :说明诸如制造商、芯片型号等一般信息

    (5)校验字符  :保证atr数据的完整性,使用的是异或校验

    非接触式cpu卡得到ats(answer to

select)相对步骤多一些,不过这也是迫不得已,这是由卡片本身的“非接触”特性决定的。不像接触式卡片那样一卡一座,非接触式卡片由于“无源”和“免接触”,读写器的射频场中可能同时存在多张卡片,为了从多张卡片中选中一张进行操作,读写器要启动防冲突和卡选择的过程。由于不能保证射频场中的卡片都是cpu卡,所以读写器选中一张卡片后还要向卡片发送rats命令,cpu卡会回送一个ats响应,此ats与接触式cpu卡的atr也大同小异,同样由5部分组成:

    (1)长度字符tl:指出ats的长度,不包括后面的校验字节。

    (2)格式字符t0:指定存在哪些接口字符以及卡片能接收的帧的最大长度。

    (4)历史字符  :说明诸如制造商、芯片型号、序列号等一般信息

    (5)校验字符  :保证ats数据的完整性,使用的是2字节crc校验

    完成atr或ats应答之后,卡片可以进行pps(protocol

parameter selection)协商,也可以不协商而使用默认值。此后就进入7816-4,执行cos命令进行数据交换了。

继续阅读