通用个性化指南描述了以下个性化过程:
使用安全域建立安全通道,并将存储DGI的存储数据命令转发到Applet。 Applet具有 org.globalplatform 包中的 Application 和 Personalization 接口,并继承 processData 方法以使用存储数据命令。
问题现在是我必须在我的applet中实现 init-update 和 external-authenticate 命令作为安全域是不是已经被选中了,我的小程序不知道这些INS? JCRE是否会自动检测这些GlobalPlatform APDU并将它们转发到SecurityDomain?如果没有,为什么JCRE隐藏/过滤了这个?
e:我在2006年全球平台网站上找到了一个名为CPSDemonstrator的旧例子: http://www.globalplatform.org/specificationform.asp?fid=6596 除了弃用的API调用之外,这仍然是标准的方法吗?
答案 0 :(得分:2)
不,您不需要自己实施安全通道功能:您可以使用安全域。这通常是一个商业决策:您是自己控制安全域的密钥还是受信任的合作伙伴?
让我们说你这样做。然后,可以将安全通道建立到安全域(选择安全通道的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中实现安全命令。