个性化中安全域与Applet的关系

时间:2014-12-15 12:12:39

标签: smartcard javacard globalplatform

通用个性化指南描述了以下个性化过程:

  • 重置
  • 特ATR
  • 选择AID进行个性化
  • 发起安全通道
  • 多个商店数据命令

使用安全域建立安全通道,并将存储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调用之外,这仍然是标准的方法吗?

1 个答案:

答案 0 :(得分:2)

不,您不需要自己实施安全通道功能:您可以使用安全域。这通常是一个商业决策:您是自己控制安全域的密钥还是受信任的合作伙伴?

让我们说你这样做。然后,可以将安全通道建立到安全域(选择安全通道的AID),该安全域已经实现了所有必要的功能。一旦建立,如果您首先向安全域发送INSTALL [个性化] APDU,则可以将STORE DATA APDU发送到您的applet,在命令参数中指示您的applet的AID。 一步步骤:

  1. 选择安全域
  2. 建立SD的安全通道:INITIALIZE_UPDATE,EXTERNAL_AUTHENTICATE
  3. 安装[个性化]。在命令的数据字段中,发送applet的AID
  4. 存储数据 - 它将被转发到您的小程序
  5. 在卡内部,安全域将解密这些存储数据APDU并将它们转发到您的applet,并调用其 processData 方法。

    如果您希望在“可选择”之前对您的应用程序进行个性化设置,则可以使用安装[个性化]。一旦applet可选,您就可以设置一个面向applet的AID的安全通道。 applet只需实现SecureChannel接口(http://www.win.tue.nl/pinpasjc/docs/apis/gp211/org/globalplatform/SecureChannel.html)即可将身份验证和加密委派给其关联的安全域。

    回答你的问题:你不需要在applet中实现安全命令。