安卓NFC卡模拟 / 使用手机作为卡片

3

我正在寻找一种方法,能够从手机向读卡器发送特定的指令。 我已经了解到由于安全原因,android不支持卡模拟,但是在Nexus S上,可以通过固件补丁实现在Android 2.3.4上的卡模拟。

我的主要问题是,我是否真的需要卡模拟来向读卡器发送定义的APDU并接收答复APDU,或者还有其他的可能性,例如滥用Android Beam?
如果我需要使用卡模拟,是否有任何新的见解? 我找到的最后帖子少量帖子都是近一年前的...

作为额外信息,最后我将无法控制读卡器。

感谢回答和任何关于卡模拟的新见解。


什么样的命令?ISO 7816-4 APDU命令吗?另外,请更新标题,看起来有些慢热。 - Maarten Bodewes
是的,确切地说,ISO 7816-4 APdU 命令是有意义的。 - Jay
它仍然读作“Anroid”:),我会修复。 - Maarten Bodewes
1
哦,你不能从卡片向读卡器发送APDU。读卡器始终充当发起者。移动设备可以充当读卡器,发送命令APDU并接收响应APDU,或者它可以充当卡片,接收命令APDU并发送响应APDU。 - Maarten Bodewes
抱歉回复晚了。好吧,我需要在手机上模拟一张卡片。我的目标是,例如当我知道正确的响应卡通常会发送时,使用我的手机作为卡片,并因此正确地回答读卡器的请求。因此标题中提到了Android,因为我想要使用运行Android系统的Nexus S来实现这个目的。 - Jay
2个回答

0
你所尝试实现的目标有些直白。智能卡在NFC中使用的原因是因为NFC协议是以这样一种方式构建的,即不可能提前知道正确的响应。总会涉及到某些秘密,你不能仅凭猜测就得到它。否则,所有使用非接触式智能卡的系统(如建筑物门禁控制)都将存在重大安全漏洞。
你不能仅仅窥视协议、保存交换并在某些软件中复制它们,对于大多数应用程序而言,这种方法都会失败。在某个阶段会有一些随机值和一些加密计算。
为了用手机模拟卡片,你需要一个安全元素(手机上的智能卡芯片或手机中的SIM卡),并且你需要手机中的NFC芯片将卡模拟APDU路由到这个安全元素(这可能是你所提到的补丁正在做的事情)。
在Android应用程序中进行卡模拟的方法是有的,但我怀疑这将需要大量的补丁,并且你将无法预测响应时间,因此你的读卡器可能无法接受。此外,当你的手机关闭时(例如电池耗尽),这也将阻止卡模拟的工作。

我取消了你的答案,因为它已经过时了,未来的读者可以更容易地找到现在相关的答案,希望这对你没问题。 - Jay
更加具体的说明会有所帮助。另外请注意,答案是6年前的,期间很多事情都发生了变化。噢,无论如何。 - Toluene

0

谢谢,我已经看到了。问题是Nexus5不支持Mifare Clasic(我知道,这不是问题的一部分),我已经在Galaxy Nexus上尝试了4.4定制ROM Slimkat,但是那里不支持FEATURE_NFC_HOST_CARD_EMULATION功能。我没有调查这是芯片还是软件问题。 - Jay
你是在旧的Nexus智能手机上试过还是最新的Nexus 5上试过?@Jay - timbillstrom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接