当前位置:文档之家› mifare卡的初值说明及使用方法

mifare卡的初值说明及使用方法


工作原理:
卡片由一个卷绕天线和特定用途集成电路模块组成。其中,模块由一个高速(106KB 波特率)的 RF 接 口。一个控制单元和一个 8K 位 E2PROM 组成。读写器向 MF1 卡发出一组固定频率(13.56MHZ)的电磁波, 卡片内有一个 LC 串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC 谐振电路产生 共振,从而使谐振电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷 送到模块存储电容内储存,当所积累的电荷达到 2V 以上时,此电容可作为电源向模块电路提供工作电压, 将卡内数据发射出去或接收读写器的数据。
Never
Never
Never
100
KeyA|B
KeyB
Never
Never
100
KeyA|B
KeyB
KeyB
KeyA|B
001
KeyA|B
Never
Never
KeyA|B
011
KeyB
KeyB
Never
Never
101
KeyB
Never
Never
Never
111
Never
Never
Never
Never
块3位
字节 7,字节 6,字节 8 = C13,C23,C33 = C1Y,C2Y,C3Y = 0 1 1
块2位
字节 7,字节 6,字节 8 = C12,C22,C32 = C1Y,C2Y,C3Y = 1 1 0
块1位
字节 7,字节 6,字节 8 = C11,C21,C31 = C1Y,C2Y,C3Y = 1 1 0
块2
C1x2
C2x2
块3
C1x3
C2x3
C3x0 C3x1 C3x2 C3x3
用户数据块,(0 区 0 块除外) 用户数据块 用户数据块 密匙存取控制块
表 2:三个控制位在存取控制字节中的位置 (注:" _b" 表示取反)
位号 bit 7
6
5
4
3
2
1
0
字节号
字节 6 字节 7 字节 8 字节 9
C2x3_b C1x3 C3x3 BX7
Mifarel射频卡初始值及其相关说明
【本说明是 Mifare 1 卡订货合同不可缺少的技术性文档附件】
电气特性:
容量为 8K 位 EEPrOM; ● 分为 16 个扇区,每个扇区为 4 块,每块 16 个字节,以块为存取单位; ● 每个扇区有独立的一组密码及访问控制; ● 每张卡有唯一序列号,为 32 位; ● 具有防冲突机制,支持多卡操作; ● 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路; ● 工作温度:-20℃~50℃; ● 工作频率:13.56MHZ; ● 通信速率:106KBPS; ● 读写距离:可达 10mm(与读写器以及卡天线尺寸有关); ● 数据保存期为 10 年,可改写 10 万次,读不限次。
MF1 卡使用权限时参考,其释义如下:
表 5:块 3 的存取控制权限(供发卡商及用户设置权限时参考)
控制位设置值
密码 A 权限
存取控制权限
密码 B 权限C1x3Fra bibliotekC2x3
C3x3






0
0
0
Never
KeyA
KeyA
Never
KeyA
KeyA
0
1
0
Never
Never
KeyA
Never
KeyA
Never
证 KeyB 正确后才可改写该块数据,在此可以看到密钥 KeyB 对改写数据块也起着关键性作用。
(二)、"08 77 8F 69" 控制条件设置步骤:
由(一)可知:KeyB 设置后为不可读,并且改写数据和改写控制位都需要正确验证它,故 KeyB 设置后程序
操作员必须妥善保管 KeyB 值,否则以后改写数据和控制位时,不正确的 KeyB 值将无法实现卡的任何操
C2x2_b C1x2 C3x2 BX6
C2x1_b C1x1 C3x1 BX5
C2x0_b C1x0 C3x0 BX4
C1x3_b C3x3_b C2x3 BX3
C1x2_b C3x2_b C2x2 BX2
C1x1_b C3x1_b C2x1 BX1
C1x0_b C3x0_b C2x0 BX0
所属块 块 3 控制位 块 2 控制位 块 1 控制位 块 0 控制位 块 3 控制位 块 2 控制位 块 1 控制位 块 0 控制位
需正确校验 KEY A 或 KEY B 后才可允许读取块 1 的内容,否则,MF1 读写器会因校验某区密码出错而无
法读取和传送数据!以此类推,用户要进行其它操作时,可根据存取条件,对照表 2~4 来决定其操作权限。
表 5 列出了飞利浦公司对 MF1 卡的 8 种控制位设置值所对应的存取控制权限表,供发卡商及用户设置
字节 6 = 0 0 0 0 1 0 0 0
字节 7 = 0 1 1 1 0 1 1 1
字节 8 = 1 0 0 0 1 1 1 1
3、参照表 2 及表 4 算法,字节 6 的全部二进制值取反,字节 7 的低四位二进制值取反,字节 8 不变,得到:
字节号
对应二进制值 位置
高4位
位置
低4位
字节 6
0 0 0 0 1 0 0 0 C2Y
例如,某区块的 3 个存取控制位 C1xy,C2xy,C3xy=000 时(厂商预设的初始值,见阴影区),验证密码 A 或密码 B 正确后可读出/可写入/可加值/减值及初始化操作。该初始值主要供制卡和发卡商检测心片功能 使用,确认所有读写/加密功能均正常(存取控制初始值"ff078069",请参考"步骤举例"自行验算)后,再依据 使用需要和参照表 4 表 5 设置新的存取控制权限值,进行用户数据操作和修改新的用户密码。
表 4: 块 3 中厂商初始存取控制值(-号表示需要取反)
Bit# 字节 6 字节 7 字节 8
7 10 1 CXx3
6 10 0 CXx2
5 10 0 CXx1
4 10 0 CXx0
3 100 CXx3
2 110 CXx2
1 110 CXx1
0 110 CXx0
如果用户要读到块 1 的内容,对照表 4 和查对表 3 可知,当存取控制 C1x1,C2x1,C3x1=000 时,必
◆ 块 3 = 011:权限为:KeyA,KeyB 均不可读,验证 KeyB 正确后可改写 KeyA 和 KeyB,验证 KeyA 或
KeyB 正确后可读"控制位"。在此可见密钥 KeyB 的重要性,KeyB 不正确是无法看到块 3 控制值,更无法
修改密钥。
◆ 块 2 = 块 1 = 块 0 = 110:权限为:验证 KeyA 或 KeyB 后可读该块数据,减值以及初始化值,只有验
值为 69):
注释:表 3 中,KeyA|B 表示密码 A 或密码 B,Never 表示没有条件实现。
表 3:数据块的存取控制权限(x=0~15 扇区; y=块 0,块 1,块 2)
C1xy C2xy C3xy 读

加值
减值,初始化
000
KeyA|B
KeyA|B
KeyA|B
KeyA|B
010
KeyA|B
Never
Never
1
1
1
Never
Never
KeyA|B Never
Never
Never
例如:当块 3 的存取控制位 C13 C23 C33 = 100 时,表示:密码 A:不可读(隐藏),验证 KEYB 正确
后,可写(或更改);存取控制:验证 KEYA 或 KEYB 正确后,可读不可写(写保护);密码 B:不可读,验
69 改为新值 08 77 8F 69)并执行写操作。控制位写成功后,KeyB 亦为 12 个"0"不可读了,但仍是隐藏的 12
个"f"默认值。
2、修改块 3 的 KeyA 和 KeyB 值:控制位 08 77 8F 69 值写成功后,验证 KeyB 正确后方可改写 KeyA 和
块0位
字节 7,字节 6,字节 8 = C10,C20,C30 = C1Y,C2Y,C3Y = 1 1 0
注意: 高 4 位的各块值=低 4 位的各块值时,其值可用。高 4 位值≠低 4 位值时,其值不可用!
5、查对访问权限(数据存取控制依照表 3,块 3 存取控制依照表 5),该例"08 77 8F 69"的访问权限为:
字节号
012345
6789
10 11 12 13 14 15
各区控制块
3 结构
控制值
FF FF FF FF FF FF FF
07 80 69
FF FF FF FF FF FF
说明
密码 A(0~5 字节)
存取控制(6~9 字节) 密码 B(10~15 字节)
控制属性:
每个扇区的用户密码和存取控制条件都是独立设置的,可以根据实际需要设定各自的密码及存取控 制。在存取控制中,每个块都有三个控制位相对应,用以决定某数据块或控制块的读写条件,定义为: "CXxy",见表 1 所示。
再如当某区块 0 的存取控制位 C10,C20,C30 的设置均=100 时,验证密码 A 或密码 B 正确后可读出 其数据;只有验证密码 B 正确后才可允许改写数据;不能进行加值,减值等操作。
以厂商初始值"FF 07 80 69"为例,说明存取控制条件对数据块的影响。初始存取控制默认值(C1x0, C2x0,C3x0=000;C1x1,C2x1,C3x1=000;C1x2,C2x2,C3x2=000;C1x3,C2x3,C3x3=001)和 KeyA, KeyB 默认值(由厂商提供,通常为:ffffffffffff)。那么块 3 中,厂商初始的存取控制值如下表所示:
相关主题