DESFire EV1 card emulation



我需要在Android设备上模拟DESFire EV1卡。然而,我对如何将Mifare SDK(精简版或高级版)与HCE一起使用感到困惑。

这可能吗?我需要开始这个项目,我对如何在DESFire卡中存储和加密数据进行了大量研究,但我最终发现我需要在HCE上使用Mifare SDK。

首先,您不能使用MIFARE SDK来模拟卡。MIFARE SDK仅提供读取器端功能。

其次,您无法使用Android HCE模拟MIFARE DESFire(EV1)卡的全部功能。但是,您可以模拟MIFARE DESFire协议的某些部分(更具体地说,您只能模拟ISO/IEC 7816-4成帧(ISO命令集或包装的本地命令集),并且只有在前面有ISO SELECT by AID命令的情况下)。这是否足够取决于系统的读取器端的要求。

  • 如果您的读卡器仅支持DESFire本机命令集:您无法使用Android HCE模拟相应的卡
  • 如果您的读卡器使用包装的本机命令集,但没有使用ISO SELECT(通过AID)命令启动通信:您无法使用Android HCE模拟相应的卡
  • 如果您的读卡器使用包装的本机命令集,并使用ISO SELECT(通过AID)命令(MIFARE DESFire的AID为D2760000850100)启动通信:您可以为DESFire AID注册HCE服务,并且在选择该AID后,将能够接收所有包装的本命令
  • 如果您的读卡器使用ISO命令集,但第一个命令不是ISO SELECT(通过AID)命令:您无法使用Android HCE模拟相应的卡
  • 如果您的读卡器使用ISO命令集并通过ISO SELECT(通过AID)命令(用于MIFARE DESFire AID或(使用DESFire EV1)用于DESFire应用程序之一的ISO AID)启动通信:您可以为DESFire AID(或特定应用程序的AID)注册HCE服务,并且在选择该AID后将能够接收所有ISO命令

请注意,如果您模仿MIFARE DESFire卡,可能会出现许可问题。

MIFARE Classic无法在HCE中模拟,因为它直接在ISO 14443-3之上工作。HCE模拟更高层,ISO 14443-4。但这是MIFARE DESFire的实现层,所以是可以做到的。我自己没有做过,但我知道至少有一家公司做到了,可能有好几家。

我认为Mifare SDK是:

http://www.mifare.net/en/products/mifare-sdk/

如果是,那么通过简单的搜索"Mifare SDK HCE",我发现:http://www.mifare.net/en/micommunity/forum/mifare-and-nfc-reader-ics/can-nfc-phones-operate-rfid-tag-mifare-classic/在这个帖子中,Mifare家伙说:

不幸的是,MIFARE SDK不支持HCE。

最新更新