实验二_S50卡存取控制及加减值

  • 格式:doc
  • 大小:163.00 KB
  • 文档页数:7

实验二 S50卡存取控制及加减值

一、【实验目的】

存取控制位是S50卡(ISO14443A协议标准)的重要安全机制,它可以控制数据块的读写状态以及加值减值等相关操作。本实验通过对S50卡电子标签存取控制位的修改,让学生了解S50卡的存取控制位安全手段以及S50卡每个数据的内在含义。

二、【实验仪器】

HF读卡模块1个,S50白卡一张,USB转TTL串口模块一个,杜邦线4条

三、【实验准备】

阅读HF读写模块操作说明,按照操作步骤进行设备的连接,注意检查VCC、GND、TXD、RXD这4个引脚是否正确连接,防止烧坏读写模块。同时,根据该文档说明,熟悉PC软件的使用方法,掌握读卡、写卡、密码修改等功能。

阅读S50卡参考文档,了解S50卡的数据存储结构、寻址方式、密钥安全机制等。

四、【实验内容】

按照以下步骤操作,并填写实验数据,部分需要截图的可使用window的截屏功能,或者使用下发资料中的截图工具HyperSnap。

1、块3的存取条件修改

ISO14443A卡中,一共有16个扇区,每个扇区拥有独立的密钥,分为密钥A和密钥B,其长度均为6个字节,此外还有4个字节的存取控制位,控制密钥A和密钥B的访问条件等信息。存取控制位修改涉及到到对块3的数据修改,操作前请先阅读S50卡参考手册,了解存取控制位的相关说明。操作步骤如下:

(1)将一枚S50卡置于HF天线感应区。读卡并记录卡ID号_f3 d1 6d b7_,同时记录你们小组的组号_11_。

(2)选择块27(即第6扇区的块3),读取数据,如图所示:

(3)读取到的数据表示扇区6的初始存取控制位为“FF 07 80 69”,其数据分布如下表所示:

根据S50卡参考手册中的存取控制位分布图和上表可分析出CXX位值:

C13 C23 C33 = _001____,表明该扇区块_3__的存取控制信息为:密钥A__不可读__(可读,不可读),验证密钥A或密钥B (密钥A,密钥B,密钥A或密钥B)正确后,可写;存取控制位在验证密钥A或密钥B正确后,可读且可写;密钥B在验证密钥A或密钥B正确后,可读且可写。

C12C22 C32 = _000____,表明该扇区块__2____的存取控制信息为:只要密钥A或密钥B正确后,即可读、可写且可_加减值__。

C11C21C31 = 0 0 0,C10C20C30 = 0 0 0

(4)修改存取控制位:选择块27(6扇块3),选取卡的密钥类型:密钥B,输入相应的密钥“FF FF FF FF FF FF”,修改控制块的存取控制位。这里存取控制位由001修改为011,相应的数据由“ff ff ff ff ff ff ff 07 80 69 ff ff ff ff ff ff”改为“ff ff ff ff ff ff 7f 07 88 69 ff ff ff ff ff ff”。

(5)再次读取块27的数据,将读取结果截图粘贴在以下空白处。

(6)以上读取结果表明当前的存取控制位为_7f 07 88

69_,密钥B此时的显示值与其实际值是否一致?_不一致_

(7)确认存取控制位修改后对数据读写的影响:

 选择密钥A“FF FF FF FF FF FF”,尝试对块27进行读操作。能否读成功?_可以_

 选择密钥A“FF FF FF FF FF FF”,尝试将“ff ff ff ff ff ff 7f 07 88 69 ff ff ff ff ff ff”写入该块。能否写成功?_不可以_

 选择密钥B“FF FF FF FF FF FF”,尝试对块27进行读操作。能否读成功?_可读_

 选择密钥B“FF FF FF FF FF FF”,尝试将“ff ff ff ff ff ff 7f 07 88 69 ff ff ff ff ff ff”写入该块。能否写成功?可以_

(8)可见,将存取控制位改为“7f 07 88 69”后只能通过密钥_B__认证来对该扇区的块3进行写入操作,且密钥B_不可见__(可读/不可读)

2、数据块的存取条件修改

(1)选择块24(即第6扇区的块0),再选择密钥A或密钥B“FF FF FF FF FF FF”,读取数据,并记录该块的数据_ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 _

(2)修改块24的数据,由于默认存取控制位C10C20C30 = 000,即只要密钥A或者密钥B正确后,该扇区的块0(数据块)就可读且可写,选择密钥A或密钥B“FF FF FF FF FF FF”,修改块数据为“00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 11”,写入后,再次读取数据确认写入正确。

(3)修改块24(第6扇区的块0)的存取控制位C10C20C30。该扇区初始时块0的存取控制位C10C20C30=000,即只要密钥A或密钥B正确后,块0(数据块)可读且可写,现将其修改为010,表示该数据块对密钥A或者B验证成功后可以进行读卡操作,但不能进行写卡操作。修改后的数据存取控制位为ef 07 81 69,把修改后的存取控制位写入第6扇区的块3(控制块)中,相应的数据改为“ff ff ff ff ff ff ef 07 81 69 ff ff ff ff ff ff”。

(4)确认存取控制位修改后对数据读写的影响:

 尝试选择密钥A对块24进行读操作。能否读成功?_可以___

 尝试选择密钥B对块24进行读操作。能否读成功?_可以___

 尝试利用密钥A修改块24的数据。能否写成功?__不可以__

 尝试利用密钥B修改块24的数据。能否写成功?__不可以__

3、写值、加值和减值 S50卡的一个重要应用就是交通一卡通,可以用于公交车、轨道交通等公共交通工具的缴费系统。只要刷卡,就可以缴纳所需费用,如果没有余额,可以在附近充值点进行充值。本实验在ISO14443A协议下对S50卡进行加值减值,并修改S50卡的存取控制位,以观察其对加值减值的影响。写值、加值、减值的方法如下:

假设要对块25(扇6块1) 进行写值,输入正确的密匙,在“原值块”框输入25,在“值”框输入5,然后依次点击“请求”-“防碰撞”-“选择”-“验证”,都成功后,点击“写值”,提示写入值成功,再点击“读值”可以看到读出值为5。在“目标块”框输入25,“值”框输入5,然后点击“加值”,加值成功再点击“读值”可以看到值已经变为10,减值同理。

注意:①、“请求”-“防碰撞”-“选择”-“验证”任何一步失败,都要重新开始,必须所有都成功才能进行“写值”、“读值”、“加值”、“减值”。

②、“写值”、“读值”都是对“原值块”进行操作。

③、“加值”、“减值”、“备份”是把“原值块”的值加、减、备份到“目标块”。

④、“原值块“、”目标块“必须处于同一扇区才能操作。不同的扇区不能进行加减值及备份。

(1)根据上述方法,将块25的值写为5,并验证能否用密钥A或B进行加值减值操作。

 尝试选择密钥A对块25进行加值操作。能否成功?__可以__

 尝试选择密钥A对块25进行减值操作。能否成功?__可以__

 尝试利用密钥B对块25进行加值操作。能否成功?__可以__

 尝试利用密钥B对块25进行减值操作。能否成功?__可以__ (2)该扇区初始时块1的存取控制位C11C21C31=000,表示在密钥A或者密钥B验证成功后可对块1进行加减值操作。现将其修改为001,使其对密钥A或者密钥B验证成功之后可以进行减值操作而不能进行加值操作。修改后的存取控制位是ff 05 a0 69。将该存取控制位写入该扇区的块3中。

(3)确认存取控制位修改后对数据读写的影响:

 尝试选择密钥A对块25进行加值操作。能否成功?__失败__

 尝试选择密钥A对块25进行减值操作。能否成功?__成功__

 尝试利用密钥B对块25进行加值操作。能否成功?__失败__

 尝试利用密钥B对块25进行减值操作。能否成功?__成功_

4、综合实验:

(1)修改第6扇区的存取控制位为_FB 43 C0 69/101_,才能使块26(第6扇区的块2)满足:只能用密钥B读,用任何密钥都不能写也不能加减值。

(2)修改存取控制位使其满足以上存取条件,并将能表明你设置成功的4张图粘贴在以下空白处:

图1(块26用密钥B读取成功)

图2(块26用密钥A读取失败)

图3(块26用密钥A写入失败)

图4(块26用密钥B写入失败)

为了方便下一组同学实验,上述实验完毕后,请把扇区6的密钥A、存取控制位、密钥B都改回原始设置:ff ff ff ff ff ff ff 07 80 69 ff ff ff ff ff ff