“个人化指南”描述了以下个性化过程:
使用安全域建立安全通道,并将存储DGI的存储数据命令转发到Applet。 Applet具有org.globalplatform包中的Application和Personalization接口,并继承processData方法以使用Store-data命令。
现在的问题是,我是否必须在我的applet中实现init-update和external-authenticate命令,因为安全域不再被选中,我的applet不知道这些INS? JCRE是否会自动检测这些GlobalPlatform APDU并将其转发到SecurityDomain?如果没有,为什么不被JCRE隐藏/过滤?
e:我在2006年全球平台网站上找到了一个名为CPSDemonstrator的旧例子:http://www.globalplatform.org/specificationform.asp?fid=6596除了弃用的API调用之外,这仍然是标准的方法吗?
不,您不需要自己实现安全通道功能:您可以使用安全域。这通常是一个商业决策:您是自己控制安全域的密钥还是受信任的合作伙伴?
让我们说你这样做。然后,可以将安全通道建立到安全域(选择安全通道的AID),该安全域已经实现了所有必要的功能。一旦建立,如果您首先向安全域发送INSTALL [个性化] APDU,则可以将STORE DATA APDU发送到您的applet,在命令参数中指示您的applet的AID。一步步:
在内部,在卡内部,安全域将解密这些存储数据APDU并将它们转发到您的applet,调用其processData方法。
如果您希望在“可选择”之前对应用程序进行个性化设置,则可以使用安装[个性化]。一旦applet可选,您就可以设置一个面向applet的AID的安全通道。 applet只需要实现SecureChannel
接口(http://www.win.tue.nl/pinpasjc/docs/apis/gp211/org/globalplatform/SecureChannel.html),将身份验证和加密委托给其关联的安全域。
要回答您的问题:您不需要在applet中实现安全性命令。