Abr*_*ham 4 nfc javacard handset sim-card globalplatform
我搜索了 NFC SIM 卡,并在这里和那里找到了关于它们的解释:
对于那些想要使用近场通信技术但目前没有兼容 NFC 的智能手机的人,还有其他方法可以在您的手机上启用 NFC,而无需将其换成昂贵的新型号。SIM 卡和 SD 卡都可以配备 NFC 芯片,一些公司目前提供或准备提供这些选项,以便更多客户可以开始使用 NFC 技术。
我现在的问题是:
无论如何,假设我想在我的 SIM 卡上安装以下小程序(其源代码):
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:我可以使用 GlobalPlatform 命令来安装我的小程序(就像普通智能卡一样)还是基于DefCon 中的这个演示,我必须使用信封命令、短信包和 OTA 技术来安装它?
最后一个问题是关于这篇文章的内容(SIM卡应用开发介绍)。在某些页面(例如第 16 和 17 页)中,有人提到现在有一些兼容GlobalPlatform 3 的SIM 卡可用。但据我所知,智能卡的 GlobalPlatform 规范的最新版本是GlobalPlatform 2.3(在本文发表时尚未发布)。那么作者在文章中提到的GlobalPlatform 3规范是什么?
这更像是一个术语问题。
通常,“NFC SIM 卡”是指 SIM 卡,可以直接与手机的 NFC 天线进行通信,并将其用作非接触式接口。在这种情况下,过时的 V6 引脚(最初用作附加电压源)用于 SIM 和天线之间的通信,这就是为什么它通常被称为 SWP 通信(“单线协议”,请参阅这篇维基百科文章)。现在使用的大多数现代 SIM 卡都是这些 NFC SIM 卡。
然而,市场上也有“特殊”的 SIM 卡甚至 microSD 卡(支持 Java 卡!),它们已经包含 NFC 天线,可以直接与智能卡读卡器通信,而无需手机天线。这些 SIM 卡很少使用,因为它们非常昂贵,而且它们是功能原型,而不是适合日常使用的产品。几个月前我测试了其中的一些,它们有很多问题,性能很差,非接触式场也不是很可靠。当然,这很快就会改变。
是的,您可以使用 Global Platform 在 SIM 卡上安装您的小程序。市场上的大玩家(例如金雅拓)的 SIM 卡遵循全球平台标准。不需要OTA访问。