我搜索了有关NFC SIM卡的信息,并在这里和那里找到such explanations关于他们的信息:
对于那些想要使用近场通信技术的人 目前没有NFC兼容智能手机,还有其他 在手机上启用NFC的方法,无需交易 昂贵的新型号。 SIM卡和SD卡都可以配备NFC 芯片,以及一些公司目前提供或正在准备提供 这些选项使更多的客户可以开始使用NFC技术。
我现在的问题是:
无论如何,我们假设我想在我的SIM卡上安装以下applet(its source):
import sim.toolkit.ToolkitInterface;
import sim.toolkit.ToolkitRegistry;
...
import javacard.framework.ISOException;
public class STKTest extends Applet implements ToolkitInterface {
public static void install(byte[] bArray, short bOffset, byte bLength) {
// GP-compliant JavaCard applet registration
new STKTest().register(bArray, (short) (bOffset + 1), bArray[bOffset]);
}
//this method handles standard APDU commands
public void process(APDU apdu) {
// Good practice: Return 9000 on SELECT
if (selectingApplet()) {
return;
}
apdu.setIncomingAndReceive();
final byte[] buf = apdu.getBuffer();
switch (buf[ISO7816.OFFSET_INS]) {
case (byte) 0x00:
//do something
break;
}
}
//this method handles the SIM Toolkit commands
public void processToolkit(byte event) throws ToolkitException {
switch (event) {
case ToolkitConstants.EVENT_TIMER_EXPIRATION:
//do something
break;
}
}
}
问题是:我可以使用GlobalPlatform命令来安装我的applet(就像常规智能卡一样)或基于this presentation in DefCon,我必须使用Envelope命令,SMS数据包和OTA技术吗?
最后一个问题是关于contents of this article(SIM卡应用程序开发的介绍)。在某些页面(例如第16页和第17页)中,提到的是现在有一些 GlobalPlatform 3 兼容的SIM卡。但据我所知,智能卡GlobalPlatform规范的最新版本是 GlobalPlatform 2.3 (未在文章发表时发布)。那么作者在他的文章中提到的 GlobalPlatform 3 规范是什么?
答案 0 :(得分:4)
这是一个术语问题。
通常," NFC SIM卡"是指SIM卡,可直接与手机的NFC天线通信,并将其用作非接触式接口。在这种情况下,过时的V6引脚(最初用作附加电源)用于SIM和天线之间的通信,这就是为什么它通常被称为SWP通信("单线协议",请参阅{{ 3}})。目前使用的大多数现代SIM卡都是这些NFC SIM卡。
然而,还有"特别"市面上有SIM卡甚至microSD卡(带有Java Card支持!),它已经包含NFC天线,可以直接与智能卡读卡器通信而无需手机中的天线。这些SIM卡很少使用,因为它们非常昂贵,而且它们比日常使用的产品更具功能性原型。几个月前我测试了其中的几个并且它们非常多,它们的性能很差,并且它们的非接触式领域不是很可靠。当然,这很快就会改变。
是的,您可以使用Global Platform在SIM卡上安装applet。市场上大玩家的SIM卡(例如金雅拓)遵循全球平台标准。不需要OTA访问。