繁体   English   中英

通过软件NFC进行卡仿真

[英]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/

一些可能对您的任务有帮助的事实:

  • 在Nexus S(以及Galaxy Nexus,Nexus 7和其他一些Android设备)中的NFC控制器是PN544
  • 卡仿真可以通过连接到NFC控制器的安全元件或通过主机设备(在这种情况下是Android设备)来完成。 Nexus S具有可用于此的安全元素(在Google电子钱包中使用)。 来自主机设备的卡仿真不是PN544 NFC控制器的功能,尽管有些人声称他们已经设法让它工作。
  • 您可以通过安装设备并按照https://stackoverflow.com/a/10506299/1202968上的说明开启安全元件的卡仿真(尚未尝试使用4.x JB,但我认为它仍然是作品)。
  • 模拟MIFARE Classic卡可以通过Nexus S中的安全元件完成,但不能由主机设备完成。 Nexus S中的安全元件不支持模拟DESFire卡。
  • 我研究了一种类似的门锁产品,它使用卡片仿真本身与NFC移动设备进行通信,同时使用读卡器/写卡器模式与门禁卡进行通信。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM