【RFID】官方 Data sheet 功能描述部分翻译

记录 2017-01-25 0 条评论 访问: 3,876 次

功能描述

0x00 数据块描述

MF1S50yyX/V1芯片包含 1kB EEPROM(电可擦可编程只读存储器,一种掉电后数据不丢失的存储芯片),RF(射频)接口和数字控制单元。能量和数据通过天线被传送给卡片。天线在卡片内直接连接到芯片。天线由几匝线圈组成。其他外部组成部分不是必须的。
射频接口:
调制解调器
整流器
时钟发生器
稳压器

防冲突:在读卡器感应范围内的多可芯片可被选中并按顺序处理
认证:在任何内存操作前,认证步骤确保只能通过指定的两个密钥(keyA或者keyB)访问某数据块
控制和数字逻辑单元:被一种特殊的,繁琐的格式存储。值可以被增加或者减少。
电可擦可编程只读存储器接口
加密单元:在读卡器和卡片交换信息的时候CRYPTO1加密方法用于认证和加密
电可擦可编程只读存储器:1kB 的存储空间被分贝为16个扇区,每个扇区里面有4个数据块。每一数据块包含16字节。每个扇区最后一数据块包含两个密钥和可更改的访问控制条件信息。

0x01 通信原则

命令由读卡器发出,被卡片的逻辑控制单元控制。命令的回复取决于IC卡的状态,对于内存操作,还取决于访问控制条件是否允许对应扇区的读写。

请求标准

在POR(上电复位)后,卡片回应REQA请求或者唤醒(wakeup)命令

防冲突机制

在防冲突机制中,卡片的标识符(UID)被读取。如果有读卡器感应区内有多张卡,它们可以被 UID 区分,其中的一张卡可以被选中从而进行数据传输。没被选中的卡片返回到空闲状态,等待新的请求命令。如果7字节 UID 被用于防冲突和选择卡片,两个级联标准要被执行(依据ISO/IEC 14443- 3定义的标准)

选择卡片

通过选卡命令,读卡器选择一张卡片进行认证和读取操作。卡片返回 SAK(Select AcKnowledge) 代码,这取决于卡片的种类。

三次握手认证

选择卡片后,读卡器指定要访问的卡片的存储单元地址,并使用对应的密钥来进行三次握手步骤。在成功的认证之后所有的命令和回复都被加密。
注:HLTA命令需要认证成功后,被加密的发送给卡片才能被接受。
读卡器与 Mifare S50 卡片交互流程
readerToCard.jpeg

内存操作

认证成功后,以下操作可被执行

  • 读数据块
  • 写数据块
  • 减值
  • 加值
  • 恢复
  • 传输

0x02 数据完整性

以下机制被用于读卡器和卡片的非接触式通讯环节,来确保可靠的数据传输:

  • 16位(2字节==ffff==两个 uint8_t 数组元素) CRC(循环冗余检验码)
  • 每数据块的数一样
  • 位计数检查
  • 位编码来区分1,0和没有信息
  • 频道监听(协议序列和位流分析)

0x03 三次握手认证过程

  1. 读写器先发送“查询口令"给标签,标签产生一个随机数RA并传送给读写器。
  2. 读写器收到RA后产生另一个随机数RB,发送一个加密的数据块Tokenl给标签,其中Tokenl=ex(Ra||RA Il DA 0电文1),它包含了两个随机数和附加的控制数据,K为加密密钥,eK为加密函数。标签收到Tokenl后用K解密,比较Tokenl中的RA和标签原来产生的RA是否一致。如一致说明读写器合法。
  3. 标签再产生一个随机数RA2,发送加密的数据块Token2给读写器,其中oken2=eK(R舵Il RB|I电文2),它也包含了两个随机数和控制数据。读写器收到oken2后用K解密,比较消息中的RB和原来的RB是否一致,如一致说明标签合格。
    如果以上步骤成功,加密通道建立

第一个随机数传输后,卡片和读卡器间的通信就是被加密的。

0x04 射频接口

射频接口依据非接触式智能卡 ISO/IEC 14443A 标准
为了能够进行卡片操作,读卡器的感应区必须一直保持在卡前,用于给卡片供电。
在双方通信中,每一个数据帧的开头只有一个起始位。每字节后跟随奇偶校验位一同传输。被选中数据块最低地址的最低有效位被最先传送。最大数据帧的长度是163位(16 字节数据 + 2 字节 CRC = 16 x 9 + 2 x 9 + 1 起始位)(为什么是 9?不是 8位一个字节吗?别忘了,每字节数据后面还跟了一位校验位呢!这是发送时候的事情,存储在卡里的数据并没有校验位)

0x05 内存结构

1024 x 8位的 EEPROM 内存被划分为16个扇区。每扇区包含4个数据块。每块包含16字节数据。
memOrg.jpeg

制造商数据块

位于第 1 扇区(sector 0)的第1数据块(block 0)。它包含 IC 卡的制造信息。此数据块在出厂时被写入并设置为写保护。以下两张图展示了 4 字节 NUID 和 7 字节 UID 的制造商信息数据块。
NUID.jpeg
UID.jpeg

数据块

所有扇区包含三个数据块,每个数据块有 16 字节,用来存储数据(0 扇区只包含两个用来存数据的块,因为还存有只读的厂商信息数据块)
数据块可被访问控制位配置成:

  • 可读可写数据块

  • 值块可被用于电子钱包,还提供了其他命令,例如增加数值、减少数值,直接控制存储的值。

进行任何内存操作前必须先成功认证
数据块的默认内容在出厂时未配置

值块(是特殊的数据块)

值块允许进行电子钱包操作(有效命令是:读,写,增加,减少,恢复,传输)。值块有特定的数据格式从而可以检测并修改错误和备份管理。
只能通过值块格式的写操作生成值块

  • 值:表示一个有符号的四字节值。值的最低有效位被存放在最低地址字节。负数被存储为补码形式。为了数据的完整性和安全,值被存储了三次,两次正码,一次反码。
  • 地址:表示 一个 1 字节地址,在进行备份管理时,可以用来存放数据块中存放的数据的地址。地址字节被存储四次,两次反码,两次正码。在增加,减少,存储,传输操作时,地址保留不变。只能通过写操作改变。
    valueBlock.jpeg

例子:十进制数 1234567 的有效的值块格式存储如图。首先,十进制必须被转化为十六进制 0012D687。十六进制值的最低有效位被存储在第 0 字节。最高有效位存储在第 3 字节。0012D687 的反码是 FFED2978,最低有效位存储在第 4 字节,最高有效为存储在第 7 字节。
此例中十六进制形式的地址是 11,反码是 EE。
valueBlockEx.jpeg

扇区尾

扇区尾是每个扇区的最后一个数据块(第 3 块)。每个扇区的扇区尾包含:

  • 密钥A(keyA 强制)和密钥B(keyB 可选),读取时返回逻辑上的“0”
  • 控制位被存储在第 6 字节至第 9 字节。控制位也指定了数据块的类型(普通数据块还是值块)。
    如果不必使用 keyB ,扇区尾最后 6 个字节可以被用于存放数据。对扇区尾的控制位必须相应地正确设置。

扇区尾的第 9 字节可被用来存放用户数据。此字节要设置和第 6, 7, 8 字节一样的访问权限。
当读取扇区尾时,存放密钥的字节被 0 掩盖。如果 keyB 被配置为可读,存储在第 10 到 15 字节的数据被返回。
在刚出厂时,所有的 key 都被设置为 FFFFFFFFFFFF 。访问控制位的 6, 7, 8 字节被设置成FF0780。
sectorTrailer.jpeg

0x06 内存控制

任何内存操作之前,卡片须先被选择并完成认证。详见8.2节。某个地址的数据块可以进行的内存操作取决于认证过程中使用的密钥(keyA 还是 keyB)和在与之相关的扇区尾的访问控制条件。
memOperation.jpeg

访问控制位

每个数据块和扇区尾的访问控制位被定义为 3 位,他们的正码和反码都被存储在此扇区的扇区尾。
访问控制位用来设置使用 keyA 或 keyB 对内存操作的权限。控制位可以被更改,如果知道相关密钥并且当前访问及控制条件允许此操作。
注:对每个内存访问条件控制位,内部逻辑电路验证访问控制条件的存储格式。如果检测到违反了格式,那么这个扇区将不可逆地被锁定。(简单来说,你不按套路瞎写一个进去那这个数据块就无法正常使用了)
MF1S50yyX/V1 的内部逻辑电路确保命令仅在成功验证后执行。
accessCondition.jpeg
accessCondition2.jpeg

扇区尾的访问控制条件

跟据扇区尾的访问控制位,密钥和访问控制位的读写权限被指定为 never keyA keyB 或者 keyA|B(keyA 或 keyB)
在芯片出厂时扇区尾和 keyA 的访问控制条件被设置为“运输模式”。在“运输模式”下,因为 keyB 可以被读取,所以新卡片必须使用 keyA 认证。由于访问控制位本身可以被锁定,在自定义卡片的时候要格外小心。(换句话说,不要自己把自己给枪毙了)
accessConditionForTrailer.jpeg

数据块的访问控制条件

根据数据块的访问控制位,读写访问权限被指定为 never keyA keyB 或者 keyA|B(keyA 或 keyB)。相应的访问控制位的设置定义了应用环境和相应的有效命令。

  • 读写块:允许读写操作
  • 值块:允许额外的值操作,增加、减少、传输、恢复。如果设置访问控制条件为‘001’,那只能读取和减少值,这也就是说,此卡不能再次充值。对于访问控制条件‘110’,可以使用 keyB 充值。
  • 厂商信息块:只读的特性不会被访问控制位的设置影响!
  • 密钥管理:“运输模式”下必须用 keyA 认证。
    accessConditionForData.jpeg

除非注明,嗯VIEW文章均为原创,转载请以链接形式标明本文地址
本文地址:https://www.umview.com/rfid-datasheet

本文由 Mark 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论