文档库

最新最全的文档下载
当前位置:文档库 > 实验6HF ISO14443A存取控制

实验6HF ISO14443A存取控制

知识学习:

14443A的每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:

块0:C10 C20 C30

块1:C11 C21 C31

块2:C12 C22 C32

块3:C13 C23 C33

在Security Block表中,表现的是C(xy)的值的二维表。如第二行第三列是C22的值。

三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置,以块0为例:

表一、对块0的控制:

bit 7 6 5 4 3 2 1 0

实验6HF ISO14443A存取控制

字节6

字节7

字节8

字节9

( 注:C10_b表示C10取反)

表二、存取控制(4字节,其中字节9为备用字节)结构:

bit 7 6 5 4 3 2 1 0

实验6HF ISO14443A存取控制

字节6

字节7

字节8

字节9

( 注:_b表示取反)

表三数据块(块0、块1、块2)的存取控制

实验6HF ISO14443A存取控制

(KeyA|B表示密码A或密码B,Never表示任何条件下不能实现)

例如:当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码B 正确后可读;验证密码B正确后可写;不能进行加值、减值操作。

块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下:

表四控制块块3的存取控制

实验6HF ISO14443A存取控制

密码A:不可读,验证KEYA或KEYB正确后,可写(更改)。

存取控制:验证KEYA或KEYB正确后,可读、可写。

密码B:验证KEYA或KEYB正确后,可读、可写。

可变模式和固定模式:请注意C13C23C33是001,011,101时,存取控制才可以写,这时叫做可变模式。此时0、1、2、3块的存取控制才可以改。C13C23C33是其他5种模式时,存取控制再也不能改写,这时叫做固定模式。此时0、1、2块的存取控制也不能改写了,是啥样就是啥样固定了。变和不变的叫法只是针对0、1、2、3块的存取控制,不影响别的。

实验六ISO14443A协议下存取控制位修改和功能

一、实验目的

掌握修改存取控制位以控制数据块读写加值减值操作、控制块读写的方法。

二、实验器材

RFID读写器基础实验箱、计算机一台(自备)、实验用ISO14443A白卡三、实验内容

修改ISO14443A卡的存取控制位,了解存取控制位的作用。

四、实验步骤

1、拿起一张实验用高频ISO14443A白卡,置于高频天线感应区,进入操作界面。

2、修改存取控制位的操作都在Security Block页完成,

实验6HF ISO14443A存取控制

(该操作界面问题:1、KeyA、KeyB读不出来就变成了00-00-00-00-00-00,很容易在写回去时改变密码。2、控制字列表读取时不准,只能看access cond.)

3、读取控制位

14443A卡中,一共有16个扇区,每个扇区拥有独立的密钥,分为密钥A 和密钥B,其长度均为6bytes,此外还有4bytes的存储控制位,控制密钥A和密钥B的访问条件等信息。

读取的操作步骤如下选择需要读取的Sector

a)选择输入密钥A进行验证操作(验证密钥B可以吗?为什么?)

b)输入正确的密钥A或是密钥B(默认的密钥A和密钥B都是

FF-FF-FF-FF-FF-FF)

c)点击Read,控制位数值会显示在Access Cond.区域,其对应每个扇区的控制

位在表中显示出来,第一列是C10C20C30,第二列是C11C22C31,以此类推。

请根据该表写出该扇区控制字段的值。

d)分析控制字段的初始值含义。

可变模式

4、修改控制位

修改操作步骤如下

a) 选择需要读取的Sector 5

b) 选择输入密钥A或是密钥B进行验证操作

c) 输入正确的密钥A或是密钥B(默认的密钥A和密钥B都是FF-FF-FF-FF-FF-FF)

(修改C13C23C33的值为001,011,101,千万不要改为其他值!为什么?)

d) 在Access Cond.区域或控制位表中修改C13C23C33控制位的值为011,点击Write,可以修改控制位的值。在C13C23C33的值为011时,其他控制位C10C20C30、C11C21C31、C12C22C32写为000、010、100,检验数据块存取规则。改变KeyA 和KeyB,能修改吗?

e)在Access Cond.区域或控制位表中修改控制位在C13C23C33的值为101,点击Write,可以修改控制位的值。在C13C23C33的值为101时,其他控制位C10C20C30、C11C21C31、C12C22C32写为110、001、011,检验数据块存取规则。改变KeyA和KeyB,能修改吗?

f)最后把C13C23C33的值写为011。

固定模式:

5、对第6扇区进行操作,把C13C23C33的值写为100,其他控制位C10C20C30、C11C21C31、C12C22C32都写为000、010、100,检验0、1、2数据块的存取规则(数据能否读取和修改,要输入KeyA还是KeyB)。改变KeyA和KeyB,能修改吗?控制块数据还能改回去吗?(密码能改,控制数据改不回去了)

6、对第7扇区进行操作,把C13C23C33的值写为101,其他控制位C10C20C30、C11C21C31、C12C22C32写为110、001、011,检验0、1、2数据块的存取规则(数据能否读取和修改,要输入KeyA还是KeyB)。改变KeyA和KeyB,能修改吗?控制块数据还能改回去吗(要改回可变状态)?(密码不能改)

设计控制字

7、修改第8扇区的控制块内容,设计修改C13C23C33控制位的值使之满足:对第8扇区控制块密钥A采用KeyB写、存取控制采用KeyA/KeyB读、控制块密钥B采KeyB写。实验验证。写出控制块内容。(100)

6、修改第9扇区的控制块内容,在Access Cond.区域或控制位表中修改C13C23C33控制位的值为011。设计修改其他控制字,使其满足对第0块的数据只能通过Key B进行加值。使其满足对第1块的数据只能通过Key B进行读写。使其满足对第2块的数据只能通过Key A|Key B进行读取和减值。写出控制块内容。011 -110-011-001

知识学习:为了降低操作的复杂度,现在的卡提供了单key模式。

1、单key模式和双key模式:C13C23C33是001,000,010时,卡

处于单key模式,C13C23C33是其他5种模式时,卡出于双key

模式。双key模式下,数据块0、1、2的存取控制位按表4的规定

执行,单key模式下,又有一套新的存取控制规定了。

2、请看下表:这个表就是上面的块3控制的总结,加了个Key模式。

表五

实验6HF ISO14443A存取控制

3、以上数据块的操作控制,现在叫做双key模式下的存取控制操作了。

单Key模式下,存取控制操作和以上不同了,按下表执行。只有KeyA

有用,忽略KeyB的存在。

表六、数据块0、1、2操作控制表

实验6HF ISO14443A存取控制

单Key模式操作(C13C23C33在001、000、010时,卡处于单key模式)

1、拿起一张实验用高频ISO14443A白卡,置于高频天线感应区,进入操作界面。

2、修改存取控制位的操作都在Security Block页完成,

实验6HF ISO14443A存取控制

3、对第7扇区进行操作,把C13C23C33的值写为001,其他控制位C10C20C30、C11C21C31、C12C22C32写为110、001、100,按表六检验0、1、2数据块的存取规则(数据能否读取和修改,要输入KeyA还是KeyB)。改变KeyA和KeyB,能修改吗?控制块数据还能改回去吗(要改回可变状态)?(密码能改,控制块数据能改回去)

4、对第7扇区进行操作,把C13C23C33的值写为000,其他控制位C10C20C30、C11C21C31、C12C22C32写为011、101、111,按表六检验0、1、2数据块的存取规则(数据能否读取和修改,要输入KeyA还是KeyB)。改变KeyA和KeyB,能修改吗?控制块数据还能改回去吗?(密码能改,控制块数据改不回去了)。