M4M - Mifare DESFire EV1:需要将哪个 Mifare AID 添加到 NFC 路由 table 以 off-host 路由到 UICC 上的 Mifare DESFire 虚拟卡?
M4M - Mifare DESFire EV1: Which Mifare AID needs to be added to NFC routing table for off-host routing to a Mifare DESFire virtual card on UICC?
在几个 Android 设备上,Mifare DESFire 通信被路由到 HCE 而不是 off-host (UICC)。
从与 off-host 安全元素的基于 OMAPI 的通信中,我已经学会了如何将 AID 添加到 Android off-host 路由 table,这样我就可以 select 他们在 UICC 上。 (感谢@MichaelRoland)
我目前的问题:我的 UICC 上确实有一个虚拟的 Mifare DESfire 卡。现在有些设备不会将我的本地封装 Mifare 命令路由到 UICC,而且我仍然没有开关来更改默认路由。所以我想在我的 off-host 路由 table 中有另一个条目,但我不知道要使用哪个 AID。
我们的 MIFARE DESFire 测试应用程序有一个 PICC 应用程序 AID F01010
。这是用于在 CLT 界面上 select 应用程序的 AID,但是不能输入到 Android off-host 路由 table。此外,我们还有两个与 MIFARE DESFire 应用程序相关的附加 AID。这是虚拟卡管理员 AID (A0000003964D344D1400000000000000
) 和服务管理员 AID (A0000003964D344D2400000000000000
)。
但是我必须将哪个 AID 插入路由 table?
你必须遵循 ISO7816-5 link,如果你想以广泛的方式部署你的应用程序,以避免使用相同 AID 的应用程序之间发生冲突。第二种方法是使用始终以 0x0F 开头的专有非注册 AID。
示例:0x0F、0x11、0x22、0x33、0x44
Android(可能还有 NFC 控制器本身)目前仅支持基于 ISO/IEC 7816-4 AIDs/DF 名称的路由配置。您不能为本机 DESFire AID(即那些 3 字节 AID)或所有本机包装通信添加路由。
你能做什么:
在应用程序创建期间为您的 DESFire 应用程序分配一个 ISO/IEC 716-4 DF 名称。这个 DF 名称是一个 AID,可以在 Android 脱离主机路由配置中指定。但是,您需要使用 DESFire ISO 命令集(并专门向 select 您的 DESFire 应用程序发出 SELECT FILE(按 DF 名称)命令)来触发基于 AID 的路由。
DESFire EV1 本身具有 AID/DF 名称 D2 76 00 00 85 01 00
。如果您的 reader selects 此 AID(使用 SELECT FILE(按 DF 名称)命令),DESFire 卡将切换到 ISO 框架(允许 ISO 命令和包装的本机命令)并且select 它的主文件。您可以使用 Android 注册此 AID,以将所有 DESFire 通信路由到 UICC。但是,每个 reader 都需要通过发送 SELECT FILE 命令来启动 DESFire 通信。
在几个 Android 设备上,Mifare DESFire 通信被路由到 HCE 而不是 off-host (UICC)。
从与 off-host 安全元素的基于 OMAPI 的通信中,我已经学会了如何将 AID 添加到 Android off-host 路由 table,这样我就可以 select 他们在 UICC 上。 (感谢@MichaelRoland)
我目前的问题:我的 UICC 上确实有一个虚拟的 Mifare DESfire 卡。现在有些设备不会将我的本地封装 Mifare 命令路由到 UICC,而且我仍然没有开关来更改默认路由。所以我想在我的 off-host 路由 table 中有另一个条目,但我不知道要使用哪个 AID。
我们的 MIFARE DESFire 测试应用程序有一个 PICC 应用程序 AID F01010
。这是用于在 CLT 界面上 select 应用程序的 AID,但是不能输入到 Android off-host 路由 table。此外,我们还有两个与 MIFARE DESFire 应用程序相关的附加 AID。这是虚拟卡管理员 AID (A0000003964D344D1400000000000000
) 和服务管理员 AID (A0000003964D344D2400000000000000
)。
但是我必须将哪个 AID 插入路由 table?
你必须遵循 ISO7816-5 link,如果你想以广泛的方式部署你的应用程序,以避免使用相同 AID 的应用程序之间发生冲突。第二种方法是使用始终以 0x0F 开头的专有非注册 AID。
示例:0x0F、0x11、0x22、0x33、0x44
Android(可能还有 NFC 控制器本身)目前仅支持基于 ISO/IEC 7816-4 AIDs/DF 名称的路由配置。您不能为本机 DESFire AID(即那些 3 字节 AID)或所有本机包装通信添加路由。
你能做什么:
在应用程序创建期间为您的 DESFire 应用程序分配一个 ISO/IEC 716-4 DF 名称。这个 DF 名称是一个 AID,可以在 Android 脱离主机路由配置中指定。但是,您需要使用 DESFire ISO 命令集(并专门向 select 您的 DESFire 应用程序发出 SELECT FILE(按 DF 名称)命令)来触发基于 AID 的路由。
DESFire EV1 本身具有 AID/DF 名称
D2 76 00 00 85 01 00
。如果您的 reader selects 此 AID(使用 SELECT FILE(按 DF 名称)命令),DESFire 卡将切换到 ISO 框架(允许 ISO 命令和包装的本机命令)并且select 它的主文件。您可以使用 Android 注册此 AID,以将所有 DESFire 通信路由到 UICC。但是,每个 reader 都需要通过发送 SELECT FILE 命令来启动 DESFire 通信。