gpt4 book ai didi

nfc - JavaCard 可以模拟 MIFARE Ultralight 或 NTAG NFC 标签吗?

转载 作者:行者123 更新时间:2023-12-04 16:01:53 31 4
gpt4 key购买 nike

我想编写一个响应 NFC 阅读器的 Java Card 小程序,就好像它是一个常规的 MIFARE Ultralight 或 NTAG NFC 标签一样。

我知道 MIFARE 协议(protocol)是专有的,可能有点困难,但我肯定应该能够实现 NTAG 协议(protocol)的仿真。

如果我符合 NTAG 规范并响应正确的 APDU,那么我肯定可以模拟 NTAG 吗?

更新原始问题

我想我问错了我原来的问题。我不想模仿每个 sé 的特定标签。我实际上想要做的是使用 Java Card 驱动的卡,以便能够使用新的 Core NFC 向智能手机(如 Android 或 Apple iPhone)提供动态信息。 API。请注意,据说这个 API 支持类型 1 到 5 的标签。我希望能够编写一个 Java Card 小程序,它可以在非接触式智能卡上运行并允许与智能手机进行(单工)通信。

我想我的问题是:如何确定来自 Core NFC API 的 APDU 流,以便我可以编写一个能够适当响应的小程序?

最佳答案

不,那是不可能的。 MIFARE Ultralight、NTAG 和其他 NFC Forum Type 2 标签在 ISO/IEC 14443-3A(也称为 NFC-A)中定义的防冲突和成帧协议(protocol)之上运行。

Java Card applet(通常)使用 APDU 命令(ISO/IEC 7816-4 中定义的协议(protocol)层)进行通信。 Java Card 运行时环境仅将 APDU 命令传递给小程序。非接触式智能卡在 ISO-DEP 半双工传输协议(protocol)(如 ISO/IEC 14443-4 中规定)之上交换这些 APDU 命令。反过来,此传输协议(protocol)位于 ISO/IEC 14443-3(也称为 NFC-A 和 NFC-B)中定义的帧协议(protocol)之一之上。

+--------------+ +---------- ---+
| MIFARE 超轻/NTAG | |非接触式 Java 卡 |
+--------------+ +---------- ---+

+--------------+
|命令:APDU |
| (ISO/IEC 7816-4) |
+--------------+ +---------- ---+
|命令:专有 | | ISO-DEP |
|或 NFC 论坛类型 2ary | | (ISO/IEC 14443-4) |
+--------------+ +---------- ---+
|框架:NFC-A | |框架:NFC-A 或 NFC-B |
| (ISO/IEC 14443-3 A) | | (ISO/IEC 14443-3 A/B) |
+--------------+ +---------- ---+
| ... | | ... |
+--------------+ +---------- ---+

因此,虽然这两种技术共享共同的协议(protocol)层,但 Java Card 小程序只能交换 APDU 命令,而不能直接控制许多较低的协议(protocol)层。

编辑(基于 ErikM's remark ):

虽然不可能在 Java 卡上模拟 NFC 论坛类型 2 标签(除非您的智能卡平台上有专门的硬件支持 --- 而且我认为目前不存在。),您可以轻松模拟 NFC 论坛类型4 标记在任何 Java Card 非接触式智能卡上。因此,如果您的目标是模拟 NFC 标签,将 NDEF 消息呈现给例如智能手机,那么您可以采用这种方法。甚至还有此类小程序的开源实现,例如

  • https://github.com/promovicz/javacard-ndef
  • https://github.com/slomo/ndef-javacard
  • 关于nfc - JavaCard 可以模拟 MIFARE Ultralight 或 NTAG NFC 标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44761119/

    31 4 0