直接访问applet而无需选择AID

时间:2017-06-20 08:44:47

标签: permissions smartcard javacard apdu globalplatform

通常,当您启动JavaCard智能卡并希望与applet通信时,您必须首先使用其AID选择applet。

有没有办法在卡上电时选择“默认小程序”?

我真正想要的是能够在选择卡后立即发送我的应用级别APDU,而不需要完成应用程序选择过程。

这可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:7)

如果您的Java Card智能卡实现了全局平台卡规范,它通常允许您定义在重置时在基本逻辑通道上隐式选择的小程序。因此,在启动(重置)卡时,默认情况下将选择小程序并立即接收所有命令(运行时环境处理的命令除外,例如选择其他小程序,逻辑通道管理等)。

您可以将applet设置为默认选定的applet,方法是将其设置为"默认选择​​" (GP 2.1.1术语)或"卡重置" (GP 2.2术语)特权。这由(第一个)特权字节中的第3位设置。只有一个应用程序可以拥有此权限。

如果您使用GlobalPlatformPro,则可以使用选项--default(在安装期间)或--make-default <AID>(对于现有的小程序)来设置此权限。

请注意,您可以通过捕获Applet#process method中的SELECT APDU来区分AID的默认选择和选择。最好的方法是调用Applet.selectingApplet来检查AID是否进行了明确的选择。