Mifare l射频卡初始值及其相关说明

2019-07-21 01:44发布

Mifare l射频卡初始值及相关说明
电气特性: 容量为8KEEPrOM ● 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位; ● 每个扇区有独立的一组密码及访问控制; ● 每张卡有唯一序列号,为32位; ● 具有防冲突机制,支持多卡操作; ● 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路; ● 工作温度:-20℃50℃ ● 工作频率:13.56MHZ ● 通信速率:106KBPS ● 读写距离:可达10mm(与读写器以及卡天线尺寸有关) ● 数据保存期为10年,可改写10万次,读不限次。   工作原理: 片由一个卷绕天线和特定用途集成电路模块组成。其中,模块由一个高速(106KB波特率)RF接口。一个控制单元和一个8KE2PROM组成。读写器向MF1卡发出一组固定频率(13.56MHZ)的电磁波,片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使谐振电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到模块存储电容内储存,当所积累的电荷达到2V以上时,此电容可作为电源向模块电路提供工作电压,将内数据发射出去或接收读写器的数据。   存储结构: MF1卡分为16个扇区,每区有4(0~块3),共64块,按块号编址为063。第0扇区的块0(即绝对地址块0)用于存放芯片商,卡商相关代码,已经固化不可更改。其他各扇区的块0,块1,块2为数据块,用于存贮用户数据;块3为各扇区控制块,用于存放密码A,存取控制条件设置,密码B。各区控制块结构相同,如下所示: 各区控制块结构 字节号 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 控制值 FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF 说明 密码A(05字节) 存取控制(69字节) 密码B(1015字节)   控制属性: 每个扇区的用户密码和存取控制条件都是独立设置的,可以根据实际需要设定各自的密码及存取控制。在存取控制中,每个块都有三个控制位相对应,用以决定某数据块或控制块的读写条件,定义为:"CXxy",见表1所示。 其中CX代表每块控制位号(C1C3)x代表某块所属扇区号(015) y代表该扇区内某块号。例如C1x2 即为x扇区内块2的第1控制位,余此类推。 注:控制位的设置存放在存取控制字节中,见表2所示。
1:控制位定义"CXxy" 0 C1x0 C2x0 C3x0 用户数据块,(00块除外) 1 C1x1 C2x1 C3x1 用户数据块 2 C1x2 C2x2 C3x2 用户数据块 3 C1x3 C2x3 C3x3 密匙存取控制块   2:三个控制位在存取控制字节中的位置(注:" _b" 表示取反) 位号 字节号  bit 7 6 5 4 3 2 1 0 字节6 C2x3_b C2x2_b C2x1_b C2x0_b C1x3_b C1x2_b C1x1_b C1x0_b 字节7 C1x3 C1x2 C1x1 C1x0 C3x3_b C3x2_b C3x1_b C3x0_b 字节8 C3x3 C3x2 C3x1 C3x0 C2x3 C2x2 C2x1 C2x0 字节9 BX7 BX6 BX5 BX4 BX3 BX2 BX1 BX0 所属块 3控制位 2控制位 1控制位 0控制位 3控制位 2控制位 1控制位 0控制位   各扇区数据块0~块2三个控制位以正反两种形式存在于块3存取控制字节中,它决定了该块的访问权限(例如进行减值及初始化值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节(69字节)中的权限如下(阴影区的存取控制为厂商初始值;字节9为备用字节,默认值为69) 注释:表3中,KeyA|B表示密码A或密码BNever表示没有条件实现。 3:数据块的存取控制权限(x=015扇区; y=0,块1,块2) C1xy C2xy C3xy 加值 减值,初始化 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 0 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     例如,某区块的3个存取控制位C1xyC2xyC3xy=000(厂商预设的初始值,见阴影区),验证密码A或密码B正确后可读出/可写入/可加值/减值及初始化操作。该初始值主要供制卡和发卡商检测心片功能使用,确认所有读写/加密功能均正常(存取控制初始值"ff078069",请参考"步骤举例"自行验算)后,再依据使用需要和参照表45设置新的存取控制权限值,进行用户数据操作和修改新的用户密码。 再如当某区块0的存取控制位C10C20C30的设置均=100时,验证密码A或密码B正确后可读出其数据;只有验证密码B正确后才可允许改写数据;不能进行加值,减值等操作。 以厂商初始值"FF 07 80 69"为例,说明存取控制条件对数据块的影响。初始存取控制默认值(C1x0C2x0C3x0=000C1x1C2x1C3x1=000C1x2C2x2C3x2=000C1x3C2x3C3x3=001)KeyAKeyB默认值(由厂商提供,通常为:ffffffffffff)。那么块3中,厂商初始的存取控制值如下表所示: 43中厂商初始存取控制值(-号表示需要取反) Bit# 7 6 5 4 3 2 1 0 字节6 1- 1- 1- 1- 1- 1- 1- 1- 字节7 0 0 0 0 0- 1- 1- 1- 字节8 1 0 0 0 0 0 0 0   CXx3 CXx2 CXx1 CXx0 CXx3 CXx2 CXx1 CXx0   如果用户要读到块1的内容,对照表4和查对表3可知,当存取控制C1x1C2x1C3x1=000时,必需正确校验KEY AKEY B后才可允许读取块1的内容,否则,MF1读写器会因校验某区密码出错而无法读取和传送数据!以此类推,用户要进行其它操作时,可根据存取条件,对照表24来决定其操作权限。 
   
5列出了飞利浦公司对MF18种控制位设置值所对应的存取控制权限表,供发商及用户设置MF1使用权限时参考,其释义如下: 
5:块3的存取控制权限(供发商及用户设置权限时参考)
控制位设置值 密码A权限 存取控制权限 密码B权限 C1x3 C2x3 C3x3 0 0 0 Never KeyA KeyA Never KeyA KeyA 0 1 0 Never Never KeyA Never KeyA 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 KeyA KeyA KeyA KeyA 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 例如:当块3的存取控制位C13C23 C33 = 100时,表示:密码A:不可读(隐藏),验证KEYB正确后,可写(或更改);存取控制:验证KEYAKEYB正确后,可读不可写(写保护);密码B:不可读,验证KEYB正确后可写。 又如:当块3的存取控制位C13C23 C33 = 110或者111时,除存取控制值需要在验证KEYAKEYB正确后仅仅可读外,其它如存取控制值的改写,密码A,密码B的读写权限均被锁死而无法访问!                                   MF1卡修改各区块控制位值和数据——举例 (),以常用设置"08 77 8F 69"控制条件为例,先搞清楚它――具有的访问权限。 
1
、对"08 77 8F 69"值进行计算,该值定位于各区块36789四个字节内,字节6=08,字节7=77 
字节8=8F,字节9=69(默认值,不予计算) 
2
、例如:字节6=08,对应其二进制值=00001000则对678这三个字节进行二进制转换结果见下表: 字节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 字节
字节
字节8
0 0 0 0 1 0 0 0 
0 1 1 1 0 1 1 1 
1 0 0 0 1 1 1 1
C2Y 
C1Y 
C3Y
1 1 1 1 
0 1 1 1 
1 0 0 0
C1Y 
C3Y 
C2Y
0 1 1 1 
1 0 0 0 
1 1 1 1
0   0   4、对以上678字节的存取/控制二进制已取反值,依照表2,表4块位转换为各块控制值,如下表: 3 字节7,字节6,字节8 = C13C23C33 = C1YC2YC3Y = 0 1 1 2 
1 
0
字节7,字节6,字节8 = C12C22C32 = C1YC2YC3Y = 1 1 0 字节7,字节6,字节8 = C11C21C31 = C1YC2YC3Y = 1 1 0 字节7,字节6,字节8 = C10C20C30 = C1YC2YC3Y = 1 1 0 注意:4位的各块值=4位的各块值时,其值可用。高4位值4位值时,其值不可用
5
、查对访问权限(数据存取控制依照表3,块3存取控制依照表5),该例"08 77 8F 69"的访问权限为: 
◆ 
3 = 011:权限为:KeyAKeyB均不可读,验证
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。