[英]Card emulation via software NFC
在阅读了很多问题之后,我决定发布这个问题。 我读到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/
一些可能对您的任务有帮助的事实:
IMO,2个最简单的选项是:使用P2P通信(Android Beam)或在读卡器设备中使用卡仿真(如果支持它)。 所有其他选项都需要诸如root设备和自定义ROM之类的东西,这些东西不是面向未来的,不可能被翻译成真正的产品。
现在,Android 4.4可以通过软件进行卡仿真。 http://developer.android.com/guide/topics/connectivity/nfc/hce.html
2)绝对可以通过软件进行卡片仿真,但不能在当前的Android API中公开。 你将不得不深入研究libnfc-nxp(可能在下面)。 但这可能是一个困难的问题。 Inside Secure的芯片提供此功能,如OpenNFC参考实现中所示。 唯一的问题是它是否需要更改CLF固件。 如果没有,那么你可以将它破解成软件映像。
然而,需要注意的是,您将缺乏以下功能: - 安全性(Android应用程序不如智能卡安全) - 快速且可预测的响应时间(好吧,取决于您可能的编码方式) - 手机卡模拟运行时已关闭
我相信SEOS基于ISO14443-4而不是Mifare。 这意味着您需要一个安全的元素来运行它。
1)对此不太确定,我的猜测是这仍然是基于硬件的(例如依赖于嵌入式安全元素,如恩智浦的SmartMX)。
另一种选择是开始开发安全元素。 最直接的方法是使用SWP / HCI支持获得一些样本测试SIM。 有一个名为IzyNFC的免费开发工具包,可用于javacard,以及用于Android应用程序的GSMA和AFSCM技术文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.