实训二飞利浦S50卡控制位和密钥修改实训
一、实训目的
1、理解S50卡数据存取安全机制。
2、掌握S50卡存取控制位的修改方法,以及对数据存取的影响。
3、掌握S50卡密钥的修改方法,以及对数据存取的影响。
二、实训设备
1、笔记本电脑,Windows 7或Win10操作系统,VS2012软件开发环境。
2、BC750AS RFID读写器,MF1 S50空白卡2张。
三、实训内容和步骤
1、修改存取控制位
(1)修改控制字前进行数据读写测试(针对第8扇区块号0)
修改第8扇区块号0的数据(总块号32),由默认的“000000000000 00000000000000000000”(32个0),修改为“12345678000000000000000000000000”,然后再次读取数据,测试操作是否可行。
(2)修改第8扇区块0的控制字。
①设计控制字
要求第8扇区块0:可以通过验证密钥A或密钥B读取数据,但不能写入数据。查教材P34表2-7,得出控制字中的C10C20C30应该为010。
②使用控制字演算表得出控制字
控制字演算表(表中初值为出厂默认值)
字节 |
位 |
块3 |
块2 |
块1 |
块0 |
Byte6F |
b3 b2 b1 b0 |
/C13 (1 ) |
/C12 (1 ) |
/C11 (1 ) |
/C10 (1 ) |
b7 b6 b5 b4 |
/C23 (1 ) |
/C22 (1 ) |
/C21 (1 ) |
/C20 (0 ) |
|
Byte7 |
b3 b2 b1 b0 |
/C33 (0 ) |
/C32 (1 ) |
/C31 (1 ) |
/C30 (1 ) |
b7 b6 b5 b4 |
C13 (0 ) |
C12 (0 ) |
C11 (0 ) |
C10 (0 ) |
|
Byte8 |
b3 b2 b1 b0 |
C23 (0 ) |
C22 (0 ) |
C21 (0 ) |
C20 (0 ) |
b7 b6 b5 b4 |
C33 (1 ) |
C32 (0 ) |
C31 (0 ) |
C30 (0 ) |
将下表中C10C20C30的默认值000改为010,推算出修改后的控制字为:
。
③ 修改控制字
在“扇区功能”区中,选择扇区号:8,块号:3,修改块3中间4字节的值为上述推算出的控制字,然后单击“写块”按钮。
④ 修改控制字后,分别用密钥A和密钥B进行读、写操作,确认存取控制位修改后对数据读写的影响。操作结果记录如下(记录成功或失败):
通过密钥A读扇区8块号0的数据: 。
通过密钥A写扇区8块号0的数据: 。
通过密钥B读扇区8块号0的数据: 。
通过密钥B写扇区8块号0的数据: 。
上述结果说明: 。
(3)再次修改第8扇区块0的控制字,由C10C20C30=010,改为C10C20C30=011,表示第8扇区块0可以通过验证密钥B读取数据和写入数据。
① 在控制字的演算表中,按要求填写各位的值,推算出控制字为__________。
字节 |
位 |
块3 |
块2 |
块1 |
块0 |
Byte6F |
b3 b2 b1 b0 |
/C13 ( ) |
/C12 ( ) |
/C11 ( ) |
/C10 ( ) |
b7 b6 b5 b4 |
/C23 ( ) |
/C22 ( ) |
/C21 ( ) |
/C20 ( ) |
|
Byte7 |
b3 b2 b1 b0 |
/C33 ( ) |
/C32 ( ) |
/C31 ( ) |
/C30 ( ) |
b7 b6 b5 b4 |
C13 ( ) |
C12 ( ) |
C11 ( ) |
C10 ( ) |
|
Byte8 |
b3 b2 b1 b0 |
C23 ( ) |
C22 ( ) |
C21 ( ) |
C20 ( ) |
b7 b6 b5 b4 |
C33 ( ) |
C32 ( ) |
C31 ( ) |
C30 ( ) |
② 修改控制字
在“扇区功能”区中,选择扇区号:8,块号:3,修改块3中间4字节的值为上述推算出的控制字,然后单击“写块”按钮。
③ 分别用密钥A和密钥B进行读、写操作,确认存取控制位修改后对数据读写的影响。操作结果纪录如下:(写成功或失败)
通过密钥A读第8扇区块0的数据: 。
通过密钥A写第8扇区块0的数据: 。
通过密钥B读第8扇区块0的数据: 。
通过密钥B写第8扇区块0的数据: 。
上述结果说明: 。
(6)恢复第8扇区块号3中的控制字为默认值FF078069,恢复第8扇区块号0中的数据为默认值“00000000000000000000000000000000”。
2、修改密钥B
(1)通过密钥B对第8扇区块号0中的数据进行读写操作,由默认的“00000000000000000000000000000000”(32个0),修改为“12345678000000000000000000000000”,然后再次读取数据,测试操作是否可行。
(2)修改第8扇区块号3(控制块)中的密钥B,将密钥B由“FFFFFFFFFFFF”修改为“FFFFFFFFFF00”。
(3)利用密钥B来读取和写入数据,验证密钥B的作用。操作结果记录如下:
通过密钥B(FFFFFFFFFFFF)读和写扇区8数据:
通过密钥B(FFFFFFFFFFFF)读和写扇区8数据:
通过密钥B(FFFFFFFFFF00)读和写扇区8数据:
通过密钥B(FFFFFFFFFF00)读和写扇区8数据:
上述结果说明: 。
(4)恢复修改的第8扇区的密钥B为出厂原默认值(FFFFFFFFFFFF),恢复第8扇区块号0的数据为出厂默认值“00000000000000000000000000000000”。
四、实训总结
1、回答问题:
(1)S50卡默认的存取控制字是什么?有什么操作权限?
(2)简要总结设置控制字的步骤。
(3)每个扇区都有专属于该扇区的存取控制字和密钥,扇区中每个块的读写权限是分别控制的吗?每个块的密钥是分别设置的吗?
2、简述本次实训的收获
(通过实训学到的知识,必须要写,并且要尽量写的具体一些)