NXP Miafre 1 S70感应式IC卡
Miafre 1 S70感应式IC卡采用Philips Standard Card IC M1 S70芯片,是目前应用较为广泛的非接触式智能卡。它的技术规格如下:
芯片: Philips Mifare 1 S70
存储容量:32Kbit,32个分区,每分区两组密码
工作频率:13.56 MHz
通讯速率:106KBoud
读写距离:2.5~10cm
读写时间:1~2ms
工作温度:-20℃~85℃
擦写寿命:>100,000次
数据保存:>10年
外形尺寸:ISO标准卡 85.6x54x0.80 / 厚卡 / 异形卡
封装材料:PVC、ABS、PET、PETG、0.13mm铜线
封装工艺:超声波自动植线 / 自动碰焊
执行标准:ISO 14443,ISO 10536
典型应用:企业/校园一卡通、公交储值卡、高速公路收费、停车场、小区管理等。
Miafre 1 S70感应式IC卡介绍
1. 我们要进行的工作就是对IC卡的39扇区进行密钥替换和控制字节的替换,不进行其它 数据的写入。要求能对IC卡进行批量操作。
2. IC卡采用Philips Standard Card IC M1 S70芯片。
3. 卡片有4K的存储空间,有32个小扇区和8个大扇区。小扇区的结构为:每扇区有4 块,每块16个字节,一共64字节,第3块为密钥和控制字节;大扇区的结构为:每扇区16块,每块16个字节,一共256字节,第15块为密钥和控制字节;详细介绍如下所示。
MIFARE STANDARD 4K(M1 S70)
FEATURE: l l
每个扇区有独立的一组密码及访问控制; l
每张卡有唯一序列号,为32位; l
具有防冲突机制,支持多卡操作; l
无电源,自带天线,内含加密控制逻辑和通讯逻辑电路;l
工作温度:-20℃~50℃; l
工作频率:13.56MHZ; l
通信速率:106KBPS; l
读写距离:10mm以内(与读写器有关); l
数据保存期为10年,可改写10万次,读不限次;
存储结构
4 K字节, 共40个扇区,前32个扇区中,每个扇区4个数据块,后8个扇区中,每个扇区16个数据块,每个数据块16个字节。如下图所示:
Sector | Block | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Description | ||
39 | 15 14 13 。。。 。。。 2 1 0 | KeyA | Access | KeyB | SectorTraile39 Data Data 。。。 。。。 Data Data Data
|
32 | 15 14 13 。。。 。。。 2 1 0 | KeyA | Access | KeyB | SectorTraile32 Data Data 。。。 。。。 Data Data Data |
31 | 3 2 1 0 | KeyA | Access | KeyB | SectorTraile31 Data Data Data |
0 | 3 2 1 0 | KeyA | Access | KeyB | SectorTraile0 Data Data Manufacturer Data |
a)Manufacturer Blcok,第一个扇区的第一块由厂商使用,存储了IC卡的生产产商代码,这个块中的数据写入后不能被修改。
X | X | X | X | 0 | 0 | 1 | 0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
b) Data Blocks(数据块)
扇区1到 扇区31有3个数据块, 扇区32到 扇区39 有15个数据块供存储数据(扇区0只有2个数据块和一个厂商数据存储块)数据块的读写操作由控制位控制。
c) Value Block(值块): 值块可用做电子钱包(有效的命令为 read,write,increment,decrement,restore,transfer),值块中的数据只占4个字节。
d) Sector Trailer(扇区尾部): 每个扇区都有个扇区尾部.包括密码A(不能读出)、 密码B及相应扇区中的所有块的存储控制位(位于第6个字节到第9个字节), 存储结构如下:
A0A1A2A3A4A5 FF 07 80 69
B0B1B2B3B4B5
密码A(6字节) 存取控制(4字节) 密码B(6字节)
控制属性:
1.每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取,控 制。在存取控制中每个块都有相应的三个控制位,定义如下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C32
块3: C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置如下(字节9为备用字节,默认值为0x69):
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5 |
密码A 控制位 密码 B
bit 7 6 5 4 3 2 1 0
Byte 6 | C23_b | C22_b | C21_b | C20_b | C13_b | C12_b | C11_b | C10_b |
Byte 7 | C13 | C12 | C11 | C10 | C33_b | C32_b | C31_b | C30_b |
Byte 8 | C33 | C32 | C31 | C30 | C23 | C22 | C21 | C20 |
Byte9 |
(注: _b表示取反)
1. 制块(块3)存取控制
存取控制与数据块(块0、1、2)不同,它的存取控制如下:
密码 A | 控制位 | 密码B | ||||||
C13 | C23 | C33 | Read | Write | Read | Write | Read | Write |
0 | 0 | 0 | Never | KeyA|B | KeyA|B | Never | KeyA|B | KeyA|B |
0 | 1 | 0 | Never | Never | KeyA|B | Never | KeyA|B | Never |
1 | 0 | 0 | Never | KeyB | KeyA|B | Never | Never | KeyB |
1 | 1 | 0 | Never | Never | KeyA|B | Never | Never | Never |
0 | 0 | 1 | Never | KeyA|B | KeyA|B | KeyA|B | KeyA|B | KeyA|B |
0 | 1 | 1 | Never | KeyB | KeyA|B | KeyB | Never | KeyB |
1 | 0 | 1 | Never | Never | KeyA|B | KeyB | Never | Never |
1 | 1 | 1 | Never | Never | KeyA|B | Never | Never | Never |
(KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现)
例如:当块3的存取控制位C13 C23 C33=100时,表示:
密码A: 不可读,验证KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后,可读不可写。
密码B: 不可读,验证KEYB正确后,可写。
2. 数据块(块0、块1、块2)的存取控制如下:
控制位(X=0,2) | 控制条件(对块0、1、2) | |||||
C1X | C2X | C3X | Read | Write | Increment | Decrement,transfer,Restore |
0 | 0 | 0 | KeyA/B | KeyA/B | KeyA/B | KeyA/B |
0 | 1 | 0 | KeyA/B | Never | Never | Never |
1 | 0 | 0 | KeyA/B | KeyB | Never | Never |
1 | 1 | 0 | KeyA/B | KeyB | KeyB | KeyA/B |
0 | 0 | 1 | KeyA/B | Never | Never | KeyA/B |
0 | 1 | 1 | KeyB | KeyB | Never | Never |
1 | 0 | 1 | KeyB | Never | Never | Never |
1 | 1 | 1 | Never | Never | Never | Never |
(KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现)
例如:当块0的存取控制位C10 C20 C30=100时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作。