2

我正在尝试将小程序(.cap 文件)安装到智能卡中。我读到可以使用 APDU 来完成。我使用 Netbeans 创建了我的小程序,它的帮助是 //aid/9AE9BE4D27/53。

首先构建 apdu ,它将选择installer applet

0x00 0xA4 0x04 0x00 0X09 0xA0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F;

然后构建将创建我的小程序的 apdu(遵循此结构):

header: 0x80 0xb8 0x00 0x00

lc aid:

aid:

le: 0x7F;

我开发了一个应用程序,它可以使用channel.transmit(new CommandAPDU(apdu). 我想如果我发送正确的安装命令,我的 .cap 文件应该安装在卡中。

有了这些信息,任何人都可以帮助我构建正确的 apdu 以将我的 cap 文件安装到真实卡中吗?

谢谢你。

4

3 回答 3

5

如果卡是使用全球平台的,那就没那么简单了,你需要对卡管理器进行认证。然后您发送多个命令来加载.cap文件(因为 APDU 可能只包含 255 字节的有效负载 - GP 不使用扩展长度)。然后您发出一个INSTALL for INSTALL命令来实例化 Applet(使用实例 AID)。

幸运的是,有可用的开源库构建在javax.smartcardio. 不过,我仍然建议阅读 Global Platform 的基础知识,这些文件可以免费在线获得。

http://sourceforge.net/projects/gpj/

于 2013-01-25T14:44:33.353 回答
0

是的,如果您发送正确的命令 APDU,那么您将能够安装它,但对于全球平台卡,您需要先创建安全通道,然后您可以发送 InstallForLoad 和后续加载/安装命令。步骤顺序将是:

  • 选择卡管理器
  • 使用您的卡支持的 SCP01/SCO02 验证您的卡
  • 发送 InstallForInstall 命令
  • 发送加载命令
  • 发送 InstallForInstall 命令

每个命令都应该以 0x9000 结尾,这意味着命令执行成功。

但是由于您是初学者,所以您应该使用一些工具(例如 GPShell)将您的 .cap 文件加载到卡上,然后尝试分析安装后出现的 APDU。

于 2013-02-12T11:31:06.510 回答
0

要安装小程序并将其个性化到卡中,您需要相互验证包括内部验证命令和外部验证。请阅读 EMV CPS 或 GlobalPlatform 了解详细信息。

如果您使用模拟器,也可以轻松安装小程序。我使用的是 JAVACos,它非常简单,而且它支持 JC 和 GP 库。使用来自 JAVACos 的库在 Eclipse 中开发小程序,并使用 JAVACos 模拟器使用 scrypt 来模拟小程序以测试小程序。

于 2017-04-10T10:52:04.960 回答