IC卡片使用基础

一、 卡片基本概念

集成电路卡,即日常生活中常使用的卡片,可以根据读写特性分为两类: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常应用于高频、读距要求高的场合,如宽道门禁、物品识别等领域。

三、M1 S50卡片介绍

PICC:接近式卡片
PCD:接近式耦合设备(读卡器)
UID:唯一识别符

M1 S50(以下简称M1)卡片,卡的序列号是全球唯一的,不可修改的32bit数据,M1卡片容量为8KBit,分为16个扇区,每个扇区4块,每块可存放16byte数据(每个扇区的第4块存放密钥和权限控制字节),可以通过读卡器向卡中不同区域写入相关信息,各扇区独立使用并访问密钥独立,互不干扰。可用于一卡通领域,简易并且安全。工作频率13.56MHz,通信速度106Kb,通信距离2.5-10cm。
在读取M1卡片数据时,M1卡片只能够按块进行读取,读取扇区数据时,需要循环四次读取该扇区各块数据信息。
​​
在这里插入图片描述

1、M1卡片访问权限

M1卡片每个扇区有两个访问密钥:KeyA和KeyB,可以通过权限控制位设定对数据访问及密钥修改时所需要的密钥。(密钥默认值均为:FF FF FF FF FF FF)

  • 权限控制位
    ​​​​在这里插入图片描述​​
    默认值:FF 07 80 69(字节9 未用于权限控制,可用于用户数据存储)
  • 数据块访问权限
    ​​​​​​在这里插入图片描述
  • 块3访问权限控制
    ​​​​​​在这里插入图片描述

2、ISO 14443a命令集

​​​​在这里插入图片描述

(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命令

命令格式:

SEL:串联级别选择代码:“93”选择UID CL1,“95”选择UID CL2,“97”选择UID CL3
NVB:有效位数量
UID CLn:由NVB指定的UID CLn,UID的一部分,由4个字节组成,1<= n <=3
BCC:校验,UID CLn校验字节,4个先前字节的“异或”值。
(CRC_A:CRC校验位,当NVB完整时,返回完整的卡序列号信息)

只要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状态。

3、M1卡片操作步骤

(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) 业务操作

密钥修改
访问权限修改
读写块数据

(6) 停止

PCD发出HALT命令,使PICC进入HALT状态。

附:防冲突技术

正常情况下,读卡器在某一时刻只能对磁场中的一张射频卡进行读写操作,但是当多张卡片同时进入读卡器的射频场时,读卡器需要选出唯一一张卡片进行读写操作,这就是防冲突。
常见的非接触式卡片中放冲突机制主要有以下三种:面向比特的放冲突机制(ISO 14443a使用)、面向时隙的防冲突机制(ISO 14443b使用)、位与时隙相结合的放冲突机制(ISO 14693使用)。

猜你喜欢

转载自blog.csdn.net/QQ1311826638/article/details/88675917