读取/写入从ACR1252U连接的MIFARE DESFire EV2卡的原始数据

Reading/Writing the raw data of the MIFARE DESFire EV2 cards connected from ACR1252U

提问人:Kapil 提问时间:11/6/2023 更新时间:11/7/2023 访问量:79

问:

我正在尝试将原始二进制文件读取和写入MIFARE DESFire EV2卡,但我很难理解正确的APDU命令。我有一些小的二进制数据,我想通过NFC卡进行物理移动,为此我希望能够读取和写入它。 我厌倦了遵循 ACR1252U API 文档,并按照 pdf 中所述的顺序执行了这些命令。

'Start Transparent Session': "FF C2 00 00 02 81 00",
'Turn Antenna Field On': "FF C2 00 00 02 84 00",
'ISO 14443-4A Active': "FF C2 00 02 04 8F 02 00 04",
'Set the PCB to 0Ah and enable the CRC, parity and protocol prologue in the transmit data': "FF C2 00 01 0A 90 02 00 00 FF 6E 03 07 01 0A"

这些使用 ok stauts () 运行良好,之后我尝试按顺序使用这些命令验证和读取二进制块。90 00

'Load auth key into the reader': "FF 82 00 00 06 FF FF FF FF FF FF",
'Authentication for MIFARE Classic': "FF 86 00 00 05 01 00 04 60 00",
'Read 16 bytes starting from the binary block 80h':"FF B0 00 04 10"

但是这些命令会因错误而失败,有时在此错误之后,读卡器会停止检测卡,直到我重新插入读卡器,这对我来说似乎很奇怪。63 00

我做错了什么?我对NFC和智能卡的东西完全陌生。我知道我可以使用 APDU 命令与卡进行通信,并找到了一种使用 pcsc (python pyscard) 发送这些命令的方法,但我对它们知之甚少,文档也很难找到。您能否帮助一步一步地从卡片中获取数据,解释每个 APDU 在做什么,或者我可以遵循的一些文章或文档。

此外,我还看到文档讨论在MIFARE DESFire EV2中选择文件/应用程序和AID,而ACR1252U API文档(如上所述)没有讨论这一点。我不知道这是什么,你能解释一下吗?MIFARE DESFire EV2文档显示了可用的命令,但如何使用ACR1252U将该命令发送到卡?

谢谢

NFC MIFARE PCSC Pyscard ACR1252

评论


答:

2赞 Michael Fehr 11/7/2023 #1

这不是对你的问题的真正“答案”,而是试图帮助你。由于有关Mifare DESFire EVx标签的文档是根据“保密协议”(NDA)提供的,因此关于这些标签的文档确实不多。

幸运的是,有可用的“子类型” - Mifare DESFire light 标签,并且文档是公开的。

我建议阅读以下文档:

数据表:https://www.nxp.com/docs/en/data-sheet/MF2DLHX0.pdf

一个很好的“功能和提示”文档,带有“分步”示例:https://www.nxp.com/docs/en/application-note/AN12343.pdf

此外,另一个标签具有非常相似的命令系统 - NTAG 424 DNA标签,对于该标签,还提供数据表和“功能和提示”应用说明 - 祝你好运。

B.t.w.:你的问题在 Stackoverfl 上是题外话

评论

0赞 Kapil 11/7/2023
谢谢你的好回答。而且,很抱歉发布了这个偏离主题的问题。既然我已经犯了错误,我应该删除它还是像这样保留它?
0赞 Kapil 11/7/2023
此外,DESFire light 数据表中提供了应用程序 ID,因此即使我知道 DESFire light 数据表中的命令,如果没有数据表,我也无法知道 EV2 卡的默认 AID?
2赞 Michael Fehr 11/7/2023
DESFire Light 带有一个“预装”应用程序,但 DESFire EVx 是“空的”。使用 DESFire EVx 的通常步骤是 1) 身份验证,2) 创建应用程序,3) 创建文件(例如标准文件),4) 使用“写入”密钥进行身份验证,5) 写入数据,6) 使用“读取”密钥进行身份验证,7) 从文件中读取数据。不,您不需要删除 OT 帖子 :-)