打印

M1卡存取控制字节规则说明以及对应工具使用说明

[复制链接]
538|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 广州慧斯佳 于 2023-4-12 12:05 编辑

M1卡存取控制字节规则说明以及对应工具使用说明
目前市面上最常见的IC卡,如校园卡,水卡,门禁卡,会员卡等,绝大部分的卡片类型均属于Mifare1 S50卡,以下统称为M1卡。

·M1卡内部基本数据结构
·卡片内部分为16个扇区(编号0~15),每个扇区分为4个数据块(编号0~3),每个数据块的数据长度是16个字节
·每个扇区中数据块0~数据块2,用户可进行数据的读取和写入,加值、减值、值转移、值恢复等操作
·注意:其中扇区0中的数据块0用于存放卡片的卡号数据和厂商代码;只可读取,不能写入
·每个扇区中数据块3,存放访问扇区的密钥数据和控制访问权限的字节(统称控制字节)

扇区0
数据块0
存放卡片的卡号数据和厂商代码只可读取,不能写入
数据块1
用户可自行读取或写入数据到数据块
数据块2
数据块3
存放访问扇区的密钥数据和控制访问权限的字节
. . . . . .
扇区15
数据块0
用户可自行读取或写入数据到数据块
数据块1
数据块2
数据块3
存放访问扇区的密钥数据和控制访问权限的字节

本文着重介绍每个扇区中的数据块3;既存放密钥数据和控制权限字节的部分,数据块3结构如下:
A密钥
控制字节
B密钥
6个字节
4个字节
6个字节

Mifare1S50出厂默认每个扇区的数据块3中的数据都是:
FF FF FF FF FF FF    FF 07 80 69   FF FF FF FF FF FF
其中:
FF FF FF FF FF FF A密钥
FF 07 80 69 为控制字节
FF FF FF FF FF FFB密钥

控制字节FF 07 80 69所表示的控制权限含义:可用广州慧斯佳智能科技有限公司开发的M1S50卡控制字节工具进行解析得到
·控制字节工具的使用和下载说明

下载链接:http://www.wisbetter.com/down-24.html

  控制字节工具主要分为2个功能:
  1.填入已知的控制字节,进行解析;得到所表示的控制权限
  2.选择所需要的控制权限,生成对应的控制字节

·解析控制字节
·在红框中输入FF 07 80 69;点击解析控制字节按键;得到对应控制权限解析说明



·生成控制字节
选择所需要设置的权限,点击生成控制字节按键;红框中输出选择的权限的控制字节


·常见控制字节组合
  控制字节的组合方式虽然多,但实际用得比较多的主要是以下4种:

组合一:FF 07 80 69
这种字节组合方式是最常见的;只要A密钥或者B密钥验证通过,便可以读写数据块数据,修改AB密钥,修改控制字节
  优点在于:控制字节直接出厂默认,无需重新设置。读写数据,修改密钥都比较方便。缺点在于:安全性能差,数据和密钥容易泄露和被修改


组合二:7F078869
  这种字节组合方式是:只要A密钥或者B密钥验证通过,便可以读写数据块数据,修改AB密钥,控制字节都需要B密钥验证通过才可以
  优点在于:密钥B权限最高,只要知道密钥B,就可以对A密钥和控制字节进行改写。应用上一般是由最高管理员掌握密钥B,配置多个密钥A给到对应的管理员。缺点在于:密钥B很重要,一旦忘记,卡就不能再改写密钥


组合三:08 77 8F 69
      这种字节组合:由密钥A读密钥B来写,可以说是上面一种组合的变体,对于密钥B有更强的保护


组合四:FF 00 F0 69
        这种字节组合:数据块不具有写入权限;只能读取。最常见用于门禁机发卡;在发卡阶段写入合法的身份识别数据之后;卡片的数据便再也不能修改


·已知控制字节·解析权限过程详述
以最常见的 FF 07 80 69 字节组合为例

字节6
字节7
字节8
字节9
0xFF
0x07
0x80
0x69

其中字节9目前是作为保留字节,一般固定为0x69;主要是看字节6783个字节
步骤1:将字节678转换成对应的二进制格式,如下表

16进制格式
转换
2进制格式
字节6
0xFF
——》
1111 1111
字节7
0x07
——》
0000 0111
字节8
0x80
——》
1000 0000

步骤2:对字节678进行相应的处理
字节6处理操作:82进制数进行按位取反
字节6
16进制格式
转换
2进制格式
82进制数进行
按位取反
处理结果
0xFF
——》
1111 1111
——》
0000 0000

字节7处理操作:高42进制数保留;低42进制数取反
字节7
16进制格式
转换
2进制格式
42进制数保留
42进制数按位取反
处理结果
0x07
——》
0000 0111
——》
0000 1000

字节8处理操作:82进制数不做任何处理,直接保留
字节8
16进制格式
转换
2进制格式
82进制数不做任何处理
处理结果
0x80
——》
1000 0000
——》
1000 0000

步骤3:将处理后的字节67882进制数组成1张表格;如下表
bit-7
bit-6
bit-5
bit-4
bit-3
bit-2
bit-1
bit-0
权限增值表中的符号
C23_b
C22_b
C21_b
C20_b
C13_b
C12_b
C11_b
C10_b
字节6
0
0
0
0
0
0
0
0
权限增值表中的符号
C13
C12
C11
C10
C33_b
C32_b
C31_b
C30_b
字节7
0
0
0
0
1
0
0
0
权限增值表中的符号
C33
C32
C31
C30
C23
C22
C21
C20
字节8
1
0
0
0
0
0
0
0

其中:
C10C20C30组合:表示扇区中数据块0的权限;具体权限需要对应下图的数据块权限真值表
C11C21C31组合:表示扇区中数据块1的权限;具体权限需要对应下图的数据块权限真值表
C12C22C32组合:表示扇区中数据块2的权限;具体权限需要对应下图的数据块权限真值表
C13C23C33组合:表示扇区中密钥数据块(即数据块3)的权限;具体权限需要对应下图的密钥块权限真值表


组合C10C20C30,C11C21C31,C12C22C32的值均为 0 0 0,对应到数据块控制权限真值表中权限为:读:A|B 写:A|B  增值:A|B 减值、转移值、恢复值:A|B


组合C13C23C33的值为 0 0 1,对应到密钥块控制权限真值表中权限为:
AKey:读:Never 写:A|B     
控制字节:读:A|B 写:A|B   
BKey:读:A|B 写:A|B

综上:FF 07 80 69
  数据块权限为:读:A|B 写:A|B  增值:A|B 减值、转移值、恢复值:A|B  
  密钥块权限为AKey:读:Never 写:A|B  
            控制字节:读:A|B 写:A|B   
                                       BKey:读:A|B 写:A|B
所以控制字节FF 07 80 69的控制权限是:
只要A密钥或者B密钥验证通过,便可以读写数据块0,1,2;还可以对数据块0,1,2进行增值,减值, 转移值,恢复值等操作
只要A密钥或者B密钥验证通过,便可以写入A密钥;读写控制字节,读写B密钥;但无论任何条件下,都无法读取A密钥
·根据所需要权限·生成对应控制字节
假设~~~现在对扇区中数据块0,1,2,密钥块的控制权限分别是以下需求:

1.数据块0:只有B密钥验证通过;才可以读取数据;但无论任何条件下,都不可以写入数据;不可以进行增值,减值, 转移值,恢复值等操作
2.数据块1:只要A密钥或者B密钥验证通过,就可以读取数据;但无论任何条件下,都不可以写入数据;不可以进行增值,减值, 转移值,恢复值等操作
3.数据块2:只有B密钥验证通过;才可以读取数据;但无论任何条件下,都不可以写入数据;不可以进行增值,减值, 转移值,恢复值等操作
4.密钥块:只要A密钥或者B密钥验证通过,就可以读取控制字节,但无论任何条件下,控制字节都不能被修改;只有B密钥验证通过;才可以修改A密钥和B密钥;但无论任何条件下,都不能读取A密钥和B密钥
结合上述需求分析:
   数据块0权限值C10C20C30  和数据块2权限值C12C22C32  均为下表红框中的值,既是C10C20C30 = 1 0 1C12C22C32 = 1 0 1
数据块1权限值C11C21C301为下表黄框中的值,既是C11C21C31 = 0 1 0

密钥块权限值C13C23C33为下表中绿框中的值,既是C13C23C33 = 1 0 0

步骤1:将分析需求得到的C10C20C30 = 1 0 1C11C21C31 = 0 1 0;C12C22C32 = 1 0 1;C13C23C33 = 1 0 0;填入下表
bit-7
bit-6
bit-5
bit-4
bit-3
bit-2
bit-1
bit-0
权限增值表中的符号
C23_b
C22_b
C21_b
C20_b
C13_b
C12_b
C11_b
C10_b
权限增值表中的符号
C13
C12
C11
C10
C33_b
C32_b
C31_b
C30_b
1
1
0
1
权限增值表中的符号
C33
C32
C31
C30
C23
C22
C21
C20
0
1
0
1
0
0
1
0

步骤2:根据已经填入的值,对表格进行补全处理
补全处理:_b表示取反;例如C30_b表示是C30的取反值
bit-7
bit-6
bit-5
bit-4
bit-3
bit-2
bit-1
bit-0
权限增值表中的符号
C23_b
C22_b
C21_b
C20_b
C13_b
C12_b
C11_b
C10_b
1
1
0
1
0
0
1
0
权限增值表中的符号
C13
C12
C11
C10
C33_b
C32_b
C31_b
C30_b
1
1
0
1
1
0
1
0
权限增值表中的符号
C33
C32
C31
C30
C23
C22
C21
C20
0
1
0
1
0
0
1
0

步骤3:分别对3组8位2进制数进行格式转换
8位2进制数C23_bC22_bC21_bC20_bC13_bC12_bC11_bC10_b转换成16进制格式:得到字节6
bit-7
bit-6
bit-5
bit-4
bit-3
bit-2
bit-1
bit-0
C23_b
C22_b
C21_b
C20_b
C13_b
C12_b
C11_b
C10_b
1
1
0
1
0
0
1
0
8位2进制数 转换 成16进制格式;得到字节6
0xD2

8位2进制数C13C12C11C10C33_bC32_bC31_bC30_b转换成16进制格式:得到字节7
bit-7
bit-6
bit-5
bit-4
bit-3
bit-2
bit-1
bit-0
C13
C12
C11
C10
C33_b
C32_b
C31_b
C30_b
1
1
0
1
1
0
1
0
8位2进制数 转换 成16进制格式;得到字节7
0xDA

8位2进制数C33C32C31C30C23C22C21C20转换成16进制格式:得到字节8
bit-7
bit-6
bit-5
bit-4
bit-3
bit-2
bit-1
bit-0
C33
C32
C31
C30
C23
C22
C21
C20
0
1
0
1
0
0
1
0
8位2进制数 转换 成16进制格式;得到字节8
0x52

结合上述3个表格得到:字节6:0xD2;字节7:0xDA;字节8:0x52;字节9一般固定为0x69
所以根据需求最终生成的控制字节是:D2 DA 52 69




组合3.jpg (130.53 KB )

组合3.jpg

组合4.jpg (110.05 KB )

组合4.jpg

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

7

帖子

0

粉丝