M4M - Mifare DESFire EV1:需要将哪个Mifare AID添加到NFC路由表中,以便在UICC上将主机路由到Mifare DESFire虚拟卡?

时间:2016-07-06 19:56:54

标签: android nfc mifare contactless-smartcard secure-element

Mifare DESFire通信在多个Android设备上路由到HCE而非脱离主机(UICC)。

从基于OMAPI的远程主机安全元素通信,我已经学会了如何将AID添加到Android离主机路由表,以便我可以在UICC上选择它们。 (感谢@MichaelRoland)

我目前的问题:我的UICC上有一个虚拟的Mifare DESfire卡。现在有些设备没有将我的原生包裹的Mifare命令路由到UICC,我仍然没有切换来更改默认路由。所以我想在我的离主机路由表中有另一个条目,但我不知道要使用哪个AID。

我们的MIFARE DESFire测试应用程序F01010有一个PICC应用程序AID。这是用于在CLT界面上选择应用程序的AID,但不能将其输入到Android脱离主机路由表。此外,我们还有两个与MIFARE DESFire应用程序相关的附加AID。这是虚拟卡管理器AID(A0000003964D344D1400000000000000)和服务管理器AID(A0000003964D344D2400000000000000)。

但是我必须在路由表中插入哪个AID?

2 个答案:

答案 0 :(得分:2)

Android(可能还有NFC控制器本身)目前仅支持基于ISO / IEC 7816-4 AID / DF名称的路由配置。您不能为本机DESFire AID(即那些3字节AID)添加路由,也不能为所有本机包装通信添加路由。

你能做什么:

  • 在应用程序创建期间为您的DESFire应用程序分配ISO / IEC 716-4 DF名称。此DF名称是可以在Android脱离主机路由配置中指定的AID。但是,您需要使用DESFire ISO命令集(并专门发出SELECT FILE(通过DF名称)命令来选择您的DESFire应用程序)以触发基于AID的路由。

  • DESFire EV1本身具有AID / DF名称D2 76 00 00 85 01 00。如果您的阅读器选择此AID(使用SELECT FILE(通过DF名称)命令),DESFire卡将切换到ISO成帧(允许ISO命令和包装的本机命令)并选择其主文件。您可以使用Android注册此AID,以将所有DESFire通信路由到UICC。但是,每个阅读器都需要通过发送SELECT FILE命令来启动DESFire通信。

答案 1 :(得分:-1)

如果您想以广泛的方式部署应用,以便在使用相同AID的应用之间不会发生冲突,则必须遵循ISO7816-5 link。第二种方法是使用专有的非注册AID,它始终以0x0F开头。

示例:0x0F,0x11,0x22,0x33,0x44