NXP Mifare S50标准IC卡- 访问位(Access Bits) 分析
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) 分析的更多相关文章
- 厦门BRT 硬币型非接触式IC卡分析
前几天去厦门玩顺便多买了一张BRT的票 也就是如图所示的这种硬币型非接触式IC卡 回来之后用Proxmark3分析了卡内数据得到如下16进制dump内容 UID.发卡日期时间. 最近好懒 懒得写了 有 ...
- IC卡制作常识概述
ic卡主要有9种: 1.接触型IC卡: 2.非接触型IC卡: 3.串行传输型IC卡: 4.并行传输型IC卡: 5.存储型IC卡: 6.智能型IC卡: 7.超级 ...
- Mifare系列6-射频卡与读写器的通信(转)
文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁 ...
- IC卡接口芯片TDA8007的读写器设计
摘要:阐述T=0传输协议,给出IC卡读写器中使用的IC卡APDU指令流程和原理框图:重点介绍其中的IC卡接口芯片Philips的TDA8007,给出通过TDA8007对CPU IC卡上下电过程.具体程 ...
- IC卡
本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . IC卡 (Integrated Circuit Card,集成电路卡),也称智能卡(Smart card).智慧卡(Intelligent ...
- IC卡,ID卡,M1卡,射频卡
一般把可读可写,频率是13.56MHz的射频卡称为IC卡,IC卡可以写入数据, 只能读,频率是125KHz的射频卡称为ID卡, M1卡是NXP公司的S50卡的一种叫法,国内的复旦F08,达华的TKS5 ...
- IC卡、ID卡、M1卡、射频卡的区别是什么【转】
本文转载自:https://www.cnblogs.com/najifu-jason/p/4122741.html IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC ...
- IC卡、ID卡、M1卡、射频卡的区别是什么
IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种 ...
- IC卡、ID卡、M1卡、射频卡的区别是什么(射频卡是种通信技术)
IC卡.ID卡.M1卡.射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡.ID卡.M1卡.射频卡的区别是什么,下面我们一起来看看吧. 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种 ...
随机推荐
- MATLAB实现频数直方图——hist的使用
"hist" is short for "Histogram(直方图.柱状图)". 1.N = hist(Y) bins the elements of Y ...
- 网页样式——各种炫酷效果持续更新ing...
1.evanyou效果-彩带的实现,效果如下 注:这个主要用的是Canvas画布实现的,点击背景绘制新的图形,代码如下: /*Html代码:*/ <canvas id=">< ...
- java.awt.Robot
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; public class Te ...
- js-处理回车事件
/**回车 */ function enterkey() { //兼容IE或其它其它浏览器 var event = arguments[0] || window.event; //兼容IE或其它浏览器 ...
- 网络爬虫讲解(附java实现的实例)
本文转载http://blog.csdn.net/luojinping/article/details/6870898 转载过来主要是防止想百度文库一样突然停止运作,导致很多文库丢失而无法找寻 网络蜘 ...
- pip怎样用上豆瓣镜像
安装环境: windows 7 64位 python 3.4.2 64位(自带pip) 安装好后在环境变量上加上:C:\Python34;C:\Python34\Scripts; 说明: 网上说改写什 ...
- IntelliJ IDEA 使用心得与常用快捷键
那种酸爽,根本说不出来—————————————————————————— by: Jimi没有BondJimi是谁? 就是洒家啊! 刚开始学习写Java的时候,用的eclipse,正式工作后,主 ...
- 轻快的VIM(三):删除
这一节我们来看看删除,删除命令比较简单,不过要使删除更有效率 你需要配合我们第一节中讲的各种移动命令 字符删除 x 删除光标所在处字符 X 删除光标所在前字符 这里没有什么可注意的地方,但需要说明一下 ...
- css-使用line-height实现垂直居中的一些问题
网上都是这么说的,把line-height值设置为height一样大小的值可以实现单行文字的垂直居中.这句话确实是正确的,但其实也是有问题的.问题在于height,看我的表述:"把line- ...
- hadoop报错:WARN mapred.JobClient: Error reading task outputNo route to host
解决方案: /etc/sysconfig/network/etc/hosts$hostname 这三处的主机名都要一样. 具体参考:http://blog.itpub.net/28254374/vie ...