M1 卡技术规范
Posted yxysuanfa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了M1 卡技术规范相关的知识,希望对你有一定的参考价值。
射频卡简单来讲就是卡的一种工作方式,通过感应的方式来工作,也能够把全部的感应卡都统称为射频卡。
IC卡的范围比較广。芯片外露的接触式IC卡、芯片内置的感应式IC卡和双界面IC卡都可统称为IC卡。IC卡芯片有分为可加密的逻辑加密卡及仅仅具有存储空间的存储卡。
ID卡全称为身份识别卡,是一种不可写入的感应卡,ID卡出厂的时候芯片内码号就已经固话不可更改,每次使用不过读取ID卡的卡号和相关信息进行关联。
ID卡与磁卡一样,都只使用了“卡的号码”而已。卡内除了卡号外,无不论什么保密功能,其“卡号”是公开、裸露的。所以说ID卡就是“感应式磁卡”。
非接触IC卡。又叫 射频卡。感应卡。感应式IC卡。
当中。我们把仅仅读卡(仅仅能通过读卡器读出卡号(ID号),并且卡号是固化的(不能改动),不能往卡的分区再写数据。这样的非接触卡,我们简称ID卡。EM(芯片厂家)的ID卡拥有ID卡绝对的占有率,性价比最好,所以又叫EM卡,或者EM ID卡。
可读写的非接触IC卡。市面上绝大部分产品选用的是 Philips 的 Mifare One 芯片(有人简称M1),所以,我们叫他 Mifare one卡,或者 Mifare 卡。或者叫 M1卡。
Mifare One 卡。当中ISO1443 TYPE A 格式应用最为普及,广泛用于 门禁 考勤 消费 等一卡通场合。
TYPE B格式用于身份证 地铁公交卡等一些场合。M1卡是ISO14443 TPYEA类卡,没有CPU,安全性也不高。
CPU卡,是ISO1443 TPYE B,有CPU,安全性高.
射频卡也就是我们所说的射频识别即RFID技术。又称无线射频识别。是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。
经常使用的有低频(125k~134.2K)、高频(13.56Mhz)、超高频,微波等技术。
一、 主要指标
l 分为16(S50)个扇区。每一个扇区为4块。每块16个字节,以块为存取单位
l 每一个扇区有独立的一组password及訪问控制
l 每张卡有唯一序列号。为32位
二、 存储结构
1、 M1卡分为16个扇区。每一个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构例如以下图所看到的:
|
|
|
|
|
|
块0 |
|
数据块 |
0 |
扇区0 |
块1 |
|
数据块 |
1 |
|
块2 |
|
数据块 |
2 |
|
块3 |
passwordA 存取控制 passwordB |
控制块 |
3 |
|
块0 |
|
数据块 |
4 |
扇区1 |
块1 |
|
数据块 |
5 |
|
块2 |
|
数据块 |
6 |
|
块3 |
passwordA 存取控制 passwordB |
控制块 |
7 |
|
|
∶ ∶ ∶
|
|
|
|
0 |
|
数据块 |
60 |
扇区15 |
1 |
|
数据块 |
61 |
|
2 |
|
数据块 |
62 |
|
3 |
passwordA 存取控制 passwordB |
控制块 |
63 |
2、 第0扇区的块0(即绝对地址0块)。它用于存放厂商代码。已经固化。不可更改。
3、 每一个扇区的块0、块1、块2为数据块。可用于存贮数据。
数据块可作两种应用:
★ 用作一般的数据保存,能够进行读、写操作。
★ 用作数据值,能够进行初始化值、加值、减值、读值操作。
4、 每一个扇区的块3为控制块,包含了passwordA、存取控制、passwordB。详细结构例如以下:
passwordA(6字节) 存取控制(4字节) passwordB(6字节)
5、 每一个扇区的password和存取控制都是独立的,能够依据实际须要设定各自的password及存取控制。存取控制为4个字节。共32位。扇区中的每一个块(包含数据块和控制块)的存取条件是由password和存取控制共同决定的。在存取控制中每一个块都有对应的三个控制位,定义例如以下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C32
块3: C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中。决定了该块的訪问权限(如
进行减值操作必须验证KEY A。进行加值操作必须验证KEY B,等等)。三个控制
位在存取控制字节中的位置。以块0为例:
对块0的控制:
bit 7 6 5 4 3 2 1 0
字节6 |
|
|
|
C20_b |
|
|
|
C10_b |
字节7 |
|
|
|
C10 |
|
|
|
C30_b |
字节8 |
|
|
|
C30 |
|
|
|
C20 |
字节9 |
|
|
|
|
|
|
|
|
( 注: C10_b表示C10取反 )
存取控制(4字节,当中字节9为备用字节)结构例如以下所看到的:
bit 7 6 5 4 3 2 1 0
字节6 |
C23_b |
C22_b |
C21_b |
C20_b |
C13_b |
C12_b |
C11_b |
C10_b |
字节7 |
C13 |
C12 |
C11 |
C10 |
C33_b |
C32_b |
C31_b |
C30_b |
字节8 |
C33 |
C32 |
C31 |
C30 |
C23 |
C22 |
C21 |
C20 |
字节9 |
|
|
|
|
|
|
|
|
( 注: _b表示取反 )
6、数据块(块0、块1、块2)的存取控制例如以下:
控制位(X=0..2)
|
訪 问 条 件 (对数据块 0、1、2) |
|||||
C1X |
C2X |
C3X |
Read |
Write |
Increment |
Decrement, transfer, Restore |
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 |
1 |
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 |
(KeyA|B 表示passwordA或passwordB,Never表示不论什么条件下不能实现)
比如:当块0的存取控制位C10 C20 C30=1 0 0时,验证passwordA或passwordB正确后可读;
验证passwordB正确后可写。不能进行加值、减值操作。
7、控制块块3的存取控制与数据块(块0、1、2)不同。它的存取控制例如以下:
|
|
|
passwordA |
存取控制 |
passwordB |
|||
C13 |
C23 |
C33 |
Read |
Write |
Read |
Write |
Read |
Write |
0 |
0 |
0 |
Never |
KeyA|B |
KeyA|B |
Never |
KeyA|B |
KeyA|B |
0 |
1 |
0 |
Never |
Never |
KeyA|B |
Never |
KeyA|B |
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|B |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
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的存取控制位C13 C23 C33=1 0 0时。表示:
passwordA:不可读,验证KEYA或KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后。可读、可写。
passwordB:验证KEYA或KEYB正确后,可读、可写。
以上是关于M1 卡技术规范的主要内容,如果未能解决你的问题,请参考以下文章
模块循环导入问题,区分py文件的两种用途,模块的搜索路径与查找优先级,软件开发的目录规范
M1卡等IC卡的密钥AB和控制位有啥用,如果是修改数据需要,那么如何使用这三项来进行数据修改