Mifare Classic 是最常用的卡,我不明白为什么 HCE(基于主机的卡仿真)只支持 ISO 14443-4,而不支持 Mifare Classic 类型。
因为恩智浦阻止他们使用他们的专有协议和算法?还是因为他们没有在 Android 操作系统级别实现 Mifare Classic?
任何意见将不胜感激。
Mifare Classic 是最常用的卡,我不明白为什么 HCE(基于主机的卡仿真)只支持 ISO 14443-4,而不支持 Mifare Classic 类型。
因为恩智浦阻止他们使用他们的专有协议和算法?还是因为他们没有在 Android 操作系统级别实现 Mifare Classic?
任何意见将不胜感激。
简短回答:因为 Google 决定仅支持 ISO/IEC 7816-4 而不是 ISO-DEP (ISO/IEC 14443-4)。
关于他们为什么这样决定的猜测:
首先,基于 ISO-DEP 的 ISO/IEC 7816-4 是高级协议层,可用于通过 NCI(NFC 控制器接口)将通信路由到应用处理器。路由较低的协议层是可能的(阅读:“NCI 协议支持这一点”),尽管 NFC 控制器甚至不需要支持较低层通信的路由。
ISO/IEC 7816-4 over ISO-DEP 允许在每个应用程序的基础上进行路由。即阅读器选择一个特定的应用程序,然后,NFC 控制器才决定通信是传递给安全元件还是传递给应用处理器。应用程序处理器可以执行类似的路由机制来将通信路由到特定应用程序(这就是现在在 Android 上所做的)。
使用较低的协议层(例如 ISO/IEC 14443-3)没有办法进行每个应用程序的路由。相反,该级别的所有通信都将路由到安全元件或应用处理器。如果路由到应用处理器,则操作系统无法在多个应用程序之间进行选择。相反,只能为该类型的通信注册一个应用程序。然而,考虑到 Android 等平台的应用程序开发人员众多,只允许一个应用程序将相当抑制开发。
MIFARE Classic 是 NXP 的专有技术。我不希望他们许可 MIFARE Classic 协议/标签平台的纯软件实现(在应用程序处理器/Android 系统上)。
MIFARE Classic 使用非标准帧进行身份验证命令,因此可能难以通过 NCI Frame RF 接口进行仿真(尽管我对该协议不够熟悉,无法确认是否存在阻止 MF Classic 仿真的实际限制)。