【笔记】M1卡学习笔记

前言

MIFARE包括一系列依循ISO/IEC 14443-A规格,利用无线射频识别(频率为13.56MHz)的多种非接触式智能卡专有解决方案。(维基百科

分区表

  • M1卡共有16个扇区(Sector),每个扇区共有4个块(Block),每个块可以存放16字节的数据
扇区编号 第1块(数据块) 第2块(数据块) 第3块(数据块) 第4块(密钥控制块)
Sector0 Block0 Block1 Block2 Block3
Sector1 Block4 Block5 Block6 Block7
Sector2 Block8 Block9 Block10 Block11
Sector3 Block12 Block13 Block14 Block15
Sector4 Block16 Block17 Block18 Block19
Sector5 Block20 Block21 Block22 Block23
Sector6 Block24 Block25 Block26 Block27
Sector7 Block28 Block29 Block30 Block31
Sector8 Block32 Block33 Block34 Block35
Sector9 Block36 Block37 Block38 Block39
Sector10 Block40 Block41 Block42 Block43
Sector11 Block44 Block45 Block46 Block47
Sector12 Block48 Block49 Block50 Block51
Sector13 Block52 Block53 Block54 Block55
Sector14 Block56 Block57 Block58 Block59
Sector15 Block60 Block61 Block62 Block63

0扇区(Block0)

  • Sector0的的第1块(Block0)为厂商块,M1卡(原装卡)厂商块为只读的,M1-UID卡(兼容原装卡的仿制卡)厂商块为可写的
    • Byte0~3:序列号(UID)
    • Byte4:BCC校验位
    • Byte5:芯片容量和卡类型
    • Byte6~15:原厂固化厂商、批次、芯片信息

密钥控制块

  • 每个扇区的第3块为本扇区密钥控制块,每个扇区的密钥可以不相同

    • Byte0~5:密钥A,出厂默认值为FF FF FF FF FF FF
    • Byte6~9:存取控制位,出厂默认值为FF 07 80 69
    • Byte10~15:密钥B,出厂默认值为FF FF FF FF FF FF
    • 密码出厂默认为FF FF FF FF FF FF
  • 任何密钥鉴权读取Block3时,密钥A一定返回00 00 00 00 00 00,永远读不到密钥A的明文,仅权限配置合适时可读出密钥B明文

1
FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

权限

C1C2C3 读权限 写权限 加值 减值/转移
000 需KeyA或KeyB认证 需KeyA或KeyB认证 需KeyA或KeyB认证 需KeyA或KeyB认证
001 需KeyA或KeyB认证 禁止 禁止 禁止
010 需KeyA或KeyB认证 禁止 禁止 禁止
011 需KeyA或KeyB认证 需KeyB认证 禁止 禁止
100 需KeyB认证 需KeyB认证 需KeyB认证 需KeyB认证
101 需KeyB认证 禁止 禁止 禁止
110 需KeyB认证 禁止 禁止 禁止
111 禁止 禁止 禁止 禁止

每个字节的各个位含义

  • Byte68共同存储Block03的权限正码和补码
  • Byte9无意义,可自定义存储数据

C23

C2:权限位
3:Block3的权限
:补码

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
Byte6 C23 C22 C21 C20 C13 C12 C11 C10
Byte7 C13 C12 C11 C10 C33 C32 C31 C30
Byte8 C33 C32 C31 C30 C23 C22 C21 C20

完成