MIFARE系列6《射频卡与读写器的通信》
1. ATR(Answer to request)
读写器呼叫磁场内的卡片。卡片对呼叫做出应答。
对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26);对于已进行过读写操作并进入休眠状态的卡片。卡唤醒(WAKE-UP,0x52)。当中卡请求(REQA)仅仅能呼叫处于休闲(Idle)状态的卡片,卡唤醒(WAKE-UP)能够呼叫全部卡片。包含处于休眠(Halt)和休闲状态的卡片。
收到卡呼叫命令后,卡片将对命令做出应答(AnswerTo Request,ATQA), 读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。ATQA有两个字节,第一个字节的值没有规定(RFU),第二个字节的高两位b7b6表示卡序列号长度 (“00”为4字节,“01”为7字节,“10”为10字节), b5位的值没有规定(RFU),b4-b0表示是否遵守面向比特的防冲突机制,假设遵守,b4-b0必须有且仅有1位为1。通常情况下。Mifare
S50的ATQA是0004H。Mifare S70的ATQA是0002H。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXhzdGFycw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="font-family:'Microsoft YaHei'; font-size:14px">
2. 防冲突机制 (Anticollision Loop)
当有多张卡进入读写器操作范围时,防冲突机制会从当中选择一张进行操作,未选中的则处于空暇模式等待下一次选卡,该过程会返回被选卡的序列号。
该过程返回一个被选中的卡的序列号。序列号Serial Number存储在卡片的Block 0中,共同拥有5个字节。实际实用的为4个字节,还有一个字节为序列号Serial Number的校验字节,。智能的反冲突功能同意同一工作区域中有不止一张卡同一时候工作反冲突算法每次仅仅选择一张卡确保对被选中的卡正确运行操作并且同一区域中的其它卡不会破坏数据。
3. 选择卡片(Select Tag)
选择被选中的卡的序列号。并同一时候返回卡的容量代码。
选择被选中卡的序列号,并同一时候返回卡的容量代码Tag Size(前"08",代表容量返回值。现已改"88"。无特殊意义)。
RWD使用选择卡命令选中当中一张卡进行确认和存储器相关操作卡返回Answer To Select ATS码=08h, RWD通过ATS能够确定被选中的卡的类型。
4. 三次互相确认(3 Pass Authentication)
Mifare系列产品不仅卡片要认证读写器的身份,读写器也要认证卡片的身份,这样的认证称为相互认证。常见的认证方法是使用password或者叫口令。
口令一旦被听到。就会泄露。而password没有规律性,并且可通过随机数加密。所以相互认证是利用随机数加密验证的。Mifare系列所採用的相互认证机制被称为“三次相互认证”,例如以下图所看到的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXhzdGFycw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
a) 读写器指定要訪问的区。并选择密钥A或B。
b) 卡从位块读区密钥和訪问条件。
然后,卡向读写器发送随机数B。
(第一轮)
c) 读写器利用密钥和随机数计算回应值。回应值A连同读写器的随机数B。发送给卡(第二轮)。
d) 卡通过与自己的随机数比較。验证读写器的回应值A,再计算回应值并发送(第三轮)。
e) 读写器通过比較。验证卡的回应值。
在第一个随机数传送之后。卡与读写器之间的通讯都是加密的。认证的过程中多次提到“事先约定的算法”,究竟是什么样的算法呢。
这个没有详细规定。但有一个要求是必须的,就是这个算法一定要有password和随机数的參与。
认证过程中的不论什么一环出现差错,整个认证将告失败。必须从新開始。
5. 存储器操作
三次相互认证后可运行下列操作:
· 读(Read):读数据块
· 写(Write):写数据块
· 减值(Decrement):降低数据块内的数值,并将结果保存在暂时内部数据寄存器中。
· 加值(Increment):添加数据块内的数值。并将结果保存在数据寄存器中。
· 转存(Restore):将暂时内部数据寄存器的内容写入数值块。
· 暂停(Halt ):将卡置于暂停上作状态
文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415
版权声明:本文博客原创文章,博客,未经同意,不得转载。
MIFARE系列6《射频卡与读写器的通信》的更多相关文章
- MIFARE系列6《射频卡与读写器的通讯》
1. 复位应答(Answer to request) 读写器呼叫磁场内的卡片,卡片对呼叫做出应答.对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26):对于已进行过读写操作并进入休眠 ...
- Mifare系列6-射频卡与读写器的通信(转)
文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38085415 1. 复位应答(Answer to request) 读写器呼叫磁 ...
- MIFARE系列3《卡能源和数据传递》
在MIFARE卡中,能量和数据通过天线传输,卡中天线为几匝线圈,直接连接到芯片上,不再需要额外的组件.线圈嵌入塑料中,形成了一个无源的非接触卡. 读卡器向IC发一组固定频率的电磁波,卡内有一个IC串联 ...
- Mifare系列2-非接触卡标准(转)
本文转自 文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/380799 根据信号发送和接收方式的不同,ISO/IEC14443-3定 ...
- MIFARE系列2《非接触卡标准》
根据信号发送和接收方式的不同,ISO/IEC14443-3定义了TYPEA.TYPEB两种卡型.它们的不同主要在于载波的调制深度及二进制数的编码方式.从读写机具向卡传送信号时,二者是通过13.56Mh ...
- 射频识别技术漫谈(11)——Mifare系列卡的共性【worldsing笔记】
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...
- 射频识别技术漫谈(11)——Mifare系列卡的共性
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...
- IC卡接口芯片TDA8007的读写器设计
摘要:阐述T=0传输协议,给出IC卡读写器中使用的IC卡APDU指令流程和原理框图:重点介绍其中的IC卡接口芯片Philips的TDA8007,给出通过TDA8007对CPU IC卡上下电过程.具体程 ...
- RC522射频卡读写模块驱动(仅读取)
目录 说明 测试结果 main RC522.h RC522.c 说明 更改了网上的源代码,仅保留了读取序列号并通过串口回传的功能.版本号:V1 感谢 https://blog.csdn.net/qq_ ...
随机推荐
- —页面布局实例———win7自己的小算盘
晚上7各地点布局,9点半,刚拿到. 他发现自己专注的时候效率挺高真的哈萨克斯坦.计算器布局前.做了两件简单的页面布局练练手.今晚总体感觉更好,不难. 器之间调试有点蛋疼,真心不想搭理IE. 在进行布局 ...
- C/C++:C++友元类
C++友元类: 正常情况下,一个类是訪问不到还有一个类的私有成员的. 就像以下这个: #include <iostream> class A{ private: int a; public ...
- AND信号灯和信号灯集-----同步和互斥解决面向对象(两)
AND信号 互斥的上述处理,它是针对仅在进程之间共享的一个关键资源方面.在一些应用.这是一个过程,需要在为了自己的使命后,获得两个或多个其他共享资源运行. 个进程A和B.他们都要求訪问共享数据D和E. ...
- Apple Watch 1.0 开发介绍 1.1 简介 开发苹果手表
使用Apple Watch,用户可以使用一种不显眼的方式查看信息.不用把iPhone从口袋里拿出来,就可以通过看一下手表快速获得重要信息. 作为Apple Watch的第三方app开发者,应该通过使用 ...
- GitLab一键式安装bitnami
https://bitnami.com/stack/gitlab/installer https://bitnami.com/redirect/to/96764/bitnami-gitlab-8.5. ...
- atitit.(设计模式1)--—职责链(chain of responsibility)最佳实践O7 转换日期
atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 能够选择的模式: 表格模式,责任链模式 1 3 ...
- hdu 3652 B-number(数字dp)
http://acm.hdu.edu.cn/showproblem.php? pid=3652 大致题意:"B-number"即一个整数含有子串"13"且被13 ...
- Unity该插件NGUI得知(9)—— Tween并转换成世界坐标系的大小NGUI尺寸
在游戏中,还有一种比较常见的动画,这是进球后产生,分数将被显示在游戏,而快速移动,使其失去位置加入.就打算使用NGUI的Tween来制作这样的分数动画效果. 依据 Unity插件之NGUI学习(2), ...
- MySQL性能、监控与灾难恢复
原文:MySQL性能.监控与灾难恢复 监控方案: up.time http://www.uptimesoftware.com/ 收费 Cacti http:/ ...
- JVM的参数详解(转)
12年毕业到先在处理第一年外这几年纯属于打酱油,当初自学Java然后就出来找工作了,还有第一家面试就通过了挺幸运的 但之后的这段时间一直是处于吃老本的状态.最近心情真的很不好,各种黄老邪!一直处于堕落 ...