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

问题描述 投票:3回答:1

“个人化指南”描述了以下个性化过程:

  • 重启
  • ATR
  • 选择AID进行个性化
  • 发起安全通道
  • 多个Store-data命令

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

smartcard javacard globalplatform
1个回答
2
投票

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

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

  1. 选择安全域
  2. 建立到SD的安全通道:INITIALIZE_UPDATE,EXTERNAL_AUTHENTICATE
  3. 安装[个性化]。在命令的数据字段中,发送applet的AID
  4. 存储数据 - 它将被转发到您的小程序

在内部,在卡内部,安全域将解密这些存储数据APDU并将它们转发到您的applet,调用其processData方法。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.