gpt4 book ai didi

javacard - Java 卡 : Can applets be installed by other applets?

转载 作者:行者123 更新时间:2023-12-04 17:16:29 27 4
gpt4 key购买 nike

在 Java Card 中,通常是否可以从卡上现有应用程序的上下文中安装新应用程序,例如通过应用程序定义的消息格式发送新代码,然后使用某些卡创建新应用程序实例管理器 API?

还是只能在外部使用相应的 APDU?

如果这是 Java Card 和/或 GlobalPlatform 规范未涵盖的内容,是否可以使用供应商特定的方法来完成?

最佳答案

从理论上讲,这对于普通的 Java 卡来说是可能的,因为:

  • 您可以安装具有安全域权限的小程序(对此的支持是可选的);
  • 安全域可以选择执行 INSTALL [for Load](对此的支持是可选的);
  • 小程序可以在调用安全域功能之前接收和更改 APDU 缓冲区(使用 SecureChannel.processSecurity ) - 如 processSecurity如果本身根据规范检索命令数据,那么您可能首先想到的可能性更大;
  • 假设卡处于 GP_SECURE 模式,applet 已被授予访问 key 以重新计算 MAC(这些 key 对 Applet 本身隐藏)。

  • 在这种情况下,您可以将自己的 APDU 转换为符合 GP 规范的特定 APDU,只需调用 SecureChannel.processSecurity让他们处理。

    实际上,我认为上述情况不会是这样,但你永远不会知道。你会明确地绕过为卡实现定义的安全协议(protocol),所以我很确定任何审计解决方案的人都会问你非常明确的问题。

    现在,如果您只想通过自己的安全域安装小程序,那么 Global Platform 明确涵盖了这一点。如果安全域和 INSTALL [for Load] 受支持,您只需检查产品手册即可。

    正如 vojta 已经指出的那样,没有用于移交 INSTALL [for Load] 命令的 API,因此以编程方式您会被卡住。

    一种非常愚蠢的方法是编写自己的虚拟机并将其安装为小程序。在 99.999% 的情况下可能不实用。当然,它仍然只能作为 VM 本身访问,卡不会为其提供自己的应用程序 ID (AID)。

    关于javacard - Java 卡 : Can applets be installed by other applets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40794342/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com