Android NFC 卡模拟/使用手机作为卡

Posted

技术标签:

【中文标题】Android NFC 卡模拟/使用手机作为卡【英文标题】:Android NFC card emulation / use phone as card 【发布时间】:2012-06-26 23:09:11 【问题描述】:

我正在寻找一种将特定命令从我的手机发送到阅读器的方法。 我已经读过由于安全原因,android 不支持卡模拟,但可以通过 Nexus S 上的 android 2.3.4 的firmware patch 来实现。

我的主要问题是,我真的需要卡仿真来将定义的 APDU 发送到读卡器并接收 APDU 的答案,或者是否有任何其他可能通过滥用 android Beam? 如果我需要使用卡片模拟,有什么新见解吗? 我发现的last posts、few posts已经快一岁了……

作为最后的附加信息,我将无法控制阅读器。

感谢您的回答以及关于卡片模拟的任何新见解。

【问题讨论】:

什么样的命令? ISO 7816-4 APDU 命令?请更新标题,这看起来很草率。 没错,是指 ISO 7816-4 APdU 命令 它仍然显示“Anroid”:),我会修复的。 呃,您不能将 APDU 从卡发送到读卡器。读者总是充当发起者。移动设备要么充当阅读器,发送命令 APDU 并接收响应 APDU,要么充当卡,接收命令 APDU 并发送响应 APDU。 对于迟到的答复,我深表歉意。好的,所以我需要在手机上模拟一张卡。例如,我的目标是当我知道该卡通常会发送的正确响应以将我的手机用作卡时,从而用手机正确回答读卡器的请求。因此它在标题中说 android 因为我想为此目的使用运行 android 的 Nexus S 【参考方案1】:

这在 Android KitKat 4.4 中是可能的。 看看这个链接,我相信很快就会添加更多信息。

http://developer.android.com/guide/topics/connectivity/nfc/hce.html

【讨论】:

谢谢,我看过了。问题是,例如 Nexus5 不支持 Mifare Clasic(我知道,这不是问题的一部分)并且我已经在 Galaxy Nexus 上尝试了 4.4 自定义 rom Slimkat,但不支持 FEATURE_NFC_HOST_CARD_EMULATION 功能。我没有调查这是芯片还是软件问题。 您试用的是旧款 Nexus 智能手机还是最新款 Nexus 5? @Jay【参考方案2】:

你想要达到的目标有点坦率。在 NFC 中使用智能卡的原因是,NFC 协议的构建方式无法提前知道正确的响应。总有一个秘密,你不能随便猜。否则,所有使用非接触式智能卡的系统(建筑访问控制,

您不能只监视协议、保存交换并在某些软件中复制它们,在大多数应用程序上这将失败。在某个阶段会有一些随机值,并执行一些加密计算。

为了用手机模拟卡,您需要一个安全元件(手机上的智能卡芯片或手机中的 SIM 卡),并且您需要手机中的 NFC 芯片将卡模拟 APDU 路由到此安全元件元素(这可能是您所指的补丁正在做的事情)。

有很多方法可以在 Android 应用程序中进行卡片模拟,但我怀疑这将需要大量修补,而且您将无法预测响应时间,因此您的读者可能不喜欢它。当您的手机关闭(例如电池耗尽)时,这也会阻止卡模拟工作。

【讨论】:

我未选中您的答案,因为它已过时,未来的读者可以更轻松地找到现在相关的答案,希望这对您来说没问题。 更具体会有所帮助。另请注意,答案可以追溯到 6 年前,而且很多事情在这之间发生了变化。哦,好吧,随便。

以上是关于Android NFC 卡模拟/使用手机作为卡的主要内容,如果未能解决你的问题,请参考以下文章

Android获取NFC标签和NFC十进制16进制ID

安卓门禁卡复制到手机 安卓门禁卡复制到手机的方法

加密门禁卡怎么解密

通过Android模拟的NFC卡,为啥重新绑定到iPhone要删除?明明公交卡可以不删说明这个功能可以实现。

小米怎么用加密门禁卡

nfc-a协议的时序要求