集成电路卡,即日常生活中常使用的卡片,可以根据读写特性分为两类:ID卡和IC卡。
ID卡,全称身份识别卡,是一种不可写入的感应卡,含固定编号。卡内除了卡号外,无任何保密功能,其“卡号”是公开、裸漏的。
IC卡,带有存储器,又称为记忆卡或存储卡,带有微处理器的IC卡又称为智能卡或智慧卡。记忆卡可以存储大量信息;智能卡则不仅具有存储信息的能力,而且还具有处理信息的能力,它的功能相当于一台微型计算机。IC卡按操作时是否需要与读卡器发生电气接触,可分为接触式IC卡和非接触式IC卡。
M1芯片,是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP Mifare1系列,常用的有S50及S70两种型号,S70与S50主要不同在于卡片的扇区分布和容量不同,M1 S50容量为8KBit,而M1 S70的容量达到了32KBit。常见的有卡式和钥匙扣式。现已经有国产芯片与其兼容,利用PVC封装M1芯片、感应天线,然后压制成型后而制作的卡即是智能卡行业所说的M1卡,属于非接触式IC卡,遵循ISO 14443a协议。
ISO 7816:带触点的集成电路卡片国际标准,规定了卡片的材料、尺寸、电信号、传输协议及行业使用的交换命令。
ISO 14443:不带触点的集成电路卡片国际标准,定义了与非接触卡片数据传输的通信协议。ISO 14443按应用场景分为两类:ISO 1443a和ISO 14443b。ISO 14443a协议主要应用在生产自动化、门禁考勤、安防、一卡通和产品防伪领域;ISO 14443b协议因加密特性好,在我国主要应用为我国的二代身份证。
ISO 15693:不带触点的集成电路卡片国际标准,与ISO 14443不同:ISO 14443是近场耦合的,ISO 15693是远场耦合;ISO 14443具有加密功能,ISO 14693具有穿透性好,抗干扰性高的优点。ISO 15963常应用于高频、读距要求高的场合,如宽道门禁、物品识别等领域。
PICC:接近式卡片
PCD:接近式耦合设备(读卡器)
UID:唯一识别符
(1) 概述
REQA
WAKE-UP
ANTICOLLOSION
SELECT
HALT
(2) REQA和WAKE-UP命令
这两条命令都是使卡进入Ready状态,不同的是REQA命令将PICC从IDLE进入Ready状态,而Wake-up从Halt状态进入Ready状态。PICC接收到REQA命令或者WAKE-UP命令后,在PCD能量场范围内的所有PICC同步发出应答(Answer To Request,ATQA),长度为2字节。(REAQ = “26H”,WAKE-UP = “52H”)
(3) ANTICOLLISION和SEKECT命令
只要NVB没有规定40个有效位,若PICC保持在READY状态中,该命令就被称为ANTICOLLOSION命令。若NVB规定了UID CLn的40个数据位(NVB=‘70’),应添加CRC_A,该命令称为SELECT命令。如果PICC己发送了完整的UID,则它从READTY状态转换到ACTIVE状态并在其响应(Answer To Select, ATS)中指出UID完整。否则,PICC保持在READY状态中,并且该PCD应以递增串联级别启动一个新的防冲突环。
(4) HALT命令
命令格式:
如果PICC在HALT帧结束后1ms周期期间以任何调制表示响应,则该响应应解释为“不确定”。当卡片处于ACTIVE状态时,使用HALT命令,可以进入HALT状态。在HALT状态下,使用Wake-Up命令,可以使卡片再次进入READY状态。
(1) 寻卡
REQA
PCD发出,用于寻找用于类型A PICC的工作场。
命令:26H
寻找到卡片,会收到两个字节的应答数据(ATQA)。
WAKE_UP
PCD发出,使已进入HALT状态的PICC回到READY状态,再次参与防冲突和选择规程。
命令:52H
(2) 防冲突(SEL1 = 93H,SEL2 = 95H,SEL3 = 97H)
命令组成:选择代码SEL(1byte) + 有效位数目NVB(1byte)+ 根据NVB的值,UID Cln的0到40个数据位。(只要NVB没有规定40个有效位,若PICC保持在READY状态中,该命令就被称为ANTICOLLISON命令)(如果PICC已发送了完整的UID,则它从READY状态转换到ACTIVE状态并在其SAK-响应中指出UID完整。否则,PICC保持在READY状态并且该PCD应该递归串联级别启动一个新的防冲突环。)
(3) 选卡(SEL1 = 93H,SEL2 = 95H,SEL3 = 97H)
命令组成:选择代码SEL(1byte)+ 有效数目NVB(1byte)+ UID CLn 40个数据位(NVB = 70H)+ CRC_A
(ANTICOLLISON命令相似,在UID CLn完整时,添加CRC_A,称为SELECT命令)
(4) 三轮认证
选卡后,读写器指定后续读写的存储器位置,并用相应密钥进行三轮认证。认证成功后,所有的存储器操作都是加密的。
(5) 业务操作
密钥修改
访问权限修改
读写块数据