我正在尝试将applet(.cap文件)安装到智能卡中。我读过可以使用APDU完成。我使用Netbeans创建了我的applet,它的帮助是// aid / 9AE9BE4D27 / 53。
首先构建apdu,选择installer applet
:
0x00 0xA4 0x04 0x00 0X09 0xA0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F
;
然后构建apdu,它将创建我的applet(遵循这个结构):
header: 0x80 0xb8 0x00 0x00
lc aid:
aid:
le: 0x7F;
我开发了一个应用程序,它可以使用channel.transmit(new CommandAPDU(apdu)
向真实卡发送apdu命令。我想如果我发送正确的安装命令,我的.cap文件应该安装在卡中。
有了这些信息,任何人都可以帮我构建正确的apdu,将我的cap文件安装到真实卡中吗?
谢谢。
答案 0 :(得分:5)
如果该卡使用的是Global Platform,那么就不那么简单了,您需要对卡管理器进行身份验证。然后发送多个命令来加载.cap
文件(因为APDU可能只包含255个字节的有效负载 - GP不使用扩展长度)。然后发出INSTALL for INSTALL
命令来实例化Applet(使用实例AID)。
幸运的是,有一些开源库可以构建在javax.smartcardio
之上。我仍然建议阅读全球平台的基础知识,这些文件可以在线免费获得。
答案 1 :(得分:0)
如果您发送正确的命令APDU,那么您将能够安装它,但是如果是Global-platform卡,您需要先创建安全通道,然后您可以发送InstallForLoad和后续的加载/安装命令。 步骤顺序为:
每个命令都应该跟踪0x9000,这意味着命令执行成功。
但是你是初学者,所以你应该使用像GPShell这样的工具将.cap文件加载到卡上,然后尝试分析安装后出来的APDU。
答案 2 :(得分:0)
要安装applet并将其个性化到卡中,您需要相互身份验证包含INTERNAL AUTHENTICATE命令和EXTERNAL AUTHENTICATE。 有关详细信息,请阅读EMV CPS或GlobalPlatform。
如果您使用的是模拟器,也可以轻松安装小程序。 我使用JAVACos非常简单,它支持JC和GP库。 使用来自JAVACos的库在eclipse中开发applet,并使用scrypt使用JAVACos模拟器模拟applet来测试applet。