区分不同类型的MIFARE Ultralight

3
如何识别不同类型的MIFARE Ultralight标签?
在文档AN10834中,Ultralight和Ultralight C通过"Auth"的响应来区分。什么是"Auth"?芯片的数据表中没有对这个功能进行描述。
我注意到Ultralight C和EV1支持GET_VERSION(60h),我向EV1卡发送了此请求,但它没有返回任何内容。

你最终找到了这个问题的答案吗? - Raleigh L.
1个回答

4
为了区分MIFARE Ultralight,Ultralight C,Ultralight EV1和NTAG标签,您首先需要发送GET_VERSION命令:
> 60

如果此命令成功,您将知道该标签是EV1(或更高版本)标签(例如MIFARE Ultralight EV1或NTAG21x)。因此,您可以通过分析GET_VERSION命令的响应来缩小特定标签类型。这将显示产品类型(NTAG或Ultralight EV1),以及产品子类型、产品版本和存储大小(这样可以确定确切的芯片类型)。请参阅区分NTAG213和MF0ICU2以获取示例产品识别值列表。
如果GET_VERSION命令失败,则可以假定它是第一代标签(MIFARE Ultralight、Ultralight C、NTAG203)。因此,您可以通过发送AUTHENTICATE(part 1)命令来缩小特定标签类型:
> 1A 00

如果这个命令成功了,你就知道这个标签是MIFARE Ultralight C。

如果这个命令失败了,你可以假设这个标签是Ultralight或NTAG203。为了区分MIFARE Ultralight和NTAG203,你可以尝试读取在Ultralight上不存在的页面(例如读取第41页):

> 30 29

由于某种原因,当我向Ultralight EV1发送“GET_VERSION”时,它没有响应,尽管NXP的NFC TagInfo应用程序确切地说它是Ultralight EV1。可能的问题是什么? P.S. 尝试向Plus EV1发送相同的命令,回答是成功的。 在命令“1A 00”下,Ultralight EV1也没有响应。 - Николай
如果标签不响应GET_VERSION命令(并且它已正确连接到读卡器),那么它肯定不是EV1标签。它是否响应READ_SIGNATURE命令(3C 00)?请注意,Ultralight EV1标签不支持加密身份验证(1A 00)。 - Michael Roland
“READ_SIGNATURE”也没有响应。那么为什么NXP的NFC TagInfo应用程序会显示它是Ultralight ev1呢?难道在某些模式下它不会被反映为EV1吗?好吧,就像Plus EV1和Classic一样的类比。我还有Mifare Plus EV1,它确实是EV1。它对所有这些命令都有反应。这意味着我发送的命令是正确的。 - Николай
NXP TagInfo 显示了标签的具体信息是什么?我的 NFC TagInfo 应用程序对该标签有何描述? - Michael Roland
TagInfo应用程序将芯片定义为NXP的Mifare Ultralight EV1(MF0UL11)。 - Николай

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接