M1卡权限控制

参考:


​ 文章:木之泪–M1卡存取控制字节规则详解

​ 文档:MF1S50YYX_V1_2


一、特性和优势

  • 非接触式传输数据和供电
  • 工作频率为 13.56 MHz
  • 16 位 CRC 数据完整性检验、奇偶校验、位编码、位计数
  • 典型票务交易时间小于 100 毫秒(包括备份管理)
  • 支持随机 ID(7 字节 UID 版本)
  • 工作距离可达 100 mm,具体取决于天线的几何形状和读卡器配置
  • 数据传输速率为 106 Kbps
  • 防碰撞
  • 7 字节 UID, 4 字节 NUI

EEPROM

即MIFARE Classic卡片中的电可擦除可编程只读存储器

  • 1 KB(1024kb,8字节)
  • 由 16 个扇区组成,每个扇区分为 4 个块。一个块包含 16 字节。
  • 数据保持时间为 10 年
  • 用户可为每个内存块定义访问条件
  • 可写入 20 万次

二、存储器规划

1.整体情况

  • 16 个扇区,每个扇区分为 4 个。一个块包含 16 字节

M1卡权限控制_第1张图片

2.制造商块

  • 第一扇区(0 扇区)的第一数据块(0 块)

  • 其中包含 IC 制造商数据。该块在生产测试中编程并实施写保护

  • 用于存放厂商代码,已经固化,不可更改。

3.数据块

  • 所有扇区的0,1,2三个块,用于存储数据
  • 但它们的访问权限是由块3中的访问控制位控制的。

4.尾块

  • 即:一个扇区中的最后一个块–块 3

  • 组成:

    • 密钥 A(强制)和密钥 B(可选)
    • 该扇区块的访问条件(字节 6 至字节 9 ),对应16进制控制块4个值

M1卡权限控制_第2张图片

三、访问条件(6~9字节)

1.概述

  • 每个扇区的尾块(块3)包含访问控制信息,这些信息由称为访问控制位(C1, C2, C3)的三位组成

    它们的组合定义了对数据块的读、写、增加、减少等操作的访问权限

  • 以下是这些访问控制位的表示方法

    块类型 访问控制位
    数据块0(块0) C10, C20, C30
    数据块1(块1) C11, C21, C31
    数据块2(块2) C12, C22, C32
    尾块(块3) C13, C23, C33
  • 对于每个数据块,都有一组访问控制位。块3负责块数据块的权限控制,同时,块3中还包含了一组访问控制位,用于控制尾块本身的访问权限

2.存取控制

字节位
字节6 C23 C22 C21 C20 C13 C12 C11 C10
字节7 C13 C12 C11 C10 C33 C32 C31 C30
字节8 C33 C32 C31 C30 C23 C22 C21 C20
字节9
  • 字节9是备用字节,一般不用
  • Cxx代表需要取反

3.数据块访问条件参照表

M1卡权限控制_第3张图片

4.尾块的访问条件参照表

M1卡权限控制_第4张图片

四、案例

1.案例1

块3的控制字是FF 07 80 69

  • 根据16进制转2进制(8,4,2,1)和存取控制可以得到下表:(字节 9一般不用)
字节位
C23 C22 C21 C20 C13 C12 C11 C10
FF – 字节6 1 1 1 1 1 1 1 1
C13 C12 C11 C10 C33 C32 C31 C30
07 – 字节7 0 0 0 0 0 1 1 1
C33 C32 C31 C30 C23 C22 C21 C20
80 – 字节8 1 0 0 0 0 0 0 0
  • 按照要求取反和根据数据块访问控制表、尾块访问控制表
三位访问控制位 权限(注意两个权限表)
0 C10,C20,C30 — 000 通过A或者B密码认证后可读,可写,可进行加值和减值操作
1 C11,C21,C31 — 000 通过A或者B密码认证后可读,可写,可进行加值和减值操作
2 C12,C22,C32 — 000 通过A或者B密码认证后可读,可写,可进行加值和减值操作
3 C13,C23,C33 — 001 A密码不可读,验证A或者B密码后可改写A密码。验证A或者B密码后,可读可改写存取控制 。 验证A密码或者B密码后,可读可改写B密码

2.案例2

块3的控制字是E8 73 C1 69

  • 根据16进制转2进制(8,4,2,1)和存取控制可以得到下表:(字节 9一般不用)
字节位
C23 C22 C21 C20 C13 C12 C11 C10
E8– 字节6 1 1 1 0 1 0 0 0
C13 C12 C11 C10 C33 C32 C31 C30
73 – 字节7 0 1 1 1 0 0 1 1
C33 C32 C31 C30 C23 C22 C21 C20
C1– 字节8 1 1 0 0 0 0 0 1
  • 按照要求取反和根据数据块访问控制表、尾块访问控制表
三位访问控制位 权限(注意两个权限表)
0 C10,C20,C30 — 110 通过A或者B密码认证后可读、减值,通过B密码认证后可写、加值
1 C11,C21,C31 — 100 通过A或者B密码认证后可读,通过B密码认证后可写,不可进行加值和减值操作
2 C12,C22,C32 — 101 通过B密码认证后可读,不可进行写、加值和减值操作
3 C13,C23,C33 — 001 A密码不可读,验证A或者B密码后可改写A密码。验证A或者B密码后,可读可改写存取控制 。 验证A密码或者B密码后,可读可改写B密码

你可能感兴趣的:(编码,安全)