DESFire EV1 卡仿真
DESFire EV1 card emulation
我需要在 Android 设备上模拟 DESFire EV1 卡。但是,我对如何将 Mifare SDK(精简版或高级版)与 HCE 结合使用感到困惑。
这可能吗?我需要启动这个项目,我对数据如何在 DESFire 卡中存储和加密进行了大量研究,但最终我发现我需要在 HCE 上使用 Mifare SDK。
我认为 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 人说:
Unfortunately the MIFARE SDK does not support HCE.
MIFARE Classic 无法在 HCE 中仿真,因为它直接在 ISO 14443-3 之上运行。 HCE 模拟更高层,ISO 14443-4。
但那是实施 MIFARE DESFire 的层,所以是的,它可以完成。我自己没有做过,但我知道至少有一家公司已经做到了,而且可能还有几家。
首先,您不能使用MIFARE SDK模拟卡片。 MIFARE SDK 仅提供 reader 端功能。
其次,您无法使用 Android HCE 模拟 MIFARE DESFire (EV1) 卡的全部功能。但是,您可以模拟部分 MIFARE DESFire 协议(更具体地说,您只能模拟 ISO/IEC 7816-4 框架(ISO 命令集或包装的本机命令集)并且只有在前面有 ISO SELECT 通过 AID 命令)。这是否足够取决于系统 reader 端的要求。
- 如果您的 reader 仅支持 DESFire 本机命令集:您无法使用 Android HCE 模拟相应的卡。
- 如果您的 reader 使用包装本机命令集但不启动与 ISO SELECT(通过 AID)命令的通信:您无法使用 Android 模拟相应的卡HCE.
- 如果您的 reader 使用包装本机命令集并使用 ISO SELECT(通过 AID)命令开始通信(MIFARE DESFire 的 AID 为
D2760000850100
):您可以为 DESFire AID 注册您的 HCE 服务,并且在选择此 AID 后将能够接收所有包装的本机命令。
- 如果您的 reader 使用 ISO 命令集但第一个命令不是 ISO SELECT(通过 AID)命令:您无法使用 Android HCE 模拟相应的卡。
- 如果您的 reader 使用 ISO 命令集并启动与 ISO SELECT(通过 AID)命令的通信(对于 MIFARE DESFire AID 或(对于 DESFire EV1)对于 ISO DESFire 应用程序之一的 AID):您可以为 DESFire AID(或特定应用程序的 AID)注册您的 HCE 服务,并且在选择此 AID 后将能够接收所有 ISO 命令。
请注意,如果您模拟 MIFARE DESFire 卡,可能会出现许可问题。
我需要在 Android 设备上模拟 DESFire EV1 卡。但是,我对如何将 Mifare SDK(精简版或高级版)与 HCE 结合使用感到困惑。
这可能吗?我需要启动这个项目,我对数据如何在 DESFire 卡中存储和加密进行了大量研究,但最终我发现我需要在 HCE 上使用 Mifare SDK。
我认为 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 人说:
Unfortunately the MIFARE SDK does not support HCE.
MIFARE Classic 无法在 HCE 中仿真,因为它直接在 ISO 14443-3 之上运行。 HCE 模拟更高层,ISO 14443-4。 但那是实施 MIFARE DESFire 的层,所以是的,它可以完成。我自己没有做过,但我知道至少有一家公司已经做到了,而且可能还有几家。
首先,您不能使用MIFARE SDK模拟卡片。 MIFARE SDK 仅提供 reader 端功能。
其次,您无法使用 Android HCE 模拟 MIFARE DESFire (EV1) 卡的全部功能。但是,您可以模拟部分 MIFARE DESFire 协议(更具体地说,您只能模拟 ISO/IEC 7816-4 框架(ISO 命令集或包装的本机命令集)并且只有在前面有 ISO SELECT 通过 AID 命令)。这是否足够取决于系统 reader 端的要求。
- 如果您的 reader 仅支持 DESFire 本机命令集:您无法使用 Android HCE 模拟相应的卡。
- 如果您的 reader 使用包装本机命令集但不启动与 ISO SELECT(通过 AID)命令的通信:您无法使用 Android 模拟相应的卡HCE.
- 如果您的 reader 使用包装本机命令集并使用 ISO SELECT(通过 AID)命令开始通信(MIFARE DESFire 的 AID 为
D2760000850100
):您可以为 DESFire AID 注册您的 HCE 服务,并且在选择此 AID 后将能够接收所有包装的本机命令。 - 如果您的 reader 使用 ISO 命令集但第一个命令不是 ISO SELECT(通过 AID)命令:您无法使用 Android HCE 模拟相应的卡。
- 如果您的 reader 使用 ISO 命令集并启动与 ISO SELECT(通过 AID)命令的通信(对于 MIFARE DESFire AID 或(对于 DESFire EV1)对于 ISO DESFire 应用程序之一的 AID):您可以为 DESFire AID(或特定应用程序的 AID)注册您的 HCE 服务,并且在选择此 AID 后将能够接收所有 ISO 命令。
请注意,如果您模拟 MIFARE DESFire 卡,可能会出现许可问题。