Mifare S50 标准IC卡有1K 字节的EEPROM,主要用来存储数据和控制信息。1K 字节的EEPROM分成16 个区,每区又分成4 段,每1段中有16 个字节。每个区的最后一个段叫“尾部"(trailer),它包括两个密钥和这个区中每一个段的访问条件(可编程)。

存储器组织(Memory Organization)

存储器访问(Memory Access)

在任何存储器操作前,卡需要先被选择,并经过认证(KEYA或KEYB)。对于可寻址的数据块的可能的存储器操作取决于使用的key和存储在相应的区尾的访问条件。

访问位(Access Bits)分析

假设若已知Sector 10的Block 3的数据(Hex 表示),共计16 个字节,如下所示:

00 00 00 00 00 00 FF 07 80 69 0B 0B 0B 0B 0B 0B

根据上面的访问条件(Access Conditions)图表,可知:

1)字节分布

前6个字节(Byte 0 - Byte 5)为密钥Key A,即00 00 00 00 00 00

中间4个字节(Byte 6 - Byte 9)为访问位(Access Bits),即FF 07 80 69

后6个字节(Byte 10 - byte 15)为密钥Key B,即0B 0B 0B 0B 0B 0B

2)访问控制位分布

根据 Byte 6 高4位,C23 C22 C21 C20为0 0 0 0;

根据 Byte 6 低4位,C13 C12 C11 C10为0 0 0 0;

根据 Byte 7 低4位,C33 C32 C31 C30为1 0 0 0。

访问位含义如下图所示:

每个访问位的最后一个数字表示相关的Block(Block 0 - Block 3),按各个块(Block)整理结果如下:

C13 C23 C33 为0 0 1,Block 3,sector trailer

C12 C22 C32为 0 0 0,Block 2,data block

C11 C21 C31为 0 0 0,Block 1,data block

C10 C20 C30为 0 0 0,Block 0,data block

注意:字节序号从0开始升序(从左到右),字节中位的序号从7开始降序(从左到右)。

还有,区尾(sector trailer)和数据段(data block)的访问条件(Access conditions)是不一致的

1)区尾的访问条件(Access conditions for the sector trailer)

注:用灰色标明的行是密钥B 可被读的访问条件,此时密钥B 可以存放数据。

而对于给定的数据,区尾的访问位为0 0 1,可以看到只能使用KEY A,可写入密钥KEYA但不可读,可读写访问控制位和KEYB。

2)数据段的访问条件(Access conditions for data blocks)

1 如果密钥B 可以在相应的区尾被读出,它就不能用于确认(在区尾的访问条件表中所有灰色行)。结果:如果RWD(读写装置Read Write Device)要用这些(带灰色标记的)访问条件的密钥B 确认任何段,卡会在确认后拒绝任何存储器访问操作。

例子中数据段的C1 C2 C3为0 0 0 用于传输配置(transport configuration),此时KEY B不能用来认证。

参考资料:

1、Mifare标准IC卡MF1 IC S50 功能说明书

2、NXP MF1 IC S50 Function specification  Rev.5.2 January 2007

NXP Mifare S50标准IC卡- 访问位(Access Bits) 分析的更多相关文章

  1. 厦门BRT 硬币型非接触式IC卡分析

    前几天去厦门玩顺便多买了一张BRT的票 也就是如图所示的这种硬币型非接触式IC卡 回来之后用Proxmark3分析了卡内数据得到如下16进制dump内容 UID.发卡日期时间. 最近好懒 懒得写了 有 ...

  2. IC卡制作常识概述

    ic卡主要有9种:    1.接触型IC卡:    2.非接触型IC卡:    3.串行传输型IC卡:    4.并行传输型IC卡:    5.存储型IC卡:    6.智能型IC卡:    7.超级 ...

  3. Mifare系列6-射频卡与读写器的通信(转)

    文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁 ...

  4. IC卡接口芯片TDA8007的读写器设计

    摘要:阐述T=0传输协议,给出IC卡读写器中使用的IC卡APDU指令流程和原理框图:重点介绍其中的IC卡接口芯片Philips的TDA8007,给出通过TDA8007对CPU IC卡上下电过程.具体程 ...

  5. IC卡

    本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . IC卡 (Integrated Circuit Card,集成电路卡),也称智能卡(Smart card).智慧卡(Intelligent ...

  6. IC卡,ID卡,M1卡,射频卡

    一般把可读可写,频率是13.56MHz的射频卡称为IC卡,IC卡可以写入数据, 只能读,频率是125KHz的射频卡称为ID卡, M1卡是NXP公司的S50卡的一种叫法,国内的复旦F08,达华的TKS5 ...

  7. IC卡、ID卡、M1卡、射频卡的区别是什么【转】

    本文转载自:https://www.cnblogs.com/najifu-jason/p/4122741.html IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC ...

  8. IC卡、ID卡、M1卡、射频卡的区别是什么

    IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种 ...

  9. IC卡、ID卡、M1卡、射频卡的区别是什么(射频卡是种通信技术)

    IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种 ...

随机推荐

  1. matlab如何建立一个空矩阵,然后往里面赋值

    x=:; y=[]; :length(x) % y=[y;x(i)];%把每一个x都放到Y里,成为一列 y=[y,x(i)];%把每一个x都放到Y里,成为一行 end

  2. 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案

    SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...

  3. android之远程启动服务

    启动远程服务和隐式启动Activity一样 实现一个服务 为了演示方便,该服务是一个空服务 package xidian.dy.com.chujia; import android.app.Servi ...

  4. C 语言学习的第 01 课:先来聊聊计算机吧

    各位同学,新学期,我就是你们的助教了.我的个人信息,你们的任课老师都已经介绍过了,所以我这里也就不再啰嗦.下面,来聊聊今天的话题:“先来谈谈计算机吧”. 想必看到这个题目,你们大家一定是不愿意点击进来 ...

  5. md5加密31位

    今天将其它服务器里的用户数据导入到新的系统数据库中 出现密码不匹配情况 查看原来数据库中密码得到结果位: 原服务器密码 明文 正确32位密闻 67b14728ad9902aecba32e22fa4f6 ...

  6. Java网络编程——TCP实例

    1.客户端 1.1:创建服务端点 1.2:获取已有数据 1.3:通过socket输出流将数据发送给服务端 1.4:读取服务端反馈信息 1.5:关闭socket import java.io.Buffe ...

  7. 在Ubuntu 14.04中安装最新版Eclipse

    1.下载eclipse从官网http://www.eclipse.org/downloads/下载Eclipse IDE for Java EE Developers的Linux版本eclipse-S ...

  8. iOS开发小技巧--TextField的细节处理,键盘中return键的处理

    一.TextField取消自动纠错和设置自身对应键盘的return键盘的样式 二.程序运行过程中,监听return键点击,实现相应操作

  9. iOS开发小技巧--利用MJExtension解决数据结构复杂的模型转换

    一.开发中难免会遇到,系统返回的数据中字典套集合,集合里面又套一层字典,然后字典里面还有字典或者集合等等的复杂结构的数据...MJExtension轻松搞定这类问题 1.解决方法一: 例:百思项目中帖 ...

  10. c#学习<二>:数据类型

    基元类型 编译器直接支持的数据类型称为基元类型(primitive type).基元类型直接映射到Framework类库(FCL)中存在的类型(BCL是FCL的子集). C#中的基元类型 BCL类型 ...