Mifare Classic是最常用的卡片之一,但我不明白为什么HCE(基于主机的卡模拟)只支持ISO 14443-4,而不支持Mifare Classic类型。
这是因为NXP阻止了使用其专有协议和算法吗? 还是因为他们没有在Android OS层面实现Mifare Classic?
非常感谢您的任何评论。
这是因为NXP阻止了使用其专有协议和算法吗? 还是因为他们没有在Android OS层面实现Mifare Classic?
非常感谢您的任何评论。
关于他们为什么要做出这样的决定,有以下一些推测:
首先,ISO/IEC 7816-4比ISO/IEC 14443-4更高的协议层可以用于通过NCI(NFC控制器接口)将通信路由到应用处理器。尽管NCI协议支持更低层次通信的路由,但NFC控制器甚至没有必要支持低层次通信的路由。
ISO/IEC 7816-4 over ISO-DEP允许按应用程序选择路由。也就是说,读卡器选择特定应用程序,然后NFC控制器才决定是否将通信传递到安全元件或应用处理器。应用处理器可以执行类似的路由机制,将通信路由到特定应用程序(这就是现在在Android上所做的)。
使用更低层次的协议(例如ISO/IEC 14443-3),无法进行按应用程序选择路由。相反,在该级别上的所有通信都将被路由到安全元件或应用处理器。如果路由到应用处理器,则操作系统无法在多个应用程序之间进行选择。相反,只能为该类型的通信注册一个应用程序。然而,考虑到像Android这样的平台上有众多的应用程序开发人员,仅允许单个应用程序会相当抑制开发。
MIFARE Classic是NXP的专有技术。我不认为他们会授权纯软件实现(在应用处理器/Android系统)的MIFARE Classic协议/标签平台。
MIFARE Classic使用非标准帧身份验证命令,因此可能难以通过NCI Frame RF接口模拟(尽管我对该协议的熟悉程度还不足以确认是否存在实际限制阻止MF经典仿真)。