通过软件NFC进行卡仿真

use*_*694 6 android apdu nfc contactless-smartcard hce

在阅读了很多问题之后,我决定发布这个问题.我读到android的股票版本不支持用于卡片仿真的API.此外,由于谷歌/三星管理的密钥,我们无法编写自定义应用程序来保护嵌入在nfc控制器中的元素.

我需要模仿一张牌(mifare或desfire等).我能看到的选项是通过软件来做.我有一个ACR122U阅读器,我已经测试过NFC P2P模式可以正常使用Nexus-S.

1)我遇到一个网站,说nexus的NFC控制器(pn532)可以模拟mifare 4k卡.如果这是真的,我可以写/读apdu命令到这个模拟卡吗?(可能如果我使用像cyanogenmod这样的模型rom)

2)我可以编写一个android应用程序来读取从阅读器发送的apdu命令并生成适当的响应(如果不完全,那么仅在某种程度上).为此,我搜索了我们需要使用cynagenmod修补nexus.有人尝试通过这种方法模拟卡吗?

我看到这是可能的,因为我们有来自访问控制公司的产品,提供可以打开门的移动应用程序,例如http://www.assaabloy.com/en/com/Products/seos-mobile-access/

tak*_*mar 0

2) 软件卡模拟绝对是可能的,但在当前的 Android API 中尚未公开。您将必须更深入地研究 libnfc-nxp(可能还有下面的内容)。但这可能是一件困难的事。Inside Secure 的芯片提供了此功能,如其 OpenNFC 参考实现所示。唯一的问题是是否需要更改 CLF 固件。如果没有,那么您可以将其破解为软件映像。

然而,需要注意的是,您将缺乏以下功能: - 安全性(Android 应用程序不如智能卡安全) - 快速且可预测的响应时间(好吧,取决于您可能如何编码) - 手机时运行的卡模拟已关闭

我相信 SEOS 基于 ISO14443-4 而不是 Mifare。这意味着您需要一个安全元件来运行它。

1)对此不太确定,我的猜测是这仍然是基于硬件的(例如依赖于嵌入式安全元件,例如NXP的SmartMX。

另一种选择是开始在安全元素上进行开发。最直接的方法是获取一些支持 SWP/HCI 的示例测试 SIM。有一个名为 IzyNFC 的免费开发套件,您可以将其用于 javacard,以及用于 Android 应用程序端的 GSMA 和 AFSCM 技术文档。