智能卡按安全级别可以分为三类:存储器卡、逻辑加密卡和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:指定存在哪些接口字符以及卡片能接收的帧的最大长度。

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

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

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

完成ATR或ATS应答之后,卡片可以进行PPS(Protocol Parameter Selection)协商,也可以不协商而使用默认值。此后就进入7816-4,执行COS命令进行数据交换了。

射频识别技术漫谈(27)——CPU卡概述的更多相关文章

  1. 射频识别技术漫谈(6)——通讯协议概述【worldsing笔记】

    通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等.在这里通迅的双方指的是读写器和卡片. 首先是谁先发起通讯,很显然有两种,读写器先发言 ...

  2. 射频识别技术漫谈(7)——ID卡【worldsing笔记】

    ID(Identification)是识别的意思,ID卡就是识别卡.ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID卡,例如条码卡,磁卡都可以是ID卡,我们这儿说的当然是射频识别卡. 射频ID卡 ...

  3. 射频识别技术漫谈(7)——ID卡

    ID(Identification)是识别的意思,ID卡就是识别卡.ID卡包含范围广泛,只要具有识别功能的卡片都可以叫ID卡,例如条码卡,磁卡都可以是ID卡,我们这儿说的当然是射频识别卡. 射频ID卡 ...

  4. 射频识别技术漫谈(10)——识别号的格式变化【worldsing笔记】

    从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里.ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出 ...

  5. 射频识别技术漫谈(1)——概念、分类

    现代社会智能卡已经渗透到生活的方方面面,公交卡.考勤卡.身份证.手机卡等等数不胜数.    智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插在卡 ...

  6. 射频识别技术漫谈(3)——能量、调制【worldsing 笔记】

    无源和免接触是非接触式IC卡相对于接触式IC卡的两大特点.无源是指卡片上没有电源,免接触是指对卡片的读写操作不必和读写器接触.非接触式智能卡也是IC卡,而卡上的IC即集成电路工作时肯定是需要电源的,卡 ...

  7. 射频识别技术漫谈(25)——Felica简介

    Felica是SONY公司开发的射频识别技术,该技术使用的载波频率与ISO14443A和ISO14443B一样,都是13.56MHz,所以有人把它称为ISO14443C,但SONY并没有正式接受这样的 ...

  8. 射频识别技术漫谈(20)——RC系列射频接口芯片

    目前基于13.56MHz的射频识别技术主要有ISO14443A.ISO14443B.ISO15693和FELICA技术.针对13.56MHz的射频识别技术,NXP开发了一系列名字以RC(Radio C ...

  9. 射频识别技术漫谈(4)——数据编码【worldsing 笔记】

    前已述及,射频识别技术中的调制方法一般使用调幅(AM),也就是将有用信号调制在载波的幅度上传送出去.这里的"有用信号"指用高低电平表示的数据"0"或" ...

随机推荐

  1. Unity 3d 实施刚体力

    1.选中已经添加了刚体的物体,然后添加恒定力组件. 此组件可以给刚体中添加恒定的力或扭矩力,常用于一次性发射的刚体,如模拟火箭的发射.这种物体的初始速度不是很大,但是随着时间的推移,加速度会越来越大. ...

  2. English - when用法

    一.作为副词,它有以下的用法:  1. 作为疑问副词,引导特殊疑问句,意为“什么时候:何时”.如: ( 1 ) When will they come back?( 2 ) What time wil ...

  3. js 模拟java 中 的map

    //js模拟map Map = { obj : {}, put : function(key , value){ this.obj[key] = value; }, get : function(ke ...

  4. Notes常用事件整理

    ①      ボタンのクリック事件: Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDo ...

  5. codeforces 540D 概率dp

    传送门 大概可以这样理解, 一开始有r个石头, p个布, s个剪刀, 每一天有其中的两个相遇, 如果两个是相同的种类, 什么都不会发生, 否则的话有一个会挂掉, 问最后每一种生存的概率. dp[i][ ...

  6. 各种排序算法(C语言)

    #include <stdlib.h> #include <stdio.h> void DataSwap(int* data1, int* data2) { int temp ...

  7. JavaScript 鸭子模型

    Javascript:由 “鸭子类型” 得出来的推论 背景 学动态语言的都知道一句话:“如果它走起来像鸭子,而且叫起来像鸭子,那么它就是鸭子”,Javascript也支持鸭子类型,下文就说说鸭子类型在 ...

  8. 投资新兴市场和细分市场 good

    新兴市场对程序员来说,就是一种新的语言.一个新的平台.一套新的框架.新兴市场因为刚刚兴起,所以几乎所有人都在同一个起跑线,特别适合后进者.我认识从一个2011年开始学习iOS开发的同学,他能能力中等, ...

  9. QT完美转换特殊字符的大小写

    Util::ShowMessage(QString::fromUtf8("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸ€")); Util::ShowMess ...

  10. js 定义类对象

    //定义类     //方式一     function A_class(arg1,arg2){         this.arg1=arg1;         this.arg2=arg2;     ...