DESFire EV1卡仿真

kha*_*ein 6 android nfc mifare contactless-smartcard hce

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

这甚至可能吗?我需要启动这个项目,我有很多关于如何在DESFire卡中存储和加密数据的研究,但我最终得到的事实是我需要在HCE上使用Mifare SDK.

Mic*_*and 11

首先,您不能使用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卡,可能会出现许可问题.

  • 另外:请记住,HCE 提供随机 UID,因此如果您的读卡器依赖于固定 UID(即使卡密钥多样化),则这也不会起作用(编辑答案但被拒绝)。 (2认同)