为什么Android HCE不支持Mifare Classic类型?

Yon*_*won 4 android nfc mifare contactless-smartcard hce

Mifare Classic是最常用的卡,我无法理解为什么HCE(基于主机的卡仿真)仅支持ISO 14443-4,而不支持Mifare Classic类型.

因为恩智浦阻止他们使用他们的专有协议和算法?或者因为他们没有在Android操作系统级别实现Mifare Classic?

任何评论将非常感谢.

Mic*_*and 9

简短回答:因为Google决定仅支持ISO/IEC 7816-4而不是ISO-IEC(ISO/IEC 14443-4).

投机原因,他们决定方式:

  • 首先,ISO/IEC 7816-4 over ISO-DEP是高级协议层,可用于通过NCI(NFC控制器接口)将通信路由到应用处理器.可以路由较低协议层(读取:"NCI协议支持此"),尽管NFC控制器甚至不需要支持低层通信的路由.

  • ISO/IEC上的ISO/IEC 7816-4允许基于每个应用程序进行路由.即,读者选择特定应用程序,然后,NFC控制器决定通信是传递给安全元件还是传递给应用程序处理器.应用程序处理器可以执行类似的路由机制来将通信路由到特定应用程序(这就是现在在Android上完成的操作).

  • 使用较低的协议层(例如ISO/IEC 14443-3),无法进行每个应用程序的路由.相反,该级别上的所有通信都将路由到安全元件或应用程序处理器.如果路由到应​​用程序处理器,则操作系统无法在多个应用程序之间进行选择.相反,只能为该类型的通信注册一个应用程序.然而,考虑到像Android这样的平台的众多应用程序开发人员,只允许一个应用程序会阻碍开发.

  • MIFARE Classic是恩智浦的专有技术.我不希望他们许可MIFARE Classic协议/标签平台的纯软件实现(在应用程序处理器/ Android系统上).

  • MIFARE Classic使用非标准成帧进行身份验证命令,因此可能难以通过NCI帧RF接口进行模拟(尽管我不太熟悉该协议以确认是否存在阻止MF Classic仿真的实际限制).